生物信息百Jia軟體(一):bwa
來自專欄 基因學院
編者按
BWA應該是目前高通量測序中使用最廣泛的一款軟體了,可以說,是學習生物信息學必須掌握的一款工具。短序列比對是高通量測序的核心,後續大量的分析都是基於短序列比對的結果。
一、功能分類:
短序列比對二、軟體官網:
https://sourceforge.net/projects/bio-bwa/
三、軟體介紹:
隨著以illumina為主的高通量測序技術的流行,短序列比對成為二代測序分析中的核心分析,短序列比對也就是將測序得到的短片段在回帖到基因組上,這個過程也被稱為mapping。mapping的結果包含了所有的信息,後續所有的分析都是基於這個mapping的結果。像目前流行的RNAseq分析,外顯子分析,全基因組WGS等都需要利用短序列比對,其實序列拼接裡面也是首先進行短序列比對。可以說如果想分析二代測序的數據,就必須進行短序列比對。而在眾多的短序列比對軟體中,BWA幾乎已經成為默認的行業標準。隨著三代長片段測序技術的興起,bwa也在進步,最新版本的軟體改進了很多演算法,增加了很多新功能。之前的版本不支持長reads,不能進行split reads的比對,因此在RNAseq中存在可變剪切,不能使用bwa比對。不過目前最新版本的bwa都解決了這些功能。
四、下載安裝:
conda install -y bwa
五、軟體使用:
直接敲bwa,彈出軟體選項參數。比對還是分成兩大步,建立索引,也叫做建庫,然後是比對。首先,利用bwa index可以建立索引,輸入參考序列的fasta格式文件,
-a 指定建立索引的演算法,bwtsw,is或者rb2,以前沒有rb2,而是div。is還是適合小於2G的基因組,bwtwt是大於10M的基因組才行,這個地方不要選錯了,細菌基因組一般都小於10M,只能用is演算法,人基因組是3G,只能用bwtsw,處於中間的選擇哪個都可以。
-p 選項是輸出前綴,一般不用設置,就是在參考序列名字後面多出很多文件。
bwa index human_g1k_v37.fasta
這樣就開始建立索引,根據文件大小和機器配置不同,需要的時間也不同,對於人的基因組序列,可能需要幾個小時,因此很多網站在提供參考序列的時候,連索引文件也一起提供,下載索引比自己建立索引文件要快很多。所以建立完成之後就可以進行比對了,一般是兩條pairend的reads。當然其他測序平台的單端reads也可以。現在使用bwa-mem演算法只需要兩步就行了。bwa mem有很多選項參數,這裡我們介紹幾個比較重要的。
-R 設置reads標頭,放到一對引號中,也就是sam文件中的RG部分,為什麼要設置RG表頭呢,因為同一樣品可能包括多個測序結果,來自不同lane,不同文庫,或者不同樣品的比對結果合併到同一個文件中進行處理,就需要通過RG進行標記區分。RG每個標記用冒號分割鍵和值,不同標記用 分隔。例如@RG ID:foo SM:bar LB:library1-M 這個選項也比較重要,因為bwa men在比對的時候,對於一條序列同時比對到基因組不同區域的情況,bwa認為都是最優匹配,但是會與Picard tools不兼容,影響後面GATK檢測,這個時候可以設置-M選項,將較短的比對標記為此優,與picard兼容。
-t 設置線程數,多線程可以顯著提高比對效率,因為數據比對大,影響還是非常顯著的,現在整個行業想進各種方法來提高比對效率,包括提升硬體,在CPU底層優化,改進軟體演算法等,因為現在一個完整的人基因組比對還需要幾個小時,GATK還需要一兩天,如果提高計算速度,是非常有意義的。
-T ,給定一個分值,當比對的分值比設置的小時,不輸出該比對結果;
-a 將所有的比對結果都輸出,包括 single-end 和 unpaired paired-end的 reads
-p 智能的pairing,如果不設置,輸入文件只有1個,則進行單端比對;若輸入文件有2個,則作為paired reads進行比對。如果設置-p,則僅以第1個文件作為輸入,輸入的文件若有2個,則被忽略之
下面在看一下bwasw比對,因為使用了 Smith-Waterman,特別適合長reads比對,因為能夠容許更多的gap情況。幫助文檔中默認提示的就是query.fa,一般是長序列。幫助中提示對於長的Illumina 數據, 454,Sanger拼接的contigs或者 fosmids,BACs等,使用默認參數就行,如果是2010年之前Pacbio,設置-b5 -q2 -r1 -z10。bwa bwasw genome long_read.fq > all.sambwa bwasw genome read1.fq read2.fq > all.sam
六、使用案例:
現有參考序列ref.fna,illumina測序兩條reads,reads.1.fq.gz與reads.2.fq.gz。
bwa index ref.fnabwa mem -R @RG ID:E1602061 SM:bar LB:library1 -t 4 ref.fna reads.1.fq.gz reads.2.fq.gz >result.sam
七、注意事項:
1、安裝時需要依賴zlib;
2、建庫時注意選擇正確的演算法;3、最新版本bwa,需要使用-R選項。推薦閱讀:
※生物信息神奇網站系列(十六):Notebook Gallery
※生物信息實用R語言筆記1-軟體安裝與設置
※DeepVariant: 用卷積神經網路進行DNA序列變異位點檢測
※生信分析平台搭建(十七):伺服器配置
※生信分析平台搭建(九):Aspera