linux中bwa使用程序,序列比对BWA(Docker篇)

BWA,即Burrows-Wheeler-Alignment Tool。BWA 是一种能够将差异度较小的序列比对到一个较大的参考基因组上的软件包。首先通过BWT(Burrows-Wheeler Transformation,BWT压缩算法)为大型参考基因组建立索引,然后将reads比对到基因组。特点是快速、准确、省内存。它有三个不同的算法:

BWA-backtrack: 是用来比对 Illumina 的序列的,reads 长度最长能到 100bp。

BWA-SW: 用于比对 long-read ,支持的长度为 70bp-1Mbp;同时支持剪接性比对。

BWA-MEM: 推荐使用的算法,支持较长的read长度,同时支持剪接性比对(split alignments),但是BWA-MEM是更新的算法,也更快,更准确,且 BWA-MEM 对于 70bp-100bp 的 Illumina 数据来说,效果也更好些。

对于不熟悉Linux的人来说,安装BWA并不太容易,那有没有方法可以省去繁琐的安装步骤而直接使用BWA呢?答案是有的!Docker工具可以完美的决这个问题!

下载镜像并运行

安装好Docker后,搜索我们omicsclass提供的docker镜像,其中便有安装好BWA软件的镜像(下图均可左右拖动)。

$ docker search omicsclass

NAME                           DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED

omicsclass/gene-family         gene-family analysis docker image               2

omicsclass/rnaseq              RNA-seq analysis docker image build by omics…   1

omicsclass/bwa                 BWA v0.7.17 build by omicsclass                 0

omicsclass/samtools            samtools v1.10 build by omicsclass              0

omicsclass/isoseq3             isoseq3 v3.3.0 build by omicsclass              0

omicsclass/biocontainer-base   Biocontainers base Image centos7                0

omicsclass/blast-plus          blast+ v2.9.0                                   0

omicsclass/blastall            legacy blastall v2.2.26                         0

omicsclass/sratoolkit          SRAtoolkit v2.10.3 and aspera v3.9.9.177872     0

下载镜像。

$ docker pull omicsclass/bwa

Using default tag: latest

latest: Pulling from omicsclass/bwa

ab5ef0e58194: Already exists

417469905807: Already exists

ed09842cc19f: Already exists

f860268ff83f: Already exists

f87dd41136a6: Already exists

90091b4f5d91: Already exists

4d81fa76e64d: Pull complete

Digest: sha256:b2afe73fa4abbd4527d349ecd94ccafb9e06f719d5c12b3335b6bc1c8c397a3d

Status: Downloaded newer imageforomicsclass/bwa:latest

下载完成后可以检查一下。

$ docker images

REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE

omicsclass/samtools     latest              9373e18781bf        3 weeks ago         2.04GB

omicsclass/bwa          latest              b39d68bfa8e5        3 weeks ago         2.1GB

omicsclass/blast-plus   latest              0220cac51a6e        3 weeks ago         2.55GB

进入虚拟机。

$ docker run --rm -v /d/bwa:/work -it omicsclass/bwa:latest##这里我使用的Docker是windows Toolbox版本

######################################################

#      欢迎使用组学大讲堂提供的docker镜像            #

#      问题交流请访问:www.omicsclass.com            #

######################################################

Linux新手建议学习课程:

--> https://www.omicsclass.com/article/702

搭建实验室生信分析平台与docker使用详情见课程:

--> https://www.omicsclass.com/article/1181

BWA使用(BWA-MEM算法)

在进行 reads 的比对前,需要对 fasta 文件构建 FM-index。

用法和参数如下:

Usage:bwa index [ –p prefix ] [ –a algoType ]

Options:

-p STR 输出数据库的前缀;【默认和输入的文件名一致,输出的数据库在其输入文件所在的文件夹,并以该文件名为前缀。】

-a [is|bwtsw] 构建index的算法,有以下两个选项:

-a is 是默认的算法,虽然相对较快,但是需要较大的内存,当构建的数据库大于2GB的时候就不能正常工作了;

-a bwtsw 对于短的参考序列式不工作的,必须要大于等于10MB, 但能用于较大的基因组数据,比如人的全基因组。

bwa index 指令更多的用法及 options,通过bwa index 命令来查看

