comparison trim.py @ 0:cb08a27e5fc2 draft

Uploaded
author davidvanzessen
date Mon, 29 Aug 2016 05:44:57 -0400
parents
children 423d320bc1ba
comparison
equal deleted inserted replaced
-1:000000000000 0:cb08a27e5fc2
1 import argparse
2
3 #docs.python.org/dev/library/argparse.html
4 parser = argparse.ArgumentParser()
5 parser.add_argument("--input", help="Input fasta")
6 parser.add_argument("--output", help="Output fasta")
7 parser.add_argument("--start", help="How many nucleotides to trim from the start", type=int)
8 parser.add_argument("--end", help="How many nucleotides to trim from the end", type=int)
9
10 args = parser.parse_args()
11 start = int(args.start)
12 end = int(args.end)
13
14 print args.input
15 print args.output
16 print start
17 print end
18
19 if end <= 0 and start <= 0:
20 import shutil
21 shutil.copy(args.input, args.output)
22 import sys
23 sys.exit()
24
25
26
27 currentSeq = ""
28 currentId = ""
29
30 if end is 0:
31 with open(args.input, 'r') as i:
32 with open(args.output, 'w') as o:
33 for line in i.readlines():
34 if line[0] is ">":
35 currentSeq = currentSeq[start:]
36 if currentSeq is not "" and currentId is not "":
37 o.write(currentId)
38 o.write(currentSeq + "\n")
39 currentId = line
40 currentSeq = ""
41 else:
42 currentSeq += line.rstrip()
43 o.write(currentId)
44 o.write(currentSeq[start:] + "\n")
45 else:
46 with open(args.input, 'r') as i:
47 with open(args.output, 'w') as o:
48 for line in i.readlines():
49 if line[0] is ">":
50 currentSeq = currentSeq[start:-end]
51 if currentSeq is not "" and currentId is not "":
52 o.write(currentId)
53 o.write(currentSeq + "\n")
54 currentId = line
55 currentSeq = ""
56 else:
57 currentSeq += line.rstrip()
58 o.write(currentId)
59 o.write(currentSeq[start:-end] + "\n")