Mercurial > repos > earlhaminst > ensembl_get_genetree
annotate get_feature_info.py @ 1:98aba0efe77a draft
planemo upload for repository https://github.com/TGAC/earlham-galaxytools/tree/master/tools/Ensembl-REST commit aaf8d501c3a92ed415fdf9293a65468c72aae984-dirty
| author | earlhaminst | 
|---|---|
| date | Mon, 12 Dec 2016 07:47:26 -0500 | 
| parents | |
| children | 950d9d11b6fb | 
| rev | line source | 
|---|---|
| 
1
 
98aba0efe77a
planemo upload for repository https://github.com/TGAC/earlham-galaxytools/tree/master/tools/Ensembl-REST commit aaf8d501c3a92ed415fdf9293a65468c72aae984-dirty
 
earlhaminst 
parents:  
diff
changeset
 | 
1 # A simple tool to connect to the Ensembl server and retrieve feature | 
| 
 
98aba0efe77a
planemo upload for repository https://github.com/TGAC/earlham-galaxytools/tree/master/tools/Ensembl-REST commit aaf8d501c3a92ed415fdf9293a65468c72aae984-dirty
 
earlhaminst 
parents:  
diff
changeset
 | 
2 # information using the Ensembl REST API. | 
| 
 
98aba0efe77a
planemo upload for repository https://github.com/TGAC/earlham-galaxytools/tree/master/tools/Ensembl-REST commit aaf8d501c3a92ed415fdf9293a65468c72aae984-dirty
 
earlhaminst 
parents:  
diff
changeset
 | 
3 import json | 
| 
 
98aba0efe77a
planemo upload for repository https://github.com/TGAC/earlham-galaxytools/tree/master/tools/Ensembl-REST commit aaf8d501c3a92ed415fdf9293a65468c72aae984-dirty
 
earlhaminst 
parents:  
diff
changeset
 | 
4 import optparse | 
| 
 
98aba0efe77a
planemo upload for repository https://github.com/TGAC/earlham-galaxytools/tree/master/tools/Ensembl-REST commit aaf8d501c3a92ed415fdf9293a65468c72aae984-dirty
 
earlhaminst 
parents:  
diff
changeset
 | 
5 from urlparse import urljoin | 
| 
 
98aba0efe77a
planemo upload for repository https://github.com/TGAC/earlham-galaxytools/tree/master/tools/Ensembl-REST commit aaf8d501c3a92ed415fdf9293a65468c72aae984-dirty
 
earlhaminst 
parents:  
diff
changeset
 | 
6 | 
| 
 
98aba0efe77a
planemo upload for repository https://github.com/TGAC/earlham-galaxytools/tree/master/tools/Ensembl-REST commit aaf8d501c3a92ed415fdf9293a65468c72aae984-dirty
 
earlhaminst 
parents:  
diff
changeset
 | 
7 import requests | 
| 
 
98aba0efe77a
planemo upload for repository https://github.com/TGAC/earlham-galaxytools/tree/master/tools/Ensembl-REST commit aaf8d501c3a92ed415fdf9293a65468c72aae984-dirty
 
earlhaminst 
parents:  
diff
changeset
 | 
8 | 
| 
 
98aba0efe77a
planemo upload for repository https://github.com/TGAC/earlham-galaxytools/tree/master/tools/Ensembl-REST commit aaf8d501c3a92ed415fdf9293a65468c72aae984-dirty
 
earlhaminst 
parents:  
diff
changeset
 | 
9 parser = optparse.OptionParser() | 
| 
 
98aba0efe77a
planemo upload for repository https://github.com/TGAC/earlham-galaxytools/tree/master/tools/Ensembl-REST commit aaf8d501c3a92ed415fdf9293a65468c72aae984-dirty
 
earlhaminst 
parents:  
diff
changeset
 | 
10 parser.add_option('-i', '--input', help='List of Ensembl IDs') | 
| 
 
98aba0efe77a
planemo upload for repository https://github.com/TGAC/earlham-galaxytools/tree/master/tools/Ensembl-REST commit aaf8d501c3a92ed415fdf9293a65468c72aae984-dirty
 
earlhaminst 
parents:  
diff
changeset
 | 
11 parser.add_option('-e', '--expand', type='choice', choices=['0', '1'], | 
| 
 
98aba0efe77a
planemo upload for repository https://github.com/TGAC/earlham-galaxytools/tree/master/tools/Ensembl-REST commit aaf8d501c3a92ed415fdf9293a65468c72aae984-dirty
 
earlhaminst 
parents:  
diff
changeset
 | 
12 default='0', | 
| 
 
98aba0efe77a
planemo upload for repository https://github.com/TGAC/earlham-galaxytools/tree/master/tools/Ensembl-REST commit aaf8d501c3a92ed415fdf9293a65468c72aae984-dirty
 
earlhaminst 
parents:  
diff
changeset
 | 
13 help='Expands the search to include any connected features. e.g. If the object is a gene, its transcripts, translations and exons will be returned as well.') | 
| 
 
