BWA (Burrows-Wheeler Aligner)
BWA主要是將reads比對(duì)到大型基因組上字支,主要功能是:序列比對(duì)。首先通過(guò)BWT(Burrows-Wheeler Transformation涛酗,BWT壓縮算法)為大型參考基因組建立索引,然后將reads比對(duì)到基因組扰才。特點(diǎn)是快速仑濒、準(zhǔn)確汽馋、省內(nèi)存。由三種類(lèi)似算法組成:BWA-backtrack粱年,BWA-SW和BWA-MEM售滤。首推BWA-MEM。
三種算法的適用范圍
- BWA-backtrack:reads長(zhǎng)度<70bp時(shí)台诗,推薦本算法完箩,建議輸入reads長(zhǎng)度 < 100bp。
- BWA-SW:在reads具有頻繁的gap時(shí)拉队,比對(duì)更敏感弊知,推薦本算法。reads長(zhǎng)度一般為70bp-1Mbp粱快,支持long-reads秩彤,split alignment。
- BWA-MEM(首推):在reads長(zhǎng)度在70bp-1Mbp范圍時(shí)事哭,推薦本算法(除了上面兩種情況)漫雷。支持long-reads,split alignment鳍咱。
語(yǔ)法
- bwa index ref.fa #首先建立基因組索引
- bwa mem ref.fa reads.fq > aln-se.sam # 調(diào)用BWA-MEM
- bwa mem ref.fa read1.fq read2.fq > aln-pe.sam # 調(diào)用BWA-MEM
- bwa aln ref.fa short_read.fq > aln_sa.sai # 調(diào)用BWA-backtrack
- bwa samse ref.fa aln_sa.sai short_read.fq > aln-se.sam # 調(diào)用BWA-backtrack
- bwa sampe ref.fa aln_sa1.sai aln_sa2.sai read1.fq read2.fq > aln-pe.sam # 調(diào)用BWA-backtrack
- bwa bwasw ref.fa long_read.fq > aln.sam # 調(diào)用BWA-SW
- 注意:BWA輸入的是fastq/fq的原始測(cè)序數(shù)據(jù)降盹。
BWA參數(shù)
- 序列比對(duì)BWA之參數(shù):index, mem, aln, samse, sampe, bwasw
SAM格式
short-reads比對(duì)
- 比對(duì)精度
- 評(píng)估插入長(zhǎng)度分布
- 比對(duì)速度
比對(duì)速度很大程度取決于請(qǐng)求序列的錯(cuò)誤率(r)。當(dāng)接近完全匹配時(shí)谤辜,BWA速度最快蓄坏。當(dāng)允許多個(gè)失配時(shí),BWA需要尋找更多的候選位點(diǎn)丑念。允許太多失配時(shí)涡戳,不建議采用BWA。
BWA-0.6的改變
0.6版本以來(lái)渠欺,BWA可以處理長(zhǎng)度在4G以上的基因組妹蔽。這樣有可能將正負(fù)鏈互補(bǔ)的基因組序列整合到一個(gè)索引(FM-index)中去,可以使BWA-short和BWA-SW更快。
最新版本BWA-SW同樣可以處理長(zhǎng)度大于100bp的pair-end reads胳岂。與BWA-short相比编整,BWA-SW對(duì)高度唯一的reads準(zhǔn)確性更高和相對(duì)更長(zhǎng)的插入與結(jié)構(gòu)突變時(shí)更穩(wěn)健。盡管如此乳丰,從許多次優(yōu)比對(duì)中選取最優(yōu)比對(duì)時(shí)掌测,BWA-short更好。
其他情況
- 一個(gè)read有多部分匹配
BWA-MEM / BWA-SW可以報(bào)告單個(gè)reads分段比對(duì)到基因組上不同位置产园。在結(jié)構(gòu)變異汞斧,基因融合或參考序列錯(cuò)誤組合等情況下,多部分比對(duì)是可能的什燕。這需要后續(xù)分析粘勒。可使用選項(xiàng)'-M'將附加匹配標(biāo)記為次要屎即。 - BWA是否可以發(fā)現(xiàn)嵌合reads(chimeric reads)庙睡?
是的,BWA-SW和BWA-MEM都能找到嵌合reads技俐。 BWA通常為每次讀取報(bào)告一個(gè)比對(duì)乘陪,但如果read/config是嵌合reads,則可以輸出兩個(gè)或多個(gè)比對(duì)雕擂。(我想:應(yīng)與上面的1相同) - BWA是否分析SNP啡邑?
不,BWA只比對(duì)井赌。其SAM格式輸出結(jié)果谤逼,可通過(guò)如samtools和GATK分析SNP。 - paired-end數(shù)據(jù)中一條reads具有很高的比對(duì)質(zhì)量(high mapping quality)族展,另一條是0
這是對(duì)的森缠。比對(duì)質(zhì)量是分配給單個(gè)read,而不是讀read pair仪缸。 - BWA是否能處理長(zhǎng)度超過(guò)4GB的參考序列贵涵?
是。自0.6.x以來(lái)恰画,所有BWA算法都可以處理總長(zhǎng)度超過(guò)4GB的基因組宾茂。但是,單個(gè)染色體不應(yīng)超過(guò)2GB拴还。 - 測(cè)序錯(cuò)誤的容忍度是多少跨晴?
Bwa-back主要為reads錯(cuò)誤率小于2%而設(shè)計(jì)∑郑可通過(guò)命令行參數(shù)調(diào)整算法對(duì)錯(cuò)誤率的容忍度端盆,但其性能會(huì)迅速降低怀骤。對(duì)于Illumina讀取,bwa-backtrack可以在比對(duì)前將3'端低質(zhì)量堿基修剪焕妙,3'尾部有高錯(cuò)誤率的很多reads能夠完成比對(duì)蒋伦,這是Illumina數(shù)據(jù)的典型特征。
BWA-SW和BWA-MEM在給定較長(zhǎng)對(duì)準(zhǔn)的情況下都容忍更多的錯(cuò)誤焚鹊。仿真表明痕届,如果100bp對(duì)齊誤差為2%,200bp誤差為3%末患,500bp誤差為5%研叫,1000bp或更長(zhǎng)對(duì)齊誤差為10%,則仿真結(jié)果可能會(huì)很好璧针。 - 有reads比對(duì)出染色體末端嚷炉,并被標(biāo)記為未映射(標(biāo)志0x4)。這里發(fā)生了什么探橱?
BWA內(nèi)部實(shí)現(xiàn)時(shí)渤昌,會(huì)將所有參考序列先連接成一個(gè)長(zhǎng)序列。reads可以被映射到兩個(gè)相鄰參考序列的交點(diǎn)走搁。在這種情況下,BWA會(huì)將讀取標(biāo)記為未映射迈窟,不過(guò)你會(huì)看到位置私植,CIGAR和所有標(biāo)記。一個(gè)更好的解決方案是選擇一個(gè)替代的位置或者調(diào)整最終的比對(duì)方式车酣,但是這在編程中非常復(fù)雜曲稼,目前尚未實(shí)現(xiàn)。
本文主要參考BWA官方說(shuō)明文檔及BWA手冊(cè)
Published Articles:
- The short read alignment component (bwa-short) has been published:
Li H. and Durbin R. (2009) Fast and accurate short read alignment with Burrows-Wheeler Transform. Bioinformatics, 25:1754-60. [PMID: 19451168] - If you use BWA-SW, please cite:
Li H. and Durbin R. (2010) Fast and accurate long-read alignment with Burrows-Wheeler Transform. Bioinformatics, Epub. [PMID: 20080505] - If you use the fastmap component of BWA, please cite:
Li H. (2012) Exploring single-sample SNP and INDEL calling with whole-genome de novo assembly. Bioinformatics, 28, 1838-1844. [PMID: 22569178]