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) |