BWA を利用した DNA-Seq ロングリードのマッピング
BWA
BWA は RNA-Seq リード、DNA-Seq リードあるいはもっと長い contig や BAC sequences などをマッピングするのプログラムである。BWA では、リファレンス配列を Burrows-Wheeler 変換を行ってインデックス化し、文字列検索の高速化を図った。また、この Burrows-Wheeler 変換を利用したことで、メモリ消費を抑えることもでき、数 GB で、1 MB 前後のロングリードをヒトゲノムへマッピングすることを可能にした。
BWA には 3 つのアルゴリズムが実装されている。ショートリードをマッピングするとき BWA-backtrack (Li et al, 2009)を使い、ロングリードをマッピングするときは BWA-SW を使う(Li et al, 2010)。BWA のマッピングでは塩基の挿入やギャップを許容できる。ロングリードのマッピングで、ギャップが多いと予想される場合は、BWA-MEM を利用することが推奨されている(BWA FAQ)。しかし、イントロンのような長い塩基挿入がある場合に、BWA はマッピングに失敗する。そのため、BWA は真核生物の RNA-Seq リードのマッピングにほとんど使われていない。BWA がよく使われるケースとして、DNA-Seq リードのマッピングなどである。
BWA マッピング例
References
- Fast and accurate short read alignment with Burrows-Wheeler transform. Bioinformatics. 2009, 25(14):1754-60. DOI: 10.1093/bioinformatics/btp324
- Fast and accurate long-read alignment with Burrows-Wheeler transform. Bioinformatics. 2010, 26(5):589-95. DOI: 10.1093/bioinformatics/btp698
- BWA FAQ Website
BWA の使い方
BWA を利用したマッピングでは、まずリファレンス配列に対してインデックスを作成し、次にリードをインデックスを介してマッピングしていく。
インデックスの作成
インデックスは、BWA の index
オプションを利用して作成する。インデックスの名前は任意につけることができる。例えば seq.fa のファイル中に保存された配列に対してインデックスを作成し、インデックスの名前を index_name としたい場合は、次のようにする。
bwa index -p index_name seq.fa
インデックスを作成し終えると、index_name.amb、index_name.ann、index_name.pac などのファイルが作成される。これらのファイルが BWA が使用するインデックスとなる。
マッピング
マッピングアルゴリズムは aln
(BWA-backtrack)、bwasw
、mem
の 3 種類のなかから一つを指定できる。single-end リードをマッピングする場合は次のようにする。
bwa aln index_name SRR1163656.fastq > SRR1163656.sam
bwa bwasw index_name SRR1163656.fastq > SRR1163656.sam
bwa mem index_name SRR1163656.fastq > SRR1163656.sam
paired-end の場合は次のようにする。
bwa aln index_name SRR1163656_1.fastq SRR1163656_2.fastq > SRR1163656.sam
bwa bwasw index_name SRR1163656_1.fastq SRR1163656_2.fastq > SRR1163656.sam
bwa memn index_name SRR1163656_1.fastq SRR1163656_2.fastq > SRR1163656.sam