本文全文摘抄于簡書:序列比對BWA(Burrows-Wheeler Aligner)
僅用于方便個人學(xué)習(xí),如有侵權(quán),請?zhí)嵝褎h除,謝謝
序列比對BWA(Burrows-Wheeler Aligner)
BWA (Burrows-Wheeler Aligner)
BWA主要是將reads比對到大型基因組上,主要功能是:序列比對。首先通過BWT(Burrows-Wheeler Transformation,BWT壓縮算法)為大型參考基因組建立索引,然后將reads比對到基因組。特點(diǎn)是快速、準(zhǔn)確、省內(nèi)存。由三種類似算法組成:BWA-backtrack,BWA-SW和BWA-MEM。首推BWA-MEM。
三種算法的適用范圍
- BWA-backtrack:reads長度<70bp時,推薦本算法,建議輸入reads長度 < 100bp。
- BWA-SW:在reads具有頻繁的gap時,比對更敏感,推薦本算法。reads長度一般為70bp-1Mbp,支持long-reads,split alignment。
- BWA-MEM(首推):在reads長度在70bp-1Mbp范圍時,推薦本算法(除了上面兩種情況)。支持long-reads,split alignment。
語法
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的原始測序數(shù)據(jù)。
BWA參數(shù)
- 序列比對BWA之參數(shù):index, mem, aln, samse, sampe, bwasw
SAM格式
short-reads比對
- 比對精度
- 評估插入長度分布
- 比對速度
比對速度很大程度取決于請求序列的錯誤率(r)。當(dāng)接近完全匹配時,BWA速度最快。當(dāng)允許多個失配時,BWA需要尋找更多的候選位點(diǎn)。允許太多失配時,不建議采用BWA。
BWA-0.6的改變
0.6版本以來,BWA可以處理長度在4G以上的基因組。這樣有可能將正負(fù)鏈互補(bǔ)的基因組序列整合到一個索引(FM-index)中去,可以使BWA-short和BWA-SW更快。
最新版本BWA-SW同樣可以處理長度大于100bp的pair-end reads。與BWA-short相比,BWA-SW對高度唯一的reads準(zhǔn)確性更高和相對更長的插入與結(jié)構(gòu)突變時更穩(wěn)健。盡管如此,從許多次優(yōu)比對中選取最優(yōu)比對時,BWA-short更好。
其他情況
- 一個read有多部分匹配
BWA-MEM / BWA-SW可以報告單個reads分段比對到基因組上不同位置。在結(jié)構(gòu)變異,基因融合或參考序列錯誤組合等情況下,多部分比對是可能的。這需要后續(xù)分析??墒褂眠x項(xiàng)'-M'將附加匹配標(biāo)記為次要。 - BWA是否可以發(fā)現(xiàn)嵌合reads(chimeric reads)?
是的,BWA-SW和BWA-MEM都能找到嵌合reads。 BWA通常為每次讀取報告一個比對,但如果read/config是嵌合reads,則可以輸出兩個或多個比對。(我想:應(yīng)與上面的1相同) - BWA是否分析SNP?
不,BWA只比對。其SAM格式輸出結(jié)果,可通過如samtools和GATK分析SNP。 - paired-end數(shù)據(jù)中一條reads具有很高的比對質(zhì)量(high mapping quality),另一條是0
這是對的。比對質(zhì)量是分配給單個read,而不是讀read pair。 - BWA是否能處理長度超過4GB的參考序列?
是。自0.6.x以來,所有BWA算法都可以處理總長度超過4GB的基因組。但是,單個染色體不應(yīng)超過2GB。 - 測序錯誤的容忍度是多少?
Bwa-back主要為reads錯誤率小于2%而設(shè)計??赏ㄟ^命令行參數(shù)調(diào)整算法對錯誤率的容忍度,但其性能會迅速降低。對于Illumina讀取,bwa-backtrack可以在比對前將3'端低質(zhì)量堿基修剪,3'尾部有高錯誤率的很多reads能夠完成比對,這是Illumina數(shù)據(jù)的典型特征。
BWA-SW和BWA-MEM在給定較長對準(zhǔn)的情況下都容忍更多的錯誤。仿真表明,如果100bp對齊誤差為2%,200bp誤差為3%,500bp誤差為5%,1000bp或更長對齊誤差為10%,則仿真結(jié)果可能會很好。 - 有reads比對出染色體末端,并被標(biāo)記為未映射(標(biāo)志0x4)。這里發(fā)生了什么?
BWA內(nèi)部實(shí)現(xiàn)時,會將所有參考序列先連接成一個長序列。reads可以被映射到兩個相鄰參考序列的交點(diǎn)。在這種情況下,BWA會將讀取標(biāo)記為未映射,不過你會看到位置,CIGAR和所有標(biāo)記。一個更好的解決方案是選擇一個替代的位置或者調(diào)整最終的比對方式,但是這在編程中非常復(fù)雜,目前尚未實(shí)現(xiàn)。
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]