AGAT v1.6.0 安装与使用--生信工具72

AGAT:基因组注释处理的全能工具箱,轻松搞定 GTF/GFF 格式难题

在基因组学研究中,GTF(Gene Transfer Format)和 GFF(General Feature Format)是描述基因注释信息的核心格式,广泛应用于基因结构预测、功能注释、比较基因组学等多个研究场景。然而,这两种格式自 1997 年问世以来不断演化,虽然灵活性极高,能容纳丰富的基因组特征信息,但也导致了 "格式变体繁多" 的问题 ------ 不同工具输出的 GTF/GFF 文件在结构、属性定义、特征命名上往往存在差异,给下游分析的兼容性带来了巨大挑战。

面对这一痛点,来自瑞典国家生物信息学基础设施(NBIS Sweden)的科研团队开发了 AGAT(Another Gtf/Gff Analysis Toolkit)------ 一款功能全面、兼容性极强的基因组注释处理工具箱。它不仅能解决 GTF/GFF 文件的标准化问题,更整合了格式转换、注释修正、特征提取、统计分析等一系列实用功能,成为基因组学研究者的 "必备利器"。

复制代码
https://github.com/NBISweden/AGAT

https://agat.readthedocs.io/en/latest/

01 功能及应用

AGAT 的核心优势在于 "全能性" 和 "鲁棒性",即使是格式混乱、存在错误的 GTF/GFF 文件,它也能高效处理。其核心功能可分为三大类:

1. 标准化与清洗:让注释文件 "合规"

AGAT 能将任意类型的 GTF/GFF 文件标准化为完整、排序规范的 GFF3 格式,同时自动修复文件中的常见问题:

  • 补充缺失的父级特征(如仅存在 CDS / 外显子时,自动添加基因和 mRNA 特征);
  • 补全必填属性(ID 和 Parent),确保特征间的层级关系清晰;
  • 修复重复标识符、修正特征位置错误、移除重复特征;
  • 对分散在文件中的相关特征进行分组,按顺序排序(支持 tabix 索引优化);
  • 可选合并重叠的基因位点。

核心工具:agat_convert_sp_gxf2gxf.pl(所有带_sp_前缀的脚本均支持该类功能)。

2. 多格式转换:打破数据互通壁垒

AGAT 支持多种基因组数据格式的双向转换,覆盖科研中常见的需求场景:

转换需求 对应工具
GTF/GFF → BED agat_convert_sp_gff2bed.pl
GTF/GFF → GTF agat_convert_sp_gff2gtf.pl
GTF/GFF → 表格格式(TSV) agat_sp_gff2tsv.pl
minimap2 输出的 BAM → GFF agat_convert_sp_minimap2_bam2gff.pl
GTF/GFF → ZFF agat_sp_gff2zff.pl
BED → GFF3 agat_convert_bed2gff.pl
EMBL → GFF3 agat_convert_embl2gff.pl

3. 多样化注释处理:满足个性化分析需求

除了基础的标准化和转换,AGAT 还提供了数十种实用工具,覆盖注释分析的全流程:

  • 特征提取:提取任意类型的序列(如 CDS、外显子、UTR 序列)、提取特定属性信息;
  • 注释筛选:按 ORF 长度筛选基因模型、保留最长转录本、按基因长度 / 内含子数量筛选;
  • 注释修正:修复 CDS 相位、添加内含子特征、管理 UTR 区域、修正融合基因;
  • 统计分析:生成特征统计报告(如基因 / 转录本数量)、功能注释统计、BUSCO 结果对比、两个注释文件的差异分析;
  • 其他功能:添加启动子 / 终止子特征、互补链注释、合并多个注释文件等。

完整工具列表可通过agat --tools命令查看,或参考官方文档

02 快速安装 AGAT

AGAT 支持多种安装方式,适配不同操作系统和用户习惯,推荐优先使用 Bioconda 或 Docker(简单高效):

1. 推荐方式:Bioconda 安装(最便捷)

