BWA 序列比对

高通量测序技术突飞猛进倒退迅猛,产生了数亿级大数据,生命的世界由DNA序列ATCG组成,正如计算机的世界由二进制01组成。

高通量测序的工作本质是把一本生命字典撕成碎片,而后每人手里拿一片,招募成千上万人同时测量各自手中的片段,而后依据参考字典进行拼接,这样能够疾速的取得全部内容。

BWA全称是Burrows Wheeler Aligner,目前高通量测序中应用最宽泛的一款软件。短序列比对是将测序失去的短片段在回帖到基因组上,像目前风行的RNAseq剖析,外显子剖析,全基因组WGS等都须要利用短序列比对。


本篇笔记分享BWA软件的应用办法与流程简介,同时探讨针对大规模参考基因组的并行计算和性能优化形式,比方小麦等参考基因组简单宏大的状况,利用切分片段和多线程技术疾速进行序列比对,并补充BWA解决较大参考基因组的几种办法。

下载与装置

  • 形式一:应用包管理器主动装置

(实用于Linux和macOS)

关上终端窗口,对于Linux用户,应用实用于你的发行版的包管理器装置BWA。例如,对于Ubuntu或Debian用户,能够运行以下命令:

sudo apt-get updatesudo apt-get install bwa

对于其余Linux发行版,请应用相应的包管理器命令进行装置。对于macOS用户,能够应用Homebrew装置BWA。在终端中运行以下命令:

brew updatebrew install bwa

验证BWA是否装置胜利。在终端中运行以下命令,查看版本号:

bwa version
  • 形式二:手动装置BWA

(实用于任何操作系统)

关上浏览器,拜访BWA的官方网站:https://github.com/lh3/bwa。在页面上找到并点击"Clone or download"按钮,而后点击"Download ZIP"将BWA的源代码下载到本地。

关上终端窗口,在命令行中切换到BWA源代码的目录,例如:

cd /path/to/bwa

在终端中输出以下命令编译和装置BWA:

makesudo make install
  • 形式三:Github开发者
git clone https://github.com/lh3/bwa.gitcd 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

应用办法与流程简介

参考基因组与索引文件

进行 reads 的比对前,须要对 fasta 文件构建index索引,其中ref.fa是参考基因组序列,genome是输入索引的前缀,办法如下:

bwa index ref.fa -p genome

mem序列比对

应用BWA的mem命令进行测序数据比对,因而,对于一条序列的不同区域可能会产生多种最优匹配后果,这对于long reads 来说尤为重要。非凡状况下,能够应用 –M 选项来将 shorter split hits 标记为次优。

$ bwa mem ref.fa reads.fq > mem-se.sam$ bwa mem ref.fa read1.fq read2.fq > mem-pe.sam$ bwa mem -t 4 -M -R "\@RG\t                      ID:{library}\t                      LB:{library}\t                      PL:Illumina\t                      PU:{sample}\t                      SM:{sample}\" \ref.fa read1.fastq read2.fastq > mem-pe.sam 2> ./mem-pe.log"$ bwa mem reference.fasta read1.fastq read2.fastq > alignment.sam

在以上命令中,reference.fasta是参考基因组文件,read1.fastq和read2.fastq是双端测序数据的FASTQ格式文件。比对后果将通过重定向符号保留到alignment.sam文件中。

BWA-MEM算法是BWA中最罕用和最实用于长读段的比对算法,它可能对较长的测序读段执行精确的比对,并具备较好的插入片段和构造变异辨认能力。

-R 设置reads标头,也就是sam文件中的RG局部,为什么要设置RG表头呢,因为同一样品可能包含多个测序后果,来自不同lane,不同文库,或者不同样品的比对后果合并到同一个文件中进行解决,就须要通过RG进行标记辨别。

RG每个标记用冒号宰割键和值,不同标记用 '\t' 分隔。例如'@RG\tID:foo\tSM:bar\tLB:library1'

-t 设置线程数,多线程能够显著进步比对效率,对于多核服务器进步线程有利于缩短计算工夫。

BWA优化策略与并行计算

BWA-MEM算法在解决大数据量时能够采纳一些优化策略和并行化办法来进步比对效率,上面分享几种罕用的优化策略和并行化办法:

多线程解决

BWA-MEM能够通过设置线程数来进行并行化,将比对任务分配给多个线程同时执行,从而充分利用多核处理器的计算能力。能够应用BWA的-t参数指定线程数。例如:

bwa mem -t 8 reference.fasta read1.fastq read2.fastq > alignment.sam

子区域分析

对于较大的参考基因组,能够将其划分为多个子区域,并应用多个BWA-MEM实例并行比对各个子区域的测序数据。而后能够通过合并子区域的比对后果来取得整体的比对后果。

内存限度

BWA-MEM默认应用较大的内存来解决测序数据,但在解决大数据量时,能够通过调整BWA的-m参数来限度内存应用。依据理论状况,能够适当缩小内存限度,从而节约内存资源并进步比对速度。

间接存储比对后果

默认状况下,BWA-MEM会将比对后果存储在内存中,并在全副比对实现后写入输入文件。对于大数据量,能够通过设置-T参数,间接将比对后果写入磁盘文件,防止过多的内存占用。


这些优化策略和并行化办法能够依据理论需要和硬件配置进行调整和利用,以进步BWA-MEM算法在解决大数据量时的比对效率。同时,还能够思考应用其余工具如SAMtools、Picard等进行后续的数据处理和剖析,以实现更高效的数据处理流程。

如何解决较大的参考基因组?

BWA-MEM算法能够解决较大的参考基因组,次要通过以下几种形式进行解决:

索引压缩:

BWA-MEM会在建设参考基因组索引时进行压缩,以减小索引文件的大小。这样能够升高内存占用,并进步解决大基因组的效率。

负载平衡:

BWA-MEM会主动将较大的参考基因组宰割成多个较小的区域,而后针对每个区域进行比对。这种负载平衡的策略能够无效地缩小内存占用和减速比对过程。

多线程解决:

BWA-MEM反对多线程解决,能够将比对任务分配给多个线程并行执行。这样能够充分利用多核处理器的计算能力,进步解决大基因组的速度。

辅助软件:

在解决较大的参考基因组时,能够借助其余辅助软件来提高效率。例如,能够应用Picard工具对参考基因组进行预处理,如划分为多个子区域,从而充分利用零碎的多核解决能力。


通过这些解决形式,BWA-MEM能够解决较大的参考基因组,并具备较好的比对效率和准确性。在应用BWA-MEM进行较大基因组的比对时,能够依据理论状况进行参数配置和优化,以获得最佳的比对后果和性能。

参考资料:https://zhuanlan.zhihu.com/p/36267250https://www.jianshu.com/p/3b86615d647bhttps://github.com/lh3/bwa#type

本文由mdnice多平台公布