Mercurial > repos > xuebing > sharplabtool
comparison tools/data_source/genbank.py @ 0:9071e359b9a3
Uploaded
author | xuebing |
---|---|
date | Fri, 09 Mar 2012 19:37:19 -0500 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:9071e359b9a3 |
---|---|
1 #!/usr/bin/env python | |
2 from Bio import GenBank | |
3 import sys, os, textwrap | |
4 | |
5 assert sys.version_info[:2] >= ( 2, 4 ) | |
6 | |
7 def make_fasta(rec): | |
8 '''Creates fasta format from a record''' | |
9 gi = rec.annotations.get('gi','') | |
10 org = rec.annotations.get('organism','') | |
11 date = rec.annotations.get('date','') | |
12 head = '>gi:%s, id:%s, org:%s, date:%s\n' % (gi, rec.id, org, date) | |
13 body = '\n'.join(textwrap.wrap(rec.seq.data, width=80)) | |
14 return head, body | |
15 | |
16 if __name__ == '__main__': | |
17 | |
18 mode = sys.argv[1] | |
19 text = sys.argv[2] | |
20 output_file = sys.argv[3] | |
21 | |
22 print 'Searching for %s <br>' % text | |
23 | |
24 # check if inputs are all numbers | |
25 try: | |
26 gi_list = text.split() | |
27 tmp = map(int, gi_list) | |
28 except ValueError: | |
29 gi_list = GenBank.search_for(text, max_ids=10) | |
30 | |
31 fp = open(output_file, 'wt') | |
32 record_parser = GenBank.FeatureParser() | |
33 ncbi_dict = GenBank.NCBIDictionary(mode, 'genbank', parser = record_parser) | |
34 for gid in gi_list: | |
35 res = ncbi_dict[gid] | |
36 head, body = make_fasta(res) | |
37 fp.write(head+body+'\n') | |
38 print head | |
39 fp.close() | |
40 | |
41 | |
42 |