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

如何用Python的BioPython提取GenBank文件中的CDS编号?

用BioPython提取GenBank文件中的CDS编号并输出到文本文件

核心逻辑

GenBank文件的CDS信息都嵌套在序列记录的features字段中,CDS对应的编号(比如基因座标签、蛋白ID等)会存在qualifiers字典里。只需遍历筛选出CDS类型的特征,提取对应字段即可。

代码实现

1. 提取并打印CDS编号

from Bio import SeqIO

# 替换为你的GenBank文件路径
gb_file = "your_target.gb"

# 解析GenBank文件
for record in SeqIO.parse(gb_file, "genbank"):
    # 遍历所有特征,筛选CDS类型
    for feature in record.features:
        if feature.type == "CDS":
            # 提取基因座标签(最常用的CDS编号类型)
            if "locus_tag" in feature.qualifiers:
                print(feature.qualifiers["locus_tag"][0])
            # 如果需要蛋白编号,替换为以下代码
            # elif "protein_id" in feature.qualifiers:
            #     print(feature.qualifiers["protein_id"][0])

2. 将CDS编号输出到文本文件

如果要把提取到的编号保存到单独文件,只需先收集结果再写入:

from Bio import SeqIO

gb_file = "your_target.gb"
output_file = "cds_ids.txt"
cds_id_list = []

for record in SeqIO.parse(gb_file, "genbank"):
    for feature in record.features:
        if feature.type == "CDS":
            # 根据需求选择对应的编号字段
            if "locus_tag" in feature.qualifiers:
                cds_id_list.append(feature.qualifiers["locus_tag"][0])

# 写入文件,每行一个编号
with open(output_file, "w") as f:
    for cds_id in cds_id_list:
        f.write(f"{cds_id}\n")

补充说明

  • GenBank的CDS特征里,不同编号对应不同的qualifiers键:
    • locus_tag:基因座唯一标签,多数场景下就是你要的"CDS编号"
    • protein_id:编码蛋白的NCBI官方编号
    • gene:基因名称(可能存在重复)
  • 如果你的目标编号存放在其他字段,可以打印feature.qualifiers查看所有可用键,再调整提取逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 00:20:38