2019 10/15追記
2020 10/13 リンク削除
GTF(General Transfer Format))はgeneのアノテーション専用のフォーマットと定義されている。それに対してGFF(General Feature Format)はtranscriptなどにも使えるよりジェネラルなフォーマットとなっている。この違いのため、例えばUCSC genomeではgeneアノテーションファイルはgtfフォーマットでのみダウンロード可能になっている。
GFFはバージョンにも注意する。GFF3はGFFのバージョン3を意味する。GFF2とGFF3には相違がある。GFF2はGTFと同じである。
フォーマットの説明;
GTF、GFF3いずれも9のカラムからなるが、1〜8行目はGTFとGFFで同じのため、GTFを例に1-8行目を説明する。例えば以下はUCSCのgenomeデータベースからダウンロードしたバクテリアのGTFファイルの最初の1行を表示している。
chr synePCC6_refSeq start_codon 1 3 2.000000 + . gene_id "slr0611"; transcript_id "slr0611";
- リファレンス名 (chromosome1など)
- アノテーションのソース (pfam,blast2go,interpro,est)
- feature (gene,exon,start_codon,cds,mRNA,zinc_finger,conserved_region)
- 1-based, inclusive start coordinate (integer > 0)
- 1-based, inclusive end coordinate (integer > 0)
- スコア
- リファレンスに対するgeneの向き (+はforward,-はreverse)
- frame (0,1,2 or .)
Scoreはアノテーションの信頼性を表す数値で、gtfでは無評価の.になるのが普通。
その他、Gffは#をつけることでコメント行を残すことが許されているなどの違いもある。
変換する簡単なスクリプトが公開されている。
SEQanswers - View Single Post - Tab Delimited File Editors? (GFF to GTF)
追記
圧縮してindexをつける(問い合わせするため、IGVなどのビューアもindexを必要とする)。
#1 GFF
bgzip -c hg38.gff > hg38.gff.gz
tabix -p gff hg38.gff.gz
#2 GTF - tabixはGTFに対応していないので#を消すなどの細工をしてGFFに見せかける(biostarのスレッドより)
(grep ^"#" hg38.gtf; grep -v ^"#" hg38.gtf | sort -k1,1 -k4,4n) | bgzip > hg38.gtf.gz
#tabixでGFFにindexをつける(-p gff|bed|sam|vcf)
tabix -p gff hg38.gtf.gz
tabixとbgzipがないならhtslibライブラリをコンパイルしてパスを通す(samtoolsのインストール参照)。
GTF => GFF3(gffreadを使う)
gffread transcripts.gtf -g genome.fa -E -o transcripts.gff3
IGV
2021 8/8 こちらにまとまった情報があります。
https://www.biostars.org/p/368167/
一番下の表が分かりやすい
https://github.com/NBISweden/AGAT/blob/master/docs/gff_to_gtf.md
関連
GFFの標準化、修正、属性の変更、追加、要約統計、イントロンサイズ、UTR情報、隣接遺伝子との重複の修正、フォーマット変換などなど。GTFとGFFの歴史についてもまとまっています。