練習問題①
アノテーション情報の付与
遺伝子(正確にはトランスクリプト)発現情報ファイル
http://www.suikou.fs.a.u-tokyo.ac.jp/yosh_data/2018train/take.tpm.txt
と、各遺伝子のBlast検索結果ファイル
http://www.suikou.fs.a.u-tokyo.ac.jp/yosh_data/2018train/take.blastn.txt
から、次のファイルを作成せよ
1.Blastの結果ファイルのうち、E-value ⇐ 1e-10 (0.0000000001)以下のトップヒットを抽出せよ。(blastの結果はトップヒットが必ず先頭に来ることを利用する。) 配列arrayの要素keyに値が入っているかどうかは、if(array[key]==“”)でチェックできます。
awk -F'\t' ' { if($11 <= 1e-10){ if(data[$1]==""){ data[$1]=$2; print $0; } } } ' take.blastn.txt
2.遺伝子発現情報ファイルに1.で抽出された遺伝子名を付与せよ。 ファイルを2つ同時にawkに渡す。まずはBlastの結果ファイルを配列に格納し、次に発現情報ファイルを読み込みながらBlastの結果をアノテーションする。
awk -F'\t' ' { if(FILENAME==ARGV[1]){ if($11 <= 1e-10){ if(data[$1]==""){ data[$1]=$2; } } } if(FILENAME==ARGV[2]){ print $0"\t"data[$1]; } } ' take.blastn.txt take.tpm.txt
3.遺伝子名を付与することが出来た既知の遺伝子は全部で何個、何%か?
awk -F'\t' ' { if(FILENAME==ARGV[1]){ if($11 <= 1e-10){ if(data[$1]==""){ data[$1]=$2; } } } if(FILENAME==ARGV[2]){ cntall=cntall+1; if(data[$1]!=""){ cnthit=cnthit+1; } print $0"\t"data[$1]; } } END{print cnthit, cnthit/cntall*100} ' take.blastn.txt take.tpm.txt