跳到主要内容
访问密钥 NCBI主页 MyNCBI主页 主要内容 主导航
生物信息学。2009年7月15日;25(14):1754–1760。
2009年5月18日在线发布。 数字对象标识:10.1093/生物信息学/btp324
预防性维修识别码:PMC2705234型
PMID:19451168

使用Burrows–Wheeler变换快速准确地进行短读对齐

摘要

动机:新的DNA测序技术产生了大量的短读,这要求开发快速准确的读对齐程序。已经开发了第一代基于散列表的方法,包括MAQ,它准确、功能丰富、速度快,足以对齐单个个体的短读取。然而,MAQ不支持单端读取的间隙对齐,这使得它不适合经常出现索引的较长读取的对齐。当排列扩大到数百个个体的重新排序时,MAQ的速度也令人担忧。

结果:我们实现了Burrows-Wheeler校准工具(BWA),这是一个新的读取校准包,基于Burrows–Wheeler变换(BWT)的反向搜索,以有效地将短测序读取与人类基因组等大型参考序列对齐,从而允许不匹配和缺口。BWA支持两种基本空间读取,例如从Illumina测序机读取,以及从AB SOLiD机器读取颜色空间。对模拟和真实数据的评估表明,BWA比MAQ快约10-20倍,同时实现了类似的精度。此外,BWA以新的标准SAM(序列对齐/映射)格式输出对齐。校准后的变量调用和其他下游分析可以通过开源SAMtools软件包实现。

可利用性: http://maq.sourceforge.net

联系人: ku.ca.regnas@医生

1简介

Illumina/Selexa测序技术通常在机器的单次运行中产生5000万到200万个32-100 bp的读数。将如此大量的短阅读映射到与人类一样大的基因组对现有的序列比对程序提出了巨大的挑战。为了满足高效准确的短读数制图的要求,开发了许多新的对准程序。其中一些,如Eland(Cox,2007,未出版材料)、RMAP(Smith等人。,2008)、MAQ(李等人。,2008年a),缩放(Lin等人。,2008),SeqMap(Jiang和Wong,2008)、CloudBurst(Schatz,2009)和SHRiMP(http://compbio.cs.toronto.edu/shrimp),通过散列读取序列并扫描引用序列来工作。这类程序通常具有灵活的内存占用,但在很少对齐读取时可能会有扫描整个基因组的开销。第二类软件,包括SOAPv1(Li等人。,2008年b)、PASS(坎帕尼亚等人。,2009),MOM(Eaves和Gao,2009),ProbeMatch(Jung Kim等人。,2009)、NovoAlign(http://www.novocraft.com网站),重新排序(http://code.google.com/p/re-seq)、摩赛克(http://bioinformatics.bc.edu/marthlab/Mosaik(生物信息学))和BFAST(http://genome.ucla.edu/bfast),分解基因组。这些程序可以很容易地与多线程并行,但它们通常需要很大的内存来构建人类基因组的索引。此外,这些软件经常引入的迭代策略可能会使其速度对测序错误率敏感。第三类包括滑杆(马希斯等人。,2009)它通过对引用子序列和读取序列进行合并排序来进行对齐。

最近,使用Burrows–Wheeler变换(BWT)的字符串匹配理论,1994)引起了几个团体的注意,这导致了SOAPv2的开发(http://soap.genomics.org.cn/)、鲍蒂(兰米德等人。,2009)和BWA,我们在本文中描述的新对准器。基本上,使用反向搜索(Ferragina和Manzini,2000; 利珀特,2005)使用BWT,我们能够有效地模拟基因组前缀trie的自顶向下遍历,并且内存占用相对较小(Lam等人。,2008)并计算一串长度的准确点击次数在里面O(运行)()时间与基因组大小无关。对于不精确搜索,来自隐式前缀的BWA样本检索小于k个编辑与查询读取的距离。因为精确的重复被折叠在前缀trie的一个路径上,所以我们不需要将读取与重复的每个副本对齐。这就是基于BWT的算法高效的主要原因。

在本文中,我们将充分介绍BWT的背景和精确匹配的反向搜索,并给出在BWA中实现的不精确匹配算法。我们通过比较BWA比对与模拟的真实比对来评估BWA在模拟数据上的性能,并通过检查一致配对中映射的读取分数和计算针对混合基因组映射的未对齐读取数来评估真实配对数据上的BWA性能。

2方法

2.1前缀trie和字符串匹配

字符串的前缀trieX(X)是一棵树,其中每条边都用一个符号标记,并且从叶子到根的路径上的边符号的字符串串联给出了一个唯一的前缀X(X)。在前缀trie上,从节点到根的边缘符号的字符串串联提供了一个唯一的子字符串X(X),调用节点表示的字符串。注意,前缀trieX(X)与反向的后缀trie相同X(X)因此后缀trie理论也可以应用于前缀trie。

使用前缀trie,测试查询W公司是的精确子字符串X(X)相当于查找表示W公司,可以在中完成O(运行)(|W公司|)通过匹配中的每个符号W公司从根部开始到边缘。为了允许不匹配,我们可以遍历trie并匹配W公司到每一条可能的路径。我们稍后将展示如何使用前缀信息来加速此搜索W公司图1给出了前缀trie for的示例GOOGOL公司’. 每个节点中的后缀数组(SA)间隔如所示第2.3节

保存图片、插图等的外部文件。对象名为btp324f1.jpg

字符串的前缀trieGOOGOL公司’. 符号∧表示字符串的开始。节点中的两个数字给出了节点表示的字符串的SA间隔(参见第2.3节). 虚线显示强力搜索查询字符串的路径英雄联盟',最多允许一个不匹配。方块中的边缘标签标记搜索中查询的不匹配项。唯一命中的是表示字符串“高尔夫球’.

2.2 Burrows–Wheeler变换

设∑为字母表。符号$在∑中不存在,并且在词典上小于∑中的所有符号。一根绳子X(X)=01n个−1总是以符号$结尾(即。n个−1=$),此符号仅显示在末尾。X(X)[]=,=0, 1,…,n个−1,成为-的第个符号X(X),X(X)[,j个]=j个子字符串和X(X)=X(X)[,n个−1]后缀X(X).后缀数组S公司属于X(X)是整数0的置换…n个−1使得S公司()是的开始位置-第th个最小后缀。的BWTX(X)定义为B类[]=$时S公司()=0和B类[]=X(X)[S公司()−1]否则。我们还定义字符串的长度X(X)作为|X(X)|因此|X(X)|=|B类|=n个图2给出了一个如何构造BWT和后缀数组的示例。

保存图片、插图等的外部文件。对象名为btp324f2.jpg

为构造后缀数组和BWT字符串X(X)=古戈尔$.字符串X(X)循环生成七个字符串,然后按字典顺序排序。排序后,第一个符号的位置形成后缀数组(6、3、0、5、2、4、1),循环字符串的最后一个符号的串联给出BWT字符串瞧$oogg

算法如所示图2在时间和空间上是二次的。然而,这并不是必须的。实际上,我们通常先构造后缀数组,然后生成BWT。大多数构造后缀数组的算法至少需要n个⌈日志2n个⌉位工作空间,相当于人类基因组的12GB。最近,尊敬的等人。(2007)给出了一种新的算法n个位的工作空间,在构建人类基因组的BWT的峰值时间只需要<1GB的内存。该算法在BWT-SW(Lam)中实现等人。,2008). 我们修改了它的源代码,使其能够与BWA一起工作。

2.3后缀数组间隔和序列对齐

If字符串W公司是的子字符串X(X),每次出现的位置W公司在里面X(X)将以后缀数组中的间隔出现。这是因为所有具有W公司因为前缀是一起排序的。基于这一观察结果,我们定义:

方程式图像
(1)

方程式图像
(2)

特别是,如果W公司是空字符串,R(右)(W公司)=1和保存图片、插图等的外部文件。对象名称为btp324i1.jpg.间隔保存图片、插图等的外部文件。对象名称为btp324i2.jpg被称为SA间隔属于W公司和所有事件的位置集W公司在里面X(X)保存图片、插图等的外部文件。对象名为btp324i3.jpg。例如图2,字符串的SA间隔''是[1,2]。此间隔中的后缀数组值为3和0,它们给出了“”的所有出现位置’.

