EviAnn—— 基于证据的真核生物基因组注释软件
EviAnn(Evidence Annotation)是一款全新的基因组注释软件,完全基于证据驱动。EviAnn 利用 RNA‑seq 数据、转录本序列以及近缘物种蛋白比对结果,完成蛋白编码基因与长非编码 RNA 的注释,输出 GFF3 格式注释文件。运行 EviAnn不需要预先对基因组重复序列进行软屏蔽;软件运行稳定、速度快。在一台 24 核 Intel Xeon Gold 服务器上,完成小鼠(M. musculus)基因组注释耗时不到 1 小时(输入为比对完成的 RNA‑seq BAM 文件,以及包含人在内的多个近缘物种合计约 346 Mb 蛋白序列)。
https://github.com/alekseyzimin/EviAnn_release #官网EviAnn 的优势
- 输出完全符合 NCBI 注释规范,注释结果可直接通过
table2asn工具提交至 NCBI GenBank(见下文)。 - 安装与运行简单,依赖库易于部署。
- 运行速度极快:RNA‑seq 比对完成后,哺乳动物基因组注释耗时小于 1 小时。
- 绝大多数蛋白编码转录本可输出 5' 与 3'UTR。
- 支持长非编码 RNA(lncRNA)注释。
- 自动标记加工假基因,并且不输出假基因的 CDS 序列。
- 可通过参数
‑f调用 UniProt‑SwissProt 数据库,实现可选的自动功能注释。 - 同时支持长读长、短读长转录组数据,也支持混合数据集。
- 支持最大32 Gbp的基因组。
- 若存在一个或多个注释完成的近缘物种,DNA 水平平均相似度 > 95% 时,无需 RNA‑seq 数据,仅依靠近缘物种转录本与蛋白即可完成注释。
- 支持细胞器(线粒体、叶绿体)注释。
- 支持染色体长度 > 4 Gbp 的超大基因组。
EviAnn 开发得到美国 NSF 基金 IOS‑2432298,以及 NIH 基金 R01‑HG006677、R35‑GM130151 资助。
安装说明
Bioconda 安装
EviAnn 已上架 Bioconda。建议新建独立 conda 环境:
conda create -n eviann激活环境并安装:
conda activate eviann conda install eviann安装完成后运行eviann.sh即可使用。切换环境使用:conda activate eviann/conda deactivate。
GitHub 源码安装
从 GitHub 发布页下载最新源码压缩包EviAnn‑X.X.X.tar.gz(不要下载 Source code 源码包): https://github.com/alekseyzimin/EviAnn_release/releases 将 X 替换为实际版本号,执行:
$ tar xvzf EviAnn-X.X.X.tar.gz $ cd EviAnn-X.X.X $ ./install.sh安装脚本自动编译配置全部依赖,可执行文件输出至bin/目录。 任意位置调用:/path_to/EviAnn‑X.X.X/bin/eviann.sh
外部依赖(GitHub 源码安装需要手动部署至 PATH)
- minimap2: https://github.com/lh3/minimap2
- HISAT2: https://github.com/DaehwanKimLab/hisat2
软件内置打包的依赖(无需手动安装)
- StringTie 3.0.0(静态编译版)
- gffread 0.12.7(静态编译版)
- gffread 0.12.6(静态编译版)
- makeblastdb、blastp 2.8.1+(NCBI 工具;若提示版本不兼容,可从 NCBI FTP 下载旧版本)
- TransDecoder 5.7.1(修改版,移除 URI::Escape 依赖)
- samtools 1.15.1(静态编译版)
- ufasta 1.0(安装时编译)
- miniprot v0.15‑r270(安装时编译)
开发者模式(仅开发人员使用)
克隆开发分支需要额外依赖:swig、yaggo,需要配置到系统 PATH。
$ git clone https://github.com/alekseyzimin/EviAnn_release $ cd EviAnn_release $ git submodule init $ git submodule update $ cd ../ufasta && git checkout master $ cd .. $ make $ (cd build/inst/bin && tar -xzf TransDecoder-v5.7.1.tar.gz) $ (cd build/inst/bin && tar -xzf miniprot.tgz && cd miniprot_source && make && mv miniprot ../ && cd .. && rm -rf miniprot_source miniprot.tgz)编译:执行make;生成发布包:make install;二进制输出目录build/inst/bin;版本号在 Makefile 头部设置。
部分系统编译报错:缺失
xlocale.h,glibc 2.26 之后移除该头文件。EviAnn 的 Perl 扩展模块依赖该文件。解决方案:升级 Perl 扩展,或者建立软链接:
ln -s /usr/include/locale.h /usr/include/xlocale.h使用命令
eviann.sh [options]参数说明
| 参数 | 说明 |
|---|---|
‑t INT | 线程数,默认:1 |
‑g FILE | 必填:基因组 fasta 文件,无默认值 |
‑r FILE | 转录组测序数据文件列表,无默认值文件格式说明:每行对应一个测序样本;一个样本的所有 reads 放在同一行。格式示例:/path/file1 /path/file2 /path/file3 tag/path/file1 /path/file2 tag/path/file1 tag空格分隔,行首无空格;tag 说明数据类型:fastq:Illumina RNA‑seq fastq;输入 1 个或一对 fastqfasta:Illumina RNA‑seq fasta;输入 1 个或一对 fastabam:比对完成的 Illumina RNA‑seq bambam_isoseq:比对完成的 PacBio Iso‑seq bamisoseq:PacBio Iso‑seq fasta/fastqmix:同一样本同时包含 Illumina (fastq)+ 长读长 (Iso‑seq/ONT),输入 3 个文件bam_mix:同一样本同时包含 Illumina (bam)+ 长读长 (bam),输入 2 个 bam不写 tag 默认视为fastq,需要 1 个或一对 fastq 文件。 |
‑e FILE | 近缘物种组装转录本 fasta,用作注释证据,默认无 |
‑p FILE | 近缘物种蛋白序列 fasta(建议≥10 个物种);不提供则自动调用 uniprot 蛋白,默认无 |
‑s FILE | UniProt‑SwissProt 蛋白 fasta,用于功能注释;软件会自动下载最新版本;指定该参数可使用本地版本;数据库地址:https://ftp.uniprot.org/pub/databases/uniprot/current_release/knowledgebase/complete/uniprot_sprot.fasta.gz |
‑m INT | 最大内含子长度;默认自动计算:sqrt(基因组kb大小)*1000 |
‑‑partial | 输出包含 CDS 不完整(缺失起始 / 终止密码子)的转录本 |
‑d INT | 基因组倍性,用于估算最大内含子长度,默认 2 |
‑c FILE | 本物种 CDS 的 GFF 文件作为注释输入;GFF 必须包含 gene/transcript/mRNA/exon/CDS 层级 |
‑‑lncrnamintpm FLOAT | lncRNA 注释最低 TPM 阈值,默认 1.0 |
‑f|‑‑functional | 开启功能注释,默认关闭 |
‑‑mito_contigs FILE | 线粒体 contig 列表文件,使用线粒体密码子(终止密码子 AGA,AGG,TAA,TAG) |
‑‑extra FILE | 外部 GFF 导入额外特征;GFF 必须包含 gene 层级;与已有注释重叠的特征会被忽略 |
‑‑debug | 保留全部中间输出文件,默认关闭 |
‑‑verbose | 输出详细运行日志,默认关闭 |
‑‑version | 打印版本并退出 |
‑‑help | 打印帮助并退出 |
重要:必须提供
‑r或者‑e参数。
EviAnn 会保存全部中间步骤进度;程序异常中断(宕机、磁盘满),直接重复执行相同命令,会从已经完成的步骤继续运行。
输出文件前缀为输入基因组文件名。例如输入genome.fasta,输出:
genome.fasta.pseudo_label.gff:GFF3 注释文件genome.fasta.proteins.fasta:蛋白氨基酸序列genome.fasta.transcripts.fasta:转录本序列
输出结果解读
输出 GFF3、蛋白 fasta、转录本 fasta。按照 GFF3 规范,终止密码子包含在 CDS 区间内。
蛋白编码 mRNA 属性字段
ID:EviAnn 分配的转录本 IDParent:父级 gene IDEvidenceProteinID:CDS 注释依据的蛋白 ID;附带蛋白功能描述;以XLOC开头代表仅依靠转录本比对得到,参考EvidenceTranscriptIDEvidenceTranscriptID:注释依据的转录本 ID;组装转录本存放于<PREFIX>.gtf;证据类型为protein_only时该字段为源蛋白 ID;complete/transcript_only格式:<转录本ID>:<支持该转录本的RNA‑seq实验数>:<最大TPM>StartCodon:CDS 起始密码子StopCodon:CDS 终止密码子Class:蛋白比对匹配等级;可信度最高为=、kEvidence:注释证据类型complete:转录本证据 + 蛋白证据同时使用protein_only:仅蛋白证据transcript_only:仅转录本证据;CDS 由 TransDecoder 预测,再经 Uniprot 比对校验
pseudo=true(可选):标记加工假基因,该转录本不会输出 CDS
lncRNA ncRNA 属性字段
ID:转录本 IDParent:父级 gene IDEvidenceTranscriptID:注释依据转录本 ID;组装转录本存放于<PREFIX>.gtf
示例 GFF 片段(蛋白编码基因、假基因、lncRNA)
NC_004353.4 EviAnn gene 29462 43759 . - . ID=XLOC_000048;geneID=XLOC_000048;type=protein_coding;Note=Similar to PLXNA2: Plexin‑A2 (Homo sapiens); NC_004353.4 EviAnn mRNA 32745 43754 . - . ID=XLOC_000048‑mRNA‑1;Parent=XLOC_000048;EvidenceProteinID=XP_001352289.2;EvidenceTranscriptID=MSTRG_00000148:4:7.702416;StartCodon=atg;StopCodon=TGA;Class==;Evidence=complete;Note=Similar to PLXNA2: Plexin‑A2 (Homo sapiens); NC_004353.4 EviAnn exon 32745 33125 . - . Parent=XLOC_000048‑mRNA‑1 NC_004353.4 EviAnn exon 33191 33373 . - . Parent=XLOC_000048‑mRNA‑1 NC_004353.4 EviAnn exon 35874 36457 . - . Parent=XLOC_000048‑mRNA‑1 NC_004353.4 EviAnn exon 36516 41285 . - . Parent=XLOC_000048‑mRNA‑1 NC_004353.4 EviAnn exon 42914 43754 . - . Parent=XLOC_000048‑mRNA‑1 NC_004353.4 EviAnn CDS 33018 33125 . - 0 Parent=XLOC_000048‑mRNA‑1 NC_004353.4 EviAnn CDS 33191 33373 . - 0 Parent=XLOC_000048‑mRNA‑1 NC_004353.4 EviAnn CDS 35874 36457 . - 2 Parent=XLOC_000048‑mRNA‑1 NC_004353.4 EviAnn CDS 36516 41285 . - 2 Parent=XLOC_000048‑mRNA‑1 NC_004353.4 EviAnn CDS 42914 43424 . - 0 Parent=XLOC_000048‑mRNA‑1 NC_004354.4 EviAnn gene 23461776 23464767 . - . ID=XLOC_001890;geneID=XLOC_001890;type=protein_coding;pseudo=true;Note=function unknown; NC_004354.4 EviAnn mRNA 23461776 23464767 . - . ID=XLOC_001890‑mRNA‑1;Parent=XLOC_001890;EvidenceProteinID=XP_046868993.1;EvidenceTranscriptID=MSTRG_00006719:2:3.697180;StartCodon=atg;StopCodon=TAA;Class=k;Evidence=complete;pseudo=true;Note=function unknown; NC_004354.4 EviAnn exon 23461776 23464767 . - . Parent=XLOC_001890‑mRNA‑1 NC_004353.4 EviAnn gene 181423 182801 . - . ID=XLOC_000055U_lncRNA;geneID=XLOC_000055U_lncRNA;type=lncRNA;junction_score=0;Note=function unknown; NC_004353.4 EviAnn ncRNA 181423 182801 . - . ID=XLOC_000055U_lncRNA‑mRNA‑1;Parent=XLOC_000055U_lncRNA;EvidenceTranscriptID=MSTRG_00000163:5:11.129138 NC_004353.4 EviAnn exon 181423 181516 . - . Parent=XLOC_000055U_lncRNA‑mRNA‑1 NC_004353.4 EviAnn exon 181569 182801 . - . Parent=XLOC_000055U_lncRNA‑mRNA‑1使用 table2asn 提交 EviAnn 注释到 NCBI GenBank
- 网页生成
sbt模板文件:https://submit.ncbi.nlm.nih.gov/genbank/template/submission/ - 下载 NCBI
table2asn工具:https://www.ncbi.nlm.nih.gov/genbank/table2asn/ - 在 EviAnn 输出目录执行:
table2asn -M n -J -c w -euk -t template.sbt -gaps‑min 10 -l paired‑ends -j "[organism=latin name][isolate=isolate]" -i assembly.fasta -f assembly.fasta.pseudo_label.gff -o output.sqn -Z -V b -locus‑tag‑prefix XXXX假设基因组文件
assembly.fasta,EviAnn 注释assembly.fasta.pseudo_label.gff;XXXX为 GenBank 分配的 4 位 locus tag 前缀。输出output.sqn、output.gbf,用于 GenBank 提交。
案例 1:RNA‑seq + 近缘物种蛋白做注释
基因组:genome.fasta;RNA‑seq 双端数据rna1_R1.fastq rna1_R2.fastq、rna2_R1.fastq rna2_R2.fastq;近缘物种蛋白全部合并为proteins_all.faa。
蛋白数据量建议:昆虫 10‑20 万条;典型植物 / 哺乳动物 50 万条以上。
cat protein1.faa protein2.faa > proteins_all.faa生成 reads 列表文件paired.txt:
$ cat paired.txt /path/rna1_R1.fastq /path/rna1_R2.fastq /path/rna2_R1.fastq /path/rna2_R2.fastq快速生成列表(在 reads 目录执行):
paste <(ls $PWD/*_R1.fastq) <(ls $PWD/*_R2.fastq) > paired.txt混合数据示例paired_mixed.txt:
$ cat paired_mixed.txt /path/rna1_R1.fastq /path/rna1_R2.fastq /path/IsoSeq_rna.fastq /path/rna1_R1.fastq /path/rna1_R2.fastq /path/rna2_R1.fa /path/rna2_R2.fa fasta /path/rna3.bam bamv1.0.8 之前版本必须写绝对路径。24 线程运行:
/path/EviAnn-X.X.X/bin/eviann.sh -t 24 -g /path/genome.fasta -r /path/paired.txt -p /path/proteins_all.faa案例 2:无 RNA‑seq,仅依靠近缘物种转录本与蛋白(注释 lift‑over)
已有近缘物种 gff、基因组,用gffread提取转录本、蛋白:
/eviann_path/bin/gffread -W -y species1_prot.faa -w species1_transc.fa -g species1_genome.fa species1.gff /eviann_path/bin/gffread -W -y species2_prot.faa -w species2_transc.fa -g species2_genome.fa species2.gff合并:
cat species*_transc.fa > transcripts.fa cat species*_prot.fa > proteins.faa必须加上
‑l参数,开启 lift‑over 模式
/path/EviAnn-X.X.X/bin/eviann.sh -t 24 -g /path/genome.fasta -e $PWD/transcripts.fa -p $PWD/proteins.faa -l引用
Zimin, A.V., Puiu, D., Pertea, M.et al.Efficient evidence-based genome annotation with EviAnn.Nat Methods23, 1521–1527 (2026). https://doi.org/10.1038/s41592-026-03156-0