bowtie2基本使用步驟

Bowtie和Bowtie2使用 

1. 下載

Bowtie和Bowtie 2都可以在這裏下載:  http://sourceforge.net/projects/bowtie-bio/files/

這裏以 Building from source 爲例子, 從而需要下載其源代碼,而非針對特定OS已經編譯好了的binary release.  從而 32bit和64bit的Windows, Linux, Mac OS 都可以這樣做。

我下載的是以下2個文件:

bowtie-1.0.0-src.zip

bowtie2-2.1.0-source.zip

2. 編譯

分別解壓下載的那2個文件,打開linux terminal (我用的是Linux Mint, 64 bit), 讓terminal進入解壓後的某一個目錄,比如bowtie2-2.1.0, 運行“make”。 若編譯沒有異常,編譯好以後分別運行:

chmod 777 bowtie2

./bowtie2

若沒有問題,會顯示出bowtie2的使用信息。

3. 設置參考基因組

以S. cerevisiae爲例,先下載fasta格式的參考基因組:

用bowtie2-build生成索引文件,前綴名爲s_cerevisiae

./bowtie2-build   s_cerevisiae.fasta    s_cerevisiae

4. 使用
這個和具體情況關係很大,參數自己弄懂後再決定。

基本命令:

bowtie2 [options]* -x <bt2-idx> {-1 <m1> -2 <m2> | -U <r>} -S [<hit>]

必須參數

-x <bt2-idx> 由bowtie2-build所生成的索引文件的前綴。首先 在當前目錄搜尋,然後
在環境變量 BOWTIE2_INDEXES 中制定的文件夾中搜尋。
-1 <m1> 雙末端測尋對應的文件1。可以爲多個文件,並用逗號分開;多個文件必須和 -2 
<m2> 中制定的文件一一對應。比如:"-1 flyA_1.fq,flyB_1.fq -2 flyA_2.fq,flyB
_2.fq". 測序文件中的reads的長度可以不一樣。
-2 <m2> 雙末端測尋對應的文件2.
-U <r> 非雙末端測尋對應的文件。可以爲多個文件,並用逗號分開。測序文件中的reads的
長度可以不一樣。
-S <hit> 所生成的SAM格式的文件前綴。默認是輸入到標準輸出。

以下是可選

輸入

-q 輸入的文件爲FASTQ格式文件,此項爲默認值。
-qseq 輸入的文件爲QSEQ格式文件。
-f 輸入的文件爲FASTA格式文件。選擇此項時,表示--ignore-quals也被選擇了。
-r 輸入的文件中,每一行代表一條序列,沒有序列名和測序質量等。選擇此項時,表示--
ignore-quals也被選擇了。
-c 後直接爲比對的reads序列,而不是包含序列的文件名。序列間用逗號隔開。選擇此項時,
表示—ignore-quals也被選擇了。
-s/--skip <int> input的reads中,跳過前<int>個reads或者pairs。
-u/--qupto <int> 只比對前<int>個reads或者pairs(在跳過前<int>個reads或者
pairs後)。Default: no limit.
-5/--trim5 <int> 剪掉5'端<int>長度的鹼基,再用於比對。(default: 0).
-3/--trim3 <int> 剪掉3'端<int>長度的鹼基,再用於比對。(default: 0).
--phred33 輸入的鹼基質量等於ASCII碼值加上33. 在最近的illumina pipiline中
得以運用。
--phred64 輸入的鹼基質量等於ASCII碼值加上64.
--solexa-quals 將Solexa的鹼基質量轉換爲Phred。在老的GA Pipeline版本中得以
運用。Default: off.
 --int-quals 輸入文件中的鹼基質量爲用“ ”分隔的數值,而不是ASCII碼。比如 40 40 
30 40...。Default: off.

–end-to-end模式

--very-fast Same as: -D 5 -R 1 -N 0 -L 22 -i S,0,2.50 
--fast Same as: -D 10 -R 2 -N 0 -L 22 -i S,0,2.50 
--sensitive Same as: -D 15 -R 2 -N 0 -L 22 -i S,1,1.15 (default in --end-to-end mode) 
--very-sensitive Same as: -D 20 -R 3 -N 0 -L 20 -i S,1,0.50

–loca模式下的預設參數

–loca模式下的預設參數
--very-fast-local Same as: -D 5 -R 1 -N 0 -L 25 -i S,1,2.00 
--fast-local Same as: -D 10 -R 2 -N 0 -L 22 -i S,1,1.75 
--sensitive-local Same as: -D 15 -R 2 -N 0 -L 20 -i S,1,0.75 (default in --local mode) 
--very-sensitive-local Same as: -D 20 -R 3 -N 0 -L 20 -i S,1,0.50

參數:

