gpt4 book ai didi

python - BioPython:使用 Entrez.esummary/Entrez.read 跳过错误的 GID

转载 作者:行者123 更新时间:2023-11-28 16:54:52 25 4
gpt4 key购买 nike

抱歉,奇怪的标题。

我正在使用 eSearch 和 eSummary 从

登录号 --> gID --> TaxID

假设“accessions”是一个包含 20 个登录号的列表(我一次做 20 个,因为这是 NCBI 允许的最大值)。

我愿意:

handle = Entrez.esearch(db="nucleotide", rettype="xml", term=accessions)
record = Entrez.read(handle)
gids = ",".join(record[u'IdList'])

这为我提供了来自这 20 个登录号的 20 个相应的 GID。

其次是:

handle = Entrez.esummary(db="nucleotide", id=gids)
record = Entrez.read(handle)

这给了我这个错误,因为 gids 中的一个 GID 已从 NCBI 中删除:

File ".../biopython-1.52/build/lib.macosx-10.6-universal-2.6/Bio/Entrez/Parser.py", line 191, in endElement value = IntegerElement(value)
ValueError: invalid literal for int() with base 10: ''

我可以尝试:,除了:除了会跳过其他 19 个没问题的 GID。

我的问题是:

如何使用 Entrez.read 一次读取 20 条记录并跳过丢失的记录而不牺牲其他 20 条记录?我可以一次做一个,但那会非常慢(我有 300,000 个登录号,而 NCBI 只允许你每秒进行 3 次查询,但实际上它更像是每秒 1 次查询)。

最佳答案

我向 BioPython 邮件列表发送了一条消息。显然这是一个错误,他们正在解决。

关于python - BioPython:使用 Entrez.esummary/Entrez.read 跳过错误的 GID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1523571/

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