Palmsonntagmorgen

NGSデータを使った解析と、その周辺。

Readをゲノムにマッピング (その3) 圧縮ファイルを入力にする方法

マッピングの記事その3。

Readをゲノムにマッピング (その1) - Palmsonntagmorgen
Readをゲノムにマッピング (その2) - Palmsonntagmorgen

圧縮ファイル(fastq.gz)を直接マッピングの入力にする方法です。

圧縮ファイルのままマッピングしたい

fastqファイルは容量が大きいので、数が増えてくるとHDDを圧迫します。
なので.gzで圧縮した状態で保管しておきたいですね。 しかし圧縮されたfastq.gzファイルをbowtieにかけるとエラーで終了してします。

 $ bowtie -S hg38 sample.fastq.gz -n2 -m1 -p4 > sample.hg38.sam
Error: reads file does not look like a FASTQ file
terminate called after throwing an instance of 'int'
Aborted

これはbowtieが圧縮ファイルの入力に対応していないからですが、 以下のようにコマンドを修正すると、マッピングが通るようになります。

 $ bowtie -S hg38 <(zcat sample.fastq.gz) -n2 -m1 -p4 > sample.hg38.sam

これはコマンドの中でgzファイルをzcatで展開し、その出力をbowtieの入力として投げる、というコマンドです。
bowtieに限らず、圧縮ファイルを受け付けないツール類(の一部)は、この方法で.gzファイルを直接入力にすることが可能です。

ちなみにbowtie2 (version 2.3.1 以降), bwaはそのままでもマッピングが通ります。

 $ bowtie2 -x hg38 sample.fastq.gz -p4 > sample.hg38.sam
 $ bwa mem -t 4 hg38 sample.fastq.gz > sample.hg38.sam