-N <int> 進行種子比對時允許的mismatch數. 可以設爲0或者1. Default: 0.
-L <int> 設定種子的長度.
************************************************************
功能選項
給bowtie的一些參數設定值的時候,使用一個計算公式代替,於是值的大小與比對序列的長
度成一定關係。<func>有三部分組成: (a)計算方法, 包括常數(C),線性(L),平方根(S)和
自然對數(G); (b)一個常數; (c)一個係數. 
例如: 
<func> 爲 L,-0.4,-0.6 則計算公式爲: f(x) = -0.4 + -0.6 * x
<func> 爲G,1,5.4 則計算公式爲: f(x) = 1.0 + 5.4 * ln(x)
************************************************************
-i <func> 設定兩個相鄰種子間所間距的鹼基數。
************************************************************
例如:如果read的長度爲30, 種子的長度爲10, 相鄰種子的間距爲6,則提取出的種子如下
所示:
Read: TAGCTACGCTCTACGCTATCATGCATAAAC
Seed 1 fw: TAGCTACGCT
Seed 1 rc: AGCGTAGCTA
Seed 2 fw: CGCTCTACGC
Seed 2 rc: GCGTAGAGCG
Seed 3 fw: ACGCTATCAT
Seed 3 rc: ATGATAGCGT
Seed 4 fw: TCATGCATAA
Seed 4 rc: TTATGCATGA 
************************************************************
 在--end-to-end模式中默認值爲”-i S,1,1.15”.即表示f(x) = 1 + 1.15 * 
sqrt(x). 如果read長度爲100, 則相鄰種子的間距爲12.
--n-ceil <func> 設定read中允許含有不確定鹼基(非GTAC,通常爲N)的最大數目. 
Default: L,0,0.15. 計算公式爲: f(x) = 0 + 0.15 * x, 表示長度爲100的read
最多運行存在15個不確定鹼基. 一旦不確定鹼基數超過15, 則該條read會被過濾掉.
--dpad <int> Default: 15.
--gbar <int> 在read頭尾<int>個鹼基內不允許gap. Default: 4.
 --ignore-quals 計算錯配罰分的時候不考慮鹼基質量. 當輸入序列的模式爲-f, -r 或
者-c的時候, 該設置自動成爲默認設置.
--nofw/--norc –nofw設定read不和前導鏈(forward reference strand)進行比對;
 --norc設定不和後隨鏈(reverse-complement reference strand)進行比對. 
Default: both strands enabled.
--end-to-end 比對是將整個read和參考序列進行比對. 該模式--ma的值爲0. 該模式爲
默認模式, --local模式衝突.
--local 該模式下對read進行局部比對, 從而, read兩端的一些鹼基不比對,從而使比
對得分滿足要求. 該模式下 –ma默認爲2.

得分罰分參數

--ma <int> 設定匹配得分. --local模式下每個read上鹼基和參考序列上鹼基匹配, 則
加<int>分. 在—end-to-end模式中無效. Default: 2.
--mp MX,MN 設定錯配罰分. 其中MX爲所罰最高分, MN爲所罰最低分. 默認設置下罰分與
鹼基質量相關. 罰分遵循的公式爲: MN + floor( (MX-MN)(MIN(Q, 40.0)/40.0) ). 
其中Q爲鹼基的質量值. 如果設置了—ignore-qual參數, 則錯配總是罰最高分. Default: 
MX = 6, MN = 2.
--np <int> 當匹配位點中read, reference上有不確定鹼基(比如N)時所設定的罰分值.
Default: 1.
--rdg <int1>,<int2> 設置在read上打開gap 罰分<int1>, 延長gap罰分<int2>. 
Default: 5, 3.
--rfg <int1>,<int2> 設置在reference上打開gap 罰分<int1>, 延長gap罰分
<int2>. Default: 5, 3.
--score-min <func> 設定成爲有效比對的最小分值. 在—end-to-end模式下默認值爲:
L,-0.6,-0.6; 在--local模式下默認值爲: G,20,8.

報告參數

-k <int> 默認設置下, bowtie2搜索出了一個read不同的比對結果, 並報告其中最好的
比對結果(如果好幾個最好的比對結果得分一致, 則隨機挑選出其中一個). 而在該模式下, 
bowtie2最多搜索出一個read <int>個比對結果, 並將這些結果按得分降序報告出來.
-a 和-k參數一樣, 不過不限制搜索的結果數目. 並將所有的比對結果都按降序報告出來. 
此參數和-k參數衝突. 值得注意的是: 如果基因組含有很多重複序列時, 該參數會導致程序
運行極其緩慢.

Effort 參數

