bowtie 短序列比对工具详解

常见的短序列比对工具有很多,如fasta、blast、bowtie、shrimp、soap等。每个工具都有其自身的优点,但同时也具备了一些缺点。权衡利弊,我选择bowtie作为主要的短序列比对工具。它速度很快,比对结果也容易理解。

现在举个例子来探讨bowtie的使用方法:现在有GENOME.fa、高通量测序数据Reads.fa,我们希望将Reads.fa比对到基因组GENOME.fa上。

(一)、对Reference文件(GENOME.fa)建库

1、bowtie-build GENOME.fa GENOME.fa

建库步骤可能需要1h甚至几个小时,建议在后台执行:

nohup bowtie-build GENOME.fa GENOME.fa &

(二)、将Reads.fa比对到GENOME.fa上,只能比对到正链,且匹配到基因组不多于20个不同位置,允许有1个错配(参数见下)

1

bowtie -f -a -m 20 -v 1 --al Reads_aligned --un Reads_unaligned --norc GENOME.fa Reads.fa Reads.bwt 2> log注:

-f 指定query文件为fasta格式

-a 保留所有比对结果

-m 指定最大比对到基因组的次数

-v 允许最大错配数,为[0-2]

--al 能map到GENOME的reads,fasta格式

--un 不能map到GENOME的reads,fasta格式

--norc 不输出匹配到负链的结果;如果不想输出比对到正链的结果,则用"--nofw"。不指定该选项则正负链结果都输出

后面依次写上GENOME索引文件,Reads文件,输出结果文件Reads.bwt,日志文件log。

(三)、bowtie输出结果的说明

1

2

sample001_x75 + Chr1 12453 ATCGGCCAATTACGGACTTAA IIIIIIIIIIIIIIIIIIIII 4 9:G>T

1                       2  3            4             5                                                      6            7   81. query id

2. "+"表示正向match;"-"表示对query作反向互补后match

3. reference id

4. 第2列为"+"时,表示query 第一个碱基map到reference(5'->3')上的位置,0-based(以0开始);第2列为"-"时,表示query的反向互补序列第一 个碱基map到reference(5'->3')上的位置,0-based(以0开始)

5. 如果第2列为"+",则和query序列一致;否则,和query序列反向互补

6. 质量文件,如果query文件为fasta格式,则无法获取质量文件,用I代替,I的数量与query序列长度一致

7. 当前query能map到GENOME的4个不同位置

8. 如果存在第8列,表示有mismatch。第8列可以分为三个部分,最左端的数字,中间的碱基为reference碱基,最右端的碱基为query碱基,下面分情况讨论:

第2列为"+"时:最左端的数字9表示query从5'端数起,第10个碱基为"T",而对应的reference为"G";

第2列为"-"时:最左端的数字9表示query先作反向互补,然后从3'端数起,第10个碱基为"T",而对应的reference为"G";

原文链接:http://blog.sina.com.cn/s/blog_4b91a9e50101mmqi.html

bowtie2 短序列比对工具详解

懒人必看

对参考序列构建index

bowtie2-build genome.fasta index

尝试使用前10000个reads进行比对

bowtie2 -u 10000

-p 8 -x index -1reads1.fq -2 reads2.fq -S out.sam

使用8个线程进行比对

bowtie2 -p 8-x index -1 reads1.fq -2reads2.fq -S out.sam

比对的sam结果中添加了read group信息

bowtie2 -p 8 --rg-id sample01 --rg"PL:ILLUMINA" --rg "SM:sample01" -x index -1 reads1.fq -2reads2.fq -S out.sam

常用的参数进行比对,可以更改其中的参数获得更好的结果

bowtie2 -q --phred33 --sensitive--end-to-end -I 0 -X 500 --fr --un unpaired --al aligned --un-conc unconc --al-concalconc -p 6 --reorder -x {-1 | -U} -S []

用法:

bowtie2 [options]* -x {-1 -2 | -U } -S []

bowtie2-build用法

bowtie2-build默认情况下将fasta文件换成index的数据库。

bowtie2-build

必须参数:

-x由bowtie2-build所生成的索引文件的前缀。首先 在当前目录搜寻,然后在环境变量BOWTIE2_INDEXES中制定的文件夹中搜寻。

-1双末端测寻对应的文件1。可以为多个文件,并用逗号分开;多个文件必须和-2中制定的文件一一对应。比如:"-1flyA_1.fq,flyB_1.fq

-2 flyA_2.fq,flyB

_2.fq".测序文件中的reads的长度可以不一样。

-2双末端测寻对应的文件2.

