Mercurial > repos > earlhaminst > ensembl_get_genetree
diff get_feature_info/get_feature_info.py @ 0:f0018341e9f6 draft
planemo upload for repository https://github.com/TGAC/earlham-galaxytools/tree/master/tools/Ensembl-REST commit e80af91bced56efdb4fbf62ac03232655a22f25d-dirty
author | earlhaminst |
---|---|
date | Thu, 11 Aug 2016 14:29:07 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/get_feature_info/get_feature_info.py Thu Aug 11 14:29:07 2016 -0400 @@ -0,0 +1,41 @@ +# A simple tool to connect to the Ensembl server and retrieve feature +# information using the Ensembl REST API. +import json +import optparse +from urlparse import urljoin + +import requests + +parser = optparse.OptionParser() +parser.add_option('-i', '--input', help='List of Ensembl IDs') +parser.add_option('-e', '--expand', type='choice', choices=['0', '1'], + default='0', + 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.') + +parser.add_option('-s', '--species', type='choice', + choices=['ensembl', 'ensemblgenomes'], default='ensembl', + help='Specify the genome databases for vertebrates and other eukaryotic species') + +parser.add_option('-f', '--format', type='choice', + choices=['full', 'condensed'], default='full', + help='Specify the formats to emit from this endpoint') +options, args = parser.parse_args() +if options.input is None: + raise Exception('-i option must be specified') + + +server = 'http://rest.%s.org' % options.species +ext = 'lookup/id' + +headers = {'Content-Type': 'application/json', 'Accept': 'application/json'} +params = dict((k, getattr(options, k)) for k in ['format', 'expand']) +with open(options.input) as f: + ids = [line.strip() for line in f] +data = {'ids': ids} +r = requests.post(urljoin(server, ext), params=params, headers=headers, + data=json.dumps(data)) + +if not r.ok: + r.raise_for_status() + +print r.text