1. 程式人生 > >bowtie:短序列比對的新工具

bowtie:短序列比對的新工具

bowtie:短序列比對的新工具(轉)

  (2014-11-17 22:15:24) 轉載
標籤: 

轉載

 
原文地址: bowtie:短序列比對的新工具(轉) 作者: 玉琪星兆

Bowtie是一個超級快速的,較為節省記憶體的短序列拼接至模板基因組的工具。它在拼接35鹼基長度的序列時,可以達到每小時2.5億次的拼接速度。

Bowtie並不是一個簡單的拼接工具,它不同於Blast等。它適合的工作是將小序列比對至大基因組上去。它最長能讀取1024個鹼基的片段。換言之,bowtie非常適合下一代測序技術。

在 使用bowtie前,需要使用bowtie-build來構建比對模板。如果你需要比對是比較常見的基因組的話,你可以去http://bowtie- bio.sourceforge.net/manual.shtml下載你所需要的Pre-built indexes檔案就可以了。

如 前所述,bowtie適合於將短序列拼接至大的模板上,尤其是基因組。模板最小尺寸不能小於1024鹼基,而短序列最長而不能超過1024鹼基。 Bowtie設計思路是,1)短序列在基因組上至少有一處最適匹配, 2)大部分的短序列的質量是比較高,3)短序列在基因組上最適匹配的位置最好只有一處。這些標準基本上和RNA-seq, ChIP-seq以及其它一些正在興起的測序技術或者再測序技術的要求一致。

如果bowtie在你的機器上執行起來很慢,那麼你可以試試以下的一些辦法來讓它跑得快一些:

  1. 盡 可能的使用64位bowtie。很顯然,64位運算會比32位運算更快。所以最好使用支援64位運算的計算機來執行64位的bowtie。如果你是從原文 件開始編譯程式,在g++編譯時,你需要傳遞-m64引數,你也可以在make的時候加入這一資訊,比如說傳遞BITS=64給make,具體 的:make BITS=64 bowtie。想知道你自己運算的是什麼版本的bowtie,你可以執行bowtie –version
  2. 如果你的計算機有多個CPU或者CPU核心,那麼請使用-p引數。-p引數會讓bowtie進入多執行緒模式。每一個執行緒都會使用單獨的CPU或者CPU核心。這種並行的運算模式也會大大加快運算速度。
  3. 如 果你的報告檔案中每條短序列都有太多的匹配位點(超過10)那麼你可以試著重新使用bowtie-build加上 –offrate引數,如bowtie-build –offrate 4。-o/–offrate預設值為5,每下降1,比對速度會增加1倍,但是系統消耗(硬碟空間和記憶體)也會加倍。
  4. 如果你的系統 配置太低,比如記憶體不足4GB,那麼建議你在bowtie的時候使用–offrate引數。與上一條相反的,你需要加大offrate的值。bowtie –offrate 6. 其預設值為5。每增加1,記憶體空間的要求下降,這樣會減少讀取硬碟當中虛擬記憶體的次數,速度反而會有所上升。

-n模式與-v模式

預設的,bowtie採用了和Maq一樣的質量控制策略,設定 -n 2 -l 28 -e 70。總的來說,比對模式分為兩種,一種是 -n 模式, 一種是 -v 模式,而且這兩種模式是不能同時使用的。bowtie預設使用-n模式。

-n模式引數: -n N -l L -e E

其中N,L,E都為整數。-n N 代表在高保真區內錯配不能超過N個,可以是0?3,一般的設定為2。-l L代表序列高保真區的長度,最短不能少於5,對於短序列長度為32的,設定為28就很不錯。-e E代表在錯配位點Phred quality值不能超過E,預設值為40。Phred quality值的計算式為:-10 log(P,base(10))

Phred Quality值 錯配可能性 正配可能性
10 1/10 90%
20 1/100 99%
30 1/1000 99.9%
40 1/10000 99.99%
50 1/100000 99.999%

而-v模式的引數相對較少。

-v模式引數:-v V

其中V為整數。-v V代表全長錯配不能超過V個,可以是0?3。這時,不考慮是否高保真區,也不考慮Phred quality值。

–best 與–strata

