gpt4 book ai didi

python - 加速python的请求函数

转载 作者:太空宇宙 更新时间:2023-11-04 08:36:03 25 4
gpt4 key购买 nike

我有一个脚本,它获取查询 ID 的列表文件并从 uniprot 中提取有机体和序列,该代码运行良好,但速度非常慢。我想通过它处理大约 400 万个序列,但解析 100 个序列需要大约 5 分钟:

real    5m32.452s
user 0m0.651s
sys 0m0.135s

该代码使用了 python 的检索模块。我在网上读到我可以使用 .session() 属性,但是当我尝试这样做时,出现以下错误:

Traceback (most recent call last):
File "retrieve.py", line 14, in <module>
result = session.get(baseURL, payload)
TypeError: get() takes exactly 2 arguments (3 given)

代码列在这里:

import requests

baseURL = 'http://www.uniprot.org/uniprot/'

sample = open('sample.txt','r')
out = open('out','w')

for line in sample:
query = line.strip()
payload = {
'query': query,
'format':'tab',
'columns': 'id, entry_name, organism, sequence'
}
result = requests.get(baseURL, payload)
if result.ok:
out.write(query + '\t' + result.text[41:] + '\n')

示例输入格式:

EDP09046
ONI31767
ENSFALT00000002630
EAS32469
ENSXETT00000048864

示例输出格式:

EDP09046 R6X9 A0A251R6X9_PRUPE Prunus persica (Peach) (Amygdalus persica) MEENHAPALESIPNGDHEAATTTNDFNTHIHTNNDHGWQKVTAKRQRKTKPSKADSINNLNKLVPGVTIAGGEGVFRSLEKQSEDRRRRILEAQRAANADADSLAPVRSKLRSDDEDGEDSDDESVAQNVKAEEAKKSKPKKPKKPKVTVAEAAAKIDDANDLSAFLIDISASYESKEDIQLMRFADYFGRAFSAVTAAQFPWVKMFRESTVAKLADIPLSHISEAVYKTSVDWISQRSLEALGSFILWSLDSILADLASQVAGAKGSKKSVQNVSSKSQVAIFVVVAMVLRKKPDVLISILPTLRENSKYQGQDKLPVIVWAISQASQGDLAVGLHSWAHIVLPLVSGKGSNPQSRDLILQLAERILSTPKARTILVNGAVRKGERLVPPSAFEILIGVTFPAPSARVKATERFEAIYPTLKAVALAGSPRSKAMKQVSLQILSFAVKAAGESIPALSNEATGIFIWCLTQHADCFKQWDKVYQENLEASVAVLKKLSDQWKEHSAKLAPFDPMRETLKSFRHKNEKMLASGEDEAHQEKLIKDADKYCKTLLGKSSRGSGCKKSVALAVVALAVGAAVMSPNMESWDWDLEKLRVTISSFFD

任何人都可以建议我可以改进此代码以使其更快的一些方法吗?

提前致谢!

最佳答案

请求几乎总是所有网络代码中最慢的部分,因此您绝对希望对您的 ID 进行批处理。 Uniprot 有一个 batching capability in it's API .该页面上有一个 Perl 示例,应该可以帮助您入门——我会查看批大小限制是多少,然后以最大为起点(它可能比 4,000,000 小得多)。如 Uniprot 网站所述,还有一个 ID mapping service。这可能符合要求。

关于python - 加速python的请求函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48872800/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com