复制代码
# 安装
conda install -c bioconda agat

# 更新
conda update agat

# 卸载
conda uninstall agat

2. Docker/Singularity 安装(适合环境隔离需求)

Docker:
复制代码
# 拉取镜像(以1.4.2版本为例)
docker pull quay.io/biocontainers/agat:1.4.2--pl5321hdfd78af_0

# 测试工具使用
docker run quay.io/biocontainers/agat:1.4.2--pl5321hdfd78af_0 agat_convert_sp_gxf2gxf.pl --help
Singularity:
复制代码
# 拉取镜像
singularity pull docker://quay.io/biocontainers/agat:1.4.2--pl5321hdfd78af_0

# 启动容器并使用工具
singularity run agat_1.4.2--pl5321hdfd78af_0.sif
agat_convert_sp_gxf2gxf.pl --help

3. 手动安装(适合高级用户)

需先安装依赖(Perl ≥5.8、Perl 模块如 Bioperl、Clone 等,可选 R 用于绘图),再执行以下命令:

复制代码
# 克隆仓库
git clone https://github.com/NBISweden/AGAT.git
cd AGAT

# 检查依赖、编译、测试、安装
perl Makefile.PL
make
make test
make install

# 卸载
perl uninstall_AGAT

依赖安装可参考官方文档的 "Install prerequisites" 部分,支持 cpanm、conda 或系统包管理器(如 apt)。

03 AGAT 核心:强大的解析器与数据结构

AGAT 的高效性源于其独特的解析器设计,尤其是带_sp_前缀的工具("SLURP 模式"),会将整个 GFF 文件加载到内存中的专用数据结构(称为 "OMNISCIENT"),便于快速访问和处理特征关系。

1. 数据结构设计

OMNISCIENT 结构按 "层级" 组织基因组特征,清晰区分不同级别(level1:基因;level2:mRNA、rRNA 等;level3:外显子、CDS、UTR 等),同时存储文件头信息、配置参数等:

复制代码
# 文件头信息
$omniscient{other}{header} = 以#开头的文件头内容

# 特征信息(按层级存储)
$omniscient{level1}{tag_l1}{level1_id} = 基因等level1特征
$omniscient{level2}{tag_l2}{idY} = mRNA等level2特征列表(idY为父级ID)
$omniscient{level3}{tag_l3}{idZ} = 外显子等level3特征列表(idZ为父级ID)

# 配置信息
$omniscient{config}{parameter1} = 配置参数值

2. 解析逻辑:智能适配任意文件

AGAT 解析器按优先级处理特征间的关系,确保兼容性:

  1. 优先:通过 Parent/ID 或 gene_id/transcript_id 关联特征;
  2. 其次:通过共同标签(默认 locus_tag,可自定义)分组特征;
  3. 最后:顺序解析(按文件行顺序分组,适用于无明确关联信息的文件)。

这种设计让 AGAT 能适配 42 种以上不同格式或存在错误的 GTF/GFF 文件,甚至能处理仅含 level3 特征(如部分 Prokka 输出)的特殊情况。

3. 解析器的核心能力

除了标准化和清洗,解析器还能:

  • 为多父级特征创建独立副本(如一个外显子对应多个 mRNA 时,自动生成多个独立外显子);
  • 自动添加 UTR(当 CDS 和外显子存在时);
  • 修复基因位置(如 mRNA 超出基因范围时,自动调整基因边界)。

04 实用示例:AGAT 如何解决实际问题?

以下 3 个典型示例,展示 AGAT 在实际研究中的应用:

示例 1:补全仅含 CDS 的注释文件

若输入文件仅定义了 CDS 特征(无基因、mRNA、外显子):

gff

复制代码
##gff-version 3
Tob1_contig1	Prodigal:2.60	CDS	476	670	.	-	0	ID=Tob1_00001;locus_tag=Tob1_00001;product=hypothetical protein

运行命令:

复制代码
agat_convert_sp_gxf2gxf.pl --gff 8_test.gff

