BWA的命令總結

BWA是一種能夠將低差異度的序列比對到較大的參考基因組上的軟件。常常被用來處理質控後的clean reads,通過reads與參考序列比對,生成儲存變異信息的sam或bam文件。目前BWA存在3種比對算法,可支持長度在1Mb以內的reads 與參考基因組的比對。

bwa的3種算法:
BWA-backtrack: 專門針對100bp以下的illumina測序數據 (aln/samse/sampe)
BWA-SW:70bp-1Mbp、支持可變剪切(bwasw)
BWA-MEM:70bp-1Mbp、支持可變剪切(mem)

任何一種算法,BWA都需要首先對"參考基因組"建立FM-index (bwa-index)

1. 建立參考基因組的索引

無論選擇哪一種比對算法,都需要對待使用的參考基因組建立索引。
bwa index的用法和參數:

bwa index [-p prefix] [-a algoType] <in.db.fasta>
-p  #輸出數據庫的前綴,默認與輸入文件名一致
-a  #設置參考基因組構建index的算法(有is 和 bwtsw兩種)

簡要介紹bwa構建參考基因組index的兩種算法:
-is 用於構建後綴數組的線性時間算法:缺點--比較耗內存(需要參考基因組5.37倍的內存);優點--速度快。is是構建index的默認算法,但是不適合 “參考基因組” 大於2GB的文件。
-bwtsw 使用BWT-SW算法,多用於人類基因組。

2. 三種不同比對算法的使用

2.1 BWA-MEM

在reads中劃分seed區域,使用seed序列與建立過索引的參考基因組比對,選擇 maximal exact matches(MEMs) 的位置作爲reads在參考基因組上的正確比對區域(seed alignment),然後在此基礎上通過affine-gap Smith-Waterman算法在比對區域附近延伸(seed extension)。

bwa mem [options] ref.fa reads.fq [mates.fq]
-p pair-end模式參數 ##適應於不同的應用場景:(1)該參數不存在,fastq文件只有reads.fq:reads.fq會被默認爲single-end數據;(2)該參數不存在,fastq文件有reads.fq 和mates.fq,軟件默認reads.fq 和mates.fq爲paired-end mode數據;(3)該參數存在,fastq文件只有reads.fq:read.fq 中的 第 2i-th 和 第 (2i + 1)-th 的 reads 組成一個 read 對 ;(4)該參數存在,astq文件有reads.fq 和mates.fq,軟件默認忽略掉mates.fq,認爲read.fq 中的 第 2i-th 和 第 (2i + 1)-th 的 reads 組成一個 read 對 。
-M 兼容Picard’s markDuplicates的參數 ##當bam文件中存在一條read比對到參考基因組上不同位置時,Picard的markDuplicates工具不能正常運行,但由於bwa-mem採用的是局部比對的算法,不可避免得會出現, query 序列的多個不同的部位出現各自的最優匹配,導致 reads 有多個最佳匹配位點,因此使用-M參數將shorter split hits 標記爲次優,以兼容 Picard’s markDuplicates 插件。
-t INT 線程數(默認爲1) ##線程數目越大,運行速度越快
-k INT minSeedLen(最小seed長度,默認爲19)## seed正確匹配參考序列長度小於INT時,該匹配刪除
-w INT 最大gap長度(默認爲100) ## 刪除gap大於INT的匹配,不過,需要了解的是:如果gap長度過大,也會由於在記分矩陣中罰分甚高,影響最終匹配分值而被刪除
-d INT 停止延伸參數(默認爲100)## 最佳匹配的得分與當前匹配得分之差高於|i-j|*A+INT時,終止seed extension(其中i和j分別爲query起始位置和reference的當前位置,A爲matching得分),該參數的存在可以避免非必要的seed extension。
-r FLOAT seedSplitRatio,啓動re-seeding的控制參數 (默認爲1.5) ## MEM區域長度大於 minSeedLen*FLOAT時纔會啓動re-seeding。該數值越大,產生的seeds越少,因而會加快比對速度但是比對準確度卻降低了
-c INT maxOcc (默認爲10000)## 指定MEM的最大出現頻次,倘若在基因組中重複多次出現說明不可信,將被丟掉
-A INT matchScore(默認爲1)## 替換記分矩陣中,正確匹配時得分爲 INT
-B INT mmPenalty(默認爲4)## 替換記分矩陣中,錯誤匹配時罰分爲 INT
-o INT gapOpenPen(默認爲6) ## 替換記分矩陣中,gapOpen罰分爲 INT
-E INT gapExtPen (默認爲1)## 替換記分矩陣中,gapExtension罰分爲 INT
-L INT clipPen (默認爲5) ## 剪切罰分爲INT
-U INT 非配對 read pair 罰分(默認爲9) ## BWA-MEM scores an unpaired read pair as scoreRead1+scoreRead2-INT and scores a paired as scoreRead1+scoreRead2-insertPenalty. It compares these two scores to determine whether we should force pairing
-R STR 完整的read group的頭部 ## read group 的ID,會被添加到輸出文件的每一個read的頭部
-T INT 最低mapping分值 (默認爲30)## mapping得分越高,read和參考序列越匹配,低於INT的比對被刪除
-a 輸出single-end 和 unpaired paired-end的 reads ## 這些比對的結果會被標記爲次優
-C Append ## 將FASTA/Q第一行中的註釋信息輸出到SAM文件,如barcode信息(注意格式符合SAM格式,否則程序會報錯)
-H sam結果輸出中使用hard clipping ’H’ ## 減少冗餘(尤其在做長片段比對和細菌人工染色體序列的比對時)
-v INT 控制輸出內容(默認爲3)## 0: 禁止將stderr輸出;1:只輸出error信息;2:只輸出errors和warnings;3:所有消息均輸出;4:在3的基礎上,輸出更多debugging信息(該模式)

2.2 後記

原本想要把BWA的3種算法都在這篇文章裏整理一下,沒想到週末想要偷懶,以後再續記吧,畢竟bwa mem是目前用得最多的工具。

PS
BWT算法的瞭解鏈接(https://www.jianshu.com/p/51a7fc499d28
Smith-Waterman算法的瞭解鏈接(https://www.jianshu.com/p/85465f32273a
SAM&BAM文件瞭解鏈接(softclip和hardclip)https://www.jianshu.com/p/3295e179ef14

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章