-U非双末端测寻对应的文件。可以为多个文件,并用逗号分开。测序文件中的reads的长度可以不一样。

-S所生成的SAM格式的文件前缀。默认是输入到标准输出。

以下是可选参数:

输入参数

-q输入的文件为FASTQ格式文件,此项为默认值。

-qseq输入的文件为QSEQ格式文件。

-f输入的文件为FASTA格式文件。选择此项时,表示--ignore-quals也被选择了。

-r输入的文件中,每一行代表一条序列,没有序列名和测序质量等。选择此项时,表示--ignore-quals也被选择了。

-c后直接为比对的reads序列,而不是包含序列的文件名。序列间用逗号隔开。选择此项时,表示—ignore-quals也被选择了。

-s/--skip input的reads中,跳过前个reads或者pairs。

-u/--qupto 只比对前个reads或者pairs(在跳过前个reads或者pairs后)。Default: no limit.

-5/--trim5 剪掉5'端长度的碱基,再用于比对。(default:0).

-3/--trim3 剪掉3'端长度的碱基,再用于比对。(default:0).

--phred33输入的碱基质量等于ASCII码值加上33.在最近的illuminapipiline中得以运用。最低碱基质量是“#”。

--phred64输入的碱基质量等于ASCII码值加上64.最低碱基质量是“B”。

--solexa-quals将Solexa的碱基质量转换为Phred。在老的GAPipeline版本中得以运用。Default: off.

--int-quals输入文件中的碱基质量为用“”分隔的数值,而不是ASCII码。比如40 4030 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 -iS,0,2.50

--sensitive Same as: -D 15 -R 2 -N 0 -L 22-i S,1,1.15 (default in --end-to-endmode)

--very-sensitive Same as: -D 20 -R 3 -N 0-L 20 -i S,1,0.50

–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 进行种子比对时允许的mismatch数.可以设为0或者1.Default:0.

-L 设定种子的长度.

************************************************************

功能选项

给bowtie的一些参数设定值的时候,使用一个计算公式代替,于是值的大小与比对序列的长

度成一定关系。有三部分组成: (a)计算方法,包括常数(C),线性(L),平方根(S)和

自然对数(G); (b)一个常数; (c)一个系数.

例如:

为L,-0.4,-0.6则计算公式为: f(x)= -0.4 + -0.6 * x

为G,1,5.4则计算公式为: f(x)= 1.0 + 5.4 * ln(x)

************************************************************

-i 设定两个相邻种子间所间距的碱基数。

************************************************************

例如:如果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模式中默认值为”-iS,1,1.15”.即表示f(x) = 1 + 1.15 *sqrt(x).如果read长度为100,则相邻种子的间距为12.

--n-ceil 设定read中允许含有不确定碱基(非GTAC,通常为N)的最大数目.Default: L,0,0.15.计算公式为: f(x) =0 + 0.15 * x,表示长度为100的read最多运行存在15个不确定碱基.一旦不确定碱基数超过15,则该条read会被过滤掉.

--dpad Default: 15.

--gbar 在read头尾个碱基内不允许gap.Default: 4.

--ignore-quals计算错配罚分的时候不考虑碱基质量.当输入序列的模式为-f, -r或者-c的时候,该设置自动成为默认设置.

--nofw/--norc –nofw设定read不和前导链(forwardreference strand)进行比对;

--norc设定不和后随链(reverse-complementreference strand)进行比对.

Default: both strands enabled.

--end-to-end比对是将整个read和参考序列进行比对.该模式--ma的值为0.该模式为默认模式, --local模式冲突.

--local该模式下对read进行局部比对,从而, read两端的一些碱基不比对,从而使比对得分满足要求.该模式下 –ma默认为2.

得分罚分参数

--ma 设定匹配得分.--local模式下每个read上碱基和参考序列上碱基匹配,则加分.在—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 当匹配位点中read,reference上有不确定碱基(比如N)时所设定的罚分值.Default: 1.

--rdg ,设置在read上打开gap罚分,延长gap罚分.Default: 5, 3.

--rfg ,设置在reference上打开gap罚分,延长gap罚分. Default: 5, 3.

--score-min 设定成为有效比对的最小分值.在—end-to-end模式下默认值为:L,-0.6,-0.6;在--local模式下默认值为:G,20,8.

报告参数

-k 默认设置下,bowtie2搜索出了一个read不同的比对结果,并报告其中最好的比对结果(如果好几个最好的比对结果得分一致,则随机挑选出其中一个).而在该模式下,bowtie2最多搜索出一个read个比对结果,并将这些结果按得分降序报告出来.

