这么晚了,但作为过去的贡献者biopython
和维护者,rentrez
我觉得我需要解释这里发生了什么。
Biopython 默认访问“1.0 版”摘要记录,R 包正在获取“2.0 版”记录。在rentrez帮助页面中有一个关于这些记录之间差异的简短讨论:
NCBI 为摘要文档提供两种不同的格式。1.0 版是基于共享文档类型定义的数据库记录的相对有限的摘要。1.0 版摘要仅作为 XML 提供,不适用于某些较新的数据库 2.0 版摘要通常包含有关给定记录的更多信息,但每个数据库都有自己独特的格式。2.0 摘要可用于所有数据库中的记录以及 JSON 和 XML 文件。从 0.4 版开始,rentrez 默认获取 2.0 版摘要并使用 JSON 作为交换格式(因为 JSON 对象可以更容易地转换为原生 R 类型)。依赖于“1.0 版”结构和命名的现有脚本
并且只是为了证明改变这个论点再现了 Biopython 的结果。
> eg_gene <- entrez_search(db="nuccore", term='183844[GPRJ]', retmax=1)
> entrez_summary(db="nuccore", id=eg_gene$ids, version="1.0")
esummary result with 13 items:
[1] Caption Title Extra Gi
[5] CreateDate UpdateDate Flags TaxId
[9] Length Status ReplacedBy Comment
[13] AccessionVersion
> entrez_summary(db="nuccore", id=eg_gene$ids)
esummary result with 31 items:
[1] uid caption title extra gi
[6] createdate updatedate flags taxid slen
[11] biomol moltype topology sourcedb segsetsize
[16] projectid genome subtype subname assemblygi
[21] assemblyacc tech completeness geneticcode strand
[26] organism strain biosample statistics properties
[31] oslt
编辑——使用 Biopython 获取 2.0 版记录
handle = Entrez.esearch(db="nuccore", term="183844[GPRJ]", retmax=1)
record = Entrez.read(handle)
handle_two = Entrez.esummary(db="nuccore", id=record["IdList"][0], version="2.0")
Entrez.read(handle_two, validate=False)
.
{'DocumentSummarySet': ListElement([ListElement(['NPMJ00000000', 'Salmonella enterica subsp. enterica serovar Johannesburg strain CFSAN059880, whole genome shotgun sequencing project', 'gi|1235597280|gb|NPMJ00000000.1|NPMJ01000000', '1235597280', '2017/08/22', '2017/08/22', '0', '913076', '48', 'genomic', 'dna', 'linear', 'insd', '0', '186035', '', 'strain|serovar|host|sub_species|country|isolation_source|collection_date|collected_by', 'CFSAN059880|Johannesburg|Bos taurus|enterica|Nigeria|cattle stool|2012|University of Ibadan', '0', '', 'wgs', '', '11', '', 'Salmonella enterica subsp. enterica serovar Johannesburg', 'CFSAN059880', [StringElement('', attributes={'count': '1', 'type': 'all'}), StringElement('', attributes={'count': '3500', 'type': 'blob_size'}), StringElement('', attributes={'count': '1', 'type': 'org'}), StringElement('', attributes={'count': '2', 'type': 'pub'}), StringElement('', attributes={'count': '1', 'subtype': 'unpublished', 'type': 'pub'}), StringElement('', attributes={'count': '1', 'source': 'all', 'type': 'all'}), StringElement('', attributes={'count': '3500', 'source': 'all', 'type': 'blob_size'}), StringElement('', attributes={'count': '1', 'source': 'all', 'type': 'org'}), StringElement('', attributes={'count': '2', 'source': 'all', 'type': 'pub'})], StringElement('1', attributes={'master': '1', 'na': '1'}), StringElement('NPMJ00000000.1', attributes={'indexed': 'yes'}), 'NPMJ00000000.1'], attributes={'uid': '1235597280'})], attributes={'status': 'OK'})}