BWA/BWT 比对软件
名称
bwa – Burrows-Wheeler Alignment Tool
内容摘要
描述
命令行与选项
SAM 比对格式
短序列比对注意事项
比对精确性
估计插入大小分布
内存需求
速度
Bwa-0.6中的改变
其他
作者
引用与授权
历史
摘要
b w a i n d e x r e f . f ab w a m e m r e f . f a r e a d s . f q > a l n - s e . s a m
b w a m e m r e f . f a r e a d 1 . f q r e a d 2 . f q > a l n - p e . s a m
b w a a l n r e f . f a s h o r t _ r e a d . f q > a l n _ s a . s a i
b w a s a m s e r e f . f a a l n _ s a . s a i s h o r t _ r e a d . f q > a l n - s e . s a m
b w a s a m p e r e f . f a a l n _ s a 1 . s a i a l n _ s a 2 . s a i r e a d 1 . f q r e a d 2 . f q > a l n - p e . s a m
b w a b w a s w r e f . f a l o n g _ r e a d . f q > a l n . s a m
描述
BWA是用于将低分叉序列比对到大的参考基因组比如人基因组的软件包。BWA主要是由三种算法组成:BWA-backtrack,BWA-SW和BWA-MEM。第一个算法是针对于illumina测序reads最多100bp的算法。后面两个主要是针对于从70bp到1Mbp的更长序列。BWA-MEM和BWA-SW拥有一些相同的特征例如 长reads支持和 序列分开模式。但是相对而言,更加推荐更新的BWA-MEM,因为可以更快和更准确在更高质量上比对。BWA-MEM相比较BWA-backtrack在70-100bp illumina reads上有更好的性能。对于所有的三种算法,BWA首先序列针对于参考基因组构建FM-index。(index命令)。针对于不同的算法接下来使用命令行:aln/samse/sampe 对于BWA-backtrack。bwasw对于BWA-SW和mem对于BWA-MEM算法。
命令行与选项
Index
b w a i n d e x [ - p p r e f i x ] [ - a a l g o T y p e ] < i n . d b . f a s t a >
index数据库序列以FASTA格式。
选项
-p STR 输出数据库的前缀[与db 文件名相同]
-a STR 算法用于构建BWT index。可以使用的选项:
is IS线性时间算法用于构建suffix array。需要5.37N内存,N是数据库的大小。IS算法相对较快,但是无法处理数据库大于2GB的数据。因为IS算法比较简单,作为默认值。目前IS算法的脚本由Yuta Mori从新植入。
Bwtsw BWT-SW中使用的算法。这个算法主要是针对于人类基因组。
mem b w a m e m [ - a C H M p P ] [ - t n T h r e a d s ] [ - k m i n S e e d L e n ] [ - w b a n d W i d t h ] [ - d z D r o p o f f ] [ - rs e e d S p l i t R a t i o ] [ - c m a x O c c ] [ - A m a t c h S c o r e ] [ - B m m P e n a l t y ] [ - O g a p O p e n P e n ] [ - Eg a p E x t P e n ] [ - L c l i p P e n ] [ - U u n p a i r P e n ] [ - R R G l i n e ] [ - v v e r b o s e L e v e l ] d b . p r e f i xr e a d s . f q [ m a t e s . f q ]
BWA-MEM 算法比对70bp-1Mbp的输入序列。简要的说,算法主要是通过最大精确匹配作为种子比对,然后基于Smith-Waterman算法进行仿射空位罚分。
如果mate.fq文件是缺失的和选项-p并未设置。这个命令说明数据为单端测序。如果mates.fa存在,命令行假设reads.fq的第i行与mates.fq的第i行形成read对。如果-p被使用,命令行假设reads.fq的2i行和2i+1行形成read对。这类文件被称为interleaved。在这种例子中,mates.fq文件被忽略。在paired-end 模式中,mem命令行会推断从一批reads中推断reads的方向和插入大小的分布。选项
-t INT 线程数目
-k INT 最小种子长度。少于INT的匹配将会被忽略。匹配的速度通常对于这个值不敏感,除非明显偏离20. [19]
-w INT 空值宽度。必要的说,gaps长于INT将不会被发现。需要注意最大gap长度同时受到评分矩阵和hit长度所影响。并不只由这个选项确定。[100]
-d INT off-diagonal-X-dropoff (z-dropoff)。如果最好和目前的延伸分数差距大于 |i-j|*A+INT,将停止延伸,其中i和j是被比对和参考基因组中的位置。A是匹配得分。Z-dropoff 类似于BLAST 中的X-dropoff,除了该算法中并没有空格罚分。Z-dropoff不仅避免了不必要的延伸,同时减少了在较差的延伸比对中的比对。 [100]
-r FLOAT 引发长度大于minSeedLen *FLOAT的重新搜索。这是启发式算法调节算法性能的关键参数。更大的值产生更少的seeds,导致更快的比对速度但是更低的准确性。[1.5]
-c INT 丢弃大于INT出现次数的MEM。这是一个不敏感参数。
-p 在paired-end 模式中,运行SW搜索得到缺失的命中。
-A INT 匹配得分。 [1]
-B INT 错配得分。序列的错误率估计方法:{0.75*exp[-log(4)*B/A]}. [4]
-o INT 空值罚分。 [-6]
-E INT 空值延伸罚分。一个长度为K 的罚分为 O+K*E
-L INT 裁剪罚分。-U INT 对于未配对read对罚分。对于未配对的read对BWA—MEM以scoreRead1+scoreRead2-INT进行评分。评分scoreRead1+scoreRead2-insertPenalty。比较这两种评分从而确定是否应该强制配对。 [9]
-p 假设第一个输入文件为interleaved 配对FASTA\Q文件。
-R STR 完成read group header行 ’\t‘可以在字符串中使用,将会在SAM文件中转换成SAM文件。read group ID也会附在输出文件每一个reads中。 【null】
-T INT 不要输出比对分数低于INT的比对。这个结果只影响最终结果。 【30】
-a 输出所有的比对以单端或未配对双端测序方式。
-c 将FASTA/Q的comment 追加到SAM输出中。选项可以将reads meta信息转移到SAM输出。注意FASTA/Q comment必须符合SAM特定要求。不正确的格式将导致不争取的SAM输出。
-H 使用大写H在SAM输出文件中,这个选项可以显著的减少输出文件的复杂度。当比对长或Bac序列时。
-M 标记短split hit为第二个。
-v INT 控制输出的冗长程度。这个选项并未在BWA完全被支持。理想的,值0 表示不输出到stderr。1表示只输出error。2表示warning和errror。3表示所有信息。4表示对于debug的更高信息。当选项是4时候,输出并不是SAM。 [3]