biyelunwen/99.scripts/trinity_utils/util/misc/STAR_align_log_parser.py

51 lines
1.0 KiB
Python

#!/usr/bin/env python
import sys, os, re
def main():
usage = "\n\n\tusage: {} STAR.Log.final.out [STAR.Log.final.out ...]\n\n".format(sys.argv[0])
if len(sys.argv) < 2:
exit(usage)
tokens = ['sample_name']
processed_first = False
files = sys.argv[1:]
for log_filename in files:
token_to_val = { 'sample_name' : log_filename }
with open(log_filename) as fh:
for line in fh:
line = line.rstrip()
vals = line.split("|")
if len(vals) != 2:
continue
key = vals[0].strip()
val = vals[1].strip()
if not processed_first:
tokens.append(key)
token_to_val[key] = val
if not processed_first:
# print header
print("\t".join(tokens))
processed_first = True
vals = [token_to_val[x] for x in tokens]
print("\t".join(vals))
sys.exit(0)
if __name__=='__main__':
main()