map常用的工具有bowtie/bowtie2, BWA,SOAP1/SOAP2等。這個(gè)問(wèn)題又會(huì)被分成兩個(gè)問(wèn)題,是基因組測(cè)序(DNA-seq)還是轉(zhuǎn)錄組測(cè)序(mRNA-seq)。其中的區(qū)別是對(duì)于真核生物而言,mRNA序列與DNA序列并不完全相同,在經(jīng)歷了后剪切之后,成熟的mRNA可能是原基因的一部分,甚至順序及個(gè)別堿基會(huì)產(chǎn)生變化。如果是mRNA測(cè)序,那map工作就會(huì)在DNA測(cè)序map的基礎(chǔ)上再多一步,map到轉(zhuǎn)錄組上去。所以最為流行的做法是,(使用BWA來(lái)進(jìn)行ChIP-seq測(cè)序)使用bowtie來(lái)map DNA測(cè)序,使用tophat來(lái)map RNA測(cè)序。實(shí)際上,tophat是通過(guò)調(diào)用bowtie來(lái)完成工作的。而tophat1和tophat2的差別最主要的就是調(diào)用了bowtie1還是bowtie2。當(dāng)然如果你只安裝了bowtie1的話,tophat2也可以調(diào)用它
1,bowtie1出現(xiàn)的早,所以對(duì)于測(cè)序長(zhǎng)度在50bp以下的序列效果不錯(cuò),而bowtie2主要針對(duì)的是長(zhǎng)度在50bp以上的測(cè)序的。
2,Bowtie 2支持有空位的比對(duì)
3,Bowtie 2支持局部比對(duì),也可以全局比對(duì)
4,Bowtie 2對(duì)最長(zhǎng)序列沒(méi)有要求,但是Bowtie 1最長(zhǎng)不能超過(guò)1000bp。
5. Bowtie 2 allows alignments to [overlap ambiguous characters] (e.g. `N`s) in the reference. Bowtie 1 does not.
6,Bowtie 2不能比對(duì)colorspace reads.
…………
Bowtie 2 在比對(duì)大的基因組的時(shí)候,工作效果更好一些,如果你是比對(duì)兩個(gè)特別大的基因組,可以考慮MUMmer,如果你比對(duì)的是兩個(gè)特別相近且比較小的基因組,可以用[NUCmer], [BLAT], or [BLAST]. 但是Bowtie 2不能比對(duì)colorspace reads.
Bowtie是一個(gè)超級(jí)快速的,較為節(jié)省內(nèi)存的短序列拼接至模板基因組的工具。它在拼接35堿基長(zhǎng)度的序列時(shí),可以達(dá)到每小時(shí)2.5億次的拼接速度。
Bowtie并不是一個(gè)簡(jiǎn)單的拼接工具,它不同于Blast等。它適合的工作是將小序列比對(duì)至大基因組上去。它最長(zhǎng)能讀取1024個(gè)堿基的片段。模板最小尺寸不能小于1024堿基,而短序列最長(zhǎng)而不能超過(guò)1024堿基。換言之,bowtie非常適合下一代測(cè)序技術(shù)。
在 使用bowtie前,需要使用bowtie-build來(lái)構(gòu)建比對(duì)模板。
Bowtie設(shè)計(jì)思路是:1)短序列在基因組上至少有一處最適匹配, 2)大部分的短序列的質(zhì)量是比較高,3)短序列在基因組上最適匹配的位置最好只有一處。這些標(biāo)準(zhǔn)基本上和RNA-seq, ChIP-seq以及其它一些正在興起的測(cè)序技術(shù)或者再測(cè)序技術(shù)的要求一致。
使用tophat的基本步驟是:理解bowtie使用tophat來(lái)mapping reads。其命令常見的形式為:/path-to-bowtie-programs/tophat -o -p cpu /path-to-genome-index/prefix fastq file For example:/programs/tophat -o TophatOutput/ -p 8 /programs/indexes/hg19 Experiment1.fastqPaired-end Example:/programs/tophat -o TophatOutputPE/ -p 8 /programs/indexes/hg19 Experiment1.r1.fastq Experiment1.r2.fastq可以發(fā)現(xiàn),其很多參數(shù)是同bowtie是一樣的。但是它有幾個(gè)重要參數(shù)需要了解:--library-type 用于生成RNA-seq的library。最常見的是使用fr-unstranded,兩條鏈都考慮。-G 用于加注transcriptome信息。
cd /sam/bowtie2/example/myindex /sam/bowtie2/bowtie2-build /sam/bowtie2/example/reference/lambda_virus.fa lambda_virus#將會(huì)生成以lambda_virus開始名字,后綴為`.1.bt2`, `.2.bt2`, `.3.bt2`, `.4.bt2`,`.rev.1.bt2`, and `.rev.2.bt2`. 的六個(gè)文件;bowtie2-build 可以處理來(lái)自[UCSC], [NCBI],[Ensembl]的fasta文件,當(dāng)處理多個(gè)fasta文件的時(shí)候,可以用逗號(hào)分開處理
/sam/bowtie2/bowtie2 -p cpu -x lambda_virus -U /sam/bowtie2/example/reads/reads_1.fq -S eg1.sam
(文件的格式通常為e.g. `-1 flyA_1.fq,flyB_1.fq`)/sam/bowtie2/bowtie2 -p cpu -x lambda_virus -1 /sam/bowtie2/example/reads/reads_1.fq -2 /sam/bowtie2/example/reads/reads_2.fq -S eg2.sam-p跟cpu的個(gè)數(shù);-x跟的是建立的索引,不用跟名字后面的后綴;-1,-2分別表示Paired-end reads;輸出格式默認(rèn)為SAM。可以指定為多種其它格式,比如說(shuō)BAM(SAM的二進(jìn)制文件)等等
問(wèn)題:
這里的reads用的是clean reads,還是raw reads,我覺得應(yīng)該是clean reads,如果是clean reads 的話,就得先對(duì)raw reads進(jìn)行trim,但是trimmomatic進(jìn)行trim后生成的可是4個(gè)文件(因?yàn)镮llumina測(cè)序出來(lái)paired end 就有正反兩個(gè)raw reads,trim后就包括了能配對(duì)的兩個(gè)正反reads,和不能配對(duì)的兩個(gè)正反reads),這樣的話,我用哪個(gè)呢,就用僅僅能配對(duì)上的兩個(gè)clean reads?,如果這樣的話,我的拼接過(guò)程中可是都用了的,要不分開去匹配,但是分開匹配的,最后的結(jié)果又怎么統(tǒng)計(jì)呢?
先用bowtie處理paired的,然后再用-u處理unpaired 得到兩個(gè)sam,再cat ,然后再用samtools sort后來(lái)統(tǒng)計(jì)結(jié)果。
我誤以為這個(gè)bowtie既可以處理pair的,也可以同時(shí)處理unpair的,結(jié)果出現(xiàn)上面的問(wèn)題。實(shí)際上應(yīng)該是bowtie2處理的 paired reads 在的兩個(gè)文件,必須有同樣多的 reads數(shù),并且都是一一對(duì)應(yīng)的;如果一對(duì)不能都比上 會(huì)找其中一條來(lái)比對(duì)上;一個(gè)如果不能比對(duì)到基因組,那么使用 –no-mixed 參數(shù),則不會(huì)對(duì)與之匹配的reads進(jìn)行比對(duì)了??傊诵乃枷刖褪潜仨毺幚硪粚?duì),如果一對(duì)中有一條未能匹配上,你可以選擇是否保留這一對(duì)的結(jié)果,–no-mixed就是你的選擇。
用[local alignment] 來(lái)比對(duì)更長(zhǎng)的reads included $BT2_HOME/bowtie2 --local -x lambda_virus -U $BT2_HOME/example/reads/longreads.fq -S eg3.sam
2.4其他參數(shù)的說(shuō)明:
-U 后面接的是unpaired reads -S 輸出文件,默認(rèn)的是stdout,在終端顯示,也可以搞個(gè)文件來(lái)裝輸出的結(jié)果輸入文件選項(xiàng) -q Reads 為FASTQ格式(`.fq` or `.fastq`.),此為默認(rèn)的格式 --qseq Reads 為QSEQ文件(end in `_qseq.txt`). -f Reads 為FASTA文件(`.fa`, `.fasta`, `.mfa`, `.fna` or similar),如果設(shè)定了`-f`,結(jié)果相當(dāng)于`--ignore-quals`也被設(shè)定,就是不衡量質(zhì)量了 -r Reads為每行就是一條序列,沒(méi)有read的名字,沒(méi)有質(zhì)量,出來(lái)的結(jié)果也相當(dāng)于`--ignore-quals被設(shè)置了 -c read 序列通過(guò)命令行輸入,包含`--ignore-quals`. -s/--skip 跳過(guò)前面的多少個(gè)堿基再來(lái)比對(duì) -u/--qupto 僅僅比對(duì)前面的幾個(gè)堿基,然后停止比對(duì) -5/--trim5 在比對(duì)之前去掉5’端的幾個(gè)堿基(默認(rèn)的為0) -3/--trim3 同理同上 --phred33 輸入文件的質(zhì)量為33 --phred64 同理同上,在我之前的博客中有記錄http://blog.sina.com.cn/s/blog_670445240101kq45.html
Bowtie提供了兩個(gè)參數(shù)(–phred33和–phred64)來(lái)指定計(jì)分系統(tǒng),默認(rèn)是前者。而且,bowtie會(huì)根據(jù)輸入的具體數(shù)據(jù)來(lái)識(shí)別輸入數(shù)據(jù)實(shí)際采用哪套計(jì)分系統(tǒng),用戶不必指定。
針對(duì)Phred+33計(jì)分系統(tǒng)
!-% 33-37 罰分為0。
&-/ 38-47 罰分為10。
0-9 48-57 罰分為20。
:-I-~ 58-73-126罰分為30。Phred+33實(shí)際分?jǐn)?shù)最高到73
針對(duì)Phred+64計(jì)分系統(tǒng)
!-% 64-68 罰分為0。
&-/ 69-78 罰分為10。
0-9 79-88 罰分為20。
:-I-~ 89-104-126罰分為30。Phred+64實(shí)際分?jǐn)?shù)最高到104
--solexa-quals 默認(rèn)的是關(guān)閉的,不解釋 --int-quals`--end-to-end` 模式所涉及的幾個(gè)參數(shù) --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 -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``--local` 模式下的幾個(gè)參數(shù) --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`
比對(duì)的結(jié)果參數(shù):
-N 在種子比對(duì)的過(guò)程中容許的錯(cuò)配數(shù),一般可以設(shè)置為0或者1,設(shè)的越高,越慢,但是可以增加比對(duì)的靈敏性,默認(rèn)的為0
-L 設(shè)置的種子字串的長(zhǎng)度,越小,越靈敏,但是越慢,默認(rèn)的參數(shù)設(shè)置參考上面的。
-i 怎么設(shè)置種子,詳見官網(wǎng)說(shuō)明書
……
其他的參數(shù)具體看官網(wǎng)說(shuō)明書
SAMtoolsis是分析SAM和BAM文件的工具
BCFtools分析突變和操作VCF和BCF文件的工具
例子:
1,先用bowtie2生成sam文件
$BT2_HOME/bowtie2 -x $BT2_HOME/example/index/lambda_virus -1 $BT2_HOME/example/reads/reads_1.fq -2 $BT2_HOME/example/reads/reads_2.fq -S eg2.sam
-x 表示建立的索引的前綴名字 -1 -2 后面分別的是雙末端測(cè)序的reads –S為輸出的結(jié)果
2,samtools 將SAM文件轉(zhuǎn)化為BAM文件
samtools view -bS eg2.sam > eg2.bam
3,用samtools sort將BAM文件進(jìn)行排序。
samtools sort eg2.bam eg2.sorted
4,尋找突變通過(guò)VCF格式
samtools mpileup -uf $BT2_HOME/example/reference/lambda_virus.fa eg2.sorted.bam | bcftools view -bvcg – > eg2.raw.bcf
5,看突變位點(diǎn)
bcftools view eg2.raw.bcf
如何讓bowtie快起來(lái):
如果bowtie在你的機(jī)器上運(yùn)行起來(lái)很慢,那么你可以試試以下的一些辦法來(lái)讓它跑得快一些:
1,盡可能的使用64位bowtie。很顯然,64位運(yùn)算會(huì)比32位運(yùn)算更快。所以最好使用支持64位運(yùn)算的計(jì)算機(jī)來(lái)運(yùn)行64位的bowtie。如果你是從原文件開始編譯程序,在g++編譯時(shí),你需要傳遞-m64參數(shù),你也可以在make的時(shí)候加入這一信息,比如說(shuō)傳遞BITS=64給make,具體的:make BITS=64 bowtie。想知道你自己運(yùn)算的是什么版本的bowtie,你可以運(yùn)行bowtie –version
2,如果你的計(jì)算機(jī)有多個(gè)CPU或者CPU內(nèi)核,那么請(qǐng)使用-p參數(shù)。-p參數(shù)會(huì)讓bowtie進(jìn)入多線程模式。每一個(gè)線程都會(huì)使用單獨(dú)的CPU或者CPU內(nèi)核。這種并行的運(yùn)算模式也會(huì)大大加快運(yùn)算速度。
3,如果你的報(bào)告文件中每條短序列都有太多的匹配位點(diǎn)(超過(guò)10)那么你可以試著重新使用bowtie-build加上 –offrate參數(shù),如bowtie-build –offrate 4。-o/–offrate默認(rèn)值為5,每下降1,比對(duì)速度會(huì)增加1倍,但是系統(tǒng)消耗(硬盤空間和內(nèi)存)也會(huì)加倍。如果你的系統(tǒng) 配置太低,比如內(nèi)存不足4GB,那么建議你在bowtie的時(shí)候使用–offrate參數(shù)。與上一條相反的,你需要加大offrate的值。bowtie –offrate 6. 其默認(rèn)值為5。每增加1,內(nèi)存空間的要求下降,這樣會(huì)減少讀取硬盤當(dāng)?%AL??擬內(nèi)存的次數(shù),速度反而會(huì)有所上升。
4,-n模式與-v模式。
默認(rèn)的,bowtie采用了和Maq一樣的質(zhì)量控制策略,設(shè)置-n 2 -l 28 -e 70??偟膩?lái)說(shuō),比對(duì)模式分為兩種,一種是 -n 模式, 一種是 -v 模式,而且這兩種模式是不能同時(shí)使用的。bowtie默認(rèn)使用-n模式。
-n模式參數(shù): -n N -l L -e E
其中N,L,E都為整數(shù)。-n N 代表在高保真區(qū)內(nèi)錯(cuò)配不能超過(guò)N個(gè),可以是0?3,一般的設(shè)置為2。-l L代表序列高保真區(qū)的長(zhǎng)度,最短不能少于5,對(duì)于短序列長(zhǎng)度為32的,設(shè)置為28就很不錯(cuò)。-e E代表在錯(cuò)配位點(diǎn)Phred quality值不能超過(guò)E,默認(rèn)值為40。Phred quality值的計(jì)算式為:-10 log(P,base(10))
Phred Quality值 錯(cuò)配可能性 正配可能性
10 1/10 90%
20 1/100 99%
30 1/1000 99.9%
40 1/10000 99.99%
50 1/100000 99.999%
而-v模式的參數(shù)相對(duì)較少。
-v模式參數(shù):-v V
其中V為整數(shù)。-v V代表全長(zhǎng)錯(cuò)配不能超過(guò)V個(gè),可以是0?3。這時(shí),不考慮是否高保真區(qū),也不考慮Phred quality值。
5,–best 與–strata
–best 參數(shù)代表報(bào)告文件中,每個(gè)短序列的匹配結(jié)果將按匹配質(zhì)量由高到低排序。–strata參數(shù)必須與–best參數(shù)一起使用,其作用是只報(bào)告質(zhì)量最高的那部 分。所謂質(zhì)量高低,其實(shí)就是指錯(cuò)配的堿基數(shù),如果指定了-l L參數(shù),那就是在高保真區(qū)內(nèi)的錯(cuò)配數(shù),否則就是全序列的錯(cuò)配數(shù)。如果你還指定了 -M X的話,那就會(huì)在質(zhì)量最高的當(dāng)中,隨機(jī)選擇X個(gè)來(lái)報(bào)告。也就是說(shuō),當(dāng)我們指定了-M 1 –best –strata的話,那就只報(bào)告1個(gè)最好的。
對(duì)于輸入,-q是指輸入的文件為FASTQ(文件擴(kuò)展名通常為.fq或者.fastq)格式;-f是指輸入文件為FASTA(文件擴(kuò)展名通常為.fa, .mfa或者.fna)格式;-c是指在命令行直接輸入要比對(duì)的序列。
參考資料:
官方使用說(shuō)明手冊(cè) http://computing.bio.cam.ac.uk/local/doc/bowtie2.html
bowtie:短序列比對(duì)的新工具h(yuǎn)ttp://blog.sina.com.cn/s/blog_5ecfd9d90100ukqq.html
Lemon的博客:http://blog.163.com/zhoulili1987619@126/blog/static/3530820120137132216950/
附:
[Bowtie 2] is often the first step in pipelines for comparative genomics,including for variation calling, ChIP-seq, RNA-seq, BS-seq. [Bowtie 2] and [Bowtie] (also called “[Bowtie 1]” here) are also tightly integrated into some
tools, including [TopHat]: a fast splice junction mapper for RNA-seq reads,[Cufflinks]: a tool for transcriptome assembly and isoform quantitiation from RNA-seq reads, [Crossbow]: a cloud-enabled software tool for analyzing
reseuqncing data, and [Myrna]: a cloud-enabled software tool for aligning RNA-seq reads and measuring differential gene expression.
原文鏈接:https://www.baidu.com/s?wd=bowtie%E5%92%8Cbowtie2&rsv_spt=1&rsv_iqid=0xc3dbb58f00010a1d&issp=1&f=8&rsv_bp=0&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=1&rsv_sug3=2&rsv_sug1=2&rsv_sug7=101&rsv_t=0c88kw3SdPguWwJtYtx5FA1u9M47Gv9w33Ij6k0QzUUP6ML%2BkcnA5l9u5gBpd3xRwlgR
聯(lián)系客服