输出结果会自动补全基因、mRNA、外显子特征,层级关系清晰:

gff

复制代码
##gff-version 3
Tob1_contig1	Prodigal:2.60	gene	476	670	.	-	0	ID=nbis_NEW-gene-1;locus_tag=Tob1_00001;product=hypothetical protein
Tob1_contig1	Prodigal:2.60	mRNA	476	670	.	-	0	ID=nbis_nol2id-cds-1;Parent=nbis_NEW-gene-1;locus_tag=Tob1_00001;product=hypothetical protein
Tob1_contig1	Prodigal:2.60	exon	476	670	.	-	.	ID=nbis_NEW-exon-1;Parent=nbis_nol2id-cds-1;locus_tag=Tob1_00001;product=hypothetical protein
Tob1_contig1	Prodigal:2.60	CDS	476	670	.	-	0	ID=Tob1_00001;Parent=nbis_nol2id-cds-1;locus_tag=Tob1_00001;product=hypothetical protein

示例 2:补全缺失的 mRNA 和 UTR 特征

若输入文件缺少 mRNA(level2)和 UTR(level3)特征:

gff

复制代码
##gff-version 3
NC_003070.9	RefSeq	gene	3631	5899	.	+	.	ID=NC_003070.9:NAC001;locus_tag=AT1G01010;
NC_003070.9	RefSeq	exon	3631	3913	.	+	.	ID=NM_099983.2;Parent=NC_003070.9:NAC001;
NC_003070.9	RefSeq	CDS	3760	3913	.	+	0	ID=NM_099983.2;Parent=NC_003070.9:NAC001;

运行 AGAT 后,会自动添加 mRNA、5'UTR 和 3'UTR 特征,修正 ID 唯一性:

gff

复制代码
NC_003070.9	RefSeq	mRNA	3631	5899	.	+	.	ID=NC_003070.9:NAC001;Parent=nbis_NEW-gene-1;locus_tag=AT1G01010
NC_003070.9	RefSeq	five_prime_UTR	3631	3759	.	+	.	ID=nbis_NEW-five_prime_utr-1;Parent=NC_003070.9:NAC001;
NC_003070.9	RefSeq	three_prime_UTR	5628	5899	.	+	.	ID=nbis_NEW-three_prime_utr-1;Parent=NC_003070.9:NAC001;

示例 3:整理分散的相关特征

若输入文件中同一基因的特征分散在不同位置(如 exon、CDS、UTR 交叉排列),AGAT 会自动分组并按层级排序,让文件结构更清晰。

05 参考文献

复制代码
Dainat J. 2022. Another Gtf/Gff Analysis Toolkit (AGAT): Resolve interoperability issues and accomplish more with your annotations. Plant and Animal Genome XXIX Conference. https://github.com/NBISweden/AGAT.

Dainat J. AGAT: Another Gff Analysis Toolkit to handle annotations in any GTF/GFF format. (Version v1.4.1). Zenodo. https://www.doi.org/10.5281/zenodo.3552717
相关推荐
不惑_2 小时前
通俗理解神经网络的前向传播
人工智能·深度学习·神经网络
南山星火2 小时前
人工智能“学习”范式大全(24种)
人工智能·学习
小陈phd2 小时前
Python MCP 工具开发入门:Server、Client 和 LLM 集成
开发语言·python·github
ShenLiang20252 小时前
识别SQL里的列名
大数据·人工智能·python
jijkck2 小时前
python库--pyautogui————windows模拟鼠标键盘、图像自动匹配、按钮弹窗
python·windows 10
曜华激光2 小时前
太阳能电池串质量检测仪自动生成报告——高效赋能光伏质检闭环
大数据·人工智能
2501_944452232 小时前
外观设置 Cordova 与 OpenHarmony 混合开发实战
python
星e雨2 小时前
ComfyUI 本地安装指导
python
xiaoginshuo2 小时前
2026 企业选型指南:如何找到适配业务的 AI 智能体平台
人工智能