当与参考注释(也作为 GFF 提供)进行比较时,程序 gffcompare 可用于比较、合并、注释和估计一个或多个 GFF 文件的准确性。
Github:https://github.com/gpertea/gffcompare
Reference: http://ccb.jhu.edu/software/stringtie/gffcompare.shtml
下载与安装
- 源码安装
wget http://ccb.jhu.edu/software/stringtie/dl/gffcompare-0.12.6.tar.gz
tar -xzvf gffcompare-0.12.6.tar.gz
cd gffcompare-0.12.6
make
- 二进制文件
cd ~/bin
wget http://ccb.jhu.edu/software/stringtie/dl/gffcompare-0.12.6.Linux_x86_64.tar.gz
tar -xzvf gffcompare-0.12.6.Linux_x86_64.tar.gz
- conda安装
conda install gffcompare -c bioconda
用法详解
gffcompare
基本用法:gffcompare [options]* {-i <input_gtf_list> | <input1.gtf> [<input2.gtf> .. <inputN.gtf>]}
-i 提供一个文本文件,其中包含要处理的(查询)GTF文件的绝对路径,而不是将它们作为命令行参数(当需要处理大量 GTF 文件时很有用)
-h/-help 打印帮助信息并退出
-v/--version 打印版本号并退出
-o <outprefix> 所有输出文件的前缀(例如 .loci、.tracking 等)。如果未提供此选项,则使用的默认输出前缀为:“gffcmp”
-r 可选的“参考”注释 GFF 文件。每个样本都与该文件匹配,并且样本异构体在适当的情况下被标记为重叠、匹配或新颖。请参阅下面的 .refmap 和 .tmap 输出文件说明
-R 如果指定了 -r,此选项会导致 gffcompare 忽略不与 input1.gtf、...、inputN.gtf 之一中的任何转录本重叠的参考转录本。用于忽略 RNA-Seq 样本中不存在的注释转录本,从而调整文件中写入的准确性报告中的“灵敏度”计算
-Q 如果 -r 被指定,这个选项会导致 gffcompare 忽略不被参考注释本中的任何转录本重叠的输入转录本。用于调整文件中写入的精度报告中的“精度”计算
-M 丢弃(忽略)单外显子转录片段和参考转录本(即仅考虑多外显子转录本)
-N 丢弃(忽略)单外显子参考转录本;仍然考虑单外显子反式片段,但它们永远不会找到精确匹配
-D 丢弃单个样本中的“duplicate”(冗余)转录本(即具有相同内含子链的那些)(从而禁用“annotate”模式)
-s 基因组序列的路径(可选);这将启用“repeat”('r')类classmode评估; <genome_path> 应该是多 FASTA 文件的完整路径,最好使用 samtools faidx 进行索引;重复序列必须在基因组序列中被软掩蔽(小写)
-e 评估外显子准确性时,参考转录物末端外显子自由端允许的最大距离(范围)。默认情况下,这是 100。
-d 对转录起始站点进行分组的最大距离(范围),默认为 100。
-p <outprefix>.combined.gtf 文件中用于共有/组合转录本的名称前缀(默认值:'TCONS')
-C 从 .combined.gtf 输出中丢掉“contained”的转录本。
-A 与 -C 类似,但如果它们从不同的 5' 外显子开始,则不会丢弃内含子冗余的 transfrags(保留备用转录起始位点)
-X 与 -C 类似,但如果 transfrag 末端突出在容器的内含子内,也会丢弃包含的 transfrag
-K 对于 -C/-A/-X,不要丢弃任何与引用匹配的冗余转录本
-T 不要为每个输入文件生成 .tmap 和 .refmap 文件
-V Gffcompare 对它所做的工作更加冗长,将消息打印到 stderr,它还会显示有关在读取给定 GFF 文件时发现的任何不一致或潜在问题的警告消息。
--debug 启用调试模式,该模式启用 -V 并生成附加文件:<outprefix>.Q_discarded.lst、<outprefix>.missed_introns.gtf 和 <outprefix>.R_missed.lst
输出结果
主要输出结果
-
*.*.gtf
主要输出注释文件*.combined.gtf
当提供多个GTF/GFF文件时,gffcompare会产生一个GTF文件,其中包含每个样本中所有转录本的“并集”。如果两个样本中都存在具有相同内含子链的转录本,那么在组合.gtf输出。*.annotated.gtf
如果提供单个GTF/GFF查询文件作为输入,并且没有指定删除“重复的”/“冗余”转录本的特定选项(-D、-S、-C、-A、-X),则gffcompare将输出一个名为*.annotated.gtf的文件而不是*.combined.gtf文件。
-
*.loci
报告每个转录本中每个新的转录本位点信息 -
*.stats
报告了与参考注释相比的输入转录本的准确性(或一致性)相关的各种统计数据。 -
*.tracking
匹配样本之间的转录本。 -
*.stringtie_asm.gtf.refmap
对于每个参考转录本,查询的转录本是完全还是部分匹配到参考转录本上。 -
*.stringtie_asm.gtf.tmap
对于每个转录本最佳的参考转录本。
很奇怪的是,我没有得到stat文件,记录一下
gffcompare -r $gtf -o All -i input.list
<outprefix>.tracking
该文件匹配样本之间的转录本。每行代表一个转录结构,该结构在所有输入 GTF 文件中保留(结构等效)。如果所有内含子相同,则 GffCompare 认为转录本“匹配”(即结构等效)。请注意,“匹配”转录本允许在第一个和最后一个外显子的长度上有所不同,因为对于相同的生物转录本,这些长度通常会因样本而异。
如果使用-r
选项运行 GffCompare,则第 3 列包含有关与该行表示的转录结构“最接近”(最佳匹配或重叠)的参考注释转录的信息。
Column number | Column name | Example | Description |
---|---|---|---|
1 | Query transfrag id | TCONS_00403479 | 转录本中的唯一ID |
2 | Query locus id | XLOC_006534 | super-locus的唯一ID,包含所有样本和参考注释中的这些转录本 |
3 | Reference gene id | TCEA3|rna-XM_006710864.2 | 与此转录本相关的参考记录的基因名称和转录本ID(用` |
4 | Class code | c | 参考转录本与此行所代表的转录本结构之间的重叠类型或关系 |
<outprefix>.<input_file>.refmap
Transfrags matching each reference transcript
此制表符分隔的文件列出了每个参考转录本,其中完全或部分匹配该参考转录本。请注意,对于给定的每个<input_files> 都会在该输入文件所在的目录(可能不是当前工作目录)中生成一个这样的输出文件。该文件每个参考转录本行,列如下:
Column number | Column name | Example | Description |
---|---|---|---|
1 | Reference gene | Myog | 此转录本的参考GTF记录的gene_name属性(如果存在)。否则使用gene_id。 |
2 | Reference transcript id | uc007crl.1 | 此转录本的参考GTF记录的transcript_id属性 |
3 | Class code | c | 第4列中的查询记录与参考记录之间的匹配类型。“c”表示部分匹配,或“=”表示完全匹配。 |
4 | Matches | STRG.223|STRG.223.1,STRG.224|STRG.224.1 | 与参考转录本匹配的以逗号分隔的组装转录本列表 |
<outprefix>.<input_file>.tmap
Best reference transcript for each transfrag
Column number | Column name | Example | Description |
---|---|---|---|
1 | Reference gene name | Myog | 此转录本的参考GTF记录的gene_name属性(如果存在)。否则使用gene_id。 |
2 | Reference transcript id | uc007crl.1 | 此转录本的参考GTF记录的transcript_id属性 |
3 | Class code | c | 第4列中的查询记录与参考记录之间的class code 关系类型 |
4 | Query gene id | STRG.23567 | 输入转录本(例如Stringtie)内部gene_id |
5 | Query transcript id | STRG.23567.0 | 输入文件的转录本ID |
6 | Number of exons | 7 | query转录本文件中的外显子数量 |
7 | FPKM | 1.4567 | The expression of this transcript expressed in FPKM |
8 | TPM | 0.000000 | the estimated TPM for the transcript, if found in the query input file |
9 | Coverage | 3.2687 | 该转录本的平均测序深度 |
10 | Length | 1426 | The length of the transcript |
11 | Major isoform ID | STRG.23567.0 | The query ID of the gene’s major isoform |
12 | Reference match length | 4370 | The length of the longest overlap with a reference, ‘-’ if there is no such exonic overlap |
Class code
Num | Flag | Content |
---|---|---|
1 | = | Complete match of intron chain 内含子链的完全匹配 |
2 | c | Contained 预测转录本包含在参考转录本中 |
3 | j | Potentially novel isoform (fragment): at least one splice junction is shared with a reference transcript 潜在的新异构体(片段):至少一个剪接连接与参考转录本共享 |
4 | e | Single exon transfrag overlapping a reference exon and at least 10 bp of a reference intron, indicating a possible pre-mRNA fragment. 单外显子转录本与参考外显子和参考内含子至少10 bp重叠,表明可能存在前mRNA片段。 |
5 | i | A transfrag falling entirely within a reference intron。完全比对到参考内含子内的转录本 |
6 | o | Generic exonic overlap with a reference transcript 部分外显子与参考转录本重叠 |
7 | p | Possible polymerase run-on fragment (within 2Kbases of a reference transcript)。 可能的聚合酶片段,在参考转录本2k bp范围内 |
8 | r | Repeat. Currently determined by looking at the soft-masked reference sequence and applied to transcripts where at least 50% of the bases are lower case |
9 | u | Unknown, intergenic transcript。未知,基因间转录本 |
10 | x | Exonic overlap with reference on the opposite strand |
11 | s | An intron of the transfrag overlaps a reference intron on the opposite strand (likely due to read mapping errors) |
12 | . | (.tracking file only, indicates multiple classifications) |
对于lncRNA的分析主要选择三种class code
:i,u,x