-a和-k参数一样,不过不限制搜索的结果数目.并将所有的比对结果都按降序报告出来.此参数和-k参数冲突.值得注意的是:如果基因组含有很多重复序列时,该参数会导致程序

运行极其缓慢.

Effort参数

-D 比对时,将一个种子延长后得到比对结果,如果不产生更好的或次好的比对结果,则该次比对失败.当失败次数连续达到次后,则该条read比对结束. Bowtie2才会继续进行下去. Default: 15.当具有-k或-a参数,则该参数所产生的限制会自动调整.

-R 如果一个read所生成的种子在参考序列上匹配位点过多.当每个种子平均匹配超过300个位置,则通过一个不同的偏移来重新生成种子进行比对. 则是重新生成种子

的次数. Default: 2.

Paired-end参数

-I/--minins 设定最小的插入片段长度.Default: 0.

-X/--maxins 设定最长的插入片段长度.Default: 500.

--fr/--rf/--ff 设定上下游reads和前导链paired-end比对的方向. --fr: 匹配时,read1在5'端上游, 和前导链一致, read2在3'下游, 和前导链反向互补. 或者read2在上游, read1在下游反向互补; --rf: read1在5'端上游, 和前导链反向互补,

read2在3'端下游, 和前导链一致; --ff:两条reads都和前导链一致. Default: --fr. 默认设置适合于Illumina的paired-end测序数据; 若是mate-paired, 则要选择—rf参数.

--no-mixed 默认设置下, 一对reads不能成对比对到参考序列上,则单独对每个read进行比对. 该选项则阻止此行为.

--no-discordant 默认设置下, 一对reads不能和谐比对(concordantalignment,即满足-I, -X, --fr/--rf/--ff的条件)到参考序列上, 则搜寻其不和谐比对(disconcordant alignment, 即两条reads都能独一无二地比对到参考序列上,

但是不满足-I,-X,--fr/--rf/--ff的条件). 该选项阻止此行为.

--dovetail read1和read2的关系为dovetail的时候,该状况算为和谐比对. 默认情况下dovetail不算和谐比对.

--no-contain read1和read2的关系为包含的时候, 该状况不算为和谐比对. 默认情况下包含关系算为和谐比对.

--no-overlap read1和read2的关系为有重叠的时候, 该状况不算为和谐比对. 默认情况下两个reads重叠算为和谐比对.

输出参数

-t/--time --un 将unpaired reads写入到.

--un-gz 将unpairedreads写入到, gzip压缩.

--un-bz2 将unpairedreads写入到, bz2压缩.

--al 将至少能比对1次以上的unpairedreads写入.

--al-gz ... ,gzip压缩.

--al-bz2 ... ,bz2压缩.

--un-conc 将不能和谐比对的paired-endreads写入.

--un-conc-gz ... ,gzip压缩.

--un-conc-bz2 ... ,bz2压缩.

--al-conc 将至少能和谐比对一次以上的paired-endreads写入.

--al-conc-gz ... ,gzip压缩.

--al-conc-bz2 ... ,bz2压缩.

--quiet 安静模式,除了比对错误和一些严重的错误, 不在屏幕上输出任何东西.

--met-file 将bowtie2的检测信息(metrics)写入文件.用于debug.Default: metrics disabled.

--met-stderr 将bowtie2的检测信息(metrics)写入标准错误文件句柄. 和上一个选项不冲突. Default: metrics disabled.

--met 每隔秒写入一次metrics记录. Default:1.

Sam 参数

--no-unal不记录没比对上的reads.

--no-hd不记录SAM header lines (以@开头).

--no-sq不记录@SQ的SAM headerlines.

--rg-id 设定read groupID为text。在SAM文件的头中增加一行@RG,在输出的SAM文件中添加Tag "RG:Z:text"。

--rg 使用text作为@RG的一列,比如"SM:Pool1"。在@RG中加入多列,则多次使用该参数即可。在进行Variant calling的过程中需要@RG头,SM信息和Tag RG。

性能参数

-o/--offrate 无视index的offrate值, 以取代之. Index默认的值为5. 值必须大于index的offrate值, 同时越大, 耗时越长,耗内存越少.

-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 使用作为随机数产生的种子.Default: 0.

--version打印程序版本并退出

-h/--help 打印用法信息并推出

原文来源:https://www.baidu.com/s?wd=bowtie2&pn=10&oq=bowtie2&tn=baiduhome_pg&ie=utf-8&rsv_idx=2&rsv_pq=e8d89ff5000058cb&rsv_t=a957VqdhyupNsqSPsb%2FOFxxX1Gh%2F7XTL0EvPwADg2d9M7UfRvhIt8PelfoS2wZHxKbeV&rsv_page=1

