注意:MiniMAP2已取代BWA-MEM的PACBIO和Nanopore读取对齐。它保留了所有主要的BWA-MEM功能,但速度更快,更通用,更准确,并产生更好的基础水平对齐。 BWA-MEM2的Beta版本已发布用于简读映射。 BWA-MEM2的速度大约是BWA-MEM的两倍,并且输出接近相同的比对。
git clone https://github.com/lh3/bwa.git
cd bwa; make
./bwa index ref.fa
./bwa mem ref.fa read-se.fq.gz | gzip -3 > aln-se.sam.gz
./bwa mem ref.fa read1.fq read2.fq | gzip -3 > aln-pe.sam.gz
BWA是用于针对大型参考基因组(例如人类基因组)绘制DNA序列的软件包。它由三种算法组成:BWA-BACKTRACK,BWA-SW和BWA-MEM。第一种算法是为Illumina序列设计的,最多可读取100bp,而其余两个则用于更长的序列,范围从70bp到几兆瓦。 BWA-MEM和BWA-SW具有相似的功能,例如对长读数和嵌合对齐的支持,但是通常建议使用最新的BWA-MEM,因为它更快,更准确。 BWA-MEM在70-100bp Illumina读取中的性能也比BWA-BackTrack更好。
对于所有算法,BWA首先需要构建参考基因组(索引命令)的FM索引。对齐算法由不同的子命令调用:BWA-BackTrack的Aln/Samse/Sampe , BWASW的BWA-SW和MEM用于BWA-MEM算法。
BWA在GPLV3下发布。最新的源代码可以在GitHub免费获得。可以在SourceForge下载发布的软件包。获取源代码后,只需使用make
将单个可执行的bwa
复制到所需的目标。构建BWA所需的唯一依赖性是Zlib。
自0.7.11以来,Bwakit提供了X86_64-Linux的预编译二进制文件。除了BWA之外,此自一致的软件包还配备了与BWA相关的和第三方的工具,可用于适当的BAM到FASTQ转换,映射到Alt Contigs,适配器修剪,重复标记,HLA键入,HLA键入和关联的数据文件。
详细用法与源代码一起使用的MAN页面中描述。您可以使用man ./bwa.1
在终端中查看MAN页面。可以在BWA网站上找到人类页面的HTML版本。如果您对BWA有疑问,则可以注册邮件列表,然后将问题发送到[email protected]。您也可以在Biostar和Seqanswers等论坛中提出问题。
Li H. and Durbin R.(2009)与Burrows-wheeler变换快速准确的短读对准。生物信息学, 25,1754-1760 。 [PMID:19451168]。 (如果使用BWA-BackTrack算法)
Li H. and Durbin R.(2010)与Burrows-Wheeler变换快速准确的长阅读对齐。生物信息学, 26,589-595 。 [PMID:20080505]。 (如果使用BWA-SW算法)
Li H.(2013)对齐序列读取,克隆序列和带有BWA-MEM的组件。 ARXIV:1303.3997V2 [q-bio.gn]。 (如果使用BWA-MEM算法或FastMap命令,或者想引用整个BWA软件包)
请注意,最后一个引用是托管在arxiv.org上的预印本。我没有计划在不久的将来将其提交给同行评审的日记。
尽管最佳算法和设置可能会有所不同,但BWA可与多种类型的DNA序列数据一起使用。以下列表提供了建议的设置:
Illumina/454/Iontorrent单端读取的读数长于〜70bp或组件的重叠群,最多可映射到密切相关的参考基因组:
bwa mem ref.fa reads.fq > aln.sam
Illumina单端读取的读数短于〜70bp:
bwa aln ref.fa reads.fq > reads.sai; bwa samse ref.fa reads.sai reads.fq > aln-se.sam
Illumina/454/iontorrent配对末端读取的读数超过〜70bp:
bwa mem ref.fa read1.fq read2.fq > aln-pe.sam
Illumina配对末端读取的读数短于〜70bp:
bwa aln ref.fa read1.fq > read1.sai; bwa aln ref.fa read2.fq > read2.sai
bwa sampe ref.fa read1.sai read2.sai read1.fq read2.fq > aln-pe.sam
PACBIO子读物或牛津纳米孔读取参考基因组:
bwa mem -x pacbio ref.fa reads.fq > aln.sam
bwa mem -x ont2d ref.fa reads.fq > aln.sam
对于各种错误率(或序列差异),建议将BWA-MEM用于查询序列的时间长于〜70bp。通常,由于缺少所有种子的机会很小,因此BWA-MEM更宽容,错误给出了更长的查询序列。如上所述,在非默认设置的情况下,BWA-MEM与牛津纳米孔一起使用,其测序错误率超过20%。
BWA-SW和BWA-MEM执行局部对齐。如果有易位,基因融合或长删除,则桥接断裂点的读取可能具有两个命中,在SAM输出中占据了两条线。借助BWA-MEM的默认设置,一条和只有一条线是主要的,并且被软剪裁;其他线条用0x800 SAM标志(补充对齐)标记并进行了硬剪切。
是的。自0.6.x以来,所有BWA算法都可以与总长度超过4GB的基因组一起使用。但是,单个染色体的时间不应大于2GB。
这是正确的。分配了映射质量,用于单个阅读,而不是读取对。可能会明确映射一个读取,但其伴侣串联重复,因此无法确定其准确的位置。
内部BWA将所有参考序列串联成一个长序列。读取可以映射到两个相邻参考序列的连接。在这种情况下,Bwa-backTrack将标记为未盖的读取(0x4),但是您会看到位置,雪茄和所有标签。 BWA-SW对齐也可能会出现类似的问题。 BWA-MEM没有这个问题。
是的,由于0.7.11,BWA-MEM正式支持映射到GRCH38+ALT。到目前为止,BWA-BackTrack和BWA-SW还没有适当地支持Alt映射。有关详细信息,请参见readme-alt.md。简而言之,建议使用bwakit(BWA的二元释放)来生成参考基因组和映射。
如果您对Alt Cortig不感兴趣,则可以在不进行后处理的情况下运行BWA-MEM。以这种方式产生的对齐方式非常接近与没有ALT重叠群的GRCH38的对齐。尽管如此,应用后处理有助于减少由Alt Contigs差异部分读取引起的虚假映射,并且还可以启用HLA键入。建议运行后处理脚本。