2022awk3回答例

練習問題3-2

遺伝子(正確にはトランスクリプト)発現情報ファイル

wget http://www.suikou.fs.a.u-tokyo.ac.jp/yosh_data/2018train/take.tpm.txt

と、各遺伝子のBlast検索結果ファイル

wget http://www.suikou.fs.a.u-tokyo.ac.jp/yosh_data/2018train/take.blastn.txt

から、次のファイルを作成せよ

1.Blastの結果ファイルのうち、E-value が 1e-10 (0.0000000001)以下のトップヒットを抽出せよ。

awk -F'\t' '{if($11<=1e-10){print $0}}' take.blastn.txt |more
#最後に|moreを付けておくと出力が流れていかないので便利

2. 遺伝子発現情報ファイルに1.で抽出された遺伝子名を付与せよ。

awk -F'\t' '
{
    if(FILENAME==ARGV[1]){
         if($11<=1e-10){data[$1]=$2}
    }
    
    if(FILENAME==ARGV[2]){
        print $0"\t"data[$1]
    }
}
' take.blastn.txt take.tpm.txt |more

#TRINITY_DN82_c0_g1_i1   4.2755  0     0   PREDICTED:_Danio_rerio_sestrin…など

3. 遺伝子名を付与することが出来た既知の遺伝子は全部で何個、何%か?

awk -F'\t' '
{
    if(FILENAME==ARGV[1]){
         if($11<=1e-10){data[$1]=$2}
    }
    
    if(FILENAME==ARGV[2]){
        if(data[$1]!=""){cnt = cnt + 1}
        n = n + 1;
    }
}
END{
    print n" "cnt" "cnt/n;
}
' take.blastn.txt take.tpm.txt

#157727 16916 0.107249

Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 20480 bytes) in /home/webpark1634/www/yosh/lib/plugins/authplain/auth.php on line 441

Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 20480 bytes) in /home/webpark1634/www/yosh/inc/ErrorHandler.php on line 76