bwa的使用

1. 简介

最近需要使用软件GAM-NGS软件,但是该软件貌似不支持bowtie2的结果。可能需要用到BWA,于是参考BWA的网站其Manual
bwa,即Burrows-Wheeler-Alignment Tool。
BWA 包含 3 种算法:

BWA-bactrack: 用于进行 Illumina reads 的比对。reads 的长度最大为 100bp。
BWA-SW: 用于比对 long-read ,支持的长度为 70bp-1Mbp;同时支持剪接性比对。
BWA-MEM: 最新的算法。和 BWA-SW 的适用性一致,但是更加快速和准确;同时与 BWA-bactrack 相比,在对 70-100bp reads 的比对上有更优的性能。

2. BWA 的下载和安装

$ wget http://jaist.dl.sourceforge.net/project/bio-bwa/bwa-0.7.9a.tar.bz2
$ tar jxf bwa-0.7.9a.tar.bz2 -C /opt/biosoft/
$ cd /opt/biosoft/bwa-0.7.9a/
$ make
$ echo 'PATH=$PATH:/opt/biosoft/bwa-0.7.9a' >> ~/.bashrc
$ source ~/.bashrc

3. BWA用法

2.1 index

在进行 reads 的比对前,需要对 fasta 文件构建 FM-index。
常用例子和参数如下:

$ bwa index ref.fa -p genome

-p STR
输出的数据库前缀。 默认和输入的文件名一致,则输出的数据库在其输入文件所在的文件夹,并以该文件名为前缀。
-a [is|bwtsw]
输入构建 index 的算法。 is 算法简单快速,是默认的选项,但是不能用于基因组大于 2GB 的数据库; bwtsw 适合于大基因组,比如人类基因组。

2.2 mem

该算法先使用 MEM(maximal exact matches) 进行 seeding alignments,再使用 SW(affine-gap Smith-Waterman) 算法进行 seeds 的延伸。
BWA–MEM 算法执行局部比对和剪接性。可能会出现 query 序列的多个不同的部位出现各自的最优匹配,导致 reads 有多个最佳匹配位点。这对 long reads 的比对时比较重要的结果。但是却会和 Picard 的 markDuplicates 程序部兼容。
常用例子和参数如下:

$ bwa mem genome reads.fq > aln-se.sam
$ bwa mem genome read1.fq read2.fq > aln-pe.sam

-t INT
使用的线程数
-p
若无此参数:输入文件只有1个,则进行单端比对;若输入文件有2个,则作为paired reads进行比对。若加入此参数:则仅以第1个文件作为输入(输入的文件若有2个,则忽略之),该文件必须是read1.fq和read2.fa进行reads交叉的数据。
-M
加入此参数用于将 shorter split hits 标记为次优,有利于兼容 Picard。

2.3 bwasw

对输入的第1个文件的所有序列进行比对。如果输如有 2 个文件,则进行 paired-end 比对,此模式仅对 Illumina 的 short-insert 数据进行比对。在 Paired-end 模式下,BWA-SW依然输出剪接性比对结果,但是这些结果会标记为 not properly paired; 同时如果有多个匹配位点,则不会写入 mate 的匹配位置。
常用例子和参数如下:

$ bwa bwasw genome long_read.fq > aln.sam
$ bwa bwasw genome read1.fq read2.fq > aln-pe.sam

-t INT
使用的线程数

2.4 backtrack

经典的 bwa 先使用 aln 命令将单独的 reads 比对到参考序列,再使用 samse 或 sampe 生成 sam 文件。
常用例子:

$ bwa aln genome read1.fq > aln_sa1.sai
$ bwa aln genome read2.fq > aln_sa2.sai
$ bwa samse genome aln_sa1.sai read1.fq > aln_se.sam
$ bwa sampe genome aln_sa1.sai aln_sa2.sai read1.fq read2.fq > aln_pe.sam

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据