bowtie 加mn标签_bowtie和bowtie2用法详解相关推荐

  1. bowtie 加mn标签_Bowtie 比对

    [Bowtie]DNA序列拼接的原理 [Jenny点评]我一直以为Bowtie是一个短序列拼接工作,实际上这是错误的.它不是序列拼接工作,只是一个序列比对的工具.最后的结果是相对index而言,对各个 ...

  2. bowtie 加mn标签_bowtie:短序列比对的新工具

    Bowtie是一个超级快速的,较为节省内存的短序列拼接至模板基因组的工具.它在拼接35碱基长度的序列时,可以达到每小时2.5亿次的拼接速度. Bowtie并不是一个简单的拼接工具,它不同于Blast等 ...

  3. html语言 input,input标签(HTML中input用法详解)

    input标签 Firstname: Lastname: HTML中input用法详解 1.type 格式:type="文本的类型" 当type设置为text时,text属性表示一 ...

  4. bowtie和bowtie2用法详解

    bowtie 短序列比对工具详解 常见的短序列比对工具有很多,如fasta.blast.bowtie.shrimp.soap等.每个工具都有其自身的优点,但同时也具备了一些缺点.权衡利弊,我选择bow ...

  5. bowtie 加mn标签_Bowtie2用法祥解

    懒人必看 对参考序列构建index $ bowtie2-build genome.fasta index 尝试使用前10000个reads进行比对 $ bowtie2 -u 10000 -p 8 -x ...

  6. bowtie 加mn标签_Bowtie2使用方法与参数详细介绍 | Public Library of Bioinformatics

    懒人必看 Bowtie2 -q --phred33 --sensitive --end-to-end -I 0 -X 500 --fr --un unpaired --al aligned --un- ...

  7. bowtie 加mn标签_Bowtie2使用方法与参数详细介绍

    懒人必看Bowtie2 -q --phred33 --sensitive --end-to-end -I 0 -X 500 --fr --un unpaired --al aligned \ --un ...

  8. bowtie 加mn标签_Bowtie2使用方法与参数详细介绍 - Public Library of Bioinformatics

    Bowtie2 使用方法与参数详细介绍 - Public Library of Bioinformatics 懒人必看 Bowtie2 -q --phred33 --sensitive --end-t ...

  9. html定义var,html的var标签是什么?关于var标签的定义和用法详解

    本篇为大家介绍了html中的var标签,html var标签是什么意思?html var标签有什么用你都知道吗,可能有很多人都不知道,那么就来看看本篇文章吧,除了基础的html var标签的定义和格式 ...

最新文章

  1. Tableau上面地图与条形图结合_何为计算的详细级别,认识Tableau中的Level of Detail...
  2. 如何对Javascript代码进行二次压缩(混淆)
  3. php变量前下滑_PHP变量
  4. C#LeetCode刷题-贪心算法
  5. vue : 无法加载文件 C:\Users\xxx\AppData\Roaming\npm\vue.psl,因为在此系统上禁止运行脚本
  6. 送 9 个漫步者蓝牙耳机,程序员听歌神器
  7. linux设置usb选择性暂停,USB大容量存储设备无法启动的解决方法
  8. 常见错误:无效的文件dsn
  9. JavaScript 笔记之数组
  10. 闲云野鹤:吃鸡(三)之场景制作:制作毒圈
  11. 手把手教你自制555芯片
  12. 记lrd的高二上学期第五次调研考试
  13. Java入门概念回炉重造
  14. Java:用户输入矩形的长和宽,使用带返回值的方法求该矩形的面积并输出
  15. vue过滤器使用方法
  16. python智能语音识别_Python 智能语音识别-Speech搭建和使用
  17. android登陆按钮图片素材,Android精美登录界面设计
  18. 武汉大学计算机学院国家重点实验室,实验室简介
  19. 常见的web安全问题有哪些
  20. Ray Tracing in One Weekend从零实现一个简单的光线追踪渲染器

热门文章

  1. NER中的一些编码器与解码器
  2. PyCharm几个常用的快捷键
  3. MySQL修改密码安全策略
  4. 移动端UML图应用之UML交互图——顺序图和通信图
  5. IDEA自动生成UML顺序图/时序图
  6. 浪漫七夕节文案、海报,进来自取。
  7. 日常JAVA基础面试题集8(含答案)
  8. 新版 iOS 15 Safari 有哪些值得学习的交互设计?全总结好了!
  9. mysql聚合函数要分组吗_mysql聚合函数和分组-阿里云开发者社区
  10. Python_Turtle绘制一元二次方程(采用函数描点法绘制)(turtle实现)【2021-10-24】