comparison igblastmerge.py @ 3:39ff573fed64 draft

Uploaded
author davidvanzessen
date Mon, 02 Dec 2013 11:01:49 -0500
parents 1f6de7db44b6
children f0bf6e978f77
comparison
equal deleted inserted replaced
2:591a8bc0af8e 3:39ff573fed64
1 import argparse
2 import sys 1 import sys
3 # error 2 # error
4 def stop_err( msg ): 3 def stop_err( msg ):
5 sys.stderr.write( "%s\n" % msg ) 4 sys.stderr.write( "%s\n" % msg )
6 sys.exit() 5 sys.exit()
7 6
8 # main 7 # main
9 def main(): 8 def main():
10 parser = argparse.ArgumentParser() #docs.python.org/dev/library/argparse.html 9 args = sys.argv[2:-2]
11 parser.add_argument("--input", help="Input file(s)", nargs="+") 10
12 parser.add_argument("--id", help="Input file(s) id's", nargs="+") 11 try:
13 parser.add_argument("--output", help="Output file") 12 o = open(sys.argv[-1], 'w')
14 13 i = open(args[1], 'r')
15 args = parser.parse_args() 14 separator = "\t"
16 try: 15 newline = "\n"
17 o = open(args.output, 'w') 16 line = i.readline()
18 i = open(args.input[-1], 'r') 17 #write the header
19 separator = "\t" 18 o.write(line[:line.rfind(newline)] + separator + "Sample" + separator + "Replicate" + newline)
20 newline = "\n" 19 i.close()
21 header = "Sample" 20
22 line = i.readline() 21 current = 1
23 o.write(line[:line.rfind(newline)] + separator + header + newline) #write the header 22 sampleID = args[0]
24 i.close() 23 count = 1
25 24
26 for cf,i in zip(args.input,args.id): 25 while True:
27 f = open(cf, 'r') 26 print str(o)
28 line = f.readline() 27 f = open(args[current], 'r')
29 line = f.readline() #skip header 28 line = f.readline()
30 while line: 29 line = f.readline()
31 o.write(line[:line.rfind(newline)] + separator + i + newline) 30 while line:
32 line = f.readline() 31 o.write(line[:line.rfind(newline)] + separator + sampleID + separator + str(count) + newline)
33 f.close() 32 line = f.readline()
34 o.close() 33 f.close()
35 34
36 except Exception, ex: 35 if current >= (len(args) - 1):
37 stop_err('Error running new_column.py\n' + str(ex)) 36 break
38 sys.exit(0) 37 if args[current + 1].find("/") is -1:
38 sampleID = args[current + 1]
39 current += 1
40 count = 1
41 else:
42 count += 1
43 current += 1
44 o.close()
45
46 except Exception, ex:
47 stop_err('Error running new_column.py\n' + str(ex))
48 sys.exit(0)
39 49
40 if __name__ == "__main__": 50 if __name__ == "__main__":
41 print sys.argv 51 print sys.argv
42 main() 52 main()