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)