0

我在一个平面文件中有超过 200,000 个加入,需要从 NBCI 检索相关条目。

我使用 Batch Entrez ( http://www.ncbi.nlm.nih.gov/sites/batchentrez ) 来完成这项工作。但是遇到了几个问题:

  1. 初始文件被拆分为多个子文件,每个子文件包含 4000 行。但似乎 Batch Entrez 对返回的文件有一些大小限制。例如:如果前 1000 份资料都有几万行达到大小限制,则其余 3000 份资料将被拒绝,不会被搜索。

我脑海中的一种可能的解决方案是将文件拆分为更多子文件并单独搜索。然而,这需要太多的手动工作。

所以我只是想知道是否有任何其他解决方案,或者可以使用任何代码。

提前致谢

4

1 回答 1

1

您的问题听起来很适合 Bio-star 工具包。这是使用BioSmalltalk的解决方案

| giList gbReader |
giList := (BioObject openFullFileNamed: 'd:\Batch_entrez_1.txt') contents lines.
gbReader := BioNCBIGenBankReader new.
gbReader
    genBankRecordsFrom: 'nuccore'
    format: #setModeXML
    uids: giList.
(BioGBSeqCollection newFromXMLCollection: gbReader searchResults)
    collect: [: e | BioParser 
                       tokenizeNcbiXmlBlast: e contents 
                       nodes: #('GBAuthor' 'GBSeq_definition') ]

要执行/调试脚本,只需选择它,然后右键单击将打开 Smalltalk 世界菜单。

API 会自动拆分并获取您的加入列表(在 Batch_entrez_1.txt 中包含的脚本中)维护 NCBI Entrez 发布限制以避免处罚。

结果格式是 XML(这是一种解析或过滤特定字段的“简单”格式),尽管它可以是Entrez 支持的任何检索模式,例如设置 #setModeText 将回答 ASN.1 表示。将“nuccore”替换为您要查询的数据库。最后选择有趣的字段,在脚本中我选择了“GBAuthor”和“GBSeq_definition”,但您可以自由选择任何可用节点

于 2013-04-04T00:49:32.037 回答