1.FASTAファイルのレコード数(遺伝子数)を算出せよ
FASTAファイルのレコードは”>”から始まります。 1文字目を切り出すには・・・substr($0,1,1)
awk ' { if(substr($0,1,1)==">"){ cnt=cnt+1 } } END{ print cnt } ' TAIR6_seq_20060907
35351
2.塩基配列の平均長を算出せよ
seqkitでFASTA→TABに変換したファイルを利用する。区切り文字を指定する-F'\t'を忘れないこと。
awk -F'\t' ' { cnt = cnt + length($2); n = n + 1; } END{ print cnt / n; } ' TAIR6_seq_20060907.tab
2227.59
3.最大、最小の配列長を算出せよ
awk -F'\t' ' BEGIN{min=1e+10} #<=10,000,000,000のこと { len=length($2) if(len>max){max=len} if(len<min){min=len} } END{ print max, min } ' TAIR6_seq_20060907.tab
max: 31258 min: 22
4.配列を長い順に表示
awk -F'\t' ' { data[$1]=length($2); seq[$1]=$2; } END{ PROCINFO["sorted_in"]="@val_num_desc"; for(i in data){ print data[i]": "i"\t"seq[i]; } }' TAIR6_seq_20060907.tab