You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Biopython的SeqRecord中提取GenBank记录的病毒宿主信息?

从Biopython的SeqRecord提取GenBank宿主信息

当然可以从SeqRecord对象中提取宿主信息,宿主数据存储在GenBank记录的source特征的qualifiers字典里,而非直接在顶层annotations中。

具体实现步骤:

  • 遍历SeqRecord的features列表,筛选出type为source的特征
  • 从该特征的qualifiers字典中获取host对应的取值

修改后的代码示例:

from Bio import Entrez, SeqIO

# NCBI要求使用Entrez接口必须绑定邮箱,防止被限制访问
Entrez.email = "your_email@example.com"

id = 'CY238774.1'
handle = Entrez.efetch(db='nucleotide', id=id, rettype='gb', retmode='text')
record = SeqIO.read(handle, 'gb')

# 提取宿主信息
host_info = None
for feature in record.features:
    if feature.type == 'source':
        if 'host' in feature.qualifiers:
            # qualifiers的取值为列表,取第一个元素即可
            host_info = feature.qualifiers['host'][0]
            break

print(host_info)  # 输出结果: Homo sapiens

补充说明:

  • 部分GenBank记录可能未标注宿主信息,建议添加空值判断逻辑避免报错
  • 批量处理多条记录时,可将提取逻辑封装为函数循环调用

内容的提问来源于stack exchange,提问作者darkwing

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 14:34:53