98aba0efe77a
planemo upload for repository https://github.com/TGAC/earlham-galaxytools/tree/master/tools/Ensembl-REST commit aaf8d501c3a92ed415fdf9293a65468c72aae984-dirty
 
earlhaminst 
parents:  
diff
changeset
 | 
14 | 
| 
 
98aba0efe77a
planemo upload for repository https://github.com/TGAC/earlham-galaxytools/tree/master/tools/Ensembl-REST commit aaf8d501c3a92ed415fdf9293a65468c72aae984-dirty
 
earlhaminst 
parents:  
diff
changeset
 | 
15 parser.add_option('-s', '--species', type='choice', | 
| 
 
98aba0efe77a
planemo upload for repository https://github.com/TGAC/earlham-galaxytools/tree/master/tools/Ensembl-REST commit aaf8d501c3a92ed415fdf9293a65468c72aae984-dirty
 
earlhaminst 
parents:  
diff
changeset
 | 
16 choices=['ensembl', 'ensemblgenomes'], default='ensembl', | 
| 
 
98aba0efe77a
planemo upload for repository https://github.com/TGAC/earlham-galaxytools/tree/master/tools/Ensembl-REST commit aaf8d501c3a92ed415fdf9293a65468c72aae984-dirty
 
earlhaminst 
parents:  
diff
changeset
 | 
17 help='Specify the genome databases for vertebrates and other eukaryotic species') | 
| 
 
98aba0efe77a
planemo upload for repository https://github.com/TGAC/earlham-galaxytools/tree/master/tools/Ensembl-REST commit aaf8d501c3a92ed415fdf9293a65468c72aae984-dirty
 
earlhaminst 
parents:  
diff
changeset
 | 
18 | 
| 
 
98aba0efe77a
planemo upload for repository https://github.com/TGAC/earlham-galaxytools/tree/master/tools/Ensembl-REST commit aaf8d501c3a92ed415fdf9293a65468c72aae984-dirty
 
earlhaminst 
parents:  
diff
changeset
 | 
19 parser.add_option('-f', '--format', type='choice', | 
| 
 
98aba0efe77a
planemo upload for repository https://github.com/TGAC/earlham-galaxytools/tree/master/tools/Ensembl-REST commit aaf8d501c3a92ed415fdf9293a65468c72aae984-dirty
 
earlhaminst 
parents:  
diff
changeset
 | 
20 choices=['full', 'condensed'], default='full', | 
| 
 
98aba0efe77a
planemo upload for repository https://github.com/TGAC/earlham-galaxytools/tree/master/tools/Ensembl-REST commit aaf8d501c3a92ed415fdf9293a65468c72aae984-dirty
 
earlhaminst 
parents:  
diff
changeset
 | 
21 help='Specify the formats to emit from this endpoint') | 
| 
 
98aba0efe77a
planemo upload for repository https://github.com/TGAC/earlham-galaxytools/tree/master/tools/Ensembl-REST commit aaf8d501c3a92ed415fdf9293a65468c72aae984-dirty
 
earlhaminst 
parents:  
diff
changeset
 | 
22 options, args = parser.parse_args() | 
| 
 
98aba0efe77a
planemo upload for repository https://github.com/TGAC/earlham-galaxytools/tree/master/tools/Ensembl-REST commit aaf8d501c3a92ed415fdf9293a65468c72aae984-dirty
 
earlhaminst 
parents:  
diff
changeset
 | 
23 if options.input is None: | 
| 
 
98aba0efe77a
planemo upload for repository https://github.com/TGAC/earlham-galaxytools/tree/master/tools/Ensembl-REST commit aaf8d501c3a92ed415fdf9293a65468c72aae984-dirty
 
earlhaminst 
parents:  
diff
changeset
 | 
24 raise Exception('-i option must be specified') | 
| 
 
98aba0efe77a
planemo upload for repository https://github.com/TGAC/earlham-galaxytools/tree/master/tools/Ensembl-REST commit aaf8d501c3a92ed415fdf9293a65468c72aae984-dirty
 
earlhaminst 
parents:  
diff
changeset
 | 
25 | 
| 
 
98aba0efe77a
planemo upload for repository https://github.com/TGAC/earlham-galaxytools/tree/master/tools/Ensembl-REST commit aaf8d501c3a92ed415fdf9293a65468c72aae984-dirty
 
earlhaminst 
parents:  
diff
changeset
 | 
26 | 
| 
 
98aba0efe77a
planemo upload for repository https://github.com/TGAC/earlham-galaxytools/tree/master/tools/Ensembl-REST commit aaf8d501c3a92ed415fdf9293a65468c72aae984-dirty
 
