annotate gbk_to_fasta.py @ 3:1f00946b18c2 draft default tip

Uploaded
author rijst
date Wed, 12 Dec 2012 09:09:45 -0500
parents cc961e057668
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
cc961e057668 Uploaded
rijst
parents:
diff changeset
1 import sys
cc961e057668 Uploaded
rijst
parents:
diff changeset
2
cc961e057668 Uploaded
rijst
parents:
diff changeset
3 if len(sys.argv) < 3:
cc961e057668 Uploaded
rijst
parents:
diff changeset
4 exit("Not enough arguments passed, pleas provide names of input- and output file")
cc961e057668 Uploaded
rijst
parents:
diff changeset
5
cc961e057668 Uploaded
rijst
parents:
diff changeset
6 input_name = sys.argv[1]
cc961e057668 Uploaded
rijst
parents:
diff changeset
7 output_name = sys.argv[2]
cc961e057668 Uploaded
rijst
parents:
diff changeset
8
cc961e057668 Uploaded
rijst
parents:
diff changeset
9 from Bio import GenBank
cc961e057668 Uploaded
rijst
parents:
diff changeset
10
cc961e057668 Uploaded
rijst
parents:
diff changeset
11 try: seq_record = GenBank.RecordParser().parse(open(input_name))
cc961e057668 Uploaded
rijst
parents:
diff changeset
12 except: exit("Error reading %s, check file correctness." % input_name)
cc961e057668 Uploaded
rijst
parents:
diff changeset
13
cc961e057668 Uploaded
rijst
parents:
diff changeset
14 try: out_file = open(output_name, 'w')
cc961e057668 Uploaded
rijst
parents:
diff changeset
15 except IOError as e:
cc961e057668 Uploaded
rijst
parents:
diff changeset
16 exit("Error trying to open '%s': {1}".format(e.errno, e.strerror))
cc961e057668 Uploaded
rijst
parents:
diff changeset
17
cc961e057668 Uploaded
rijst
parents:
diff changeset
18 accession = definition = ''
cc961e057668 Uploaded
rijst
parents:
diff changeset
19 if seq_record.accession[0] != '': accession = '|gb|'+seq_record.accession[0]
cc961e057668 Uploaded
rijst
parents:
diff changeset
20 if seq_record.definition != '': definition = '|'+seq_record.definition
cc961e057668 Uploaded
rijst
parents:
diff changeset
21
cc961e057668 Uploaded
rijst
parents:
diff changeset
22 out_file.write(">gi|%s%s%s\n" % (seq_record.gi,accession,definition))
cc961e057668 Uploaded
rijst
parents:
diff changeset
23
cc961e057668 Uploaded
rijst
parents:
diff changeset
24 i = 0
cc961e057668 Uploaded
rijst
parents:
diff changeset
25 while i < len(seq_record.sequence):
cc961e057668 Uploaded
rijst
parents:
diff changeset
26 out_file.write(seq_record.sequence[i:i+70]+"\n")
cc961e057668 Uploaded
rijst
parents:
diff changeset
27 i += 70
cc961e057668 Uploaded
rijst
parents:
diff changeset
28
cc961e057668 Uploaded
rijst
parents:
diff changeset
29 out_file.close()