我有一个肽序列列表,我想把它映射到任何开放数据库中的正确的蛋白质名称,比如Uniprot,也就是属于蛋白质的肽。能否有人指导如何找到蛋白质名称并绘制它们的地图,谢谢。
发布于 2022-11-10 11:11:12
我想说,你最好的选择是使用请求模块,并加入Uniprot在其网站上的API。肽序列搜索的API是这里,它的文档从同一个页面链接。这样,您应该能够形成一个包含搜索参数的dict,并向API发送一个请求,该API将返回您要查找的结果。requests模块允许您以json格式检索结果,您可以非常容易地将其解析为列表/dicts等,以便以任何您希望的方式使用。
编辑:我有密码!
为了好玩,我尝试了第一部分:利用肽来查找蛋白质。这行得通!您可以看到请求模块制作这种东西是多么容易:)
有另一个API用于检索数据库条目,一旦您从第一步中获得了“访问”列表。所有的API端点和文档都可以访问这里。我想你想要这一号。
import requests
from time import sleep
url = 'https://research.bioinformatics.udel.edu/peptidematchws/asyncrest'
#peps can be a comma separated list for multiple peptide sequences
data={'peps':'MKTLLLTLVVVTIVCLDLGYT','lEQi':'off','spOnly':'off'}
headers = {'Content-Type': 'application/x-www-form-urlencoded'}
response = requests.post(url,params=data,headers=headers)
if response.status_code == 202:
print(f"Search accepted. Results at {response.headers['Location']}")
search_job = requests.get(response.headers['Location'])
while search_job.status_code == 303:
sleep(30)
search_job = requests.get(response.headers['Location'])
if search_job.status_code == 200:
results = search_job.text.split(',')
print('Results found:')
print(results)
else:
print('No matches found')
else:
print('Error Search not accepted')
print(response.status_code, response.reason)https://stackoverflow.com/questions/74387827
复制相似问题