# 根据reference genome data(e.g. ref.fa) 建立 Index File:

$ bwa index ref.fa -p genome# 可以不加-p genome,这样建立索引都是以ref.fa为前缀

构建出参考基因组的 FM-index,建立好参考基因组之后,就可以进行比对了。对应的子命令为mem, 基本用法如下

Usage: bwa mem [options] ref.fa reads.fq [mates.fq]

Options:

-t INT 线程数,默认是1,增加线程数,会减少运行时间。

-M  将 shorter split hits 标记为次优,以兼容 Picard’s markDuplicates 软件。

-p 若无此参数:输入文件只有1个,则进行单端比对;若输入文件有2个,则作为paired reads进行比对。若加入此参数:则仅以第1个文件作为输入(会忽略第二个输入序列文件,把第一个文件当做单端测序的数据进行比对),该文件必须是read1.fq和read2.fa进行reads交叉的数据。

-R STR 完整的read group的头部,可以用 '\t' 作为分隔符, 在输出的SAM文件中被解释为制表符TAB. read group 的ID,会被添加到输出文件的每一个read的头部。

-T INT   当比对的分值比 INT 小时,不输出该比对结果,这个参数只影响输出的结果,不影响比对的过程。

-a 将所有的比对结果都输出,包括 single-end 和 unpaired paired-end的 reads,但是这些比对的结果会被标记为次优。

-Y 对数据进行soft clipping, 当错配或者gap数过多比对不上时,会对序列进行切除,这里的切除并只是在比对时去掉这部分序列,最终输出结果中序列还是存在的,所以称为soft clipping。

$ 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\tID:{library}\tLB:{library}\tPL:Illumina\tPU:{sample}\tSM:{sample}\" ref.fa read1.fastq read2.fastq > mem-pe.sam 2> ./mem-pe.log

对于超长读长的reads,比如PacBio和Nanopore测序仪产生的reads,

用法如下:

$ bwa mem -x pacbio ref.fa reads.fq > aln.sam

$ bwa mem -x ont2d ref.fa reads.fq > aln.sam

上述的代码中, ref.fa指的是参考基因组索引的名字。

8dbdcf4544ef

更多技能学习链接:

更多生物信息课程:

1. 文章越来越难发?是你没发现新思路,基因家族分析发2-4分文章简单快速,学习链接:基因家族分析实操课程、基因家族文献思路解读

2. 转录组数据理解不深入?图表看不懂?点击链接学习深入解读数据结果文件,学习链接:转录组(有参)结果解读;转录组(无参)结果解读

3. 转录组数据深入挖掘技能-WGCNA,提升你的文章档次,学习链接:WGCNA-加权基因共表达网络分析

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
《基于GPU的BWA序列比对算法分析与加速》是一研究基于图形处理器(GPU)加速BWA序列比对算法的论文。BWA是一种常用的高通量测序数据比对算法,用于将测序数据与参考基因组进行比对。然而,BWA算法处理大规模测序数据时存在计算量大、性能低下等问题。因此,该论文探索了基于GPU的加速算法,旨在提高BWA算法的计算效率。 论文首先分析了BWA算法的思想,包括Seed-and-Extend方法和BWT索引结构。然后介绍了GPU的并行计算架构和CUDA编程模型,指出了GPU在并行计算方面的优势。 接着,该论文提出了一种基于GPU的BWA算法优化方案。通过将算法的计算任务划分为多个并行任务,在GPU上并行执行,可以大大提高计算效率。同时,为了减小数据传输的开销,该论文使用了一种基于shared memory的优化策略,将数据存储在GPU内存,减少了与主机内存之间的数据传输。 为了验证提出的加速算法的效果,论文进行了大量的实验,并比较了加速算法和传统算法在性能方面的差异。实验结果表明,基于GPU的BWA算法能够大幅度提高比对速度和计算效率,尤其是在处理大规模测序数据时表现更加突出。 综上所述,《基于GPU的BWA序列比对算法分析与加速》论文通过研究基于GPU的加速算法,有效地优化了BWA序列比对算法的性能。该研究对于加速大规模测序数据的处理具有重要的实际意义,可以为基因组学和生物信息学领域的研究提供更快速、高效的测序数据比对工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值