知道后缀数组中的间隔,就可以得到位置。因此,序列比对相当于搜索X(X)与查询匹配的。对于精确匹配问题,我们只能找到一个这样的区间;对于不精确匹配问题,可能会有很多。

2.4精确匹配:反向搜索

C类()是中的符号数X(X)[0,n个词法上小于∈∑和O(运行)(,)出现的次数在里面B类[0,]. 费拉吉纳和曼奇尼(2000)证明如果W公司是的子字符串X(X)以下为:

方程式图像
(3)

方程式图像
(4)

还有那个保存图片、插图等的外部文件。对象名为btp324i4.jpg当且仅当是的子字符串X(X)。此结果可以测试W公司是的子字符串X(X)并计算W公司在里面O(运行)(|W公司|)迭代计算时间R(右)保存图片、插图等的外部文件。对象名为btp324i5.jpg从的结尾W公司。此过程称为向后搜索

需要注意的是,方程式()和(4)实际实现对前缀trie的自顶向下遍历X(X)假设我们知道父节点的时间间隔,就可以在恒定时间内计算子节点的SA时间间隔。从这个意义上说,反向搜索相当于对前缀trie进行精确的字符串匹配,但没有将trie显式地放入内存中。

2.5不精确匹配:有界遍历/回溯

图3给出了一个递归算法来搜索X(X)与查询字符串匹配的W公司不超过z(z)差异(不匹配或差距)。本质上,该算法使用反向搜索从基因组中抽取不同的子串。此过程受D类(·)数组,其中D类()是W公司[0,]. 更好的D类被估计,搜索空间越小,算法的效率就越高。通过设置D类()全部=0,但由此产生的算法在差异数量上明显是指数级的,效率会更低。

保存图片、插图等的外部文件。对象名为btp324f3.jpg

匹配子串SA区间的非精确搜索算法W公司.参考X(X)$已终止,而W公司A/C/G/T终止。程序I关系S公司耳朵(W公司,z(z))返回匹配的子字符串的SA间隔W公司不超过z(z)差异(不匹配或差距);nex(连接)R(右)担保(W公司,,z(z),k个,)递归计算匹配的子字符串的SA间隔W公司[0,]不超过z(z)后缀条件的差异W公司+1匹配间隔[k个,]. 以星号开头的行用于插入和删除X(X)分别是。D类()是字符串差异数的下限W公司[0,].

C类计算中的D程序图3给出了一个更好的边界,尽管不是最优的。它在概念上等同于图4,这更容易理解。我们使用反向(非补码)引用序列的BWT来测试W公司也是的子字符串X(X)注意,要使用BWT字符串进行此测试B类只有C计算D和O(运行)(|W公司|2)程序,而不是O(运行)(|W公司|)如中所述图3

保存图片、插图等的外部文件。对象名为btp324f4.jpg

计算的等效算法D类()。

了解D类,我们回到搜索W公司=英雄联盟在里面X(X)=GOOGOL公司$(图1). 如果我们设置D类()全部=0和不允许间隙(删除算法中的两条星形线),I的调用图nex(连接)R(右)担保,它是一棵树,有效地模拟了中显示为虚线的搜索路线图1。但是,使用C计算D、 我们知道这一点D类(0)=0和D类(1)=D类(2)=1. 然后我们可以避免下降到“G公司'和'O(运行)'前缀trie中的子树以获得更小的搜索空间。

中的算法图3保证找到允许最大值的所有间隔z(z)差异。它在理论上是完整的,但在实践中,我们也做了各种修改。首先,我们对不匹配、缺口开放和缺口扩展支付不同的惩罚,这对生物数据更为现实。其次,我们使用类堆的数据结构来保持部分命中,而不是使用递归。类堆结构的优先级取决于部分命中的对齐分数,以使BWA始终首先找到最佳间隔。同时处理反向补码读取序列。请注意,中描述的递归图3有效模拟前缀trie上的深度优先搜索(DFS),而BWA使用这种堆状数据结构实现宽度优先搜索(BFS)。第三,我们采用迭代策略:如果顶部间隔是重复的,我们默认不搜索次优间隔;如果顶部间隔是唯一的,并且z(z)不同的是,我们只搜索高达z(z)+1个差异。这种迭代策略加速了BWA,同时保留了生成映射质量的能力。然而,这也使得BWA的速度对读取和引用之间的不匹配率非常敏感,因为查找差异较大的命中率通常较慢。第四,我们允许对一次读取的前几十个碱基对中允许的最大差异设置一个限制,我们称之为种子顺序。给定70 bp的模拟读取,32 bp种子中最大两个差异的对齐速度比不播种快2.5倍。对准误差率,即模拟中自信映射中错误对准的分数(另请参见第3.2节),仅从0.08%增加到0.11%。种子对较短的读取效果较差。

2.6减少内存

上述算法需要加载发生数组O(运行)和后缀数组S公司在内存中。拿着满满的O(运行)S公司数组需要巨大的内存。幸运的是,我们可以通过只存储O(运行)S公司数组,并在运行中计算其余部分。BWT-SW(兰等人。,2008)和鲍蒂(兰米德等人。,2009)使用费拉吉纳和曼奇尼首次引入的类似策略(2000)。

给定基因组大小n个,引用数组O(运行)(·,·)需要4个n个⌈日志2n个⌉位,每个整数取⌈log2n个⌉位,共4位n个在数组中。实际上,我们存储在内存中O(运行)(·,k个)的k个这是128的因子,并使用BWT字符串计算其余元素B类.当我们用两个位表示核苷酸时,B类需要2个n个位。因此,向后搜索的内存为2n个+n个⌈日志2n个⌉/32位。由于我们还需要存储反向基因组的BWT来计算界限,因此计算间隔所需的内存增加了一倍,对于一个3 GB的基因组,大约需要2.3 GB。

枚举每个出现的位置需要后缀数组S公司如果我们把整个S公司在内存中,它将使用n个⌈日志2n个⌉位。然而,也可以重建整个S公司事实上,S公司和反向压缩后缀数组(反向CSA)Ψ−1(格罗西和维特,2000)满足:

方程式图像
(5)

其中(Ψ−1)(j个)表示重复应用变换Ψ−1对于j个次。逆CSAΨ−1可以使用引用数组计算O(运行)以下为:

方程式图像
(6)

在BWA中,我们只存储在内存中S公司(k个)的k个可以除以32。对于k个这不是32的因子,我们重复使用Ψ−1直到j个, (Ψ−1)(j个)(k个)是32的因数,然后S公司((Ψ−1)(j个)(k个))可以查找和S公司(k个)可以用公式计算(5)。

总之,对齐过程使用4n个+n个⌈日志2n个⌉/8位,或n个基因组的字节数<4 Gb。这包括原始基因组和反向基因组的BWT字符串、部分出现数组和部分后缀数组的内存。此外,堆、缓存和其他数据结构需要几百兆字节的内存。

2.7 Illumina的其他实际问题

2.7.1模糊基础

基于读取的非A/C/G/T基被简单地视为不匹配,这在算法中是隐含的(图3). 参考基因组上的非A/C/G/T碱基被转换为随机核苷酸。这样做可能会导致错误命中充满模糊基的区域。幸运的是,考虑到相对较长的读取时间,这种情况发生的可能性很小。我们尝试了200万个32 bp的读取,但没有发现任何读取偶然映射到多-N区域。

2.7.2成对映射

BWA支持配对映射。它首先找到所有好点击的位置,根据染色体坐标对其进行排序,然后对所有潜在点击进行线性扫描,使两端配对。计算所有染色体坐标需要经常查找后缀数组。这种配对过程是耗时的,因为用上述方法动态生成完整后缀数组是昂贵的。为了加速配对,我们缓存了较大的间隔。这种策略使配对时间减半。

在配对中,BWA一批处理256K个读取对。在每一批中,BWA将完整的BWA索引加载到内存中,生成每次出现的染色体坐标,从映射质量高于20的两端映射的读取对中估计插入大小分布,然后对其进行配对。之后,BWA从内存中清除BWT索引,加载2位编码的参考序列,并对其配对可以可靠对齐的未映射读取执行Smith–Waterman对齐。Smith–Waterman对齐解决了一些差异过大的读取问题。

2.7.3确定允许的最大差异数

给出长度读数,BWA最多只能承受一次打击k个差异(不匹配或差距),其中k个选择<4%的-基本错误率为2%的长读取可能包含超过k个。使用此配置,对于15–37 bp的读取,k个等于2;对于38–63bp,k个=3; 对于64–92个基点,k个=4; 93–123个基点,k个=5; 对于124–156个基点的读数,k个=6.

2.7.4生成映射质量分数

对于每个对齐,BWA计算映射质量分数,即对齐不正确的Phred标度概率。该算法与MAQ类似,只是在BWA中我们假设总是可以找到真正的命中。我们做了这个修改,因为我们知道MAQ的公式高估了错过真正命中的概率,这导致低估了映射质量。模拟表明,由于这种修改,BWA可能会高估制图质量,但偏差相对较小。例如,BWA错误地对齐了1 569 108个模拟70 bp读取中的11个读取,映射质量为60。错误率7×10−6这些Q60映射的(=11/1 569 108)高于理论预期10−6

2.8映射SOLiD读数

对于SOLiD读取,BWA将参考基因组转换为二核苷酸“颜色”序列,并为颜色基因组构建BWT索引。读取在颜色空间中映射,其中序列的反向补码与反向补码相同,因为颜色补码本身就是。对于SOLiD配对编码映射,如果两种情况中有一种是正确的,则称读对处于正确的方向:(i)两端映射到基因组的前链,R3读具有较小的坐标;和(ii)两端映射到基因组的反向链,F3读数具有较小的坐标。Smith–水印对齐也在颜色空间中完成。

在比对之后,BWA使用动态编程将彩色读取序列解码为核苷酸序列。给定核苷酸参考子序列b条1b条2b条+1和彩色读取序列c(c)1c(c)2c(c)映射到子序列,BWA推断出一个核苷酸序列保存图片、插图等的外部文件。对象名称为btp324i6.jpg使以下目标函数最小化:

方程式图像

哪里q个'是Phred标度的突变概率,q个是颜色的Phred质量c(c)和功能(b条,b条′)=(b条′,b条)给出了与两个相邻核苷酸对应的颜色b条b条′. 基本上,我们要支付罚款q个'如果保存图片、插图等的外部文件。对象名称为btp324i7.jpg和罚款q个如果保存图片、插图等的外部文件。对象名为btp324i8.jpg

这种优化可以通过动态编程实现,因为最佳解码超出位置只取决于选择保存图片、插图等的外部文件。对象名称为btp324i9.jpg.让保存图片、插图等的外部文件。对象名为btp324i10.jpg是解码得分最高的。迭代方程为

方程式图像

方程式图像

BWA近似基本质量如下。保存图片、插图等的外部文件。对象名为btp324i11.jpg. The-th基本质量保存图片、插图等的外部文件。对象名称为btp324i12.jpg,=2…,计算如下:

方程式图像

BWA输出序列保存图片、插图等的外部文件。对象名为btp324i13.jpg和质量保存图片、插图等的外部文件。对象名为btp324i14.jpg作为SOLiD映射的最终结果。

3结果

3.1实施

我们实现了BWA,以根据参考基因组的BWT进行短读比对。它为单端读取执行间隙对齐,支持配对映射,生成映射质量,并在需要时提供多个点击。默认输出对齐格式为SAM(序列对齐/映射格式)。用户可以使用SAM工具(http://samtools.sourceforge.net)提取一个区域中的比对,合并/排序比对,获得单核苷酸多态性(SNP)和indel调用,并可视化比对。

BWA根据GNU通用公共许可证(GPL)进行分发。文件和源代码可在MAQ网站上免费获得:http://maq.sourceforge.net

3.2评估项目

为了评估BWA的性能,我们测试了另外三个校准程序:MAQ(Li等人。,2008年a),SOAPv2(http://soap.genomics.org.cn)和鲍蒂(兰米德等人。,2009). MAQ索引使用哈希表读取并扫描基因组。这是我们之前为大规模读取映射开发的软件包。SOAPv2和Bowtie是我们知道的另外两个基于BWT的短读对准器。最新的SOAP-2.1.7(Li等人。,未发布数据)使用双向BWT(Lam等人。,未发布的数据)。它能容忍超过35bp种子序列的更多错配,并支持仅限于一个缺口的缺口比对。Bowtie(0.9.9.2版)为BWA部署了类似的算法。尽管如此,它并没有通过将搜索范围限定为D类(),但通过巧妙地对原始和反向读取序列进行对齐,以绕过对前缀trie的根进行不必要的搜索。默认情况下,Bowtie对前缀trii执行DFS,并在找到第一个合格的命中时停止。因此,即使禁用了种子策略,它也可能会错过最佳的不精确命中。在命令行中应用“–best”可以使Bowtie执行BFS,但这会使Bowti速度变慢。鲍蒂目前不支持间隙对齐。

所有四个程序,包括BWA,都会在多个相同的最佳位置随机进行重复读取。由于我们主要对实践中的自信映射感兴趣,因此需要排除重复点击。SOAPv2提供了一次读取的最佳点击数。只保留唯一的映射。我们还要求SOAPv2将可能的缺口大小限制在最多3个基点。我们使用命令行选项“–best-k 2”运行Bowtie,这将使Bowtiy输出读取的前两个点击。如果第二个最佳命中与最佳命中包含相同数量的不匹配,我们将放弃读取对齐。MAQ和BWA生成映射质量。我们使用MAQ的映射质量阈值1和BWA的映射质量阀值10来确定置信映射。我们使用不同的阈值,因为我们知道MAQ的映射质量被低估了,而BWA的被高估了。

3.3模拟数据评估

我们使用SAMtools包中包含的wgsim程序模拟对人类基因组的读取,并运行四个程序将读取映射回人类基因组。由于我们知道每个读数的精确坐标,我们能够计算对准误差率。

表1表明BWA和MAQ达到了相似的对准精度。就置信映射读取的分数和置信映射的错误率而言,BWA比Bowtie和SOAPv2更准确。请注意,SOAP-2.1.7针对大于35 bp的读取进行了优化。对于32个bp的读取,SOAP-2.0.1的性能优于最新版本。

表1。

模拟数据评估

单引擎
成对输入
程序时间(s)合格率(%)误差(%)时间(s)合格率(%)误差(%)
鲍蒂-321271790.76139185.70.57
BWA-32型82380.60.30122489.60.32
MAQ-32型19797810.142158987.20.07
肥皂2-3225678.61.16190986.80.78
鲍蒂-70172686.30.20158090.70.43
BWA-70型159990.70.12161996.20.11
MAQ-70型17928910.131904694.60.05
SOAP2-70标准31790.30.3970894.50.34
鲍蒂-1251966880.071701910.37
BWA-125型3021930.05305997.60.04
MAQ-125型1750692.70.081938896.30.02
SOAP2-125标准55591.50.17118790.80.14

从人类基因组中分别模拟了100万对32、70和125 bp的读码,SNP突变率为0.09%,indel突变率为0.01%,均匀测序碱基错误率为2%。32 bp读取的插入大小是从正态分布中得出的N个(170,25),以及从N个(500, 50). 表中显示了2.5 GHz Xeon E5420处理器单核上的CPU时间(以秒为单位)(时间)、置信映射读取百分比(Conf)和置信映射错误对齐百分比(Err)。

在速度上,SOAPv2是最快的,实际上,如果禁用间隙对齐,配对映射的速度将提高30-80%。使用默认选项(未显示数据)的蝴蝶结比单端贴图上的当前设置“–best-k 2”快几倍。然而,速度的提高是以牺牲准确性为代价的。例如,使用默认选项,Bowtie可以在151秒内映射200万个单端32 bp读取,但6.4%的可信映射是错误的。这种高对准误差率可能会使结构变化的检测复杂化,并可能影响SNP精度。在BWA和MAQ之间,BWA的速度是6–18倍,具体取决于读取长度。MAQ的速度不受读取长度的影响,因为它在内部将所有读取都视为128 bp。通过不检查类似于Bowtie和SOAPv2所做的次优命中,可以加速BWA。然而,在这种情况下,计算绘图质量是不可能的,我们认为生成适当的绘图质量对于各种下游分析(例如检测结构变化)是有用的。

在内存上,SOAPv2使用5.4 GB。Bowtie和BWA都使用2.3 GB用于单端映射,约3 GB用于配对映射,比MAQ的内存占用量1 GB大。然而,所有三个基于BWT的对齐器的内存使用与要对齐的读取数无关,而MAQ在其中是线性的。此外,所有基于BWT-的对齐器都支持多线程,这减少了多核计算机上每个CPU内核的内存。在现代计算机服务器上,基于BWT的对齐器不需要考虑内存。

3.4真实数据评估

为了评估真实数据的性能,我们从欧洲读取档案(AC:ERR000589)下载了约1220万对51bp的读取。这些读数是由Illumina为NA12750制作的,NA12750是1000基因组项目中的一只雄性(http://www.1000genomes.org). 读取结果被映射到人类基因组NCBI构建36。表2表明,MAQ和BWA的几乎所有自信映射都以一致的对存在,尽管MAQ给出的自信比对较少。BWA的较慢模式(无种子;搜索次优点击,即使最热门的点击是重复的)做得更好。在这种模式下,BWA自信地在6.3小时内映射了89.2%的所有读取,99.2%的自信映射位于一致对中。

表2。

实际数据评估

程序时间(h)合格率(%)成对(%)
鲍蒂5.284.496.3
BWA公司488.998.8
质量管理体系94.986.198.7
SOAP2系统3.488.397.5

1220万个读取对被映射到人类基因组。表中显示了2.5 GHz Xeon E5420处理器单核上的CPU时间(以小时为单位)、置信度百分比映射读取(Conf)和置信度百分比与正确方向和300 bp以内的配对映射(成对)。

在这个实验中,如果禁用间隙对齐,SOAPv2的速度将提高一倍,置信度映射(Conf)和配对率(paired)都将下降1%。相比之下,当BWA仅执行未映射对齐时,其速度是后者的1.4倍。但是,即使禁用了基于BWT的间隙对齐,BWA仍然能够恢复许多与Smith–Waterman对齐的短索引(给定成对读取)。

我们还获得了鸡的基因组序列(2.1版),并将这1220万对读取对与人-鸡杂交参考序列进行比对。与纯人工对齐相比,置信度映射几乎没有变化。至于映射到鸡基因组的读取数,Bowtie将2640、BWA 2942、MAQ 3005和SOAPv2将4531个读取映射到错误的基因组。如果我们考虑鸡序列占人-鸡杂交参考序列的四分之一,BWA的比对错误率约为0.06%(=2942×4/12.2M/0.889)。注意,这种对比对错误率的估计可能被低估,因为错误比对的人类读数往往与人类中的重复序列有关,并被映射回人类序列。由于存在高度保守的序列以及人类基因组组装不完整或鸡基因组组装错误,估计值也可能被高估。

如果我们想要更少的误差,BWA和MAQ生成的映射质量允许我们选择更高精度的对准。如果我们将BWA的定位质量阈值提高到25,那么86.4%的读操作可以与1927个映射到鸡基因组的读操作相一致,在置信度映射百分比和映射到错误基因组的读次数方面都优于Bowtie。

4讨论

对于针对人类参考基因组的短读比对,BWA比MAQ快一个数量级,同时达到类似的比对精度。它支持单端读取的间隙对齐,当读取变长并且往往包含索引时,这一点变得越来越重要。BWA以SAM格式输出对齐,以利用SAMtools中实现的下游分析。BWA plus SAMtools提供了MAQ包的大部分功能和附加功能。

与速度、内存和映射读取数相比,在实际数据上评估对齐精度要困难得多,因为我们不知道实际情况。在本文中,我们使用了三个标准来评估对准器的精度。第一个标准只能用模拟数据进行评估,它是自信映射的数量和自信映射的对齐错误率的组合。注意,仅自信映射的数量可能不是一个好标准:我们可以以牺牲准确性为代价绘制更多映射。第二个标准是对齐读取数和一致对中映射的读取数的组合,它基于真实数据,假设实验中的匹配信息是正确的,并且结构变化很少。尽管该标准与校准器定义配对“一致性”的方式有关,但根据我们的经验,如果配对参数设置正确,则信息量很大。第三个标准是,如果我们有意添加发散物种的参考序列,那么映射到错误参考序列的读取数的比例。

虽然理论上BWA可以处理任意长的读取,但它在长读取时的性能会降低,尤其是在排序错误率很高的情况下。此外,BWA始终要求从第一个碱基到最后一个碱基的完整读取进行对齐(即,相对于读取而言是全局的),但较长的读取更有可能被参考基因组中的结构变化或错误组装所中断,这将导致BWA失败。对于长读取,一个可能更好的解决方案是将读取划分为多个短片段,使用上述算法单独对齐片段,然后连接部分对齐以获得读取的完全对齐。

致谢

我们感谢博德研究所的马克·德普里斯托(Mark DePristo)和贾里德·马奎尔(Jared Maguire)就标准化评估校准计划的标准提出的建议,并感谢三位匿名审稿人,他们的评论帮助我们改进了手稿。我们还感谢杜宾研究小组成员对初稿的评论。

基金:威康信托/077192/Z/05/Z。

利益冲突:未声明。

参考文献

  • Burrows M,Wheeler DJ。技术报告124。加利福尼亚州帕洛阿尔托:数字设备公司;1994年,块分类无损数据压缩算法。[谷歌学者]
  • Campagna D等人。PASS:对齐短序列的程序。生物信息学。2009;25:967–968.[公共医学][谷歌学者]
  • Eaves HL,Gao Y.MOM:最大寡核苷酸映射。生物信息学。2009;25:969–970.[公共医学][谷歌学者]
  • 费拉吉纳·P、曼奇尼·G。第41届计算机科学基础研讨会论文集(FOCS 2000)IEEE计算机学会;2000.具有应用程序的机会主义数据结构;第390-398页。[谷歌学者]
  • Grossi R,Vitter JS公司。第32届ACM计算理论年会论文集(STOC 2000)ACM;2000.压缩后缀数组和后缀树,用于文本索引和字符串匹配;第397-406页。[谷歌学者]
  • Hon W.-K等人。一种用于构造压缩后缀数组的时空高效算法。算法。2007;48:23–36。 [谷歌学者]
  • 姜浩、王浩。SeqMap:将大量寡核苷酸映射到基因组。生物信息学。2008;24:2395–2396. [PMC免费文章][公共医学][谷歌学者]
  • Jung Kim Y等人。ProbeMatch:一种用于对齐寡核苷酸序列的工具。生物信息学。2009;25:1424–1425. [PMC免费文章][公共医学][谷歌学者]
  • Lam TW等。DNA的压缩索引和局部比对。生物信息学。2008;24:791–797.[公共医学][谷歌学者]
  • Langmead B等人。短DNA序列与人类基因组的超快和记忆效率比对。基因组生物学。2009;10:R25。 [PMC免费文章][公共医学][谷歌学者]
  • Lin H等人。缩放!数以亿计的寡聚物被绘制出来。生物信息学。2008;24:2431–2437. [PMC免费文章][公共医学][谷歌学者]
  • 利珀特RA。利用Burrows-Wheeler变换进行节省空间的全基因组比较。J.计算。生物。2005年;12:407–415.[公共医学][谷歌学者]
  • Li H等。使用映射质量分数映射短DNA测序读取和调用变体。基因组研究。2008年a;18:1851–1858. [PMC免费文章][公共医学][谷歌学者]
  • Li R等人,SOAP:短寡核苷酸比对程序。生物信息学。2008年b;24:713–714.[公共医学][谷歌学者]
  • Malhis N等人。Slider–最大限度地利用概率信息对齐短序列读取和SNP检测。生物信息学。2009;25:6–13. [PMC免费文章][公共医学][谷歌学者]
  • Schatz M.Cloudburst:使用mapreduce进行高度敏感的读取映射。生物信息学。2009;25:1363–1369. [PMC免费文章][公共医学][谷歌学者]
  • Smith AD等。使用质量分数和更长的读取时间可以提高Solexa读取映射的准确性。BMC生物信息学。2008;9:128. [PMC免费文章][公共医学][谷歌学者]

文章来自生物信息学由以下人员提供牛津大学出版社