介绍
Bowtie 2 是一个超快速且内存高效的工具,用于将测序读段对齐到长参考序列。它特别适合将大约50到100个字符长度的读段对齐到相对较长的基因组(例如哺乳动物基因组)。Bowtie 2 使用 FM Index(基于 Burrows-Wheeler变换 或 BWT)来保持其内存占用量小:对于人类基因组,其内存占用通常约为3.2 GB RAM。Bowtie 2 支持带有仿射间隙惩罚的有间隙对齐、局部对齐和配对末端对齐模式。可以同时使用多个处理器来实现更高的对齐速度。
Bowtie 2 输出 SAM 格式的对齐结果,使其能够与大量其他工具(例如 SAMtools、GATK)互操作。
Bowtie 2 通常是用于比较基因组学管道的第一步,包括变异检测、ChIP-seq、RNA-seq、BS-seq。Bowtie 2 和 Bowtie(也称为 “Bowtie 1”)也与许多其他工具紧密集成,其中一些工具在此列出。
- Langmead B, Wilks C, Antonescu V, Charles R. Scaling read aligners to hundreds of threads on general-purpose processors. Bioinformatics. 2018 Jul 18. doi: 10.1093/bioinformatics/bty648.
- Langmead B, Salzberg SL. Fast gapped-read alignment with Bowtie 2. Nature Methods. 2012 Mar 4;9(4):357-9. doi: 10.1038/nmeth.1923.
Bowtie 1 与 Bowtie 2 的区别
Bowtie 1 于 2009 年发布,主要针对当时流行的相对较短的测序读段(最多 25-50 个核苷酸)。自那时以来,技术在测序通量(每个测序器每天产生的核苷酸数量)和读段长度(每个读段的核苷酸数量)方面都有了改进。
Bowtie 1 与 Bowtie 2 的主要区别包括:
- 对于长度超过约 50 bp 的读段,Bowtie 2 通常比 Bowtie 1 更快、更敏感且使用更少的内存。对于相对较短的读段(例如少于 50 bp),Bowtie 1 有时更快和/或更敏感。
- Bowtie 2 支持带有仿射间隙惩罚的有间隙对齐。间隙数量和间隙长度不受限制,除了通过可配置的评分方案限制。Bowtie 1 只能找到无间隙对齐。
- Bowtie 2 支持 局部对齐,这不需要读段完全对齐。局部对齐可能在一种或两种极端情况下被”修剪”(软剪切),以优化对齐得分。Bowtie 2 也支持 端到端对齐,就像 Bowtie 1 一样,要求读段完全对齐。
- Bowtie 2 没有读段长度上限。Bowtie 1 有大约 1000 bp 的上限。
- Bowtie 2 允许对齐到参考序列中的 模糊字符(例如
N)。Bowtie 1 不支持。 - Bowtie 2 放弃了 Bowtie 1 的对齐”层级”概念,以及”Maq-like”和”端到端”模式的区别。在 Bowtie 2 中,所有对齐都位于连续的对齐得分谱中,评分方案类似于 Needleman-Wunsch 和 Smith-Waterman 算法。
- Bowtie 2 的 配对末端对齐 更灵活。例如,对于不以配对方式对齐的配对读段,Bowtie 2 会尝试为每个配对寻找非配对对齐。
- Bowtie 2 报告一系列映射质量,而 Bowtie 1 只报告 0 或高值。
- Bowtie 2 不对齐颜色空间读段。
Bowtie 2 不是 Bowtie 1 的”直接替换”。Bowtie 2 的命令行参数和基因组索引格式都与 Bowtie 1 不同。
Bowtie 2 不是什么
Bowtie 2 专门用于将相对较短的测序读段对齐到长基因组。尽管如此,它处理任意小的参考序列(例如扩增子)和非常长的读段(即 10s 或 100s 的千碱基),尽管在这种情况下速度较慢。它针对典型 Illumina 测序仪产生的读长和错误模式进行了优化。
Bowtie 2 不支持颜色空间读段的对齐。(Bowtie 1 支持。)
The bowtie2 对齐器
bowtie2 接受 Bowtie 2 索引和一组测序读段文件,并输出一组 SAM 格式的对齐结果。
“对齐”是发现读段序列如何与参考序列相似的过程。对齐是这个过程的结果,具体来说:对齐是将读段中的一些或所有字符与参考序列中的一些字符对齐,以揭示它们如何相似。例如:
Read: GACTGGGCGATCTCGACTTCG ||||| |||||||||| ||| Reference: GACTG--CGATCTCGACATCG破折号符号代表间隙,竖线显示对齐字符匹配的位置。
我们使用对齐来推测读段相对于参考基因组的来源。并不总是能够确定这一点。例如,如果参考基因组包含几个长的 A 串(AAAAA 等),而读段序列是短的 A 串(AAAAA),我们无法确定读段究竟起源于 A 的海洋中的哪个位置。
端到端对齐与局部对齐
默认情况下,Bowtie 2 执行端到端读段对齐。也就是说,它搜索涉及所有读段字符的对齐。这也称为”未修剪”或”未剪切”对齐。
当指定 --local 选项时,Bowtie 2 执行局部读段对齐。在这种模式下,如果这样做可以最大化对齐得分,Bowtie 2 可能会”修剪”或”剪切”读段字符的一个或两个端点。
端到端对齐示例
以下是一个”端到端”对齐,因为它涉及读段中的所有字符。这种对齐可以通过 Bowtie 2 在端到端模式或局部模式下产生。
Read: GACTGGGCGATCTCGACTTCGReference: GACTGCGATCTCGACATCG
Alignment: Read: GACTGGGCGATCTCGACTTCG ||||| |||||||||| ||| Reference: GACTG--CGATCTCGACATCG局部对齐示例
以下是一个”局部”对齐,因为读段两端的一些字符不参与。在这种情况下,从开头省略了 4 个字符(或”软修剪”或”软剪切”),从末尾省略了 3 个字符。这种对齐只能通过 Bowtie 2 在局部模式下产生。
Read: ACGGTTGCGTTAATCCGCCACGReference: TAACTTGCGTTAAATCCGCCTGG
Alignment: Read: ACGGTTGCGTTAA-TCCGCCACG ||||||||| |||||| Reference: TAACTTGCGTTAAATCCGCCTGG分数:分数越高表示越相似
对齐分数量化了读段序列与参考序列的相似性。分数越高,它们越相似。分数是通过从每个差异(错配、间隙等)中减去惩罚,并在局部对齐模式下为每个匹配添加奖励来计算的。
分数可以通过 —ma(匹配奖励)、—mp(错配惩罚)、—np(读段或参考序列中包含 N 的惩罚)、—rdg(仿射读段间隙惩罚)和 —rfg(仿射参考间隙惩罚)选项进行配置。
端到端对齐分数示例
在高质量位置的错配碱基默认受到 -6 的惩罚。长度为 2 的读段间隙默认受到 -11 的惩罚(-5 用于间隙开放,-3 用于第一个扩展,-3 用于第二个扩展)。因此,在端到端对齐模式下,如果读段长 50 bp,除了在高质量位置有一个错配和一个长度为 2 的读段间隙外,它与参考序列完全匹配,那么总分数是 -(6 + 11) = -17。
端到端模式下可能的最佳对齐分数是 0,这发生在读段与参考序列之间没有差异时。
局部对齐分数示例
在高质量位置的错配碱基默认受到 -6 的惩罚。长度为 2 的读段间隙默认受到 -11 的惩罚(-5 用于间隙开放,-3 用于第一个扩展,-3 用于第二个扩展)。匹配的碱基默认受到 +2 的奖励。因此,在局部对齐模式下,如果读段长 50 bp,除了在高质量位置有一个错配和一个长度为 2 的读段间隙外,它与参考序列完全匹配,那么总分数等于总奖励 2 * 49 减去总惩罚 6 + 11,= 81。
局部模式下的最佳可能分数等于匹配奖励乘以读段长度。这发生在读段与参考序列之间没有差异时。
有效对齐满足或超过最小分数阈值
对于 Bowtie 2 认为”有效”(即”足够好”)的对齐,它必须具有不低于最小分数阈值的对齐分数。阈值是可配置的,并以读段长度的函数形式表示。在端到端对齐模式下,默认的最小分数阈值是 -0.6 + -0.6 * L,其中 L 是读段长度。在局部对齐模式下,默认的最小分数阈值是 20 + 8.0 * ln(L),其中 L 是读段长度。这可以通过 —score-min 选项进行配置。有关如何设置对应于函数的选项(如 —score-min)的详细信息,请参见设置函数选项部分。
映射质量:分数越高表示越独特
对齐器不能总是以高置信度将读段分配到其起源点。例如,一个起源于重复元件内的读段可能与基因组中该元件的许多出现位置对齐同样良好,使对齐器无法基于任何依据偏好其中一个。
对齐器通过报告映射质量来表征其对起源点的置信度:一个非负整数 Q = -10 log10 p,其中 p 是对齐不对应于读段真正起源点的概率估计。映射质量有时缩写为 MAPQ,并记录在 SAM 的 MAPQ 字段中。
映射质量与”独特性”相关。我们说一个对齐是独特的,如果它比所有其他可能的对齐具有显著更高的对齐分数。最佳对齐分数与第二佳对齐分数之间的差距越大,最佳对齐越独特,其映射质量应该越高。
准确的映射质量对于下游工具如变异检测器很有用。例如,变异检测器可能会选择忽略映射质量低于 10(例如)的证据。映射质量为 10 或更低表示读段真正起源于其他地方的概率至少为 1/10。
对齐配对读段
“配对末端”或”配对读段”读段由一对配对组成,称为配对 1 和配对 2。配对带有关于(a)配对相对取向的先验期望,以及(b)在原始 DNA 分子上分离它们的距离的先验期望。对于给定数据集,这些期望取决于用于生成数据的实验室程序。例如,产生配对的常见实验室程序是 Illumina 的配对末端测序试验,该试验产生具有 FR(“前向,反向”)相对取向的配对,这意味着如果配对 1 来自 Watson 链,配对 2 很可能来自 Crick 链,反之亦然。此外,该协议产生配对,其在末端到末端的预期基因组距离约为 200-500 个碱基对。
为简单起见,本手册使用”配对末端”术语来指代任何具有预期相对取向和距离的配对。根据协议,这些可能实际上被称为”配对末端”或”配对读段”。此外,我们总是将构成配对的单个序列称为”配对”。
配对输入
配对通常存储在一对文件中,一个文件包含配对 1,另一个文件包含配对 2。配对 1 文件中的第一个配对与配对 2 文件中的第一个配对形成配对,第二个与第二个配对,以此类推。当使用 Bowtie 2 对配对进行对齐时,使用 -1 参数指定包含配对 1 的文件,使用 -2 参数指定包含配对 2 的文件。这使得 Bowtie 2 在对齐时考虑读段的配对性质。
配对 SAM 输出
当 Bowtie 2 为配对打印 SAM 对齐时,它会打印两条记录(即两条输出行),每条记录描述一个配对。第一条记录描述配对 1 的对齐,第二条记录描述配对 2 的对齐。