In [ ]:
def procRequest(request):
j = json.loads(request.text)
h = j[j.keys()[0]]
l = list(e[0] for e in enumerate(h.items()))
for e in enumerate(h.items()):
o = io.StringIO(e[1][1])
l[e[0]] = {e[1][0]: pd.read_csv(o, sep='\t',prefix=e[1][0])}
return(l)
In [133]:
import json
import io
import pandas as pd
import requests
#This function processed API requests for individual proteins into a list of dictionary objects with key = tool, val = Pandas DF
def procRequest(request):
j = json.loads(request.text)
h = j[j.keys()[0]]
l = list(e[0] for e in enumerate(h.items()))
for e in enumerate(h.items()):
o = io.StringIO(e[1][1])
df = pd.read_csv(o, sep='\t')
for c in df.columns:
if c not in ['allele','peptide']:
df = df.rename(columns={c: str(e[1][0]) + c})
l[e[0]] = {e[1][0]: df}
return(l)
#This function takes the generated list from the procRequest function and generates a merged DF in JSON format
def genMergedTable(l):
for e in enumerate(l):
if e[0] == 0:
df = l[e[0]].values()[0]
else:
df = pd.merge(df, l[e[0]].values()[0], on=['peptide', 'allele'], how='outer')
return(df.to_json)
#Example use:
request = requests.get('http://api.imetric.io/query/MAAAGSRKRRLAELTVDEFLASGFDSESESESENSPQAETREAREAARSPDKPGGSPSAS')
l = procRequest(request)
jsonDF = genMergedTable(l)
In [137]:
j = json.loads(request.text)
In [140]:
j.keys()[0]
Out[140]:
In [ ]: