LoRDEC: accurate and efficient long read error correction

LoRDEC:精确且高效的长read校正

动机:PacBio单分子实时测序是一种产生长片段(reads)的第三代测序技术,具有相对更低的通量和更高的错误率。错误包括大量插入缺失,并使下游分析,像比对或从头装配复杂化。提出了一种利用第二代短片段高准确性的混合策略以修正长片段。短片段到长片段的比对提供了足够的覆盖以剔除高达99%的错误,然而,是以过高的运行时和相当大量的磁盘和内存空间为代价的。

结果:我们提出了LoRDEC,一种混合纠错方法,它构建一个简洁的de Brujin图代表短片段,并通过图中选择的路径为长片段中每个错误区寻找一个正确的序列。

相比之下,LoRDEC快至少6倍,并比可用的工具需要至少93%更少的内存或磁盘空间,然而获得了可比的准确性。

可用性和实现:LoRDEC是用C++写的,在Linux平台上测试,并可以在http://atgc.lirmm.fr/lordec免费获得。

联系:lordec@lirmm.fr

补充信息:补充数据可以在Bioinformatics网站在线获得。

Introduction

测序,即DNA或RNA序列的测定,现在属于生命科学的基础实验。与桑格方法相比,所谓的下一代测序技术(第二代、第三代甚至第四代)大大降低了成本,提高了效率,使得全基因组测序和全转录组测序成为可能。除了从头开始的基因组测序和组装,许多类型的“组学”实验已经被发明出来,并依赖于高通量测序。

目前所有可用的技术产生的读序列只代表目标分子序列的一部分。处理这些读操作需要将它们与其他序列对齐:例如,在将它们映射到参考基因组时,或者在组装期间读操作之间的计算重叠时。为了进一步分析,保留了最优,有时是次优的对齐。对齐的强度(因此其有用性)主要由两个因素控制:标识的百分比和长度。很明显,在测序过程中引入的错误,测序错误,通过引入不匹配或将信号分解成更短的信号,使信号变得模糊。较弱的对齐可能无法通过后续的过滤器,并在向下分析时丢失。分析越精细,就越有必要捕获所有排列中可用的信息:例如,当试图在组装过程中弥合基因组中较少覆盖区域的缺口,或重建表达较少的RNA的序列时。为了抵消测序错误,已经发现错误校正算法对de novo assembly (Salzberg et al., 2012)是有效的,因此它们经常被合并到装配管道中(如Euler SR(Chaisson and Pevzner, 2008)、ALLPATHS-LG (Gnerre et al.,2011)和SOAPdenovo2 (Luo et al.,2012))。

1.1第二代测序相关工作

在长序列(Sanger或PacBio读取)的情况下,算法计算读取的多个对齐,并调用一致序列来纠正错误区域。对齐计算有运行时间长和参数依赖的不便(Salmela and Schroder, 2011)。在第二代读取的情况下,意味着更大的输入大小适度的错误率,关键思想是利用测序的覆盖率。通过计算读集中出现的错误子字符串的数量,可以区分错误子字符串和无错误子字符串。有了足够的覆盖率,就可以计算一个最小阈值,使每个无错误的k-mer在读取集中出现至少相同次数的概率很高。高于/低于阈值的k-mer分别被限定为solid或weak。这种思想在基于De Bruijn Graphs (DBG)的第二代组装程序中得到了利用,其中只有实体k-mers构成了DBG的节点(例如Zerbino和Birney,,或者在对照参考进行映射时,将错误的位置与生物突变区分开(Philippe et al.,2013)。

目前许多用于第二代测序的误差校正算法(Illumina、Roche or Solid)采用这种计数策略,也称为光谱比对(Chaisson et al., 2004;Pevzner et al.,2001):计算强k-mer的光谱,并通过更新每个弱k-mer及其最近的强k-mer来纠正每次读取。依赖于哈希表(hash Table)的实现很好地适应了k-mers(即固定长度的子字符串),而基于更灵活的读取索引(flexible indexes of the read)(例如后缀树或后缀数组)的方法可以纠正不同长度的子字符串(Salmela,2010;Schroder et al.,2009)。基于谱对齐的方法基于对齐的方法更有效、更可扩展,并且适用于低错误率。最近关于纠错的工作主要集中在纠正Illumina读取中替换是主要错误类型的地方,因此更具有挑战性的插入和删除纠错问题仅由少数作品解决(Salmela,2010;Salmela和Schroder,2011)。关于第二代测序误差校正方法的调查,见Yang et al.(2013)。

1.2 PacBio reads相关工作

PacBio SMRT测序的特点是读长得多(高达20kb),错误率高得多(>15% Koren等,2012),并且对错误纠正提出了更困难的挑战。然而,排序错误似乎是均匀分布的,独立于序列上下文,并倾向于插入,在较小程度上删除。为了简单起见,我们将PacBio读、长读(LR)和其他第二代读、短读(SR)称为PacBio读。为了解决这一挑战,提出了两种方法:仅使用LR进行自校正(self correction),或使用SR库对LR进行混合校正(hybrid correction)。Self correction,类似于Sanger correction tools,计算LR [with BLASR (Chaisson and Tesler, 2012)]之间的局部对齐,以构建多个对齐,然后调用一致性。它已经在非混合组装器HGAP中实现,并在细菌基因组上进行了实验(Chin et al.,2013)。混合校正利用了SR库更高的质量和覆盖范围,从而产生更强的对齐,在LR上对齐它们,并通过从多个对齐调用协商一致序列来纠正后者。这种策略在组装程序AHA (Bashir等,2012)和纠正程序LSC (Au et al.,2012)和PacBioToCA (Koren et al.,2012)中发现;在细菌基因组上达到了与非混合方法类似的精确度,但也证明能够对真核生物基因组和转录组进行操作(Au et al.,2012;Koren et al.,2012)。

1.3基因组整理、支架和长读校正方法的局限性

最近,有两项提案[PBJelly(English et al.,2012)和Cerulean (Deshpande et al.,2013)]采用了基因组支架或整理的中间策略:除了LR之外,它们还将部分组装的基因组或使用SR数据生成的组装图作为输入。重叠架被映射到LR, LR作为完成/填补装配间隙或 将重叠架放入支架的基础。Deshpande et al(2013)通过当前LR校正程序对时间、内存和磁盘的要求来证明他们的策略是正确的,该程序甚至对细菌基因组数据集也需要高计算资源和长时间的超级计算机运行。目前的校正程序似乎没有充分利用序列索引数据结构来加快校正速度(Navarro  and Makinen,2007)。

1.4贡献

考虑到LR校正程序的局限性和PacBio读取的高错误率,本文提出了一种新的混合校正算法。它首先构建SR数据的DBG,然后通过在DBG中搜索最优路径来纠正LR中的错误区域。沿路径重叠的k-mers序列提供了该区域的校正序列。利用DBG紧凑表示的最新发展[Fig 1 Chikhi and Rizk (2012);Salikhov et al(2013)],我们开发了一个名为LoRDEC (Long Read DBG Error Correction,长读DBG纠错)的程序,它允许在普通计算硬件上纠正典型大小的数据集。我们将我们的程序与最先进的方法进行比较,发现它提供了相同的精度低内存使用和合理的运行时间

2方法

2.1概述

混合校正算法背后的原理是使用一组高质量的读取来校正第二组误码率较高的读。通常,Illumina、454或PacBio CCS SR的低误码率参考集将有助于纠正长PacBio RS读取。由于这两个集合假设来自同一个库,所以目标是将长时间读入错误区域的序列转换为分子该区域的SR可以组装的序列,同时保持LR的长度。我们的程序LoRDEC将SR、LR和一个奇数k作为输入。现在,我们的方法是通过遍历SR的DBG中的适当路径,为LR的每个错误区域找到一个可选序列。为避免在纠正过程中引入错误碱基,我们过滤掉任何k长子串,称为k-mer,它在SR中出现的次数少于s次[在第二代组装器(Chikhi and Rizk, 2012; Salikhov et al., 2013; Zerbino and Birney, 2008)]其中s由用户设置。用我们的术语,我们只保留了强k-mers。

LoRDEC首先读取SR,构建它们的DBG (k阶),然后逐个独立地纠正每个长读操作。DBG是大多数第二代组装器(如Velvet、Minia)的底层图。SR中的每个实心k-mer在DBG中构成一个节点,如果节点f的k-mer与g的k-mer重叠1个位置,则有向弧将节点f链接到节点g。图1显示了一个DBG示例。在用于装配的DBG中,由于读链未知,节点表示一个k-mer和它的反向补k-mer,并扩展了arc的概念,以确保两个节点/k-mers可以在同一条链上重叠。例如,一个k-mer acgta将通过一个弧连接到k-mer cgtat。很明显,从一个节点到另一个节点的路径,也就是一系列弧,代表了一个核苷序列,在两个节点之间,比如f和g,可能没有路径,只有一条或多条路径。通常,组装程序沿着非分支路径输出序列为contigs。为了存储DBG,我们使用内存效率高的GATB库(http://gatb-core.gforge.inria.fr),它允许遍历图中的任何路径并获得任何节点的序列。GATB使用Bloom过滤器来存储DBG,并额外记录DBG中与k-mers相邻的假阳性k-mers,如果遍历从一个强k-mer开始,则只允许遍历强k-mers。然而,我们使用DBG来确定LR中的k-mer是否为强,因此,GATB可以报告假阳性。我们发现,如果我们额外要求一个k-mer被认为是强的,那么它也必须至少有一个输入弧和至少一个输出弧,报告的固态k-mers中只有一小部分(例如大肠杆菌数据集中的0.03%)是假阳性。

考虑从位置1、2、3开始的长读的k-mers…:一些k-mers属于图中,属于强的,而另一些k-mers不属于图中,属于弱的。基本上,可靠的k-mers应该是正确的,而较弱的可能包括测序错误,需要纠正。强k-mers是DBG中的入口点,LoRDEC通过在与该区域相邻的强k-mers之间的DBG中找到最佳路径,纠正了由弱k-mers组成的区域。有时,LR没有强k-mer,在这种情况下,LoRDEC在输出中将其标记为强k-mer并跳过它。我们的结果表明,只有短的错误读取(>1500个核苷酸)完全缺乏可靠的k-mers(数据没有显示)。由于PacBio测序的目标是获得长读,因此我们的目标是产生长而正确的序列,所以我们决定在LoRDEC的当前版本中过滤这些读。在剩余的LR中,至少有一个k-mer是强的:因此,对于弱区,会出现两种情况:要么它位于LR的一端,只有一个强k-mer与之相邻,我们叫它尾区域,或者它是一个内部区域,每一边都有一系列的k-mers。薄弱区域如Fig 2a所示。我们的算法使用两个不同的过程来纠正头部/尾部或内部区域(见下文)。

纠正一次长读的算法如Fig 2所示,总结如下。对于每次长读,我们将head/tail校正过程应用到最左(head)和最右(tail)的弱区,然后循环遍历序列,选择一对强k-mers,并针对每对强k-mers,对它们之间的弱区启动校正过程。每次调用纠正过程都会动态地修改序列,从而将弱序列转换为强k-mers。LoRDEC在读取过程中执行两次遍历,每个方向执行一次。首先,实时修正生成新的实体k-mers,作为下一遍的起始节点;其次,由于序列中的重复,搜索路径可以根据从哪个区域的末端开始,继续到图的不同部分。因此,值得尝试两次传递。

Fig2read校正法

(a)长读根据短读DBG划分为弱区和实区(分别为直线和矩形)。长读开始或结束时的弱区分别称为头区或尾区,其他弱区称为内区。实心区域的圆圈表示DBG的k-mers。弱区域周围的k-mers作为源节点和目标节点DBG中搜索路径。每个弱内部区域都使用几个源/目标对。

(b)在第二个内部区域,在DBG中找到节点s1和t1之间的桥接路径来纠正这个区域。在第三个区域,路径搜索没有找到节点s2和t2之间的路径。对于尾部,将寻找一个扩展路径,并找到从节点s3到末尾的扩展路径。一旦找到,路径的纠正序列与尾部对齐,以确定最优子字符串(粗点箭头)

2.2内部薄弱环节的校正

一个内部区域被每一边的强k-mers所包围。该过程以源和目标强k-mers、区域序列和最大分支限制为输入。强k-mers充当DBG中的源节点和目标节点,这些节点之间的任何路径都编码一个序列,该序列首先可以从SR组装,然后,它以适当的强k-mers开始和结束。因此,该区域序列可以用任意路径的序列进行校正。我们选择这些路径的标准是最小化路径和区域序列之间的编辑距离。现在,几个可靠的k-mers可以作为搜索的源和目标。我们用来过滤错误k-mer的可靠度标准并不完美:一些可靠k-mer可能仍然是错误的。对于这样的k-mers,路径搜索可能会失败,或者导致路径序列远不是最优的。为了避免陷入这种局部极小值,我们不仅考虑了一个,而且考虑了在每个弱区周围的几对(源、目标)k-mers。

为此,我们循环遍历读取的内部实体k-mers,并将每个k-mers看作一个源。对于每个可能的源,我们将t向下的实体k-mers视为目标(默认情况下t被设置为5),并根据源和目标k-mers是否相同,过滤掉一些排他的情况

(1)属于同一实体k-mers运行:假设该区域是正确的,不寻找路径;

(2)重叠:串联重复很可能产生重叠区域,或者k-mer为假实心,我们跳过这种情况;

(3)在读取时彼此距离太远:计算动态规划(DP)矩阵的最小编辑距离将需要太多的内存,并且找到路径的可能性很低:我们必须跳过这种情况。

在所有其他情况下,我们寻找源和目标固体k-mers之间的最佳路径。通过这种选择源/目标对的方式,我们确保将考虑与弱区域相邻的几个对。如果源和目标之间的路径被视为弱区域上的桥,那么可选的源/目标对可能形成跨越读取区域的不同桥。沿着read找到的所有桥都形成一个有向图:路径图。强k-mers构建它的节点,找到的每个路径都是源和目标k-mers之间的弧。弧由区域序列和找到的路径之间的编辑距离加权。因此,路径图的构造与内部区域的校正混合在一起。

为了为选定的源/目标对在DBG中寻找最优路径,我们执行深度优先搜索遍历源和目标之间的可能路径,并在每个步骤(节点方向)计算其与DP矩阵中的区域序列的最小编辑距离。当到达图中的死角、目标k-mer或路径扩展的最小编辑距离超过允许的最大错误率时,停止对路径的探索。当遇到的路径数量超过分支限制时,将中止整个搜索。最后,如果至少找到一条路径,我们将路径及其编辑距离记录为路径图中两个k-mers之间的弧,即我们在上面定义的。否则,如果对当前源k-mer的搜索全部失败,则在路径图中添加一个伪弧:源与下一个强k-mer之间的弧,其加权距离等于区域长度。这确保从第一个强k-mer到最后一个强k-mer的路径始终存在。

2.3头部或尾部区域校正:寻找最佳扩展

纠正读头或读尾是一个对称的过程,所以我们用读尾来描述它。尾巴是由弱k-mers构成的核苷区,其前面至少有一个强k-mers。该过程以实体k-mer节点为输入,以DBG中的源节点、尾序列和分支限制为输入。与内部区域不同,我们缺少一个目标k-mer,因此需要另一个标准来停止访问路径。该过程寻找任何允许纠正尾部前缀的路径,并在节点方面优化前缀长度和当前路径与尾部当前前缀之间的编辑距离。它使用深度优先搜索并探索路径,直到它们的编辑距离变得太大,或者直到到达DBG中的死胡同或尾部。

最后,由于该过程优化了前缀长度,它倾向于将搜索扩展到与路径对齐良好的前缀之外。因此,重新考虑找到的路径,以搜索其优化对齐分数的前缀。该比对步骤从强k-mer开始寻找最佳扩展序列,并获得最大的比对得分。这个扩展问题让人想起了在BLAST中寻找局部对齐的最佳扩展搜索(它通过一个下拉得分限制来解决; Altschul et al., 1990).。

关于阳极内部区域校正的优化。当源k-mer与其所有目标之间的路径搜索失败时,这意味着我们无法找到桥接路径。然而,我们可以在弱区域的每一边找到最佳的扩展,并纠正该区域的前缀和后缀。为此,我们使用与头尾校正相同的扩展过程,并相应地调整图的路径边缘。

2.4图形路径优化

最后,在一次完整的校正结束时,所有发现的内部路径都记录在路径图中。这里,两个实体k-mers之间的一条边记录了这些k-mers之间的路径所指示的区域的校正。最后,在考虑所有内部强k-mers后,利用Dijkstra算法(Dijkstra, 1959)在路径图中找到读取的第一个和最后一个强k-mers之间的最短路径,从而优化内部区域的校正。

2.5修边和分割纠正读数

在校正过程的最后,如果校正读数中的每个碱基至少属于一个强k-mer,则可将其划分为强区,否则为弱区。LoRDEC输出大写字母的实碱基和小写字母的弱碱基。我们提供了两个实用程序来修剪和分割校正后的读数。第一个工具从读取的开始和结束都对所有的弱碱进行了修剪,但保留了弱碱的完整区域,这些区域的两边都是强碱基。因此,每次纠正读取都会产生一个修剪读取。第二种工具通过从修正后的读操作中提取出作为独立序列的所有实基来对读操作进行修剪和分割。

3结果

3.1数据与计算环境

我们使用了三个不断增长的数据集:一个来自E。大肠杆菌,两个真核生物从酵母和鹦鹉。它们分别包括98Mb、1.5 Gb和6.8Gb的PacBio读取,以及231,451mb和35Gb的Illumina读取。所有细节见补充表S1。

所有的实验都在服务器上运行,服务器有16个内核,运行速度2.53GHz,内存为32GB。运行时由Linux/Unix time命令记录,内存和磁盘使用情况由定期轮询操作系统记录。因为所有的校正工具都支持在多个内核上并行执行,所以我们报告了CPU总时间和运行时间(挂钟)。

3.2评价方法

我们使用两种方法来评估校正的准确性。第一种方法测量读序列参考基因组的比对程度。第二种方法是比较原始读数和校正读数在比对参考文献时的差异,以评估校正的准确性。

大肠杆菌和酵母数据集,我们使用BLASR (Chaisson and Tesler, 2012)将原始和纠正后的读序列对齐到基因组,对于parrot数据集,我们使用bwam-mem (Li, 2013)。对于较小的数据集,使用BLASR是因为它倾向于更好地桥接长indel,从而报告更长时间的对齐。对于parrot数据集,我们更喜欢BWA-MEM,因为它更快。每次读取,我们都保持其与基因组的最佳比对。然后,我们计算读序列的对齐区域的大小、基因组中对齐区域的大小以及对齐中相同位置的数量。然后计算相同位置的数量除以基因组中对齐区域的长度来确定对齐的一致性。然后,根据可以与基因组比对的区域大小和比对的一致性,通过错误纠正程序对读取结果进行评估。

可以进一步分析原始读数和校正读数的比对,以表征校正的精度。考虑原始读、校正读和相应基因组区域的多重对齐。这种多重比对中的每个位置可以分为真阳性(TP)、假阳性(FP)、真阴性(TN)或假阴性(FN)。如果原始读数有错误,并且已被纠错工具纠正,则位置为TP。原文中未改正的错误位置,为错误否定。在FP位置,纠错工具已经进行了纠错,虽然在原始读取中没有错误,最后,TN位置在原始读取和纠正读取中都是正确的

修正的精度可以用以下几个统计量来测量:

灵敏度=TP/(TP+FN),工具识别错误位置的能力如何?

增益=(TP FP)/(TP+FN),该工具在不引入新错误的情况下如何消除错误

误差校正工具包(Yang et al., 2013)是为比较第二代测序数据的误差校正结果而设计的。作为输入,它需要将原始读操作和纠正后的读操作映射到SAM格式的基因组。我们用BLASR表示大肠杆菌和酵母数据以及BWA-MEM为鹦鹉数据产生比对。对于每一对原始读码和校正读码,工具箱计算与参考基因组的差异集,并对这两组进行比较,以确定校正时TP、FP和FN的位置。针对第二代测序的读映射器报告读与基因组的完全匹配,而BLASR和BWA-MEM报告读与基因组的最佳局部比对。我们对工具箱进行了修改,使原始读取和修正读取之间的差异仅在原始读取对基因组的局部比对的基因组区域内计算。

对于大量的indel,比对结果的差异比较并不容易,即使是相同的差异往往产生不同的排列相同的比对的得分。因此,特别是在部分纠正的区域,可能会报告比实际情况更多的差异,因此这种方法可能报告比数据集中实际出现的更多的FPs或FNs。

3.3参数对方法的影响

我们研究了参数对方法的影响在大肠杆菌的数据集。我们每次改变一个参数,记录运行时,并通过计算增益来评估方法的准确性。Fig3显示了本实验在改变5个参数时的结果:k、Illumina数据集中k-mer为solid的阈值、校正区域的最大错误率、分支限制以及从源k-mer中寻路的目标k-mers数量。我们看到k=19对于这个数据集给出了最好的结果,进一步的酵母数据实验证实k=19对于这个数据集也是最优的(数据没有显示)。强k-mer阈值对校正精度影响不大,阈值越小,校正效果越好。通过在运行时略微增加校正区域的最大错误率,提高了校正精度。增加探索分支的数量或目标k-mers的数量只对增益有很小的影响,而运行时显著增加。基于这些观察,我们在E.coli和 yeast上运行了我们的方法。大肠杆菌和酵母的数据与以下参数:k, 19;固体k-mers阈值,3;最大错误率0.4;分支限制,200;和目标k-mers的数量,5。对于parrot数据,我们发现k=23在运行时和准确性方面都给出了更好的结果。Supplementary Table S2为每个参数及其默认值提供了解释。

3.4LSCPacBioToCA比较

我们将LoRDECLSC (Au et al.,2012)和PacBioToCA (Koren et al.,2012)进行了比较。LSC使用默认参数运行,只是我们将短读覆盖深度设置为数据集的估计覆盖范围,即50为大肠杆菌数据集和38为酵母数据集。PacBioToCA使用默认参数运行,除了调优适合我们平台的并行化参数。LoRDEC的参数设置如上所述。

3.4.1大肠杆菌

错误纠正工具的运行时、内存和磁盘使用情况如Table 1(顶部)所示。LoRDEC的速度比LSC快17倍,并且需要的内存比LSC少88%和95%,LSC是这个数据集中前面两个工具中资源效率更高的。Table  1的右侧显示了LSC和LoRDEC的纠错工具包报告的纠错统计数据,我们看到LoRDEC的性能优于LSC。

将读序列与参考基因组比对的统计数据如Table 2(顶部)所示。对于LSC,我们报告了工具报告的完整已更正读集和已修正读集的统计数据。类似地,我们为LoRDEC报告完整读取、在末尾进行修剪的读取以及修剪和分割读取的统计信息(参见Section 2.5)。LSC显然在这三种工具中表现最差,而PacBioToCA和LoRDEC有类似的统计数据。经LoRDEC校正、修剪和分割后,reads的碱基略多一些,相对于reference对齐的碱基比例略小一些,但对齐区域的一致性要高于PacBioToCA校正后的reads。

3.4.2酵母

LSC和PacBioToCA都未能在单个服务器上完成此数据集的更正。我们分割PacBio数据,并在三个服务器上运行LSC,在六个服务器上运行PacBioToCA。PacBioToCA被设计为在多个服务器上分布式运行,而LSC不支持分布式执行。因此,我们选择在LSC中使用尽可能少的服务器,以最小化分布式执行对校正精度的影响。

Table 1(中间)显示了酵母数据集的运行时、内存和磁盘使用统计数据。对于这个数据集,LoRDEC使用的时间或内存至少比PacBioToCA和LSC少一个数量级,磁盘也比PacBioToCA和LSC少两个数量级。例如,LoRDEC的速度是PacBioToCA的6倍,使用的内存和磁盘空间分别比PacBioToCA少93%和99%。LSC的增益和灵敏度保持在532%,而LoRDEC的增益和灵敏度保持在480%。Tabele 2(中间)比较了三种工具的对齐统计数据:LSC (full或trim)使用比LoRDEC更少的标识对更少的基进行对齐。PacBioToCA与LoRDEC (trim+split)相比,在较高的计算成本下,PacBioToCA的对齐效果稍好一些。

3.5鹦鹉数据实验

我们研究了LoRDEC在一个更大的真核数据集上的可伸缩性:parrot数据。由于鹦鹉的基因组是脊椎动物,因此是复杂的基因组,大约是人类基因组长度的三分之一(Supplementary Table S1),它代表了一个解决可扩展性和基因组组织影响问题的真正测试。考虑到LSC和PacBioToCA在较小酵母数据上的运行时间,本实验不包括这些数据。这些数据包含三个PacBio库,我们在各自的服务器上对每个库进行了更正。Table1(底部)显示了由Error Correction Toolkit生成的运行时、内存和磁盘使用情况以及统计数据。基于这些结果,我们可以得出结论,LoRDEC的规模足以纠正大型真核生物基因组在普通计算硬件上的读取。纠错工具包在Table1 Table2中(底部)和一致性统计(底部)表明,校正精度与酵母可比数据集,虽然参考基因组包含更多错误,草案和对齐的统计数据也遭受读取校准的支架只有部分对齐。

3.6基因组组织的影响

对LoRDEC提供的校正的评估表明,它对所有数据集都是全局精确的。然而,基因组组织,特别是重复的存在,可能会影响校正的质量。有人可能会说,在重复区域中,SR的DBG中发现的强k-mers和路径可能来自于不同的或多个重复的副本,从而误导了校正过程。换句话说,校正的准确性可能随着基因组的不同而不同。如果是这样的话,相对于观察到的基因组覆盖率,读序列的分布应该在原始读序列和修正读序列之间有所不同。为了评估这种可能性,我们计算了对齐的原始读数和校正读数的预期基因组覆盖率和观察基因组覆盖率(Last columns of Table 2)。覆盖率计算为至少一个比对所覆盖的基因组位置数除以基因组长度。E。在大肠杆菌和酵母的情况下,PacBio测序深度理论上足以覆盖整个基因组(预期覆盖范围为1),校正后的效果是将观测到的覆盖范围提高到99%以上。因此,在这两个案例的覆盖率方面没有明显的偏见。parrot数据的情况有所不同。First, PacBio 测序 深度 只有 5.5


, 从而 8 分 不同 的 预期 的 和 观察 到 的 保险 原始 和 纠正 一致 读 (0.92 和 0.84 ;0.98和0.90)。为了评估可能的偏见,我们绘制了对齐读取所覆盖基因组的百分比,作为原始读取和校正读取深度的函数(black squares and circles in Fig4)。我们还绘制了相同的函数,但是在随机化读取位置之后,也就是说,对齐的读取位置就像均匀分布在整个基因组(white squares and circles)的位置一样。首先,实际比对的两条曲线都与随机对照曲线不同,这表明原始reads的基因组分布存在一定的偏差,但校正后仍保持相同的偏差。可能有多种原因可以解释这种偏差,包括测序深度低、局部装配错误或映射偏差。其次,黑色曲线的形状相似,说明读取深度函数的分布不受LoRDEC的影响。请注意,修正后的读数曲线仍然高于原始读数曲线,显示了LoRDEC在所有读取深度上带来的改进。因此,即使是在脊椎动物的基因组上,我们的结论是,由于基因组组织的原因,LoRDEC可以在很小的偏差下准确地纠正PacBio读数

4结论

由于它们的长度,PacBio读取提供了有趣的信息来连接其他序列,但是,由于它们的高错误率(这在灵敏度和运行时间方面阻碍了对齐和相似性检测),使得这项任务变得相当困难。从实验中可以看出,使用LoRDEC进行纠错后,大部分序列与识别率为497%的序列是一致的。以前的校正程序可以达到类似的精度,但计算资源有限。LoRDEC在这方面提供了一个显著的改进,以至于任何基因组学项目都可以提供PacBio错误纠正,即使是真核物种。此外,混合错误校正仍然有用,因为它可以在项目中组合不同类型的排序。

与其他校正算法相比,LoRDEC提供了一种新的基于图形的校正方法。DBG中的路径搜索允许处理更高的错误率。但是,如果源和目标k-mers之间没有路径或者存在太多路径,那么搜索可能会失败。一些改进似乎是可以实现的。当缺少路径时,我们计划在内部区域的每一侧迭代地使用扩展路径搜索。丢失的路径可能表示剩余的适配器,而本地DBG结构可以帮助识别和删除它。在路径太多的情况下,k的可选值可能会有所帮助:较小的k可以在该区域引入强k-mers,使得求解时间更短。动态更新DBG顺序(即参数k)的算法在这方面很有用(Cazaux et al.,2014)。

在PacBio RNA-seq reads上的其他实验表明,LoRDEC还可以改善玉米转录本的序列,从而使它们更容易与参考转录数据库对齐(参见补充数据)。LoRDEC使用简单,可伸缩,可以很容易地集成到管道中,并且应该适应其他类型的读取。

LoRDEC: accurate and efficient long read error correction LoRDEC:精确且高效的长read校正相关推荐

  1. Bi-level error correction for PacBio long reads. PacBio长读数的两级纠错

    Bi-level error correction for PacBio long reads. PacBio长读数的两级纠错 作者: Liu Yuansheng; Lan Chaowang; Blu ...

  2. HALC: High throughput algorithm for long read error correction

    Journal|[J]BMC BioinformaticsVolume 18, Issue 1. 2017. HALC: High throughput algorithm for long read ...

  3. Efficient Hybrid De Novo Error Correction and Assembly for Long Reads

    Efficient Hybrid De Novo Error Correction and Assembly for Long Reads       长read的高效的混合从头纠错和装配 Abstr ...

  4. Ratatosk - Hybrid error correction of long reads enables accurate variant calling and assembly

    Ratatosk - Hybrid error correction of long reads enables accurate variant calling and assembly   长读的 ...

  5. Jabba: hybrid error correction for long sequencing reads using maximal exact matches机译:Jabba:使用最大精

    Jabba: hybrid error correction for long sequencing reads using maximal exact matches 机译:Jabba:使用最大精确 ...

  6. Comprehensive evaluation of error correction methods for high-throughput sequencing data

    Comprehensive evaluation of error correction methods for high-throughput sequencing data 高通量测序数据误差修正 ...

  7. Comparative assessment of long-read error correction software applied to Nanopore RNA-sequencing dat

    Comparative assessment of long-read error correction software applied to Nanopore RNA-sequencing dat ...

  8. ParLECH: Parallel Long-Read Error Correction with Hadoop

    ParLECH: Parallel Long-Read Error Correction with Hadoop  使用Hadoop并行的长读错误更正 Abstract: Long-read sequ ...

  9. Evaluation of long read error correction software 长读纠错软件的评估

    Evaluation of long read error correction software Laurent Bouri∗ , Dominique Lavenier† Project-Team ...

最新文章

  1. 成果展示 | 清华大学大数据研究中心——医工结合科研创新支持计划
  2. 一次给女朋友转账引发我对分布式事务的思考
  3. [密码学] 基础知识
  4. 双十一刷名企项目?学霸果然不一样
  5. JAVA中断线程的方法
  6. java vector_Java Vector elements()方法与示例
  7. 定时备份 MySQL 并上传到七牛
  8. sql操作mysql数据库_一些常用的操作MySQL数据库的sql语句
  9. 设计世界上最小的 Arduino!
  10. 大学生英语跨文化交际阅读课程 Unit6 Text A
  11. vite alias配置路径地址别名
  12. lpc1768的gpio库函数_Cortex-M3学习LPC1768 - GPIO实验
  13. 用JavaBean封装数据库操作
  14. Amazon EKS基于GitLab的CICD实践一 GitLab的部署和配置篇
  15. 计算机系笔记本电脑配置,笔记本电脑硬件配置全解析, 看完让你轻松选择笔记本...
  16. 苹果太狠了:升级iOS 8小心变砖
  17. IDE SATA SCSI 三种常见硬盘之间的区别(二)
  18. IPTV机顶盒使用MediaPlayer 播放rtsp协议的视频
  19. THWATCH-01 陀螺仪 MPU6050 HAL库 正点原子 STM32驱动 计步
  20. MDCC大会历届PPT集萃

热门文章

  1. ICCV 2021 | 字节跳动利用单幅图片做三维重建!将NeRF、MPI结合,提出MINE新工作...
  2. LiTAMIN2:一种超轻型LiDAR-SLAM(ICRA2021)
  3. 为什么很多人考上了研究生变得不快乐了?
  4. Matlab读取txt文本并且绘制曲线
  5. SLAM综述:激光雷达与视觉SLAM
  6. Survey | 深度学习方法在生物网络中的应用
  7. CentOS 7下安装UCSF Chimera
  8. WOJ 1204 继续找相同
  9. MPB:林科院袁志林组-巢式PCR检测植物组织痕量内生真菌的方法及其引物
  10. ISME:污水厂抗性组受细菌组成和基因交换驱动且出水中抗性表达活跃