名稱
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]