(转) gffcompare和gffread | gtf | gff3 格式文件的分析 | gtf处理 | gtfparse

工具推荐:https://github.com/openvax/gtfparsehtml

真不敢相信,Linux自带的命令会这么强大,从gtf中提取出须要的transcript,看起来复杂,其实一个grep就搞定了。python

grep -F -f out.list gffcmp.combined.gtf > test.out

本文出自于http://www.bioinfo-scrounger.com转载请注明出处git

gffcompare官网github

gffcompare和gffread能够认为是专门开发出来用于处理gff格式文件的小工具。如今gff格式通常是用第三版gff3,以小鼠genecode上下载的gff文件为例,以下所示:工具

chr1 HAVANA gene 3073253 3074322 . + . ID=ENSMUSG00000102693.1;gene_id=ENSMUSG00000102693.1;gene_type=TEC;gene_name=4933401J01Rik;level=2;havana_gene=OTTMUSG00000049935.1 chr1 HAVANA transcript 3073253 3074322 . + . ID=ENSMUST00000193812.1;Parent=ENSMUSG00000102693.1;gene_id=ENSMUSG00000102693.1;transcript_id=ENSMUST00000193812.1;gene_type=TEC;gene_name=4933401J01Rik;transcript_type=TEC;transcript_name=4933401J01Rik-001;level=2;transcript_support_level=NA;tag=basic;havana_gene=OTTMUSG00000049935.1;havana_transcript=OTTMUST00000127109.1 chr1 HAVANA exon 3073253 3074322 . + . ID=exon:ENSMUST00000193812.1:1;Parent=ENSMUST00000193812.1;gene_id=ENSMUSG00000102693.1;transcript_id=ENSMUST00000193812.1;gene_type=TEC;gene_name=4933401J01Rik;transcript_type=TEC;transcript_name=4933401J01Rik-001;exon_number=1;exon_id=ENSMUSE00001343744.1;level=2;transcript_support_level=NA;tag=basic;havana_gene=OTTMUSG00000049935.1;havana_transcript=OTTMUST00000127109.1

而gtf格式通常来讲跟gff很类似,也是以小鼠genecode上下载的gtf文件为例,以下所示spa

chr1 HAVANA gene 3073253 3074322 . + . gene_id "ENSMUSG00000102693.1"; gene_type "TEC"; gene_name "4933401J01Rik"; level 2; havana_gene "OTTMUSG00000049935.1"; chr1 HAVANA transcript 3073253 3074322 . + . gene_id "ENSMUSG00000102693.1"; transcript_id "ENSMUST00000193812.1"; gene_type "TEC"; gene_name "4933401J01Rik"; transcript_type "TEC"; transcript_name "4933401J01Rik-001"; level 2; transcript_support_level "NA"; tag "basic"; havana_gene "OTTMUSG00000049935.1"; havana_transcript "OTTMUST00000127109.1"; chr1 HAVANA exon 3073253 3074322 . + . gene_id "ENSMUSG00000102693.1"; transcript_id "ENSMUST00000193812.1"; gene_type "TEC"; gene_name "4933401J01Rik"; transcript_type "TEC"; transcript_name "4933401J01Rik-001"; exon_number 1; exon_id "ENSMUSE00001343744.1"; level 2; transcript_support_level "NA"; tag "basic"; havana_gene "OTTMUSG00000049935.1"; havana_transcript "OTTMUST00000127109.1";

从上能够看出,就小鼠而言,gff和gtf文件只有在最后一列,也就是attribures列有略微区别;前者名称和值是以等号隔开,后者则是以空格隔开code

所以gffcompare和gff不只能够用来处理gff格式文件,还能够处理gtf格式文件htm

这两个工具都是约翰·霍普金斯大学开发的,也是hisat2和stringtie的开发者,下载地址以下:
http://ccb.jhu.edu/software/stringtie/gff.shtml,这个网页不只有下载地址,还有软件的简单介绍。注:下载有二进制版本的,能够不用编译直接使用,方便。blog

还有这个网址也对gtf格式以及gff格式作了解释,能够总体上了解gtf和gff的区别ip

gffcompare

按照官网的说法,gffcompare能够用来compare, merge, annotate and estimate accuracy of one or more GFF files,而且这个软件是基于cuffcompare开发的,因此gffcompare不少输入和输出文件都与cuffcompare相同

参数经过gffcompare -h命令查看便可

以stringTie组装并merge后的结果文件(merged.gtf)为例,参考基因组注释文件为gencode.vM13.annotation.gtf,compare下二者的结果并进行注释

gffcompare -R -r gencode.vM13.annotation.gtf -o strtcmp merged.gtf

输出文件几乎跟cuffcompare同样,除告终果中的.combined.gtf变为.annotated.gtf,可是文件里的格式几乎是同样的,除了有一点,.annotated.gtf文件会保留original transcript IDs,可是.combined.gtf是没有这一点的

对于文件每列的具体含义能够看cuffcompare官网,也能够看以前的一篇博文转录组的组装Stingtie和Cufflinks

gffread

gffread这工具,官网的定义为used to generate a FASTA file with the DNA sequences for all transcripts in a GFF file,在知道这工具前,我作这个操做是本身写的perl脚本,可是从运行效率上来讲,仍是这工具快。。。

好比一个很常见的需求,对于stringtie组装后的gtf文件,想将组装后的转录本的序列从对应的参考基因组上提取出来,这时就能够用gffread这工具了,仍是上述的小鼠为例:

gffread -w transcripts.fa -g mm10.fa stringtie_merged.gtf

查看各参数的含义gffread -h

以前使用的时候只用了这个功能,可是最近在公众号(生信菜鸟团的一篇软文:NGS数据格式之gff/gtf)看到gffread能够将gtf和gff格式之间进行相互转化,因此试了下

如:gtf转化为gff

gffread gencode.vM13.annotation.gtf -o tmp.gff3

输出文件以下:

chr1 HAVANA transcript 3073253 3074322 . + . ID=ENSMUST00000193812.1;geneID=ENSMUSG00000102693.1;gene_name=4933401J01Rik chr1 HAVANA exon 3073253 3074322 . + . Parent=ENSMUST00000193812.1

从结果上能够看出,gffread输出的是其定义后的gff3格式的文件,与输入的相比没有了feature为gene的行,attribures列也变得较为省略

如:gff转化为gtf

gffread gencode.vM13.annotation.gff3 -T -o tmp.gtf

输入文件以下:

chr1 HAVANA exon 3073253 3074322 . + . transcript_id "ENSMUST00000193812.1"; gene_id "ENSMUSG00000102693.1"; gene_name "4933401J01Rik";

从结果上来看,gffread定义的gtf文件变得更为省略了,而且还有作了些限制,固然这些在官网GFF utilities中有说明

综上所述,gffcompare和gffread用处还有能够的,值得留意下

相关文章
相关标签/搜索