–best 引數代表報告檔案中,每個短序列的匹配結果將按匹配質量由高到低排序。–strata引數必須與–best引數一起使用,其作用是隻報告質量最高的那部 分。所謂質量高低,其實就是指錯配的鹼基數,如果指定了-l L引數,那就是在高保真區內的錯配數,否則就是全序列的錯配數。如果你還指定了 -M X的話,那就會在質量最高的當中,隨機選擇X個來報告。也就是說,當我們指定了-M 1 –best –strata的話,那就只報告1個最好的。

對於輸入,-q是指輸入的檔案為FASTQ(副檔名通常為.fq或者.fastq)格式;-f是指輸入檔案為FASTA(副檔名通常為.fa, .mfa或者.fna)格式;-c是指在命令列直接輸入要比對的序列。

下面就是一個具體的例子:

bowtie -v 2 -M 1 –best –strata Genomes/hg19_ebwt/hg19 Pol2ChIP.fastq Pol2ChIP.map

 

1.本人用過的短序列比對工具裡,感覺bowtie最好使,大體用法和blast挺像的,也很簡單,就兩步:
第一步,build:感覺和blast的第一步formatdb差不多,在命令列輸入bowtie-build <seqfile> <dbname>
第二步,align:和blast的核心(blastall)差不多,在命令列輸入:bowtie [options]* <dbname> <short_reads_file> <outfile>
bowtie的速度比Maq和SOAP都快,PC機上也能勝任大規模資料分析,一般100M大小的基因組做mapping,2-3min就可以了,快的讓我不敢接受,呵呵,bwt演算法就是牛!
bowtie的用途不僅僅是短序列比對最mapping,更多資訊請參考:
http://bowtie-bio.sourceforge.net/index.shtml

2.


Bowtie aligner 簡介
軟體簡介 Bowtie is an ultrafast, memory-efficient short read aligner
核心技術 Mapping / Burrows-Wheeler / FM Index
原創作者 Ben Langmead / Cole Trapnell
維護狀況 0.12.3 release - 2010/02/17
輸入格式 FASTQ
輸出格式 SAM / Bowtie default format
適用機器架構 i386 / x86_64
作業平臺 Linux, Windows, and Mac OS X

使用說明

本軟體目前安裝於BIP2(140.123.126.234)主機, 實驗帳號為Bioinfo 若有需要利用此軟體進行實驗, 請與 冠巨集/盈達 聯絡索取實驗帳號資料

軟體目錄目標路徑: /home/bioinfo/alignmentTool/bowtie-0.12.3


Getting started
Building a new index
Performing alignments
Finding variations with SAMtools
準備資料
Reference genome data (*.fa)
NGS Short reads data (*.fastq)
Building a new index
根據 reference genome data(e.g. reference.fa) 建立 Index File
# bowtie-build [options]* <reference_in> <ebwt_base>

Performing alignments
NGS short reads data (e.g. leftRead.fastq / rightRead.fastq)
refernece genome data(e.g. reference.fa)
# bowtie [options]* <ebwt> {-1 <m1> -2 <m2> | --12 <r> | <s>} [<hit>]

Solid data for single-read alignment
# bowtie -S -a -f -C -p 7 <reference-index> <singleRead.csfasta> -Q <singleRead.qual> > <alignResult.sam> -S :輸出為sam檔 -a :把所有對到的read列出來,即使有multiple mapping -C :input為.csfasta -Q :.csfasta 內容裡無 quality value,所以需準備 .qual -f :伴隨 -Q -C 引數 -p int :用幾顆cpu跑

If bowtie Paired end 100% failed to align

http://seqanswers.com/forums/showthread.php?t=6522


Finding variations with SAMtools
輸出sam格式

# bowtie -S e_coli reads/e_coli_10000snp.fq ec_snp.sam


轉成bam格式

# samtools view -bS -o ec_snp.bam ec_snp.sam


排序bam資料

# samtools sort ec_snp.bam ec_snp.sorted


結合bam資料

# samtools merge <out.bam> <in.bam> | <in.bam> …


找尋SNP

# samtools pileup -cv -f genomes/NC_008253.fna ec_snp.sorted.bam


其他
參考資料

Langmead B, Trapnell C, Pop M, Salzberg SL.. 2009. Genome Biology

Bowtie Introduction on NCBI Presentation


相關連結

Bowtie Homepage


http://bioinfo.cs.ccu.edu.tw/wiki/doku.php?id=bowtie