2018awk5回答例

練習問題①

wget http://www.suikou.fs.a.u-tokyo.ac.jp/yosh_data/2018train/example.vcf.gz
gzip -d example.vcf.gz #example.vcfというファイルが解凍される

として練習用のVCFファイルをダウンロードする。 VCFファイルは変異情報を記述するファイル形式でRAD-seq、全ゲノムシーケンス等で使用される。

1.VCFファイルの最初のほうの##から始まる行はコメント行である。##で始まる行を除外して表示せよ。(正規表現を使用すること)

awk '
{
  if($0!~"^##"){print $0}
}
' example.vcf

2.VCFの8列目にはその変異について、色々な情報が記述されている。各情報の区切りとしては「;」が使用される。この8列目に遺伝子名も記載されている。遺伝子名は「ANN=」から始まる項目の中で「|」区切りで表示される情報の4番目に登場する。(各自確認すること) まずは、「ANN=」という文字列が1行辺り1回だけ登場するのか確認せよ。 ヒント:何回マッチしたかを直接調べる関数は今のところawkには無いので、代わりにsplit関数を使用する。

awk '
{
  if($0!~"^##"){
    n=split($0,arr,"ANN=");
    if(n!=2){print $0}
  }
}
' example.vcf

3.遺伝子名を抽出し、遺伝子名を最後の列に付与したVCFを表示せよ。(正規表現を使用して、「ANN=」よりも前の文字列を削除した後、「|」区切りの4フィールド目を取得せよ。)

awk '
{
  if($0!~"^##"){
    str=$0;
    sub(".*ANN=","",str); #「ANN=」以前の文字列を消す
    # print str; #確認用
    split(str, arr, "|");
    print $0"\t"arr[4];
  }
}
' example.vcf
  • 2018awk5回答例.txt
  • 最終更新: 2019/07/15 02:46
  • by 127.0.0.1