您的问题听起来很适合 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”,但您可以自由选择任何可用节点。