背景
bioawkはawkによる表形式ファイルのデータ処理をfastqやsam、gtfなどバイオデータのファイル形式に拡張したものです。-cオプションでファイル形式を指定することでそのファイル形式に対応した変数を使用することができます。
方法
Homebrewでインストールできます。
brew tap brewsci/bio; brew install bioawk
結果
helpが出ることを確認します。bioawkが対応する入力ファイル形式と各フィールド(列)の変数が表示されます。awkでフィールドは「$数字」ですがbioawkではこの変数を用いて処理を行うことができます。
bioawk -c help
bed:
1:chrom 2:start 3:end 4:name 5:score 6:strand 7:thickstart 8:thickend 9:rgb 10:blockcount 11:blocksizes 12:blockstarts
sam:
1:qname 2:flag 3:rname 4:pos 5:mapq 6:cigar 7:rnext 8:pnext 9:tlen 10:seq 11:qual
vcf:
1:chrom 2:pos 3:id 4:ref 5:alt 6:qual 7:filter 8:info
gff:
1:seqname 2:source 3:feature 4:start 5:end 6:score 7:filter 8:strand 9:group 10:attribute
fastx:
1:name 2:seq 3:qual 4:comment
使用例
fastqファイルをfasta形式に変換します。
※ファイル及びコードはVince Buffalo著、片山俊明『バイオインフォマティクスデータスキル』(オライリー・ジャパン、ISBN978-4-87311-863-5、177頁)より。
# ファイルのダウンロード(下記で使用するfastqファイル以外も含まれます)
git clone https://github.com/vsbuffalo/bds-files.git
# fastqファイル
cat contam.fastq | head -n 8
@DJB775P1:248:D0MDGACXX:7:1202:12362:49613
TGCTTACTCTGCGTTGATACCACTGCTTAGATCGGAAGAGCACACGTCTGAA
+
JJJJJIIJJJJJJHIHHHGHFFFFFFCEEEEEDBD?DDDDDDBDDDABDDCA
@DJB775P1:248:D0MDGACXX:7:1202:12782:49716
CTCTGCGTTGATACCACTGCTTACTCTGCGTTGATACCACTGCTTAGATCGG
+
IIIIIIIIIIIIIIIHHHHHHFFFFFFEECCCCBCECCCCCCCCCCCCCCCC
# fastaファイルへ変換(#nameでヘッダー情報、$seqで配列情報を取得しています)
bioawk -c fastx '{print ">"$name"\n"$seq}' contam.fastq | head -n 4
>DJB775P1:248:D0MDGACXX:7:1202:12362:49613
TGCTTACTCTGCGTTGATACCACTGCTTAGATCGGAAGAGCACACGTCTGAA
>DJB775P1:248:D0MDGACXX:7:1202:12782:49716
CTCTGCGTTGATACCACTGCTTACTCTGCGTTGATACCACTGCTTAGATCGG