(轉) 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用處還有能夠的,值得留意下

相關文章
相關標籤/搜索