引言在进行基因组学分析特别是直系同源Ortholog分析时我们常常会遇到一个关键问题RefSeq 等权威数据库中的蛋白质数据往往包含同一个基因的多个转录本即不同的异构体isoform。这些异构体虽然源自同一个基因但具有不同的序列如果直接用于分析会导致同一个基因被重复计数严重影响分析结果的准确性。因此在进行直系同源分析前需要将来自同一基因的不同异构体合并只保留一个代表性的转录本通常是最长的或主要的转录本。本文将介绍这一需求并重点讲解一个用于自动化处理此问题的工具——NCBI Primary Transcript 程序。先上程序链接GitHub原版 笔者改进版着急的朋友可以直接跳转链接里的使用说明也都已经写清下面稍微借助ai解释一下为什么要用这个程序。1. RefSeq 蛋白质数据中的异构体问题RefSeqReference Sequence数据库为研究人员提供了高质量、注释良好的参考序列。对于一个真核生物基因由于可变剪接Alternative Splicing的存在通常会生成多个不同的 mRNA 转录本进而翻译成多个蛋白质异构体。主要影响直系同源分析失真像 OrthoFinder 这样的工具会将每个蛋白质序列视为独立的实体。如果不加处理来自同一基因的多个异构体会被识别为不同的“基因”导致直系同源群Orthogroups中包含大量实际上是同一基因的冗余序列从而高估基因家族的大小和复杂度。下游分析偏差基于错误基因计数的比较基因组学、进化分析等都会产生偏差。因此预处理步骤的核心是将每个基因对应的所有蛋白质异构体合并只保留一个“主要转录本”Primary Transcript。2. 直系同源分析前的数据合并需求为了获得准确的直系同源关系标准的预处理流程要求输入标准化为每个基因提供一个唯一的蛋白质序列。选择代表序列通常选择该基因所有异构体中最长的蛋白质序列作为代表。保持注释一致性合并过程中需要从 GFF/GTF 注释文件中提取基因与转录本的对应关系并确保输出文件的 ID 和注释信息正确无误。3. 原版 NCBI Primary Transcript 程序David Emms 为解决 OrthoFinder 分析前的数据准备问题提供了一个 Python 脚本。该程序的核心功能是读取 NCBI 的基因组注释文件GFF和蛋白质序列文件FASTA为每个基因筛选出一个主要的蛋白质序列。原版程序特点与限制功能根据 GFF 文件中的基因-转录本对应关系找出每个基因对应的所有蛋白质异构体并选择序列最长的一个作为该基因的代表序列输出。输入要求原版程序设计为处理从 NCBI 下载的、包含.gff和.faa文件的ZIP 压缩包。使用方式用户需要先下载物种的基因组 ZIP 包然后运行脚本指定该 ZIP 文件路径。原版链接该程序的讨论和获取方式详见 GitHub Issue: https://github.com/davidemms/OrthoFinder/issues/9304. 改进版程序支持文件夹输入原版程序强制要求输入为 ZIP 文件这在某些自动化流水线或处理已解压数据时不够灵活。因此小编对程序进行了改进。改进版程序特点核心改进允许用户直接输入包含所需.gff和.faa(或.fasta) 文件的文件夹路径无需再将文件压缩成 ZIP 包。功能增强保持了原版所有核心功能同时提高了易用性和与现有文件组织的兼容性。程序路径改进版程序托管在 GitHub: https://github.com/wsysissi/ncbi_primary_transcript改进版使用方式准备数据确保你的工作目录下有一个文件夹例如./data/species_x里面包含从 NCBI 下载的 GFF 注释文件如genomic.gff和蛋白质序列文件如protein.faa。克隆或下载改进版脚本gitclone https://github.com/wsysissi/ncbi_primary_transcript.git运行程序如果是想输入一个文件夹路径则如下运行python primary_transcript.py--input_dir/path/to/your/data_folder--input_dir: 指定包含 GFF 和 FASTA 文件的文件夹路径。如果是想和原版一样使用则如下运行python primary_transcript.py--zip_file1这样运行需要保证当前文件夹只有你想进行处理的数据一个zip包。输出结果程序运行后会在输出目录生成一个新的蛋白质文件其中每个基因只对应一条代表序列。这个文件即可直接用于 OrthoFinder 等直系同源分析工具。使用建议始终检查输入 GFF 和 FASTA 文件的格式是否与 NCBI 标准一致。运行后对比输入和输出的序列数量确认合并操作已生效。可将此步骤集成到你的基因组分析流程中实现自动化预处理。