我在平面文件中有超过200,000个加入,需要从NBCI检索相关条目。
我使用Batch Entrez(http://www.ncbi.nlm.nih.gov/sites/batchentrez)来完成这项工作。但遇到了几个问题:
我头脑中的一个可能的解决方案是将文件拆分为更多子文件并单独搜索。然而,这需要太多的手动工作。
所以我只是想知道是否有其他解决方案,或者可以使用任何代码。
提前致谢
答案 0 :(得分: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(解析或过滤特定字段的“简单”格式),尽管它可以是retrieval modes supported by Entrez中的任何一个,例如设置#setModeText将回答ASN.1表示。将“nuccore”替换为要查询的数据库。最后选择有趣的字段,在脚本中我选择了“GBAuthor”和“GBSeq_definition”,但您可以自由选择available nodes中的任何一个。