Iterative error correction of long sequencing reads maximizes accuracy and improves contig assembly

长序列读取的迭代误差校正可以最大限度地提高准确性,并改进叠架装配

抽象

新一代测序仪(例如Illumina)现在可以以高通量产生高达300 bp的读数,这对于基因组组装具有吸引力。基因组组装的第一步是计算校正序列错误。但是,纠正这些较长读段中的所有错误都具有挑战性。在这里,我们显示了校正后残留错误的读数通常与重复序列重叠,而在其他重复序列中会出现短错误的k -mers。我们开发了一个迭代错误校正管道,该迭代错误校正管道以增加的k- mer大小在多轮基于k -mer的校正中运行先前发布的String Graph Assembler(SGA),然后进行最后一轮基于重叠的校正。通过结合小和大k的优势-mers,此方法可纠正重复中的更多错误,并最大程度减少错误读取的总量。我们显示更高的读取精度将重叠群长度增加了两到三倍。我们提供了SGA迭代纠正错误(https://github.com/hillerlab/IterativeErrorCorrection/),该错误通过使用SGA中的模块来实现迭代错误纠正。

介绍

在过去十年中,高通量测序技术的使用已大大增加。可以使用不同的测序平台,例如Illumina,PacBio,454,IonTorrent和Nanopore。迄今为止,Illumina使用最广泛。尽管过去限于相对较短的读取长度,但在Illumina MiSeq机器上单次运行现在可以产生15千兆字节(GB)的配对末端读取,长达300 bp。最新的Illumina HiSeq 2500机器甚至可以产生300 GB的配对末端250 bp读数。这种长读取的高通量对于基因组组装具有吸引力。尽管Illumina数据已经包含了相对较少的错误,错误率不到1%[ 1 ],但读取完全没有错误的可能性很低,尤其是对于250或300 bp较长的读取。

对于基因组组装,期望使用尽可能准确的读数。因此,校正序列错误是必不可少的预处理步骤。对于短读取测序数据的纠错许多工具存在:BFC [ 2 ],祝福[ 3 ],珊瑚[ 4 ],ECHO [ 5 ],欧拉[ 67 ],菲奥娜[ 8 ],锤[ 9 ],HITEC [ 10 ],Karect [ 11 ],打火机[ 12 ],Musket [ 13 ],MyHybrid [ 14 ],Quake [ 15 ],RACER [ 16 ],爬行动物[ 17 ],SGA [18 ]和SHREC [ 19 ]等。所有方法都依赖于很少发生的错误以及足够高的测序覆盖率,因此可以使用覆盖相同基因组基因座的其他读数来纠正错误。这些工具中的大多数根据它们如何处理测序读数的校正可分为两类:基于k -mer的校正(主要处理碱基取代)基于重叠的校正(也可以校正插入和缺失)。Laehnemann 等人给出了每种方法和现有工具的详细概述。[ 1 ]。

基于k聚体的校正背后的想法是,测序错误将导致在基因组中不出现读段(k mer)的k bp长的子串,因此输入数据的计数较低。可以检测到这种不常见的k- mer,并且如果将错误的碱基替换为另一个碱基会导致k- mer发生的频率更高(固体k- mer),则可以纠正错误的碱基。基于K -mer的校正取决于k- mer大小的参数选择以及偶发和实心k的计数阈值-mers。基于重叠的校正背后的想法是建立可能来自相同基因组基因座的相似读段的多序列比对。然后,将测序错误检测为比对列中的罕见差异,并用比对列共识进行校正。基于重叠的校正取决于用于最小读取相似性的参数,用于罕见差异的计数阈值以及支持共有基数的最小读取数量。

以前的研究已经解决的一些误差校正工具[性能2021 ]。大多数工具在测试的数据集上表现良好,几乎所有的读数都可以针对较小的基因组进行校正[ 20 ]。但是,对于复杂的,重复序列丰富的基因组,例如人类基因组,校正后仍有相当一部分读数有错误。例如,在使用性能最佳的工具进行校正后,人类100 bp HiSeq读数中仍有15-20%的错误([ 20 ]中的表2 )。对于较长的读取,此性能甚至更差。从小大肠杆菌基因组读取的250 bp MiSeq读数中仍有一半以上存在错误([ 20 ]中的表3 )。

测序错误可能仍未纠正的原因可能有多种。首先,具有许多错误的读数更难于校正,因为它们与来自同一基因座的其他读数不同。然而,由于它们中存在许多不常见的k聚体,因此此类读数易于丢弃。其次,由于来自相同基因座的其他读数中缺乏固体k聚体,因此可能无法校正来自具有低测序覆盖率的基因组基因座的读数。第三,如果测序错误导致在基因组其他地方发现k- mer,这种错误经常发生在重复区域,则测序错误可能仍然未被发现。虽然前两种情况很难通过计算解决,但对于更长的250或300 bp读取,可以改善重复中的错误校正。

在这里,我们显示了许多在标准校正重叠重叠后具有未校正序列错误的读数。在这些读物中,短错误的k聚体在另一个重复拷贝中相同地出现,因此被错误地认为是正确的。为了改善长时间Illumina读取的错误校正,我们使用了String Graph Assembler中的模块,并开发了迭代错误校正管道,该管道运行多轮基于k -mer的校正,并增加k- mer的大小,然后进行最后一轮重叠基于校正。我们表明,这种迭代策略可以有效地纠正重复中的错误并减少错误读取的总量。我们进一步表明,这种较高的读取精度可将重叠群的装配转化为两倍或三倍。

方法

模拟数据集

为了研究为什么在标准错误校正后仍然存在测序错误并测试迭代错误校正是否可以提高读取精度,我们首先模拟了已知基因组的读取。模拟数据的优势在于,在引入错误之前,我们知道每次采样读取的真实顺序。这使我们能够精确地测量每一轮纠错之后的读取是否无错误。

我们的分析是基于人的11号染色体(135 Mb),卡洛斯Anolis carolinensis 4号染色体(156 Mb)和鸡14号染色体(15 Mb)。我们首先用随机序列填充装配缺口和不明确的碱基(N)。然后,我们通过在已知的速率为每一个物种导入杂[创建第二单倍型的单核苷酸多态性(SNP)为蜥蜴率0.001人类,0.003和0.0006鸡根据[ 22 ]; 默认插入率0.0001; 没有结构上的变化]使用了木桩[ 23 ]。最后,我们使用ART [ 24]和MiSeq 2×300 bp的特定错误谱,以模拟三个染色体的读数,每个覆盖率均为30X(参数:每个单倍型的覆盖率为15X,片段大小为550±55 bp)。所有模拟数据集和错误配置文件可从http://bds.mpi-cbg.de/hillerlab/IterativeErrorCorrection/获得

真实数据

为了在真实数据集上测试我们的纠错策略,我们为水稻菌株IR64,DJ123和Nipponbare(分别为SRX180591,SRX186093和SRX179262)下载了2×250 bp的MiSeq读数;分别为http://schatzlab.cshl.edu/data/rice /)。我们还下载了人类2×100 bp的HiSeq读取数据集(库1来自http://gage.cbcb.umd.edu/data/)。为了与我们的模拟一致,我们将所有数据集下采样到30倍覆盖率。

重复读序列重叠

我们从UCSC基因组浏览器“ rmsk”表中获得了所有三个染色体的散布和串联重复序列的坐标[ 25 ]。下载了所有与重复一致性相差最多10%的重复。这套样本覆盖了9.5%的人类11号染色体,2.3%的蜥蜴4号染色体和1%的鸡14号染色体。为完整起见,我们还分析了所有重复的重叠,无论其发散率如何(补充表1)。

纠错策略

在我们的迭代纠错流水线中,在后续的基于k -mer的校正中,随着k- mer大小的增加,对碱基替换进行校正。为了更正剩余的小插入和删除,我们进行了最后一轮基于重叠的更正。

我们使用String Graph Assembler [ 18 ] 测试了我们的策略,因为(i)SGA代码是开源的;(ii)既实施了基于k -mer的校正方法又实施了基于重叠的校正方法;(iii)SGA是模块化的,允许我们仅运行基因组组装工作流程中的选定步骤;(iv)SGA可以读取不同长度的数据,并使用有效的数据结构来处理大量数据[ 26 ];最重要的是,(v)它是复杂的,富含重复序列的基因组的最佳校正方法之一[ 21 ]。

SGA纠错模块不适用于较大的k- mer大小,在某些基因座上,只有少数读取可能重叠k bp或更多。为了避免在这些区域中进行错误校正,例如,通过将一个频率不高的k - mer 错误地校正为频率稍高的k- mer,我们在SGA中添加了以下参数:

基于K -mer的校正:

  • – count-offset = N(默认值1):校正k- mer时,要求新k- mer的计数至少比旧k- mer 的计数高N。

  • 基于重叠的校正:

  • – base-threshold = N(默认值2):尝试纠正读取中的碱基,该碱基在多序列比对的特定列中少于N次。

  • – min-count-max-base = N(默认值为4):校正基数时,要求新的共识基数至少为N。

 

我们使用了以下参数:–count-offset 2,–min-overlap 40,–error-rate 0.01,否则为默认值。

测量模拟数据集的读取准确性

因为我们旨在最大程度地提高无错误读取的数量,所以我们区分了“正确”读取和“错误”读取。如果读数的序列与从中读取单倍体的基因组基因座相同,则认为该读数正确。相反,如果读取具有至少一个不匹配或插入/删除,则认为该读取是错误的。如果一个读段的序列与替代单倍型相同,我们也认为该读段是错误的,这可能是由于将SNP误认为一个错误并将其纠正为其他等位基因而发生的。因此,如果在二倍体基因组中的任何位置均发现相同的读数,则我们的方法比将读数视为正确更为严格。除了计算多少个正确的读数外,我们还通过将一个读数的序列与正确的读数的序列比对来确定(i)测序错误的总数,

测量真实数据集的读取准确性

我们通过计算精确映射到参考基因组的读取数来确定无错误的读取数。具体来说,我们使用默认参数运行bowtie2 [ 27 ]并计算了标志“ MD:Z:”的出现次数,其后是生成的sam文件中的确切读取长度。应该注意的是,水稻参考基因组具有装配缺口,歧义碱基(N's)和仅一种单倍型,这意味着即使没有错误,也不是所有读物都能准确定位。

基因组组装

我们使用SGA将经过纠错的读段组装到重叠群中。总共有六套重叠群,分别用于(i)单个基于k -mer的最佳校正后的读数,以及(ii)使用我们的迭代策略校正后的读数。使用“ sga过滤器”(参数:-kmer-threshold 2,-均聚物检查,-low-complexity-check;否则为默认值)过滤掉了潜在的错误读数,并使用“ sga overlay”生成了基于重叠的字符串图(参数:–min-overlap 75;否则默认设置)。重叠群使用“ sga assemble”进行组装,并且针对每个重叠群优化了字符串图中序列之间的最小重叠(参数:–min-overlap从75到200,–resolve-small 10;否则为默认值)。

通过使用参数-tileSize = 18 -minMatch = 4 -maxIntron = 10的Blat,通过测试多少个≥400bp的重叠群重叠到一个连续的基因组区域,我们评估了组装质量。然后,我们计算每个重叠群,其中至少98%的序列与基因组具有至少98%的同一性,并且基因组中的比对跨度最大为重叠群长度的102%。人工检查了几个不符合这些标准的重叠群,发现它们很短,<1000 bp,与其他染色体单倍型更好地匹配,而后者未用于Blat。为了评估完整基因的覆盖范围,我们使用了具有脊椎动物基因组的BUSCO [ 28 ]在基因组模式下。

使用其他方法进行迭代错误校正

对于RACER,我们将基因组大小设置为人类11号染色体的大小(135006516bp)。以-K kmer_length基因组大小(-K 32 135006516)运行打火机。对于BFC和Musket,我们用-k参数指定了k -mer大小。所有其他参数均为​​默认值。

结果

最未经校正的300 bp读数重叠重复

我们首先使用模拟读取来研究为什么纠错不能纠正所有错误。在进行任何更正之前,所有读取中的87%是错误的。经过k  = 40的校正后,变成正确重叠的人类,蜥蜴和鸡的读数分别有12.9、9.6和5%重复,而仍然包含错误的读数有64.8、24.2和10.5%重叠了,即2至5。折高。

这些数字表明,重复区域中的错误特别成问题,并且经常无法纠正。因为重复序列在基因组中具有许多相似的拷贝,所以重复重叠的读段中的测序错误更有可能导致错误的k聚体在另一重复序列中相同地发生。较小k的K- mer校正将不会检测到这种错误的k- mer很少(不是稳定的),因为在来自其他重复副本的读取中发现了该错误。因此,该错误将不会得到纠正。图1显示了来自我们的模拟数据集的示例。

图1
 

重复区域中测序错误的示例,在用小k- mer 校正过程中仍未发现。包含测序错误的40个单体(箭头)与SINE重复序列重叠,并且在人类11号染色体的其他位置相同。因此,该k单体被认为是实体的,并且在相应的读数中未纠正错误。但是,将k增加到50或更大将不会识别该区域。因此,更长的序列背景(300 bp读取提供)允许在高度相似的重复序列中检测和纠正此类错误。

 
 

 

迭代错误校正可纠正重复重叠的读取

基于图1中的示例,我们认为具有较大k- mer大小的其他校正回合可以校正其他读数。为了测试这一点,我们对k  = 40校正后的模拟数据集进行了另一轮校正,其中k增加到读取长度的 三分之二(k = 75/100/125/150/175/200)并进行了测量错误读取的百分比。一致地,对于所有三个物种,额外的校正回合大大减少了错误读取的数量(图2A中的行补充表2)。不管我们是否使用k,都没有单个校正轮可以达到迭代校正的精度。改变k s 的基于mer的校正或基于重叠的校正(图2A中的叉号)。例如,虽然3.4%的人类读数在一次最佳k  = 75校正后有错误,但是只有0.82%的人在反复校正后直到k  = 200 才有错误。与观察到的错误读取百分比的减少相一致,随后进行了多次校正还稳定地减少了错误的总数,并增加了被10、20或30个正确读段覆盖的基因组的百分比(补充表34)。

图2

迭代错误校正比任何单个校正回合校正更多的错误,尤其是校正重复重叠的读取。(A)校正迭代回合(行)中的错误时,错误读取的百分比会减少。不管使用哪种k- mer大小,最终达到的百分比都显着低于任何单个校正轮(十字)。最终基于重叠的校正显示在右侧。人类,蜥蜴和鸡的数据是模拟的300 bp MiSeq读数。(B)Y轴显示在重复重复的k聚体校正的每次迭代之后新校正的读数的百分比。随后的几轮比第一个k  = 40轮纠正更多的重复重叠读取。(C)当校正迭代回合中的错误时,来自三个不完全映射到参考基因组的水稻亚种的250 bp MiSeq读数的百分比降低。

 
 

 

接下来,我们探讨了迭代纠错是否有助于纠正重复重叠读取中的错误。在每个校正回合之后,我们提取在前一回合中错误的新校正的读段,并检查重复序列是否重叠。我们发现,与第一个k  = 40的校正回合相比,每个后续回合中重复重叠读取的百分比都显着更高(图2B补充表1)。对于重复序列丰富的人类基因组,在k  = 125校正后,该百分比达到93%。综上所述,这些结果表明,与任何单个校正回合相比,迭代错误校正可以校正的读数要多得多,并且后续回合的k值更高。 越来越多地纠正重复区域中的错误。

最后一轮基于重叠的校正可纠正插入和删除错误

尽管基于迭代k聚体的校正使替换错误最小化,但仅靠它本身并不能校正由于小的插入和删除而导致的错误。实际上,错误的人,蜥蜴和鸡的读数中有20%,16%和19%在 校正k = 200 后包含插入和删除错误。因此,我们进行了最后一轮基于重叠的校正,将带有插入和缺失的错误读段的百分比降低到9、7和8%。在纠错流水线的这一最后步骤之后,人类,蜥蜴和小鸡的读数仍然只有0.71、0.93和0.81%仍然是错误的(图2A中最右边的数据点;补充表2)。

迭代错误校正可最大程度地减少实际250 bp读取中的错误

为了测试迭代纠错是否还能提高实际测序读取中的读取准确性,我们将此策略应用于来自三个不同水稻亚种的2×250 bp MiSeq数据。每次迭代后,我们确定准确映射到参考基因组的读段的百分比。如在所示图2C,迭代纠错不断改善准确映射的百分比读取(补充表2)。我们得出结论,使用多个基于k -mer的迭代纠错校正和基于最终重叠的纠错可将模拟数据和真实数据中错误读取的总数最小化。

减少错误读取的数量,大大改善了重叠群的装配

接下来,我们测试了错误读取次数的减少是否可以转化为人类,蜥蜴和鸡数据的重叠群组装。我们应用SGA来组装重叠群,它们来自(i)单一基于k -mer的最佳校正( 人类和蜥蜴的k = 75; 鸡的k = 40)之后的读数,以及(ii)我们的迭代错误校正策略后的读数。图3显示了相应的NG50值,其中各个染色体的一半由至少那个长度的重叠群组成。人体的NG50值提高2.1倍,蜥蜴提高2.2倍,鸡肉提高2.9倍。因此,错误读取数量的减少,即使是人类的错误读取数量的减少,即使从3.4%减少到0.7%,也可以导致更长的重叠群。

图3

重叠错误校正后,重叠群大小可提高2到3倍。NG(x)%图显示重叠群大小(Y轴),其中染色体的x%由至少那个大小的重叠群组成。迭代误差校正后和单次最佳校正回合后,由模拟读段组装的重叠群分别用实线和虚线表示。垂直虚线表示NG50。相应的数字在旁边注明。

 
 

 

为了评估组装的准确性并排除更长的重叠群是由于错误组装导致连接不相邻基因组区域的原因,我们将重叠群与我们从中读取原始读数的基因组进行了比对。我们发现,几乎所有由反复校正的读段组装而成的重叠群都映射到单个连续的基因组区域(人为99.71%,蜥蜴为99.89%,鸡为100%)。我们还使用了BUSCO [ 28]通过计算每个装配中发现的完整单拷贝基因的数量来评估装配正确性。BUSCO从经过反复校正的读数中发现了更完整的单拷贝基因(人为17对15个基因,蜥蜴为67对44个基因,鸡为27对23个)。总之,这表明重叠群长度的增加不是由于组装错误而引起的,并且组装精度很高。

更少的校正回合减少了运行时间,同时保留了校正精度

虽然迭代错误校正可最大程度地减少错误读取的次数并显着改善重叠群的组装,但显然需要额外的运行时间。与最佳单个k- mer校正的运行时间相比,进行了7次迭代k- mer校正,最后一次重叠校正的运行时间是其6-8倍(补充表5)。与k- mer校正相比,重叠校正可计算读取的多个序列比对,占总运行时间的40%,并且需要1.5倍的内存。

出于实际考虑,我们寻求了在保持校正性能的同时减少运行时间的方法。我们具有较大步长所测试更少校正轮ķ三轮与:ķ  =的40/125/200代替七轮与ķ  = 40/75/100/125/150/175/200,既接着是最终的重叠基于校正的回合。我们发现,与最佳单个k- mer校正(补充表5)相比,更少的回合运行约5倍的时间,而人,蜥蜴和鸡的错误读取百分比仅增加0.18%,0.27%和0.04%(图4补充)表2)。这表明最终获得的读取精度非常相似,无论k -mer步长。省略计算上昂贵的重叠校正步骤,可进一步将运行时间减少到1.8、1.9和3.4倍,而对人类,蜥蜴和鸡肉的错误读取增加0.31、0.42和0.16%。

图4

较少的迭代校正回合保留校正精度。基于k- mer的校正的三轮而不是七轮,随后都是基于重叠的校正,可实现相似百分比的错误读取。

 
 

 

如果测序覆盖率高,大于读取长度三分之二的K -mers可以纠正错误

原则上,测序覆盖率越高,可用于纠错的k- mer大小越大。为了探究是否确实如此,除了上述30X数据集外,我们还从人类模拟基因组中进行了60X和100X覆盖率的读取。像以前一样进行迭代错误校正,增加了k  = 225和k  = 250个校正回合。在每一轮之后,我们测量正确读取与错误读取的比率;比率> 1表示比错误校正更多的校正。

如图图5A中,校正与ķ  = 225和ķ  = 250进一步减少错误的百分比在60X和100X的数据集读取(虚线和点线),但不是在30X数据组(实线;还参见补充表2)。与该结果一致,我们始终观察到60X和100X数据集中的校正比错误校正要多(图5B)。事实上,不是一个单一的碱是误纠正为ķ  在100X数据集≤150。相反,观察到更多的错误校正比校正ķ  在30X数据集≥225。

图5

如果测序覆盖率高,大于读取长度三分之二的K -mers可以纠正错误。(A)随着k  = 225和k  = 250校正,人类30X数据集(实线)中错误读取的百分比再次开始增加。相反,百分比在60X(虚线)和100X(虚线)数据集中不断下降。(B)与A一致,我们开始观察到比 人类30X数据集(比率低于1)中的k  = 225和k = 250 校正后的校正更多的错误校正,而不是60X和100X数据集(比率> 1,与k- mer大小无关。

 
 

 

由于具有较高k- mer大小的30X数据集中的错误校正是意外的和不希望发生的,因此我们探究了可能的原因,发现它们几乎专门代表“单倍型转化”。k  = 250校正后,错误校正的读数的百分之九十六与相应的替代单倍型完美对齐,也就是说,不是从中产生读数的单倍型。如果两个单倍型的测序覆盖率低且不均匀,则可能会发生这些单倍型转换,从而将SNP错误地视为错误。应该注意的是,即使去除杂合性可能对基因组组装是有利的,我们也将单倍型转化严格地视为错误校正。合计,增加k 读取长度的三分之二以上对于具有高测序覆盖率的数据集是有益的,即使错误读取的进一步减少是微不足道的。

120 bp读取的迭代错误校正可提高读取精度,但不能始终如一地重叠群

因为许多基因组装配都是基于较短的读取数据,所以我们还模拟了来自所有三个染色体的2×120 bp读数,每个覆盖率均为30X,并使用真实的人类2×100 bp测序数据来测试迭代错误校正。的确,对于300 bp的读取,迭代错误纠正始终减少了错误读取的百分比(补充图12)。但是,与300 bp读数相反,仅对鸡,而不是对人和蜥蜴,迭代校正120 bp读数可以改善重叠群组装(补充图1B)。)。这可能有两个原因。首先,较短的120 bp读跨较少的重复。例如,在30X覆盖率的情况下,只有0.6%的人类Alu重复序列被至少1个120 bp读段覆盖,而14.8%的人类Alu重复序列被至少1个300 bp读段覆盖。其次,读取的长度限制了组装过程中读取之间的重叠长度。原则上,较长的读取重叠可帮助解决重复引起的装配歧义。我们比较了导致NG50最佳组装的最小精确读取重叠。对于单次校正和迭代校正的120 bp读取,以最小的80 bp读取重叠实现了最佳的人和蜥蜴装配。相反,较大的最小读取重叠会导致迭代校正的300 bp读取的最佳组合(单个校正与迭代校正:对于人类,最小重叠为80对100 bp,对于蜥蜴则为100对130 bp)。总体而言,迭代纠错仅在更长的序列读取时才能持续改善重叠群装配。

其他方法也可以从迭代错误校正中受益

为了测试其他错误纠正工具是否以迭代方式纠正更多错误,我们将步枪[ 13 ]和BFC [ 2 ]应用于人类30X数据集。如图6所示,随后的校正回合减少了这两种方法的错误读取百分比。尽管Musket和BFC的速度比SGA快(补充表5),但它们无法达到SGA的准确性。我们还测试了其他两种无法迭代运行的方法,因为它们的最大k- mer大小限制为小k s(Lighter [ 12 ]),或者因为k是根据基因组大小自动确定的(RACER [ 16])])。我们发现,通过Musket或SGA进行迭代校正,这两种方法的性能均优于(图6)。这些结果表明,迭代错误校正并非特定于SGA,而是许多错误校正工具的通用策略。

图6

如果将其他纠错方法与迭代纠错策略一起使用,则错误读取的百分比也会降低。使用Musket [ 13 ]和k  = 40/125/200进行三轮校正,使用BFC [ 2 ]和k  = 40/63进行两次校正轮也可以减少人类30X数据集中错误的300 bp读数的百分比。SGA曲线从图4中复制出来以进行比较。对于BFC,我们只进行了两轮操作,因为BFC要求k最多为63。请注意,对于Musket,错误读取的百分比从2.5%(k  = 125)增加到3%(k  = 200)。为了进行比较,我们还测试了RACER [ 16]和打火机[ 12 ]。我们只运行Lighter一次,因为它要求k最多为32。在输入基因组大小(135006516bp)的情况下,RACER只运行一次是因为它自动确定最佳k。由于RACER不会输出k的选定值,因此我们在k  = 32时任意绘制性能(错误读取的13.18%)。

 
 

 

讨论区

随着测序技术的发展,更长的读数可能将成为基因组组装项目的首选。下一代测序数据中的基因组组装需要对短插入文库进行测序以构建重叠群。过去,短插入文库通常使用Illumina HiSeq测序仪的2×100 bp读数进行测序。现在,Illumina技术可对2×250甚至2×300 bp的读序列进行测序。给定一个平均插入片段大小约为450 bp的短插入文库,这些读段能够跨越某些重复类别。例如,较长的读段将跨越最多300 bp的长短散布元件,占人类基因组的15%,由于存在180万个拷贝,因此代表了组装方面的重大挑战[ 29]。但是,较长的Illumina读数具有精度较低的缺点。即使测序错误率相同,读取的时间也越长,则读取数据完全无错误的可能性就越低。鉴于无错误的读取数据对于基因组组装是理想的,因此计算错误校正至关重要。因此,我们开发了一种改进错误校正的策略,该策略可最大程度地提高长测序读段(尤其是重复重叠读段)的准确性。

现有的纠错工具通常使用小于30 bp 的单个且相对较小的k- mer大小在单个回合中纠正尽可能多的错误[ 1 ]。一些工具确定最佳的k- mer大小,因为它会导致最多的校正,而其他工具则让用户选择k。但是,选择单个固定的k- mer大小有一个固有的权衡:虽然小k可以进行更多的校正,因为读取仅需重叠k bp,如果错误将导致检测错误。k在基因组的其他地方发现[ 15 ](另请参见图1))。另一方面,较大的k可以纠正重复序列中的错误(图1),但不能检测低覆盖率区域中的错误,也不能纠正具有很多错误的读取错误。在这里,我们表明迭代纠错结合了小k- mer 和大k- mers 的优点,可以最大程度地减少错误读取的次数(图2)。

尽管迭代错误校正需要更长的运行时间,但到目前为止,在基因组组装,后续的基因组注释以及最终对新基因组的分析上花费了更多的时间。重要的是,注释和分析关键取决于基因组装配的质量。如图3所示,提高长Illumina读取的准确性有助于获得更好的组装。因此,读取精度应该是主要考虑因素。迭代错误校正可能以两种方式帮助基因组组装。首先,尽管像SGA这样的汇编程序会尝试丢弃错误的读取,但是其中一些读取将逃避过滤,并将用于汇编。事实上,SGA没有丢弃34%(155 812 456 827)的单个最佳后的误人类读取ķ = 75次校正,这些未丢弃读段中有62%(155 812条中的97 006条)重叠重复。这些错误的读取会在装配图中增加虚假分支,并妨碍装配连续性。如图2B所示,迭代错误校正可纠正重复中的更多错误,从而减轻由于装配图各部分中已经难以解决的顺序错误而增加分支的问题。其次,迭代错误校正可将我们的数据集中正确读取的数据对人类来说增加了2.7%,对蜥蜴来说是3.4%,对鸡肉来说是0.5%。尽管这些额外的读取可能对具有高读取覆盖率的基因座影响不大,但它们将有助于构建覆盖范围较低的基因座的重叠群。

