Add files via upload

This commit is contained in:
HarshitGupta11 2019-08-23 15:25:59 +05:30 committed by GitHub
parent 647b2c9140
commit 855c89df56
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -3,176 +3,152 @@ import requests
import progressbar import progressbar
import sys import sys
def update_protein(gene_seq,gene):
def update_protein(gene_seq, gene): t=0
t = 0 while(t!=2):
while(t != 2):
try: try:
server = "https://rest.ensembl.org" server = "https://rest.ensembl.org"
ext = "/sequence/id/" + \ ext = "/sequence/id/"+str(gene)+"?type=protein;multiple_sequences=1"
str(gene) + "?type=protein;multiple_sequences=1"
r = requests.get( r = requests.get(server+ext, headers={ "Content-Type" : "application/json"})
server + ext,
headers={
"Content-Type": "application/json"})
if not r.ok: if not r.ok:
r.raise_for_status() r.raise_for_status()
sys.exit() sys.exit()
r = r.json() r=r.json()
if len(r) == 1: if len(r)==1:
r = dict(r[0]) r=dict(r[0])
gene_seq[gene] = str(r["seq"]) gene_seq[gene]=str(r["seq"])
return return
else: else:
maxi = 0 maxi=0
maxlen = 0 maxlen=0
for i in range(len(r)): for i in range(len(r)):
m = r[i] m=r[i]
m = dict(m) m=dict(m)
if len(m["seq"]) > maxlen: if len(m["seq"])>maxlen:
maxi = i maxi=i
r = dict(r[maxi]) r=dict(r[maxi])
gene_seq[gene] = str(r["seq"]) gene_seq[gene]=str(r["seq"])
return return
except BaseException: except :
t += 1 t+=1
# print("\nError:",e) #print("\nError:",e)
continue continue
gene_seq[gene] = "" gene_seq[gene]=""
def update_rest_protein(data,fname):
gids={}
with open("processed/not_found_"+fname+".json","r") as file:
gids=dict(json.load(file))
def update_rest_protein(data): gids=list(gids.keys())
gids = {}
with open("processed/not_found.json", "r") as file:
gids = dict(json.load(file))
gids = list(gids.keys()) geneseq={}
geneseq = {}
server = "https://rest.ensembl.org" server = "https://rest.ensembl.org"
ext = "/sequence/id?type=protein" ext = "/sequence/id?type=protein"
headers = { headers={ "Content-Type" : "application/json", "Accept" : "application/json"}
"Content-Type": "application/json",
"Accept": "application/json"}
for i in progressbar.progressbar(range(0, len(gids) - 50, 50)): for i in progressbar.progressbar(range(0,len(gids)-50,50)):
ids = dict(ids=list(gids[i:i + 50])) ids=dict(ids=list(gids[i:i+50]))
while(1): while(1):
try: try:
r = requests.post( r = requests.post(server+ext, headers=headers, data=str(json.dumps(ids)))
server + ext,
headers=headers,
data=str(
json.dumps(ids)))
if not r.ok: if not r.ok:
r.raise_for_status() r.raise_for_status()
gs = r.json() gs=r.json()
tgs = {} tgs={}
for g in gs: for g in gs:
tgs[g["query"]] = g["seq"] tgs[g["query"]]=g["seq"]
geneseq.update(tgs) geneseq.update(tgs)
break break
except Exception as e: except Exception as e:
print("Error:", e) print("Error:",e)
continue continue
data.update(geneseq) data.update(geneseq)
for genes in gids: for genes in gids:
try: try:
_ = data[genes] _=data[genes]
except BaseException: except:
print(genes) print(genes)
update_protein(data, genes) update_protein(data,genes)
print("Gene Sequences Updated Successfully") print("Protein Sequences Updated Successfully")
return data return data
def update(gene_seq,gene):
def update(gene_seq, gene): t=0
t = 0 while(t!=2):
while(t != 2):
try: try:
server = "https://rest.ensembl.org" server = "https://rest.ensembl.org"
ext = "/sequence/id/" + \ ext = "/sequence/id/"+str(gene)+"?type=cds;multiple_sequences=1"
str(gene) + "?type=cds;multiple_sequences=1"
r = requests.get( r = requests.get(server+ext, headers={ "Content-Type" : "application/json"})
server + ext,
headers={
"Content-Type": "application/json"})
if not r.ok: if not r.ok:
r.raise_for_status() r.raise_for_status()
sys.exit() sys.exit()
r = r.json() r=r.json()
if len(r) == 1: if len(r)==1:
r = dict(r[0]) r=dict(r[0])
gene_seq[gene] = str(r["seq"]) gene_seq[gene]=str(r["seq"])
return return
else: else:
maxi = 0 maxi=0
maxlen = 0 maxlen=0
for i in range(len(r)): for i in range(len(r)):
m = r[i] m=r[i]
m = dict(m) m=dict(m)
if len(m["seq"]) > maxlen: if len(m["seq"])>maxlen:
maxi = i maxi=i
r = dict(r[maxi]) r=dict(r[maxi])
gene_seq[gene] = str(r["seq"]) gene_seq[gene]=str(r["seq"])
return return
except BaseException: except Exception as e:
t += 1 t+=1
# print("\nError:",e) #print("\nError:",e)
continue continue
gene_seq[gene] = "" gene_seq[gene]=""
def update_rest(data,fname):
gids={}
with open("processed/not_found_"+fname+".json","r") as file:
gids=dict(json.load(file))
def update_rest(data, fname): gids=list(gids.keys())
gids = {}
with open("processed/not_found_" + fname + ".json", "r") as file:
gids = dict(json.load(file))
gids = list(gids.keys()) geneseq={}
geneseq = {}
server = "https://rest.ensembl.org" server = "https://rest.ensembl.org"
ext = "/sequence/id?type=cds" ext = "/sequence/id?type=cds"
headers = { headers={ "Content-Type" : "application/json", "Accept" : "application/json"}
"Content-Type": "application/json",
"Accept": "application/json"}
for i in progressbar.progressbar(range(0, len(gids) - 50, 50)): for i in progressbar.progressbar(range(0,len(gids)-50,50)):
ids = dict(ids=list(gids[i:i + 50])) ids=dict(ids=list(gids[i:i+50]))
while(1): while(1):
try: try:
r = requests.post( r = requests.post(server+ext, headers=headers, data=str(json.dumps(ids)))
server + ext,
headers=headers,
data=str(
json.dumps(ids)))
if not r.ok: if not r.ok:
r.raise_for_status() r.raise_for_status()
gs = r.json() gs=r.json()
tgs = {} tgs={}
for g in gs: for g in gs:
tgs[g["query"]] = g["seq"] tgs[g["query"]]=g["seq"]
geneseq.update(tgs) geneseq.update(tgs)
break break
except Exception as e: except Exception as e:
print("Error:", e) print("Error:",e)
continue continue
data.update(geneseq) data.update(geneseq)
for genes in gids: for genes in gids:
try: try:
_ = data[genes] _=data[genes]
except BaseException: except:
print(genes) print(genes)
update(data, genes) update(data,genes)
print("Gene Sequences Updated Successfully") print("Gene Sequences Updated Successfully")
return data return data