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


工具推薦:https://github.com/openvax/gtfparse

真不敢相信,Linux自帶的命令會這么強大,從gtf中提取出需要的transcript,看起來復雜,其實一個grep就搞定了。

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

本文出自於http://www.bioinfo-scrounger.com轉載請注明出處

gffcompare官網

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文件為例,如下所示

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列有略微區別;前者名稱和值是以等號隔開,后者則是以空格隔開

因此gffcompare和gff不僅可以用來處理gff格式文件,還可以處理gtf格式文件

這兩個工具都是約翰·霍普金斯大學開發的,也是hisat2和stringtie的開發者,下載地址如下:
http://ccb.jhu.edu/software/stringtie/gff.shtml,這個網頁不僅有下載地址,還有軟件的簡單介紹。注:下載有二進制版本的,可以不用編譯直接使用,方便。

還有這個網址也對gtf格式以及gff格式做了解釋,可以整體上了解gtf和gff的區別

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用處還有可以的,值得留意下


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM