遺伝子アノテーションファイル(GTFファイル)から特定の遺伝子を抽出
GTFファイルのうち特定の(調べたい)遺伝子だけを使いたいとき、
grep
コマンドを用いて、その遺伝子を含む行を抽出する方法。
orebibou.com
まず、目的の遺伝子のリストを用意する。
$ cat gene_list.txt EXOC1 NOC2L BCKDK NPEPPS SNX5 DNAJC30 CCR2 AP2A1 LIPA PNKP
次にGTFファイルを用意する。
FANTOM - CAT のアノテーションファイルを利用する。
grep -f <gene list file> <GTF file>
コマンドを用いて、上記の gene_list.txt の遺伝子を含む行を抽出するのだが、
そのまま実行すると
$ gzcat FANTOM_CAT.lv4_stringent.gtf.gz | grep -f gene_list.txt | wc -l 75
となり、入力した遺伝子数(10個)よりも行数が多いことがわかる。
そこで、中身を確認したところ、例えば2行目、
chr19 FANTOM transcript 50364462 50365491 . - . gene_id "ENSG00000039650.5"; transcript_id "ENST00000599454.1"; transcript_type "retained_intron"; transcript_name "PNKP-014"; coding_status "coding"; cumulative_support "GENCODE"; TIEScore "62.25434";
「 transcript_name "PNKP-014"; 」 となっており、部分一致のためこのようなものが多数取れてきていたためであった。
そこで 新たに、「"gene name"」のようにクオーテーションで囲ったものをクエリとして用いる。
$ cat gene_list_quote.txt "EXOC1" "NOC2L" "BCKDK" "NPEPPS" "SNX5" "DNAJC30" "CCR2" "AP2A1" "LIPA" "PNKP" $ gzcat FANTOM_CAT.lv4_stringent.gtf.gz | grep -f .gene_list_quote.txt | wc -l 10
無事目的の行が抽出された。