Bowtie使用介绍
Bowtie(下载)是一个超级快速的,较为节省内存的短序列拼接至模板基因组的工具。它在拼接35碱基长度的序列时,可以达到每小时2.5亿次的拼接速度。Bowtie并不是一个简单的拼接工具,它不同于Blast等。它适合的工作是将小序列比对至大基因组上去。它最长能读取1024个碱基的片段。换言之,bowtie非常适合下一代测序技术。
在使用bowtie前,需要使用bowtie-build来构建比对模板。如果你需要比对是比较常见的基因组的话,你可以去下载你所需要的Pre-built indexes文件就可以了。如你要想建立human chr1的索引,可采用下列命令:-bash-3.2$ ./bowtie-build genomes/hg19/chr1.fa chr1 ,结果会生存chr1.1.ebwt chr1.2.ebwt chr1.3.ebwt chr1.4.ebwt四个索引文件,然后把这四个文件移到程序所在文件夹的indexes文件夹中就可以了,如果你机器的内存不够4G,建议不要做整个基因的索引,可每条染色体做一个。如果你没有基因组序列,也可使用软件自带的程序(./scripts/make_hg19.sh)建立索引。
如前所述,bowtie适合于将短序列拼接至大的模板上,尤其是基因组。模板最小尺寸不能小于1024碱基,而短序列最长而不能超过1024碱基。 Bowtie设计思路是,1)短序列在基因组上至少有一处最适匹配, 2)大部分的短序列的质量是比较高,3)短序列在基因组上最适匹配的位置最好只有一处。这些标准基本上和RNA-seq, ChIP-seq以及其它一些正在兴起的测序技术或者再测序技术的要求一致。
如果bowtie在你的机器上运行起来很慢,那么你可以试试以下的一些办法来让它跑得快一些:
尽可能的使用64位bowtie。很显然,64位运算会比32位运算更快。所以最好使用支持64位运算的计算机来运行64位的bowtie。如果你是从原文件开始编译程序,在g++编译时,你需要传递-m64参数,你也可以在make的时候加入这一信息,比如说传递BITS=64给make,具体的:make BITS=64 bowtie。想知道你自己运算的是什么版本的bowtie,你可以运行bowtie –version
如果你的计算机有多个CPU或者CPU内核,那么请使用-p参数。-p参数会让bowtie进入多线程模式。每一个线程都会使用单独的CPU或者CPU内核。这种并行的运算模式也会大大加快运算速度。
如果你的报告文件中每条短序列都有太多的匹配位点(超过10)那么你可以试着重新使用bowtie-build加上 –offrate参数,如bowtie-build –offrate 4。-o/–offrate默认值为5,每下降1,比对速度会增加1倍,但是系统消耗(硬盘空间和内存)也会加倍。
如果你的系统配置太低,比如内存不足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
./bowtie -S -t -p 8 -q –chunkmbs 128 hg18_combined.fa.bowtie -1 Pair1.fastq -2 Pair2.fastq bowpeout.sam
./bowtie -S -t -p 8 -q -I 0 -X 300 –chunkmbs 128 hg18_combined.fa.bowtie -1 Pair1.fastq -2 Pair2.fastq bowpeout.sam
time bowtie -p 2 -v 2 -k 11 -m 10 -t –strata –best hg19.index -1 sample_10M_1.fastq -2 sample_10M_2.fastq sample.bowtie_aln.txt
./bowtie-p 5 -m 10 -f trx -1 mate1.fa -2 mate2.fa >output