我们使用SGA来测试迭代错误校正,因为它是大型基因组中性能最好的错误校正方法之一[ 21 ],而且其性能也优于其他方法。但是,如图6所示,其他工具也可以从迭代错误纠正策略中受益。因此,未来的错误校正工具的开发和基准测试通常可能会从迭代校正中受益。

给用户的实用指导

为了方便社区应用提议的迭代错误纠正,我们提供了一个名为SGA迭代纠正错误(SGA-ICE)的包装脚本,该脚本通过重复使用SGA模块来实现管道。仅在给定输入目录包含带有序列读取的fastq文件的情况下,SGA-ICE就会生成一个可执行的Shell脚本,其中包含用于迭代错误纠正的所有命令。默认情况下,SGA-ICE运行三轮基于k -mer的校正,k在读取长度的40%至三分之二之间(SGA-ICE将自动确定),然后进行最后一轮基于重叠的校正。因此,SGA-ICE消除了用户选择单个k- mer值的需要。或者,用户可以指定哪个k使用以及是否进行最终的基于重叠的校正回合。

对于大型基因组(例如脊椎动物基因组)的Illumina测序数据,我们建议SGA-ICE默认策略为三个k- mer校正回合,这样可以减少运行时间,同时保留大多数校正准确性如图4所示。省略重叠校正将进一步减少运行时间。但是,较小的插入和删除错误将保留在读取中。如果运行时考虑因素不重要或基因组较小,我们建议运行三轮以上以最大程度地提高读取精度,例如k  = 40/75/100/125/150/175/200。正如所建议图5中,测序覆盖确定最大ķ-mer可以使用。对于约30倍的覆盖范围(应足以从长的Illumina读取中构建重叠群),我们建议不要使用大于读取长度三分之二的k聚体。然而,对于60X或更高的高测序覆盖率,使用这些大k聚体将是有利的,因为它们能够校正在重叠群组装期间难以桥接的极其相似的基因组重复中的错误。

SGA-ICE可从https://github.com/hillerlab/Iterative ErrorCorrection /获得

 

关键点

 

  • 重叠高度相似的基因组重复序列的读段中的测序错误很难通过基于k -mer的方法来纠正。

  • 250或300 bp长的Illumina读数提供了使用更长的k- mers 纠正此类错误的机会。

  • 迭代误差校正随着k- mer大小的增加而运行多个校正回合,可以校正更多的错误,尤其是在重复中。

  • 错误读取数量的减少改善了长Illumina读取的重叠群装配

  • 迭代校正消除了用户选择单个k- mer值的需要。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wangchuang2017

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值