FASTQファイルをftp://ftp.ddbj.nig.ac.jp/ddbj_database/dra/fastq/DRA000/DRA000520/DRX001286/DRR001823.fastq.bz2 からダウンロードし、
bzip2 -d DRR001823.fastq.bz2
とコマンド入力してファイルを解凍しておく。
1.FASTQファイルのリード数を算出せよ
FASTQは4行で1リードを記述するファイル形式です。
回答例
awk '{if(NR%4==1){cnt=cnt+1}} END{print cnt}' DRR001823.fastq
もしくは、下記のように改行・スペースを入れても良い。以後分かりやすいように回答例では改行を入れてあるが、実際には上記のように書くことが多い。
awk '
{
if(NR%4==1){
cnt=cnt+1
}
}
END{print cnt}
' DRR001823.fastq
20336リード
2.リードの平均長を算出せよ
文字列の長さはlength(“文字列”)を使えば取得できます。
awk '
{
if(NR%4==2){
cnt=cnt+1;
cnt2=cnt2+length($0);
}
}
END{print cnt,cnt2,cnt2/cnt}
' DRR001823.fastq
平均長:502.161 bp
3.最も長いリード長、短いリード長はそれぞれいくつか
最大リード長
awk '
{
if(NR%4==2){
if(length($0)>max){
max=length($0)
}
}
}
END{print max}
' DRR001823.fastq
629 bp
最小リード長
awk '
BEGIN{min=1000} #適当に大きな値をあらかじめ代入しておく
{
if(NR%4==2){
if(length($0)<min){
min=length($0)
}
}
}
END{print min}
' DRR001823.fastq
340 bp
4.最も長いリード長を持つ配列を(1つでよいので)表示せよ
awk '
{
if(NR%4==2){
if(length($0)>max){
max=length($0);
maxseq=$0;
}
}
}
END{print max, maxseq}
' DRR001823.fastq
TGATACGTCTTCCTACGGGAGGCAGCAGTGGGGAATATTGGACAATGGGCGCAAGCCTGATCCAGCCATGCCGCGTGAGTGATGAAGGCCCTAGGGTTGTAAAGCTCTTTCGCCAGGGACGATAATGACGGTACCTGGATAAGAAGCCCCGGCTAACTTCGTGCCAGCAGCCGCCGGTAATACGAAGGGGCGGTANCGTTGTTTCGGAATACACTGGGCGGTAAACGACGCACGTAAGGCGGGATCTTTAACGTTACAGGGGTGGGAAAATAACCCCGACGGGCGTTCCTAAACCCTACCGGGAAACCGTAGCCCTTTTCGTAATAACCTTGGGAAGGGGTCCGTTCCGAGGTCCGGGACGGAAGGTTGGAGTGGTAACGTAGCGAGTGTTAGAAGGTGGAAATTAACGTTAGATAATTTCGTCCAAGAAACAACCCAACGTTGGCGGACGGAACGGGCGGTCCGACCTACGTCCGGTACCCGGTTCCGTACGGACCGTCGTAGGTAGGTACGGAACGGAACGGTACGGGGTAGGGACGGAAACGAAACGAAGTAAGTAAGTAACCGGTAACCGGTACCGTCGTACGACGTACGACGACGACGACGACAACGGAAGGTAAGGTAGNGNN