很抱歉这个奇怪的标题。在
我正在使用eSearch&esSummary从
登录号-->;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个相应的gid从这20个登记号码。在
其次是:
^{pr2}$这给了我这个错误,因为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,这是可以的。在
我的问题是:
如何一次读取20个记录Entrez.read公司在不牺牲另外20个的情况下跳过丢失的那些?我可以一次做一个,但这将是难以置信的慢(我有300000个注册号,NCBI只允许你每秒执行3个查询,但实际上它更像是每秒1个查询)。在
我去看看分析器.py看看正在解析什么。看起来您从ncbiok得到了一个结果,但是一条记录的格式使解析器出错。
可能可以将解析器的子类/monkeypatch使其通过异常。
我给BioPython邮寄了一封信名单。显然这是个窃听器,他们正在研究。
相关问题 更多 >
编程相关推荐