解析代码的输出并不完全相似。不确定是否同步解析 NCBI 核苷酸 xml
Output of parsing code is not all similar. not sure if parsing NCBI nucleotide xml synchronously
from Bio import Entrez
accessions = ['NM_001195662','NM_001289467','NM_008866']
list1 = []
for i in accessions:
Entrez.email = "A.N.Other@example.com"
handle = Entrez.efetch(db="nucleotide", id= i , rettype='gb', retmode='xml')
record = Entrez.read(handle)
#print record
dict1= record[0]["GBSeq_feature-table"]
dict2 = dict1[1]["GBFeature_quals"]
insert = []
insert.append(i)
insert.append(dict2[0]['GBQualifier_value'])
insert.append(dict2[2]['GBQualifier_value'])
insert1 = tuple(insert)
#print insert1
list1.append(insert1)
print list1
输出:
[('NM_001195662', 'Rp1', 'retinitis pigmentosa 1 (human)'), ('NM_001289467', 'Sox17', 'GeneID:20671'), ('NM_008866', 'Lypla1', 'lysophospholipase 1')]
我正在尝试从给定来源获取登录号列表,将其放入列表中,并从中获取基因符号和基因名称,并将它们附加到列表中,顺序为基因登录、基因符号和基因名。但是,当从 NCBI 核苷酸 xml 解析数据时,每个查询的输出都不相同;给我一个 GeneID,其中应该有一个基因名称。如何确保我的所有输出都是通用格式的?
尝试替换这行代码
insert.append(dict2[2]['GBQualifier_value'])
和
for j in range(len(dict2)):
if dict2[j].get('GBQualifier_name') == 'note':
insert.append(dict2[j]['GBQualifier_value'])
基因名称隐藏在标记为 note
的部分中,通过遍历这些部分直到您注意到您应该始终获得正确的基因名称。
旁注:
如果你 运行 它用于很多序列,尝试合并 dict1
和 dict2
,你只需要 dict1
来创建 dict2
.
from Bio import Entrez
accessions = ['NM_001195662','NM_001289467','NM_008866']
list1 = []
for i in accessions:
Entrez.email = "A.N.Other@example.com"
handle = Entrez.efetch(db="nucleotide", id= i , rettype='gb', retmode='xml')
record = Entrez.read(handle)
#print record
dict1= record[0]["GBSeq_feature-table"]
dict2 = dict1[1]["GBFeature_quals"]
insert = []
insert.append(i)
insert.append(dict2[0]['GBQualifier_value'])
insert.append(dict2[2]['GBQualifier_value'])
insert1 = tuple(insert)
#print insert1
list1.append(insert1)
print list1
输出:
[('NM_001195662', 'Rp1', 'retinitis pigmentosa 1 (human)'), ('NM_001289467', 'Sox17', 'GeneID:20671'), ('NM_008866', 'Lypla1', 'lysophospholipase 1')]
我正在尝试从给定来源获取登录号列表,将其放入列表中,并从中获取基因符号和基因名称,并将它们附加到列表中,顺序为基因登录、基因符号和基因名。但是,当从 NCBI 核苷酸 xml 解析数据时,每个查询的输出都不相同;给我一个 GeneID,其中应该有一个基因名称。如何确保我的所有输出都是通用格式的?
尝试替换这行代码
insert.append(dict2[2]['GBQualifier_value'])
和
for j in range(len(dict2)):
if dict2[j].get('GBQualifier_name') == 'note':
insert.append(dict2[j]['GBQualifier_value'])
基因名称隐藏在标记为 note
的部分中,通过遍历这些部分直到您注意到您应该始终获得正确的基因名称。
旁注:
如果你 运行 它用于很多序列,尝试合并 dict1
和 dict2
,你只需要 dict1
来创建 dict2
.