Bowtie2

Bowtie2 のインストール

Bowtie2 のインストールは、sourceforge から最新バージョンをダウンロードし、展開するだけでよい。

例えば、sourceforge ページにてバージョン 2.2.2 のリンクをクリックし、bowtie2-2.2.2-linux-x86_64.zip をダウンロードすればよい。

Mac ユーザーであれば、brew コマンドを利用して簡単にインストールできる。

brew install bowtie2

Bowtie2 の使い方

インデックスの作成

インデックスの作成は bowtie2-build コマンドを利用する。-f の後にインデックス化したいファイルを指定し、その後にインデックスの名前を付ける。名前は任意に付けることができる。

bowtie2-build -f reference_dna.fa INDEX_NAME

拡張子が .bt2 のファイルが 6 つ生成される。ヒトゲノムのように、リファレンスが長い場合は拡張子が .bt2l になる。ユーザーはとくに意識する必要はない。これら 6 つのファイルすべて合わせて 1 つのインデックスとなる。

マッピング(single-end リード)

bowtie2 コマンドを利用し、-x のあとにインデックスを、-U でリードファイルを指定する。最後に -S を付けることによって、マップ結果をファイルに保存することができる。

bowtie2 -x INDEX_NAME -U SRR00001.fastq -S SRR00001.sam

マッピング(paired-end リード)

paired-end reads の場合は -1-2 オプションを利用して 1 対の FASTQ ファイルを指定してマッピングする。

bowtie2 -x INDEX_NAME -1 SRR00001_1.fastq -2 SRR00001_2.fastq -S SRR00001.sam

Bowtie2 のオプション

-x bowtie2-build によって作成されたインデックスへのパス。
-1 paired-end リードの場合、*_1.fastq ファイルへのパス。
-2 paired-end リードの場合、*_2.fastq ファイルへのパス。
-U single-end リードの場合、その FASTQ ファイルへのパス。
-S マッピング結果を SAM 形式でファイルに保存する。このオプションを付けないと、マッピング結果は実行画面(ターミナル画面)上に出力される。
-q リードが FASTQ 形式で保存されている場合はこれを付ける。
-f リードが FASTA 形式で保存されている場合はこれを付ける。
-N アラインメントのミスマッチ許容数を指定する。0 または 1 を指定できる。デフォルトは 0 である。
-L アラインメントする時にどのぐらいの長さのリードで FM インデックスを作成するかを指定する。数値が小さいほど感度が上がる。デフォルトは 20 とある。
-i リードから seed を作る際の間隔を指定する。例えばリード長が 10bp の場合、「-L 4 -i 3」としたとき、seed は次のように作られる。
Read       TAGCTAGTCA
Seed 1 fw  TAGC
Seed 1 rc  GCTA
Seed 2 fw     CTAG
Seed 2 rc     CTAG
Seed 3 fw        GTCA
Seed 3 rc        TGAC
-k デフォルトでは Bowtie2 は最適なアラインメントの箇所を見つけて、続けて他の候補箇所も検索する。最後にこれらの候補の中から、クオリティなどの情報を利用して 1 箇所だけを選ぶ。最適なアラインメントが複数存在する場合は、ランダムに 1 箇所だけが選ばれる。
これに対して、「-k 3」のようにオプションを付けた場合は、Bowtie2 は最適なアライメントを見つけようとするが、最適なアライメントが 3 箇所見つかった時点で、検索を終了する。(最適なアライメントが 2 箇所しかなかった場合は、その 2 箇所を利用する。わざわざ 3 箇所目を検索しない。)

Bowtie2 を利用したユニークマッピング

Bowtie ver. 1 では -m 1 を指定すると、リファレンス上の複数箇所にマッピングできるようなリードは使われなくなる。その結果として、どこか 1 箇所のみにマッピングされるリードだけがマッピング結果として報告される。Bowtie2 ではこのオプションが削除されている。そのため、-m 1と同じ効果を Bowtie2 で実現するためには、マッピング結果である SAM ファイルをフィルタリングする。ただし、ここでフィルタリング行わなくても、featureCounts を利用してカウントデータを取得するならば、取得する際に uniquely mapped reads のみをカウントするように指定することが可能。

Bowtie2 が出力される SAM ファイルでは、あるリードが 2 箇所以上にマッピされるような場合、それぞれのスコアを「XS」というコードに続いて記載するようにしている。

XS:i:<N> Alignment score for second-best alignment. Can be negative. Can be greater than 0 in --local mode (but not in --end-to-end mode). Only present if the SAM record is for an aligned read and more than one alignment was found for the read.

そこで、マッピング結果からこのコードを含む行を削除すれば、実質 -m 1 と同じ効果を得ることができる。

例えば、Bowtie2 を利用して SRR1169893.fastq をマッピングした時、マッピングログは次のように表示される。2 箇所以上にマッピングされるリードは 3,576,725 個ある。

bowtie2 -p 16 -N 1 -x RNOR75 -U SRR11698893.qc.fastq -S SRR1169893.sam
## 17097592 reads; of these:
##   17097592 (100.00%) were unpaired; of these:
##     835607 (4.89%) aligned 0 times
##     12685260 (74.19%) aligned exactly 1 time
##     3576725 (20.92%) aligned <1 times
## 95.11% overall alignment rate

そこで、grep を利用して、マッピング結果から「XS」を含む行を数えてみると、確かに 3,576,725 である。この種のコードの後ろに「:」が付けられる。念の為、マッチングを行うときは「XS:」とすることで、より正確になる。

grep "XS:" SRR1169893.sam  | wc -l
## 3576725

つまり、Bowtie2 のマッピング結果から「XS」を含む行を取り除けば -m 1 と同じ効果が得られる。コマンドを利用して「XS」を含む行を除く場合は以下のようにする。

grep -v "XS:" SRR1169893.sam > SRR1169893.unique.sam

References

  • Langmead B, Salzberg SL. Fast gapped-read alignment with Bowtie 2. Nat Methods. 2012, 9(4):357-9. PubMed Abstract