关于程序员:BWA序列比对方法丨针对较大基因组的并行计算和性能优化方式利用多线程和负载均衡策略提高效率

39次阅读

共计 3081 个字符,预计需要花费 8 分钟才能阅读完成。

BWA 序列比对

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

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

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


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

下载与装置

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

(实用于 Linux 和 macOS)

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

sudo apt-get update
sudo apt-get install bwa

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

brew update
brew install bwa

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

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

(实用于任何操作系统)

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

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

cd /path/to/bwa

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

make
sudo make install
  • 形式三:Github 开发者
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

应用办法与流程简介

参考基因组与索引文件

进行 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/36267250
https://www.jianshu.com/p/3b86615d647b
https://github.com/lh3/bwa#type

本文由 mdnice 多平台公布

正文完
 0