-D <int> 比對時, 將一個種子延長後得到比對結果, 如果不產生更好的或次好的比對結果, 
則該次比對失敗. 當失敗次數連續達到<int>次後, 則該條read比對結束. Bowtie2纔會
繼續進行下去. Default: 15. 當具有-k或-a參數, 則該參數所產生的限制會自動調整.
-R <int> 如果一個read所生成的種子在參考序列上匹配位點過多. 當每個種子平均匹配超
過300個位置, 則通過一個不同的偏移來重新生成種子進行比對. <int>則是重新生成種子
的次數. Default: 2.

Paired-end 參數

-I/--minins <int> 設定最小的插入片段長度. Default: 0.
-X/--maxins <int> 設定最長的插入片段長度. Default: 500.
--fr/--rf/--ff 設定上下游reads和前導鏈paired-end比對的方向. --fr: 匹配時,
read1在5'端上游, 和前導鏈一致, read2在3'下游, 和前導鏈反向互補. 或者read2在
上游, read1在下游反向互補; --rf: read1在5'端上游, 和前導鏈反向互補, read2在
3'端下游, 和前導鏈一致; --fr: 兩條reads都和前導鏈一致. Default: --fr. 默認
設置適合於Illumina的paired-end測序數據; 若是mate-paired, 則要選擇—rf參數.
--no-mixed 默認設置下, 一對reads不能成對比對到參考序列上, 則單獨對每個read進
行比對. 該選項則阻止此行爲.
--no-discordant 默認設置下, 一對reads不能和諧比對(concordant alignment,
即滿足-I, -X, --fr/--rf/--ff的條件)到參考序列上, 則搜尋其不和諧比對(discon
cordant alignment, 即兩條reads都能獨一無二地比對到參考序列上, 但是不滿足-I,
-X,--fr/--rf/--ff的條件). 該選項阻止此行爲.
--dovetail read1和read2的關係爲dovetail的時候,該狀況算爲和諧比對. 默認情況
下dovetail不算和諧比對.
--no-contain read1和read2的關係爲包含的時候, 該狀況不算爲和諧比對. 默認情況
下包含關係算爲和諧比對.
--no-overlap read1和read2的關係爲有重疊的時候, 該狀況不算爲和諧比對. 默認情
況下兩個reads重疊算爲和諧比對.

輸出參數

-t/--time --un <path> 將unpaired reads寫入到<path>.
--un-gz <path> 將unpaired reads寫入到<path>, gzip壓縮.
--un-bz2 <path> 將unpaired reads寫入到<path>, bz2壓縮.
--al <path> 將至少能比對1次以上的unpaired reads寫入<path>.
--al-gz <path> ... ,gzip壓縮.
--al-bz2 <path> ... ,bz2壓縮.
--un-conc <path> 將不能和諧比對的paired-end reads寫入<path>.
--un-conc-gz <path> ... ,gzip壓縮.
--un-conc-bz2 <path> ... ,bz2壓縮.
--al-conc <path> 將至少能和諧比對一次以上的paired-end reads寫入<path>.
--al-conc-gz <path> ... ,gzip壓縮.
--al-conc-bz2 <path>... ,bz2壓縮.
--quiet 安靜模式,除了比對錯誤和一些嚴重的錯誤, 不在屏幕上輸出任何東西.
--met-file <path> 將bowtie2的檢測信息(metrics)寫入文件<path>. 用於debug. 
Default: metrics disabled.
--met-stderr <path> 將bowtie2的檢測信息(metrics)寫入標準錯誤文件句柄. 和上
一個選項不衝突. Default: metrics disabled.
--met <int> 每隔<int>秒寫入一次metrics記錄. Default: 1.

Sam 參數

--no-unal 不記錄沒比對上的reads.
--no-hd 不記錄SAM header lines (以@開頭).
--no-sq 不記錄@SQ的SAM header lines.
--rg-id <text> 設定read group Id到<text>.
--rg <text> 增加<text>作爲一行@RG.

性能參數

-o/--offrate <int> 無視index的offrate值, 以<int>取代之. Index默認的<int> 
值爲5. <int>值必須大於index的offrate值, 同時<int>越大, 耗時越長,耗內存越少.
-p/--threads NTHREADS 設置線程數. Default: 1
--reorder 多線程運算時, 比對結果在順序上會和文件中reads的順序不一致, 使用該選
項, 則使其一致.
--mm 使用內存定位的I/O來載入index, 而不是常規的文件I/O. 從而使多個bowtie程
序共用內存中同樣的index, 節約內存消耗.

其它參數:

--qc-filter 濾除QSEQ fileter filed爲非0的reads. 僅當有—qseq選項時有效. 
Default: off.
--seed <int> 使用<int>作爲隨機數產生的種子. Default: 0.
--version 打印程序版本並退出
-h/--help 打印用法信息並推出
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章