AGAT - 强大的 GFF/GTF/BED 工具包
还在用 gffread、GenomeTools等软件将 GFF 文件转化为 GTF 格式?赶紧试试 AGAT 这款更强大的工具!!!
AGAT (Another GTF/GFF Analysis Toolkit) 是一个 GFF/GTF 工具包,几乎能实现所有你可能想要对这两种格式文件进行的操作。
AGAT 有能力检查、修复、填充任何类型的 GTF 和 GFF 的缺失信息 (特征/属性),以创建完整、分类和标准化的 gff3 格式。经过多年的优化,它已经开发了大量工具来执行几乎任何可能与 GTF/GFF 格式文件相关的任务 (转换,合并,修改,过滤,FASTA 序列提取,添加信息等)。与其他方法相比,AGAT 即使对最不规范的 GTF/GFF 文件也可适用。
<img src="https://cdn.jsdelivr.net/gh/ShengXinF3/ShengXinF3/Pics/agat.png" style="zoom:67%;" />
主要功能
将任何 GTF/GFF 文件标准化/整理为全面的 GFF3 格式 (通过带有
_sp_
前缀的脚本)任务 工具 检查、修复、填充缺失信息到分类和标准化的 gff3 agat_convert_sp_gxf2gxf.pl
添加缺失的父特征 (例如,如果只有CDS/外显子存在,则添加基因和mRNA)
添加缺失的功能 (例如外显子和UTR)
添加缺失的强制属性 (即ID, Parent)
修复标识符至唯一
修复特征位置
删除重复特征
集合相关特征 (如果分散在文件的不同位置)
排序功能 (tabix可选)
合并重叠的基因座成一个单一的基因座(仅当选项激活)
- 转换多种格式
任务 | 工具 |
---|---|
任意 GTF/GFF 转 BED | agat_convert_sp_gff2bed.pl |
任意 GTF/GFF 转 GTF | agat_convert_sp_gff2gtf.pl |
任意 GTF/GFF 转 表格 | agat_sp_gff2tsv.pl |
任意 BAM (minimap2) 转 GFF | agat_convert_sp_minimap2_bam2gff.pl |
任意 GTF/GFF 转 ZFF | agat_sp_gff2zff.pl |
任意 GTF/GFF 转 任意 GTF/GFF (bioperl) | agat_convert_sp_gxf2gxf.pl |
BED 转 GFF3 | agat_convert_bed2gff.pl |
EMBL 转 GFF3 | agat_convert_embl2gff.pl |
genscan 转 GFF3 | agat_convert_genscan2gff.pl |
mfannot 转 GFF3 | agat_convert_mfannot2gff.pl |
- 其它
任务 | 工具 |
---|---|
特征 统计 | agat_sp_statistics.pl |
make function statistics | agat_sp_functional_statistics.pl |
提取 任何类型的序列 | agat_sp_extract_sequences.pl |
提取 属性 | agat_sp_extract_attributes.pl |
补充 注释 (non-overlapping loci) | agat_sp_complement_annotations.pl |
合并 注释 | agat_sp_merge_annotations.pl |
通过 ORF 长度 过滤基因模型 | agat_sp_filter_by_ORF_size.pl |
筛选 最长转录本 | agat_sp_keep_longest_isoform.pl |
添加 内含子特征 | agat_sp_add_introns.pl |
修复 cds 相位 | agat_sp_fix_cds_phases.pl |
操作 IDs | agat_sp_manage_IDs.pl |
操作 UTRs | agat_sp_manage_UTRs.pl |
操作 introns | agat_sp_manage_introns.pl |
操作 功能注释 | agat_sp_manage_functional_annotation.pl |
功能简介
所有以 GFF/GTF 为输入的工具可以分为两组:
_sp_
和_sq_
带有
_sp_
前缀的工具sp 代表 SLURP。这些工具将以特定的数据结构在内存中存储文件,在付出内存成本的情况下使运行更顺畅。实际上,它允许以更省时的方式执行复杂的任务 (AGAT可以随时访问任何特征)。此外,它允许在格式本身给出的可能性限制内修复所有潜在的错误。
带有
_sq_
前缀sq 代表 SEQUENTIAL。这些工具将从上到下逐行读取和处理 GFF/GTF 文件,实时执行任务。尽管这提高了内存效率,但文件的完整性检查是最小的,因此只能执行简单任务。
AGAT 解析器 / 由 sp 前缀工具 / 标准化使用,用于创建兼容任何工具的 GXF 文件
带有 sp 前缀的 AGAT 工具的第一步是修复文件以使其标准化 (例如,只包含外显子的文件将被修改以创建 mRNA 和基因特征)。为了执行这项任务,AGAT 将解析整个数据并将其放入特定的数据结构中,AGAT parser 预计执行以下操作:
- 创建缺失的父特征(例如,如果第2级或第3级特征没有父特征,我们就创建缺少的第2级和/或第1级特征)
- 创建缺失的强制属性(ID 和/或 Parent)
- 使标识符唯一
- 删除重复的特征(相同的位置、ID 和 Parent)
- 扩展共享多个父特征的 level3 特征(例如,如果一个外显子在其父属性中有多个父 mRNA 的列表,则将为每个父特征创建一个具有统一ID的外显子)
- 修复特征的位置错误(例如,当一个mRNA跨越了它基因的位置时修复基因位置)
- 在 CDS 和外显子存在的条件下,添加 UTR
- 在可能的条件下,添加外显子(CDS 必须存在)
- 将特征聚集(如果相关的特征分布在文件的不同地方)
常用工具
修复 GFF 文件的格式
agat_convert_sp_gxf2gxf.pl
用法:
agat_convert_sp_gxf2gxf.pl \
-g genome.gff -o genome.gff
选项:
--gff or -f
输入 GTF/GFF 文件
--output or -o
输出文件
提取和总结 GFF 文件中的功能信息
agat_sp_functional_statistics.pl
用法:
agat_sp_functional_statistics.pl --gff genome.gff [ -o dirname ]
agat_sp_functional_statistics.pl --help
选项:
--gff or -f
输入 GTF/GFF 文件
--output or -o
输出结果的文件夹路径(默认 output_functional_statistics)
根据 gff 文件中描述的特征以 fasta 格式提取序列
agat_sp_extract_sequences.pl
用法:
# Gene
agat_sp_extract_sequences.pl -g genome.gff -f genome.fa -t gene -o gene.fa
# mRNA
agat_sp_extract_sequences.pl -g genome.gff -f genome.fa -t mrna -o mrna.fa
# CDS
agat_sp_extract_sequences.pl -g genome.gff -f genome.fa -t cds -o cds.fa
# Protein
agat_sp_extract_sequences.pl -g genome.gff -f genome.fa -t cds -p -o pep.fa
# To extract 3000nt upstream region of a gene
agat_sp_extract_sequences.pl -g genome.gff -f genome.fa -t gene --upstream 3000 -o promoter_3kb.fa
选项:
--gff or -f
输入 GTF/GFF 文件
--output or -o
输出结果的文件夹路径(默认 output_functional_statistics)
将 GTF/GFF 格式转换为 BED
agat_sp_functional_statistics.pl
用法:
agat_convert_sp_gff2bed.pl --gff genome.gff [ -o filename ]
选项:
--gff
输入 GTF/GFF 文件
--output or -o
输出文件
筛选最长的转录本序列
agat_sp_functional_statistics.pl
用法:
agat_sp_keep_longest_isoform.pl --gff genome.gff [ -o filename ]
选项:
--gff
输入 GTF/GFF 文件
--output or -o
输出文件
扫码关注微信公众号【生信F3】获取文章完整内容,分享生物信息学最新知识。
本文由mdnice多平台发布
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。