我們在做生物分析的時候,經常會碰到GFF格式的文件以及GTF格式的注釋文件。他們有着相似的名字,甚至連內容都極為相似~那么,他們究竟差在哪里呢?
GFF全稱為general feature format
,這種格式主要是用來注釋基因組。
GTF全稱為gene transfer format
,主要是用來對基因進行注釋。
數據結構
GTF文件以及GFF文件都由9列數據組成,這兩種文件的前8列都是相同的(一些小的差別)
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
---|---|---|---|---|---|---|---|---|
reference sequence name | annotation source | feature type | start coordinate | end coordinate | score | strand | frame | attributes |
GFF
GFF文件是一種用來描述基因組特征的文件,現在我們所使用的大部分都是第三版)(GFF3)。GFF允許使用#
作為注釋符號,例如很多GFF文件都會使用如下的兩行來表明其版本其創建日期:
##gff-version 2 ##created 11/11/11
GFF文件每一列所代表的含義前面表格中有,但請注意,它的第3列feature type
是不受約束的,你可以使用任意的名稱,但也不要太淘氣~用一些適當的名稱對於后面的分析會有很大的幫助。
我們需要注意的是GFF文件的第9列,從第二版開始(GFF2),所有的屬性都以標簽=值
的方式呈現,各個屬性之間以;
作為分隔符
ID=geneAExon1;Name=geneA;Parent=geneA;Organism=human
在最新版本的GFF文件中(GFF3),有一些是已經預先定義的屬性特征,並且這些特征往往還有特殊的含義:ID
這個標簽實在各行都要有的;另外有一個Parent
的屬性,它表明了當前的特征是Parent特征的子集。
Contig01 PFAM gene 501 750 . + 0 ID=geneA;Name=geneA
Contig01 PFAM exon 501 650 . + 2 ID=exonA1;Parent=geneA
Contig01 PFAM exon 700 750 . + 2 ID=exonA2;Parent=geneA
GTF
當前所廣泛使用的GTF格式為第二版(GTF2),它主要是用來描述基因的注釋。GTF格式有兩個硬性標准:
- 根據所使用的軟件的不同,
feature types
是必須注明的。 - 第9列必須以
gene_id
以及transcript_id
開頭
GTF文件的第9列同GFF文件不同,雖然同樣是標簽與值配對的情況,但標簽與值之間以空格分開,且每個特征之后都要有分號;
(包括最后一個特征):
gene_id "geneA";transcript_id "geneA.1";database_id "0012";modified_by "Damian";duplicates 0;
兩種文件的差異比較
列 | GTF2 | GFF3 |
---|---|---|
reference sequence name | same | same |
annotation source | same | same |
feature type | feature requirements depend on software | can be anything |
start coordinate | same | same |
5. end coordinate | same | same |
score | not used | optional |
strand | same | same |
frame | same | same |
attributes | 空格分隔 | = 分隔 |
兩種文件格式之間的轉換
偷個懶,直接使用Cufflinks里面的工具gffread
#gff2gtf gffread my.gff3 -T -o my.gtf #gtf2gff gffread merged.gtf -o- > merged.gff3
作者:西瓜要吃我
鏈接:https://www.jianshu.com/p/48b5a0972301
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權並注明出處。