bwa 软件用法简介

欢迎关注"生信修炼手册"!

bwa 是一款将序列比对到参考基因组上的软件,包含了以下3种算法

  1. BWA-backtrack

  2. BWA-SW

  3. BWA-MEM


BWA-backtrack适合比对长度不超过100bp的序列;BWA-SWBWA-MEM适合于长度为70-1M bp的序列;其中BWA-MEM是最新开发的算法,对于高质量的测序数据,其比对的速度更快,精确度更高,对于70-100bp的reads, BWA-MEM算法在比对长度为70-100bp的序列时,效果比BWA-backtrack 算法的效果更好。总而言之,通常情况下,选择BWA-MEM算法就好。

bwa 的源代码存储在github上,链接如下

https://github.com/lh3/bwa

安装过程如下:

git clone https://github.com/lh3/bwa.git
cd bwa
make

安装好之后,会出现一个名为bwa的可执行文件,输入下面命令可以查看帮助信息

./bwa

Program: bwa (alignment via Burrows-Wheeler transformation)
Version: 0.7.17-r1188
Contact: Heng Li <[email protected]>
Usage:   bwa  [options]
Command: index         index sequences in the FASTA format
         mem           BWA-MEM algorithm
         fastmap       identify super-maximal exact matches
         pemerge       merge overlapping paired ends (EXPERIMENTAL)
         aln           gapped/ungapped alignment
         samse         generate alignment (single ended)
         sampe         generate alignment (paired ended)
         bwasw         BWA-SW for long queries
         shm           manage indices in shared memory
         fa2pac        convert FASTA to PAC format
         pac2bwt       generate BWT from PAC
         pac2bwtgen    alternative algorithm for generating BWT
         bwtupdate     update .bwt to the new format
         bwt2sa        generate SA from BWT and Occ
Note: To use BWA, you need to first index the genome with `bwa index'.
      There are three alignment algorithms in BWA: `mem', `bwasw', and
      `aln/samse/sampe'. If you are not sure which to use, try `bwa mem'
      first. Please `man ./bwa.1' for the manual.

可以看到由很多的子命令构成。

bwa软件的作用是将序列比对到参考基因组上,在比对之前,首先需要对参考基因组建立索引,命令如下:

bwa  index in.fasta

索引建立好之后,会生成5个文件,后缀分别为

  • bwt

  • pac

  • ann

  • amb

  • sa


下面是对小鼠基因组构建索引的示例

bwa index mm10.fasta
├── mm10.fasta
├── mm10.fasta.amb
├── mm10.fasta.ann
├── mm10.fasta.bwt
├── mm10.fasta.pac
└── mm10.fastq.sa

建立好参考基因组之后,就可以进行比对了。不同的比对算法,命令不同。

1. BWA-backtrack 算法

对应的子命令为aln/samse/sample
单端数据用法如下:

bwa aln ref.fa reads.fq > aln_sa.sai
bwa samse ref.fa aln_sa.sai reads.fq > aln-se.sam

双端数据用法如下:

bwa aln ref.fa read1.fq > aln1_sa.sai
bwa aln ref.fa read2.fq > aln2_sa.sai
bwa sampe ref.fa aln_sa1.sai aln_sa2.sai read1.fq read2.fq > aln-pe.sam

2. BWA-SW 算法

对应的子命令为bwasw, 基本用法如下

bwa bwasw ref.fa reads.fq > aln-se.sam
bwa bwasw ref.fa read1.fq read2.fq > aln-pe.sam

3. BWA-MEM` 算法

对应的子命令为mem, 基本用法如下

bwa mem ref.fa reads.fq > aln-se.sam
bwa mem ref.fa read1.fq read2.fq > aln-pe.sam

对于超长读长的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指的是参考基因组索引的名字,对于上面提供的小鼠的例子而言,参考基因组索引的名字为mm10.fasta, 注意是不包含后缀的。

默认用法都非常简单,有时还需要对参数进行调整,以mem子命令为例,常用的参数包括以下几个:

-t指定线程数,默认为1,增加线程数,会减少运行时间;-p 忽略第二个输入序列,默认情况下,输入一个序列文件认为是单端测序,输入两个序列文件则是双端测序,加上这个参数后,会忽略第二个输入序列文件,把第一个文件当做单端测序的数据进行比对;-Y参数对数据进行soft clipping, 当错配或者gap数过多比对不上时,会对序列进行切除,这里的切除并只是在比对时去掉这部分序列,最终输出结果中序列还是存在的,所以称为soft clipping

扫描关注微信号,更多精彩内容等着你!

bwa 软件用法简介_第1张图片


你可能感兴趣的:(bwa 软件用法简介)