earlhaminst 
parents:  
diff
changeset
 | 
27 server = 'http://rest.%s.org' % options.species | 
| 
 
98aba0efe77a
planemo upload for repository https://github.com/TGAC/earlham-galaxytools/tree/master/tools/Ensembl-REST commit aaf8d501c3a92ed415fdf9293a65468c72aae984-dirty
 
earlhaminst 
parents:  
diff
changeset
 | 
28 ext = 'lookup/id' | 
| 
 
98aba0efe77a
planemo upload for repository https://github.com/TGAC/earlham-galaxytools/tree/master/tools/Ensembl-REST commit aaf8d501c3a92ed415fdf9293a65468c72aae984-dirty
 
earlhaminst 
parents:  
diff
changeset
 | 
29 | 
| 
 
98aba0efe77a
planemo upload for repository https://github.com/TGAC/earlham-galaxytools/tree/master/tools/Ensembl-REST commit aaf8d501c3a92ed415fdf9293a65468c72aae984-dirty
 
earlhaminst 
parents:  
diff
changeset
 | 
30 headers = {'Content-Type': 'application/json', 'Accept': 'application/json'} | 
| 
 
98aba0efe77a
planemo upload for repository https://github.com/TGAC/earlham-galaxytools/tree/master/tools/Ensembl-REST commit aaf8d501c3a92ed415fdf9293a65468c72aae984-dirty
 
earlhaminst 
parents:  
diff
changeset
 | 
31 params = dict((k, getattr(options, k)) for k in ['format', 'expand']) | 
| 
 
98aba0efe77a
planemo upload for repository https://github.com/TGAC/earlham-galaxytools/tree/master/tools/Ensembl-REST commit aaf8d501c3a92ed415fdf9293a65468c72aae984-dirty
 
earlhaminst 
parents:  
diff
changeset
 | 
32 with open(options.input) as f: | 
| 
 
98aba0efe77a
planemo upload for repository https://github.com/TGAC/earlham-galaxytools/tree/master/tools/Ensembl-REST commit aaf8d501c3a92ed415fdf9293a65468c72aae984-dirty
 
earlhaminst 
parents:  
diff
changeset
 | 
33 ids = [line.strip() for line in f] | 
| 
 
98aba0efe77a
planemo upload for repository https://github.com/TGAC/earlham-galaxytools/tree/master/tools/Ensembl-REST commit aaf8d501c3a92ed415fdf9293a65468c72aae984-dirty
 
earlhaminst 
parents:  
diff
changeset
 | 
34 data = {'ids': ids} | 
| 
 
98aba0efe77a
planemo upload for repository https://github.com/TGAC/earlham-galaxytools/tree/master/tools/Ensembl-REST commit aaf8d501c3a92ed415fdf9293a65468c72aae984-dirty
 
earlhaminst 
parents:  
diff
changeset
 | 
35 r = requests.post(urljoin(server, ext), params=params, headers=headers, | 
| 
 
98aba0efe77a
planemo upload for repository https://github.com/TGAC/earlham-galaxytools/tree/master/tools/Ensembl-REST commit aaf8d501c3a92ed415fdf9293a65468c72aae984-dirty
 
earlhaminst 
parents:  
diff
changeset
 | 
36 data=json.dumps(data)) | 
| 
 
98aba0efe77a
planemo upload for repository https://github.com/TGAC/earlham-galaxytools/tree/master/tools/Ensembl-REST commit aaf8d501c3a92ed415fdf9293a65468c72aae984-dirty
 
earlhaminst 
parents:  
diff
changeset
 | 
37 | 
| 
 
98aba0efe77a
planemo upload for repository https://github.com/TGAC/earlham-galaxytools/tree/master/tools/Ensembl-REST commit aaf8d501c3a92ed415fdf9293a65468c72aae984-dirty
 
earlhaminst 
parents:  
diff
changeset
 | 
38 if not r.ok: | 
| 
 
98aba0efe77a
planemo upload for repository https://github.com/TGAC/earlham-galaxytools/tree/master/tools/Ensembl-REST commit aaf8d501c3a92ed415fdf9293a65468c72aae984-dirty
 
earlhaminst 
parents:  
diff
changeset
 | 
39 r.raise_for_status() | 
| 
 
98aba0efe77a
planemo upload for repository https://github.com/TGAC/earlham-galaxytools/tree/master/tools/Ensembl-REST commit aaf8d501c3a92ed415fdf9293a65468c72aae984-dirty
 
earlhaminst 
parents:  
diff
changeset
 | 
40 | 
| 
 
98aba0efe77a
planemo upload for repository https://github.com/TGAC/earlham-galaxytools/tree/master/tools/Ensembl-REST commit aaf8d501c3a92ed415fdf9293a65468c72aae984-dirty
 
earlhaminst 
parents:  
diff
changeset
 | 
41 print r.text | 
