Mercurial > repos > galaxyp > retrieve_ensembl_bed
comparison ensembl_rest.py @ 1:c3d600729b6f draft
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 88cf1e923a8c9e5bc6953ad412d15a7c70f054d1
| author | galaxyp |
|---|---|
| date | Mon, 22 Jan 2018 13:13:26 -0500 |
| parents | 887e111c0919 |
| children |
comparison
equal
deleted
inserted
replaced
| 0:887e111c0919 | 1:c3d600729b6f |
|---|---|
| 10 # James E Johnson | 10 # James E Johnson |
| 11 # | 11 # |
| 12 #------------------------------------------------------------------------------ | 12 #------------------------------------------------------------------------------ |
| 13 """ | 13 """ |
| 14 | 14 |
| 15 from __future__ import print_function | |
| 16 from __future__ import unicode_literals | |
| 15 | 17 |
| 16 import sys | 18 import sys |
| 17 | 19 |
| 18 from time import sleep | 20 from time import sleep |
| 19 | 21 |
| 26 debug = False | 28 debug = False |
| 27 | 29 |
| 28 | 30 |
| 29 def ensembl_rest(ext, headers): | 31 def ensembl_rest(ext, headers): |
| 30 if debug: | 32 if debug: |
| 31 print >> sys.stderr, "%s" % ext | 33 print("%s" % ext, file=sys.stderr) |
| 32 r = requests.get(server+ext, headers=headers) | 34 r = requests.get(server+ext, headers=headers) |
| 33 if r.status_code == 429: | 35 if r.status_code == 429: |
| 34 print >> sys.stderr, "response headers: %s\n" % r.headers | 36 print("response headers: %s\n" % r.headers, file=sys.stderr) |
| 35 if 'Retry-After' in r.headers: | 37 if 'Retry-After' in r.headers: |
| 36 sleep(r.headers['Retry-After']) | 38 sleep(r.headers['Retry-After']) |
| 37 r = requests.get(server+ext, headers=headers) | 39 r = requests.get(server+ext, headers=headers) |
| 38 if not r.ok: | 40 if not r.ok: |
| 39 r.raise_for_status() | 41 r.raise_for_status() |
| 45 ext = "/info/species" | 47 ext = "/info/species" |
| 46 req_header = {"Content-Type": "application/json"} | 48 req_header = {"Content-Type": "application/json"} |
| 47 r = ensembl_rest(ext, req_header) | 49 r = ensembl_rest(ext, req_header) |
| 48 for species in r.json()['species']: | 50 for species in r.json()['species']: |
| 49 results[species['name']] = species | 51 results[species['name']] = species |
| 50 print >> sys.stdout,\ | 52 print("%s\t%s\t%s\t%s\t%s" % |
| 51 "%s\t%s\t%s\t%s\t%s"\ | 53 (species['name'], species['common_name'], |
| 52 % (species['name'], species['common_name'], | |
| 53 species['display_name'], | 54 species['display_name'], |
| 54 species['strain'], | 55 species['strain'], |
| 55 species['taxon_id']) | 56 species['taxon_id']), file=sys.stdout) |
| 56 return results | 57 return results |
| 57 | 58 |
| 58 | 59 |
| 59 def get_biotypes(species): | 60 def get_biotypes(species): |
| 60 biotypes = [] | 61 biotypes = [] |
| 84 def get_transcripts_bed(species, refseq, start, length, strand='', | 85 def get_transcripts_bed(species, refseq, start, length, strand='', |
| 85 params=None): | 86 params=None): |
| 86 bed = [] | 87 bed = [] |
| 87 param = params if params else '' | 88 param = params if params else '' |
| 88 req_header = {"Content-Type": "text/x-bed"} | 89 req_header = {"Content-Type": "text/x-bed"} |
| 89 regions = range(start, length, max_region) | 90 regions = list(range(start, length, max_region)) |
| 90 if not regions or regions[-1] < length: | 91 if not regions or regions[-1] < length: |
| 91 regions.append(length) | 92 regions.append(length) |
| 92 for end in regions[1:]: | 93 for end in regions[1:]: |
| 93 ext = "/overlap/region/%s/%s:%d-%d%s?feature=transcript;%s"\ | 94 ext = "/overlap/region/%s/%s:%d-%d%s?feature=transcript;%s"\ |
| 94 % (species, refseq, start, end, strand, param) | 95 % (species, refseq, start, end, strand, param) |
