Mercurial > repos > galaxyp > retrieve_ensembl_bed
annotate ensembl_rest.py @ 0:887e111c0919 draft
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
author | galaxyp |
---|---|
date | Sun, 14 Jan 2018 14:11:53 -0500 |
parents | |
children | c3d600729b6f |
rev | line source |
---|---|
0
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
1 #!/usr/bin/env python |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
2 """ |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
3 # |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
4 #------------------------------------------------------------------------------ |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
5 # University of Minnesota |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
6 # Copyright 2017, Regents of the University of Minnesota |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
7 #------------------------------------------------------------------------------ |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
8 # Author: |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
9 # |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
10 # James E Johnson |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
11 # |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
12 #------------------------------------------------------------------------------ |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
13 """ |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
14 |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
15 |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
16 import sys |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
17 |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
18 from time import sleep |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
19 |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
20 import requests |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
21 |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
22 |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
23 server = "https://rest.ensembl.org" |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
24 ext = "/info/assembly/homo_sapiens?" |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
25 max_region = 4000000 |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
26 debug = False |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
27 |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
28 |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
29 def ensembl_rest(ext, headers): |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
30 if debug: |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
31 print >> sys.stderr, "%s" % ext |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
32 r = requests.get(server+ext, headers=headers) |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
33 if r.status_code == 429: |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
34 print >> sys.stderr, "response headers: %s\n" % r.headers |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
35 if 'Retry-After' in r.headers: |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
36 sleep(r.headers['Retry-After']) |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
37 r = requests.get(server+ext, headers=headers) |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
38 if not r.ok: |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
39 r.raise_for_status() |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
40 return r |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
41 |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
42 |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
43 def get_species(): |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
44 results = dict() |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
45 ext = "/info/species" |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
46 req_header = {"Content-Type": "application/json"} |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
47 r = ensembl_rest(ext, req_header) |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
48 for species in r.json()['species']: |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
49 results[species['name']] = species |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
50 print >> sys.stdout,\ |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
51 "%s\t%s\t%s\t%s\t%s"\ |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
52 % (species['name'], species['common_name'], |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
53 species['display_name'], |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
54 species['strain'], |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
55 species['taxon_id']) |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
56 return results |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
57 |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
58 |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
59 def get_biotypes(species): |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
60 biotypes = [] |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
61 ext = "/info/biotypes/%s?" % species |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
62 req_header = {"Content-Type": "application/json"} |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
63 r = ensembl_rest(ext, req_header) |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
64 for entry in r.json(): |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
65 if 'biotype' in entry: |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
66 biotypes.append(entry['biotype']) |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
67 return biotypes |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
68 |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
69 |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
70 def get_toplevel(species): |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
71 coord_systems = dict() |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
72 ext = "/info/assembly/%s?" % species |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
73 req_header = {"Content-Type": "application/json"} |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
74 r = ensembl_rest(ext, req_header) |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
75 toplevel = r.json() |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
76 for seq in toplevel['top_level_region']: |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
77 if seq['coord_system'] not in coord_systems: |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
78 coord_systems[seq['coord_system']] = dict() |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
79 coord_system = coord_systems[seq['coord_system']] |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
80 coord_system[seq['name']] = int(seq['length']) |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
81 return coord_systems |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
82 |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
83 |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
84 def get_transcripts_bed(species, refseq, start, length, strand='', |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
85 params=None): |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
86 bed = [] |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
87 param = params if params else '' |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
88 req_header = {"Content-Type": "text/x-bed"} |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
89 regions = range(start, length, max_region) |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
90 if not regions or regions[-1] < length: |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
91 regions.append(length) |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
92 for end in regions[1:]: |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
93 ext = "/overlap/region/%s/%s:%d-%d%s?feature=transcript;%s"\ |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
94 % (species, refseq, start, end, strand, param) |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
95 start = end + 1 |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
96 r = ensembl_rest(ext, req_header) |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
97 if r.text: |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
98 bed += r.text.splitlines() |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
99 return bed |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
100 |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
101 |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
102 def get_seq(id, seqtype, params=None): |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
103 param = params if params else '' |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
104 ext = "/sequence/id/%s?type=%s;%s" % (id, seqtype, param) |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
105 req_header = {"Content-Type": "text/plain"} |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
106 r = ensembl_rest(ext, req_header) |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
107 return r.text |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
108 |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
109 |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
110 def get_cdna(id, params=None): |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
111 return get_seq(id, 'cdna', params=params) |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
112 |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
113 |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
114 def get_cds(id, params=None): |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
115 return get_seq(id, 'cds', params=params) |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
116 |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
117 |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
118 def get_genomic(id, params=None): |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
119 return get_seq(id, 'genomic', params=params) |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
120 |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
121 |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
122 def get_transcript_haplotypes(species, transcript): |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
123 ext = "/transcript_haplotypes/%s/%s?aligned_sequences=1"\ |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
124 % (species, transcript) |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
125 req_header = {"Content-Type": "application/json"} |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
126 r = ensembl_rest(ext, req_header) |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
127 decoded = r.json() |
887e111c0919
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/proteogenomics/retrieve_ensembl_bed commit 3fd7be931712e7fa5b281bc8c48104c8583ef7f0
galaxyp
parents:
diff
changeset
|
128 return decoded |