2022awk4回答例

4-1回答例

問題:3日目で使用したtake.tpm.txtファイルについて、各サンプル(0hA, 24hA1, 48h_A1)の数値の合計値を求め、合計値を100万カウントに補正した場合の値として、テーブルを計算しなおしてみる。

回答例:

awk -F'\t' '
{
  if(FILENAME==ARGV[1]){
    if(FNR>1){
      for(i=2;i<=NF;i++){
        cnt[i]=cnt[i]+$i;
      }
    }
  }
  if(FILENAME==ARGV[2]){
    if(FNR==1){
      print $0;
    }else{
      str=$1;
      for(i=2;i<=NF;i++){
        str=str"\t"$i/cnt[i]*1000*1000;
      }
      print str;
    }
  }
}
' take.tpm.txt ./take.tpm.txt

4-2回答例

問題:

wget http://suikou.fs.a.u-tokyo.ac.jp/yosh_data/2022train/test_1.fastq.gz

wget http://suikou.fs.a.u-tokyo.ac.jp/yosh_data/2022train/test_2.fastq.gz

でダウンロードした2つのFASTQファイルはペアエンドデータである。基本的に2つのファイルのリード名は完全に一致するはずだが、本当に一致するか?

回答例:

awk '
{
  if(FILENAME==ARGV[1]){
    if(FNR%4==1){
      data[FNR]=$1
    }
  }
  if(FILENAME==ARGV[2]){
    if(FNR%4==1){
      if($1!=data[FNR]){
        print "Forward: "FNR": "data[FNR];
        print "Reverse: "FNR": "$1;
      }
    }
  }
}
' <(zcat test_1.fastq.gz) <(zcat test_2.fastq.gz)
#Macの人はzcatの代わりにgzip -dcを使う

4-3回答例

問題: マツタケが生えている付近の土壌の真菌類のメタゲノム解析結果

wget http://suikou.fs.a.u-tokyo.ac.jp/yosh_data/2022train/matsutake.blast

に、下記のデータベースファイル2つを使ってAccession ID→Taxonomy ID→Taxonomy Pathへと変換した結果を付与したい。

wget http://suikou.fs.a.u-tokyo.ac.jp/yosh_data/2022train/nucl_gb.accession2taxid.50m.gz

wget http://suikou.fs.a.u-tokyo.ac.jp/yosh_data/2022train/names.dmp.sname.path.gz

回答例:

awk -F'\t' '
{
    if(FILENAME==ARGV[1]){
        split($2, array, ".");
        id[array[1]]=1;
    }
    if(FILENAME==ARGV[2]){
        if(id[$1]==1){
            acid2taxid[$1]=$3;
        }else{
            delete id[$1];
        }
    }
    if(FILENAME==ARGV[3]){
        taxid2path[$1]=$2;
    }
    if(FILENAME==ARGV[4]){
        split($2, array, ".");
        print $0"\t"taxid2path[acid2taxid[array[1]]];
    }
}' matsutake.blast <(zcat nucl_gb.accession2taxid.50m.gz) <(zcat names.dmp.sname.path.gz) ./matsutake.blast 

注意:入力のnucl_gb.accession2taxid.50m.gzは元のファイルを1/10くらいにしたもので、本来これが完全であれば100%アノテーションが付くはずなのだけど、数が少ないので10%くらいしか名前が付かない。元のファイルは https://ftp.ncbi.nih.gov/pub/taxonomy/accession2taxid/nucl_gb.accession2taxid.gz からダウンロード可能です。余裕があれば、元のファイルを使って実行できるか試してみて下さい。元のファイルだと不要な要素をdeleteしないとメモリーを100GBくらい使うはず。

  • 2022awk4回答例.txt
  • 最終更新: 2022/05/02 09:46
  • by suikou