| 0 | 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") |