使用短读段的长片段从头组装
对相关申请的交叉引用
本申请要求2013年8月23日提交的美国临时申请No.61/869,570的权益,其通过提述完整并入本文。
发明领域
本公开一般涉及基因组测序,更具体地涉及序列读段的从头组装。
发明背景
在基因组测序中,对生物体的核酸分子测序以提供序列读段。作为测定生物体基因组的一部分,通常将测序读段联配(图谱定位(mapped))于参照基因组。以此方式,可以鉴定出生物体基因组和参照基因组之间的差异。
然而,这类对参照基因组的图谱定位可能产生错误。对参照基因组的图谱定位可能使结果有偏差,从而产生错误。例如,基因组中的插入和缺失非常难以图谱定位至参照基因组,如此可能是不准确和/或费时的。
从头组装使用来自序列读段的序列来将序列读段彼此联配。但是,从头组装通常是留着用来针对在图谱定位至参照基因组后已鉴定为有问题的基因组的小(局部)区域的。用于局部从头组装的技术在用于完整基因组或至少基因组大量部分的从头组装时存在缺陷。
因此,期望提供新技术从头组装。
发明概述
实施方案涉及用于实施从头组装的方法。例如,序列读段可以具有指示核酸分子的来源的标签。标签可以对应于多个孔之一,从而能追踪序列读段的来源。每种标签可对应于基因组的一部分(例如,对应于每个孔有少于一个基因组等同DNA)。可以鉴定出对应于相同区域的标签(label),例如通过具有与同一重叠群(contig)联配(align)的读段。在组装重叠群时,可以使用具有多种不同标签(例如从与种子(seed)重叠的初始读段鉴定的代表性标签组)的序列读段来延伸重叠群。
在另一个例子中,可以使用配偶对(mate pair)信息。可以鉴定与重叠群末端联配的第一组序列读段,且可以测定这些鉴定的序列读段的配偶对。可以使用配偶对的其他序列读段来确定第一组的亚组,其中使用序列读段的第一亚组来延伸重叠群。例如,所述其他序列读段可以是第一序列读段并与重叠群比较。最佳匹配的其他序列读段对应于正确的第一亚组以延伸重叠群。其他序列读段还可以与已知越过重叠群末端存在的第二序列读段的组比较,例如在外部云(external cloud)或辅助重叠群(helper contig)中。可以使用标签信息和配偶对信息两者。
在又一个例子中,可以创建k聚体索引(kmer index),其中该索引包括每个k聚体的录入(entry),且每个录入包括指示每个核酸分子(包括该k聚体)的来源的标签。可以使用特定的一组标签来检索对应于与重叠群的末端序列重叠的k聚体的序列读段。在再一个例子中,k聚体索引存储对应于索引中每个k聚体的读段的存储器地址。在又一个例子中,对于k聚体索引中的每个k聚体,索引存储了包括该k聚体的每个配偶对中的位置。
在另一个例子中,创建单倍体种子,每个用于创建单倍体重叠群。可以通过访问数据库来检索群体(例如人群体)中鉴定的一个或多个多态性基因座来创建单倍体种子。可以分析序列读段来确定基因座对于测试的生物体是否是杂合的。如果基因座是杂合的,则可将基因座用于创建两个单倍体种子。可以使用图谱定位于第一基因座且具有第一等位基因的读段来创建第一单倍体种子。可以使用图谱定位于第一基因座且具有第二等位基因的读段来创建第二单倍体种子。然后可以延伸两个种子,其中仅选择一个分支用于单倍体种子的每次延伸。
其他实施方案涉及与本文描述的方法有关的系统、便携式消费者设备和计算机可读介质。
通过参照以下详细描述和所附附图可以获得对本发明的实施方案的性质和有点的更好的理解。
附图简述
图1A显示重叠群的例子,末端序列被序列读段延伸。图1B显示其中多个序列读段与末端序列联配的例子。
图2是流程图,其例示了依照本发明的实施方案用于获得与长片段的标签关联的短序列读段的方法200。
图3显示示意图,例示了方法200的步骤。
图4A显示了k聚体索引的例子,其中k聚体长度是12。图4B是示意图,显示包含与末端序列匹配的k聚体的读段。图4C是示意图,显示长度9的末端序列(K-1)和长度10的两个k聚体。
图5A的图显示联配重叠群的末端序列的两个k聚体。图5B显示遇到het和选择两个分支(branch)后的两个单倍体重叠群。图5C是显示联配重叠群的末端序列的一个k聚体的示意图。
图5D是示意图,其显示依照本发明的实施方案将读段与重叠读段联配以获得用于延伸的更多读段的用途。
图6A显示了如何可对种子序列创建标签的代表组的例子。图6B显示了如何可以对重叠群更新和维持标签的代表组的例子。
图7显示了依照本发明的实施方案的使用标签组装生物体的第一染色体区序列的方法700。
图8显示依照本发明的实施方案用于测定和延伸单倍体重叠群的方法。
图9A显示配偶对的示意图。两条实线指示配偶对的两个读段。图9B显示与重叠群末端联配的配偶对的第一读段(左读段)的例子。图9C显示与重叠群末端联配的配偶对的第二读段(右读段)的例子。
图10A显示依照本发明的实施方案具有鉴定的左内部云(internal cloud)和右内部云的重叠群示例。图10B是例示依照本发明的实施方案的外部云的示意图。
图11A显示重叠群的示意图,其具有与重叠群末端联配的分支1的第二读段。图11B是重叠群的示意图,其具有与重叠群末端联配的分支的第二读段。
图12是显示外部云的创建的示意图。
图13A显示依照本发明的实施方案比较分支1的第一读段和第二读段来测定是否选择分支1的示意图。图13B显示用于比较分支2的第一读段和第二读段来测定是否选择分支2的示意图。
图13C显示依照本发明的实施方案创建和使用辅助重叠群。
图14是依照本发明的实施方案使用配偶对信息组装生物体第一染色体区的序列的方法1400的流程图。
图15A显示依照本发明的实施方案的示例k聚体索引,其具有对每个k聚体存储的读段地址。图15B显示依照本发明的实施方案的示例k聚体索引,其具有对每个k聚体存储的读段地址。
图16显示依照本发明的实施方案的示例k聚体索引,其具有对每个k聚体存储的读段标签。
图17是依照本发明的实施方案创建单倍体种子用于组装生物体第一染色体区的序列的方法的流程图。
图18显示可与依照本发明的实施方案的系统和方法一起使用的示例计算机系统10的块状图。
定义
以下定义在提供用于理解本发明实施方案的背景时可能有所帮助。
“序列读段”或“读段”指代表构成核酸分子(例如DNA、cDNA、RNA,包括mRNA、rRNA、siRNAs、miRNA等)的单体单元(例如碱基)的序列的数据。序列读段可经由多种技术从给定的分子测量。克隆读段(例如来自扩增)对应于相同核酸分子。在一个方面,克隆读段不含有比代表性读段更多的信息,且在遇到时可以移除。有效的读段来自独特的多核苷酸,例如在移除克隆读段之后。或者,代替移除,可将克隆读段组成成一个代表性读段,其可具有比任何组成物更高的准确度,例如通过挑选具有最高得分的碱基。
“片段”指生物学样品中的核酸分子。片段可称为长或短的,例如比10Kb长的片段(例如50Kb至100Kb之间)可称为长的,而比2000个碱基短的片段可称为短的。长片段可分裂成短片段,对所述短片段进行测序。
“配偶对”或“配偶读段”或“配对末端”可指来自同一分子的任意两个读段,其不完全重叠(即覆盖分子的不同部分)。两个读段的每个将来自同一分子的不同部分,例如来自分子的两个末端。作为另一个例子,一个读段可以针对分子的一个末端,而另一读段针对分子的中间部分。由于遗传序列可从开始至末端排序,当第一读段的开始和/或结束在第二读段的开始和/或结束之前时,分子的第一读段可鉴定为在基因组中比分子的第二读段更早存在。当两个读段来自同一分子的不同部分时,两个读段可称为不同臂读段(arm read)。对于每个分子可获得超过两个读段,其中每个读段将用于分子的不同部分。通常,两个读段之间有约100-10,000个碱基的未读序列的缺口(配偶缺口)。配偶缺口的例子包括500+/-200个碱基和1000+/-300个碱基。
源自同一长片段的小片段可具有相同的“标签”,其鉴别小片段的来源。标签的一个例子是“孔ID”,其指添加到小片段以确定读段来自哪个孔的条形码或标记物。当将长片段分配到多个孔或其他类型的等分试样,然后片段化成更小的片段时,可应用这类例子。每个读段的标记物解码(decode)(校正)并投射(project)于独特的标记物中。标签的另一个例子可见于美国临时申请No.61/801,052,其中可将相同的标签附于相同长片段的不同区段。
有效孔(EW)或标签,对应于非克隆读段的标签,例如首先发现和除去克隆读段,然后报告对应于那些读段的孔。相邻孔(NW)或标签,对应于预期在正组装的当前序列的近端(例如在指定的距离或直径)的读段的标签。有效相邻孔(ENW)或标签,对应于代表当前重叠群的非克隆读段的标签。相邻直径可以与片段大小有关,其可比重叠群大小大得多;因此在那些情况中,完整的重叠群可视为一个相邻者。
“种子序列”对应于用于开始组装过程的第一序列。“初始序列”对应于在组装过程的任意部分延伸的任意序列。“延伸序列”来自将种子序列(或其他初始序列)延伸任意数目的碱基。“重叠群”可对应于在组装过程迭代的开始(初始)或结束(延伸的)的任意序列。重叠群可以是重建的DNA的连续片段。超重叠群指通过例如经由拼接(stitching)算法串联初始重叠群得到的更大的重叠群。
短重叠群结构(SCS)可以指小于配偶对跨越的基因组区大小的重叠群,例如小于1000个碱基。长重叠群结构(LCS)可以指大于配偶的名义大小/长度的重叠群。二倍体重叠群(DC或DipCon)指下述重叠群,其中其上的两个单体型的相位(phase)未知。单倍体重叠群(HC或HapCon)指已在作为二倍体的基因组中建立成两个单体型的重叠群。因此,将产生两个单倍体重叠群。二倍体重叠群可解压(unzip)以获得两个单倍体重叠群。
“k聚体”是K个碱基的序列。K的示例值包括14至150的值。序列读段可分解成多个k聚体。例如,长度30的读段可分解成11个连续的长度20的k聚体。k聚体还可以从非连续碱基创建,即可以有缺口。例如,10个碱基,跳过(skip)2个碱基,然后再10个碱基,获得20聚体。“k聚体索引”(也称为索引)对应于一种数据结构(例如树结构),其组织k聚体以更容易地访问。索引可以以直接方式或类似于稀疏矩阵的方式存储,例如每行可以是独特的k聚体,且存储的列对应于包含该独特k聚体的读段。组装过程可使用k聚体和k聚体索引来确定序列读段之间的联配。
“云”是来自读段的序列的集合,且可存储为索引。序列可以是完整读段或其具体的k聚体(子集)。“内部云”可对应于被用于建立当前重叠群的读段的序列。“外部云”可对应于配偶对的第二读段,所述配偶对的第一读段已被用于建立当前重叠群。
“分支”对应于在末端序列处延伸重叠群的不同选项。例如,不同的分支可指示用于延伸重叠群的不同碱基,该重叠群可延伸1个或多个碱基。子分支指同一分支的部分(例如指示相同的延伸),但其配偶对的其他读段对应于基因组的不同区域。
发明详述
从头组装使用来自序列读段的信息以将序列读段彼此联配。描述了从头组装的多个方面。例如,标签可以指示核酸分子的来源,例如核酸分子所来自的孔。具有相同标签的核酸分子更有可能来自作为组装过程的一部分正重建的同一长片段。重叠群可从标签的代表组,例如通过将读段与种子联配确定的组建立。
重叠群的延伸可能涉及k聚体索引。可以基于重叠读段的证据来选择延伸的分支(序列假设)。可以使用多个重叠水平,例如在选择分支之前将读段彼此联配。k聚体索引可以多种方式创建且用多种信息创建,这类信息包括标签、与k聚体有关的读段的存储器地址,和配偶对中的位置。
种子序列可以多种方式创建。而且,单倍体种子可在已知的多态性基因座周围创建,所述多态性基因座在测试生物体中显示杂合性。
可以使用配偶对信息来选择延伸哪个分支。例如,可将配偶对的非联配读段(即不与重叠群末端联配)与内部云、外部云或辅助重叠群比较。这类比较可提供用于延伸的读段中的一致性,由此提供更大准确性。下文描述了更多的细节。
I.简单延伸
描述了延伸重叠群的基本概念。假定以24个碱基的短重叠群,如ATGCTATCGATCTGATCGATCTAG开始。如果正在向右延伸,末端序列可取为最后10个碱基,其将是ATCGATCTAG。当末端序列的后9个碱基与序列读段的头9个碱基匹配时,10个碱基的序列读段可视为与该末端序列重叠/联配。该序列读段的第10个碱基可指示哪个碱基是在基因组中的下一个。
在其他例子中,序列读段可以更长(或甚至更短),末端序列也可以。碱基的重叠也可不需要准确匹配。不管怎样,序列读段可具有与重叠群的末端序列联配的连续碱基序列,且可将序列读段的剩余碱基用于延伸该重叠群。
图1A显示重叠群110的例子,其具有被序列读段120延伸的末端序列120。然而,延伸重叠群的任务可以比图1A所绘的任务更难。可以有多个与末端序列充分联配的序列读段。
图1B显示其中多个序列读段160和170与重叠群150的末端序列152联配的例子。如果重叠群150是单倍体重叠群(例如对应于某个具体的染色体),那么仅有一个延伸重叠群的正确的碱基。因此,正确的碱基必须选自4个碱基中。在本例中,选择两个分支之任一,即选择A或C用于延伸。对于二倍体重叠群,最多有两个分支(选项),这是遇到单核苷酸多态性(SNP)时的情况。
当重叠群一次延伸超过一个碱基时可以加重该问题。在这类情况中,根据哪些序列读段与重叠群的末端序列联配,可能不得不从16个不同的分支(例如当用于延伸的碱基数目M是2个碱基)中选择某个具体分支。
本发明的实施方案可使用多种技术来确定应选择哪个分支来延伸重叠群。
II标签
标签可以用于确定获得序列读出的核酸分子的来源(例如,长片段)。所述来源可以是具体的核酸分子,来自同一核酸分子的序列读出具有相同的标签。作为另一个例子,所述标签可以对应于特定的等分试样(例如,孔),其中每个等分试样包括相对小百分比的基因组。如下文所解释的,等分试样中具有相对小百分比的基因组可以允许这样的假设,即彼此相似(例如,彼此联配)的序列读出来自同一个较大的片段。
A.标签(等分试样)的例子
可以追踪获得片段的特定序列读段的孔。可以使用附着于小片段的条形码确定此孔ID。因此,可以追踪小片段的来源。以下描述了各种执行方式,其可以例如用于实施方案中。
图2是流程图,其显示了根据本发明的实施方案的用于获得短序列读出以组装为长片段的方法200。方法200将结合图3描述,其示出了显示方法200的步骤的图表。
在步骤210中,得到包括生物体的核酸分子的一个或多个样品的溶液。注意样品可以是溶液。溶液可以从组织样品或自体液获得的样品创建。如图3中所示,样品310具有约120pg的高分子量DNA。自每个亲本遗传的DNA突出显示为蓝色(亲本1)和红色(亲本2)。在溶液中,核酸分子倾向于比在将溶液作为等分试样分配(例如从移液器中)到孔中以准备测序后长得多。样品310中的这些非常长的片段的长度可以为约100kb至1mb。
在步骤220中,将溶液分配到物理上不同的池(例如,孔)中。图3在(a)中示出了被物理上分开到384个不同的孔320中的DNA。分开可以是对应亲本DNA片段随机分开到物理上不同的池中。分配的行为通常打断核酸分子,例如随着它们移过移液器的尖端。分配前的核酸分子称作非常长的片段,而分配后的核酸分子称为长片段。在孔(或其它容纳单个等分试样的容器)中的长片段的长度可以是约5Kb至50Kb(或长达几百Kb)。
在一个实施方案中,可以就DNA而言相对稀释溶液310(例如,少至约10到30个细胞可以在溶液中)。当溶液从移液器中分配时,此稀释可以提供含有约10%的基因组的等分试样。由于每个池中基因组的分数降低到少于单倍体基因组,在同一池中具有来自两个亲本染色体的对应片段的统计学可能性降低。例如,在每孔0.1个基因组当量下,两个片段将重叠的机会是10%,而那些片段将源自不同的亲本染色体的机会是50%;得到具体孔对于给定片段而言不提供信息的总体机会为5%。因此,考虑到长片段随机分布到整个溶液中,等分试样的原始片段不太可能是来自基因组的重叠区域(也不彼此接近),以及不太可能来自染色体的不同拷贝。
可以扩增(克隆)这些长片段。例如,可以进行使用修改的基于phi29的多重置换扩增(MDA)的高度一致扩增(Dean,F.B.et al.2002,PNAS Vol.99,pp.5261-6)来将DNA的每个长片段的数量增加到每个孔5,000-10,000个拷贝。扩增可以帮助为直方图提供更好的统计学数据。长片段完全不被克隆,或可以在后续步骤中克隆。
在步骤230中,从长片段生成短片段。图3示出了被打断成短片段330的长片段325,如(b)中所示。可以片段化长片段,例如,使用酶促片段化,使用随机引物的多重置换扩增(MDA),和/或物理片段化(例如,使用超声片段化)。短片段源自长片段的片段化。作为酶促过程的一部分或作为额外的步骤,可以扩增所得的短片段。在多个实施方案中,所得的短片段可以是约100-10,000个碱基,或200碱基至5,000个碱基的更窄的范围,并可以是平均500个碱基。
作为片段化为小片段的一部分,通过控制的随机酶促片段化(CoRE),可以将长DNA分子处理为平末端的300-1,500bp的片段。CoRE经由通过尿嘧啶DNA糖基化酶和内切核酸酶IV去除在MDA期间以预先确定的频率掺入的尿苷碱基使DNA片段化。使用大肠杆菌聚合酶1从所得的单碱基缺口的缺口平移可以解析片段并生成平末端。
在步骤240中,将完全特异的条形码衔接头添加到小片段。因此,可以编码单个等分试样的短片段,如美国专利申请12/816,365中所述,从而当来自所有孔的短片段汇集到单个测序方案中时,追踪来自相同孔的短片段。图3示出了添加到短片段330的条形码衔接头335。每个孔具有对于该孔而言独特的条形码。在一个实施方案中,使用高收率、低嵌合体形成方案将独特的10-碱基误差校正条形码衔接头(其经设计以减少由每个条形码的序列和浓度差异引起的任意偏爱)连接到每个孔中的片段化DNA(Drmanac,R.et al.2010,Science,Vol.327,pp.78-81中所述)。在步骤(b)中的一个执行方式中,将基因组DNA扩增,片段化,并连接到独特的条形码衔接头,全部在同一孔内,没有居间纯化。
在步骤250中,将来自孔的小片段组合到单个测序程序中以提供一个或多个序列(例如,配偶对读出)。在图3中,在(c),来自全部384个孔的片段组成到单个容器340中,其中条形码衔接头335区分每个小片段的来源。可以使用任意测序平台以获得短片段的整个序列,一个臂读出,或一对配对的读出。在一个实施方案中,可以采用使用对于连接的衔接头通用的引物的不饱和聚合酶链式反应来生成足够的模板用于测序(Drmanac,R.etal.2010,Science,Vol.327,pp.78-81)。也可以在测序过程开始之前纯化小片段。或者,可以在分开的过程中测序每个孔,但是这可以是耗费时间的。
询问的单个的池越多,将在分开的池中分析来自母本和父本互补物的片段的次数就越大。例如,每个孔中具有0.1基因组当量的384孔板产生母本和父本等位基因两者的19x理论覆盖。
在步骤260中,使用条形码(即通过孔ID)将序列彼此图谱定位(联配)(例如形成重叠群)。图3示出了从来自孔1的片段获得的序列的组350,而另一组具有从来自孔2的片段获得的序列。由于每个组对应可能不重叠的长片段,可以确定读段对应于长片段320。因而,某些实施方案可以追踪获得测序片段的等分试样(或孔),从而再捕捉关于存在于溶液中的较长片段的信息。此关于较长片段的信息可以提供关于相应染色体的更多的信息和帮助组装重叠群。
例如,当使用较低浓度样品时,如果来自相同等分试样(孔)的任意两个片段的序列读出在基因组位置上接近(如通过定位确定),那么可以假设它们源自溶液中同一个原始的长片段。因此,序列读出不必须是相同短片段的,而是可以来自相同等分试样的任意两个片段。这种追踪提供了关于染色体上的大区域的更多信息,且可允许更准确的组装。
在步骤270中,可以定相联配的序列(例如,使用下文描述的解压过程)以获得两个单倍体基因组。由于亚基因组等分取样中的每个长片段(例如LFR)可代表(具有>95%可信度)单倍体基因组,这样的过程可以显著简化DNA组装的任务。最终,可以生成母本和父本染色体两者的高覆盖完全序列。
图3示出了借助于长片段的标签知识定相到两个单倍体基因组370中的杂合基因座的二倍体基因组360。关于LFR的更多细节可见于美国专利申请No.12/816,365,12/329,365,和12/265,593,美国专利Nos.7,906,285,7,901,891,和7,709,197,和美国公开文本2011/0033854,2013/0054151,和2013/0096841,其均通过提述并入。
B.其它示例
标签的另一个例子可以在名称为“Multiple Tagging Of Individual Long DnaFragments(个体长DNA片段的多种标记)”的美国申请号14/205,145中找到,其中相同的标签可以附着到相同长片段的不同分段。如果将长片段打断为较小的片段,那么每个小片段可以包括相同的标签。在其它实施方案中,相同的长片段的不同分段可以具有相同的标签前缀(prefix),但具有不同的后缀(suffix)。以这种方式,标签可以鉴定两个小片段为源自相同的长片段。在一个实施方案中,根据长片段的数量,不同标签可以作为标记物(tag)分配到每个长片段,这可以产生许多(例如,数百万或数十亿)标记物。
在另一个实施方案中,每个等分试样中的核酸可以单独测序。以这种方式,在具体的测序操作中获得的所有序列读出可以与相同的标签相关。当读出作为组储存时,可以将此标签分配到读出。
C.预期数量
在多个实施方案中,孔的预期数量可以用于确定如何延伸重叠群。例如,如果使用20个细胞,那么应当有约40个对应于人类基因组中的基因组位置的片段(即其中所述位置在两条染色体之间相同)。当测序片段时,该信息可以在标签中传达,并用于组装过程。因此,可以预期联配到特定位置处的重叠群的读出的约40种不同的标签(例如,+/-10)。
对应于与重叠群联配的读段的预期数量的不同标签可与多个实施方案联合使用。例如,预期数量的标签可用于确定种子序列。作为另一个例子,预期数量的标签可用于确定用于延伸重叠群的下一个碱基。
除了预期的标签数量外,还可以使用预期的读出数量。序列读出的预期数量可以源自一般基因组覆盖。例如,如果覆盖为平均40x,那么基于统计学分布,对于健康的基因座可以预期约20x至60x的读出。基因组覆盖(例如,40x)与以基因组大小完成的测序量相关。对于人类基因组,40x乘以3*109=测序的1200亿个碱基。
基因组覆盖可以由要求的精确度和可容忍的成本控制(mandate)。如果要求的精确度为60x并且仅有10个细胞,那么那规定需要的最小的扩增量。因此,可以通过需要的测序深度和初始细胞的数量规定扩增的量。扩增后的覆盖数目比实际进行的量要高得多。例如,扩增后1000x,而实施所有足够测序以获得40x覆盖。
III.延伸
重叠群的组装过程可视为迭代(iterative)过程,每次迭代提供重叠群的延伸。组装过程可以以种子序列(下文更详细描述)开始以获得延伸的序列。作为延伸序列的重叠群可进一步迭代延伸多个循环(例如>1000,>10,000,或>100,000个循环)。多个种子序列可用作组装染色体或基因组的一部分。每个种子可并行延伸。
A.使用末端联配
如上文对于图1A和1B描述的,可以通过将序列读段与特定方向的种子的末端序列联配来以特定方向延伸该种子序列。例如,右末端序列可以是在种子序列右端的最后N个碱基。而且,左末端序列可以是在种子序列左端的最后N个碱基。同样适用于在组装过程的任意阶段(循环)延伸重叠群。
联配可以多种方式和多种标准完成。例如,可以需要序列读段对于与末端序列重叠的部分在序列上完美匹配。其他实施方案可允许在重叠部分中有一些错配。联配可使用k聚体索引完成以提供更大效率,如下文描述的。
B.K聚体索引
图4A显示示例的k聚体索引400,其中k聚体长度为12。第一列显示12聚体列表,其中通过所有A在顶部来分选该表。这种有组织的结构允许更快的访问和发现特定的k聚体。索引可以具有另外的元数据来鉴定包括12聚体的不同范围的不同区段。例如,元数据可以提供树结构,从而可以使用二进制树检索或更高位(例如八叉树)。对数据结构排序的一个例子是按字母(即A,C,G,T),但可以使用其他排序。
这些k聚体可通过分析检索12个碱基长的序列中的序列读段来鉴定。如果序列读段长于12碱基,那么可从读段获得多个12聚体。其他列包括鉴定序列读段,所述序列读段包括该行的k聚体。由于k聚体可出现在多个读段中,可以有足够的列来容纳包括特定k聚体的读段的总数。然而,包括特定k聚体的读段数目将变化。
如显示的,第二12聚体仅具有两种包括该12聚体的读段。符号“-”表示没有数据存储。为了降低存储,可以使用稀疏矩阵存储技术。可以使用读段数目来访问读段的整个序列,如果需要整个序列的话。后面描述的实施方案可包括用于k聚体索引中特定读段的存储地址。在一个方面,第二12聚体可以不是下个相继的12聚体(即AAAAAAAAAAAC),原因有多种,如k聚体不存在于序列读段中或者由于索引中数据组织的变化。
可以以多种方式使用索引来延伸重叠群。在一个实施方案中,末端序列可以取为与k聚体索引的k聚体长度相同。如此,末端序列长度为K个碱基,且索引由K个碱基的序列形成。对于给定的末端序列,可以搜索k聚体索引以发现匹配序列。一旦发现神奇序列(magicsequence),那么可以鉴定和检索到包括该匹配k聚体的读段。检索的读段的碱基可以用于延伸重叠群。例如,围绕匹配k聚体的碱基可以用于延伸。另外,在匹配k聚体之前的读段的碱基可用于确定该读段实际上是否是匹配。
图4B的图显示读段420,其包含与重叠群410的末端序列412匹配的k聚体。读段420显示为在k聚体之前有2个碱基且在k聚体之后有3个碱基。一旦从k聚体索引检索到读段420,就可以将重叠群内部的碱基与重叠群比较以确定整个读段的联配。在显示的例子中,两个内部碱基确实与重叠群联配,其提供了读段420正确联配的进一步证据。可以使用3个外部碱基来延伸重叠群。可以基于有多少其他读段与这些外部碱基一致来确定是否仅第一外部碱基用于延伸或是否使用第二和第三个。用于延伸的碱基的数目也可以设定为预确定的量且对于每个延伸循环相同。
在另一个实施方案中,重叠群的末端序列与索引中的k聚体具有不同长度。例如,末端序列可具有9个碱基的长度,索引中可具有长度为10的k聚体。可以搜索索引中的k聚体,其头9个碱基匹配末端序列。在该例子中,搜索者是可能匹配的4个10聚体中的任一个。其他实施方案可使用的索引为其k聚体比末端序列长超过一个碱基。例如,末端序列可以长度为K-N,其中N是对于每个延伸迭代的碱基数目。
图4C的图显示长度为9(K-1)的末端序列452和长度为10的两个k聚体460和470。在本例中,两个k聚体均具有与末端序列匹配的头9个碱基。两个k聚体在第10个位置中具有不同的碱基。与每个k聚体有关的读段数目可用于确定哪个碱基(或可能是两者)用来延伸。重叠群的左侧可以以相似的方式延伸。
如果所有四种可能的10聚体均在索引中发现(或即使有用于单倍体重叠群延伸的两种或更多种),那么对应于每种匹配k聚体的读段数目可用于确定如何延伸。在一个执行方式中,可以选择具有最多读段的k聚体来延伸重叠群。在另外的执行方式中,可以使用别的或不同的标准,如本文中描述的。例如,读段的计数可以是那些具有预期标签的,其中预期的标签可以基于与当前重叠群有关的代表组确定。下文提供了进一步的细节。
C.分支
延伸时对于下一个碱基可能有不同的选择(分支)。如下文解释的,可使用标签来选择下一个碱基的最好选项,也可以使用配偶对信息。除了确定哪个分支(例如接下来的N个碱基)是正确的以外,实施方案还能确定分支的哪些读段是正确的。
例如,如果末端序列可见于基因组的许多地方(例如重复序列),那么一些表面上匹配的读段实际上来自基因组的不同部分。具有相同序列的基因组的不同部分对应于不同的子分支。如果使用错误读段,那么可以产生问题(在讨论如下文提供的外部云时这将变得明显的)。因此,对于哪些配偶对正确且哪些是来自基因组其他部分的重复,可以存在问题。
1.Het(分支)
当延伸二倍体重叠群时(即有两个尚未鉴定的染色体),两个分支是可能的,每一个针对不同的单体型。因此,当延伸二倍体重叠群时,要确定两个分支是否可行。每个分支可对应于在特定位置处不同的碱基。这类基因座可称为杂合基因座,或简称为“het”。
图5A的图显示了两个k聚体520和530,其联配二倍体重叠群510的末端序列512。延伸的位置可对应于het。实施方案能确定不同匹配的k聚体是否由het所致,或由基因组中的相似序列或可能甚至测序错误所致。为了进行该确定,可以计数与每个k聚体有关的读段数目和/或可以计数有关读段的不同标签的数目。
例如,如果40个细胞在样品中,那么将会预期对于每个k聚体分支有约40种标签。可以使用用于标签数的某些可接受的范围,例如40+/-10。然而,如果作为标签数目的分支之一显著偏离40(例如5)而另一个分支为约80,那么可以选择仅一个分支。以此方式,可以选择最好的分支,且当数据不支持两个分支时不会选出两个分支。
作为另一个例子,一个分支可具有约40种不同标签,且第二个分支可以具有显著高于40种的不同标签。在这类情况下,第二个分支可以是正确的,但暗示了在基因组中重复的序列。还可以发生的是两个分支均有超过预期数目的不同标签。而且,可以有可能看来可行的多于两个分支。这类情况可以难以确定两个分支是否正确或是否仅一个分支正确。下文提供了用于选择分支的进一步的细节。
图5B显示了遇到het并选出两个分支后的两个单倍体重叠群530和535。从单个二倍体重叠群创建两个单倍体重叠群的过程称为解压缩。二倍体重叠群代表两种单体型共同的序列。当遇到两个单体型之间的差异(例如,如显示的het)时,所得两个单倍体重叠群可以独立地延伸。实施方案可鉴定用于不同单倍体重叠群的不同标签,如下文将描述的。
在一些实施方案中,可以确定具有每个分支的专有孔的数目,且可使用每个分支的专有孔的数目来确定基因座是否真正杂合或具有另一等位基因的读段是否由测序错误所致。专有孔是包括仅一个分支的证据的孔,例如仅一个等位基因。例如,假定有10个读段有A而有3个读段有G,则该数据对于基因座是否杂合不能确定。
在这类情况下,可以测定仅具有一个或多个有G的读段的孔数目和仅具有一个或多个有A的读段的孔数目。然后,可以使用专有孔的数目来确定基因座是否杂合。例如,如果具有G的专有孔的数目是9而具有A的专有孔的数目是1,那么该基因座可称为纯合的。在一个执行方式中,可以需要专有孔的数目大于专有孔的阈值数目(例如其中该阈值介于3到10之间)。除了专有孔的这类阈值数目之外或者替代专有孔的这类阈值数目,可以使用其他标准。例如,可以需要专有孔的比率(例如较高的数目除以较小的数目)小于指定数目,例如小于5。
2.重复(子分支)
如上文提到的,可以有比预期更多的对应于特定分支的读段。例如,对于其中样品具有40个细胞的单倍体重叠群,会预期用于正确分支的40种不同的标签。然而,它可以显著多于40种标签。例如,可以有120种不同标签,这表明有单倍体基因组的3个部分,其具有与当前重叠群相同的序列。基因组的每个相似部分对应于不同的子分支。可以知道一个分支是正确的(例如下一个碱基),但不知道哪些读段(子分支)实际对应于当前重叠群。
图5C的图显示与重叠群550的末端序列552联配的一个k聚体560。尽管仅有单个k聚体,但相关读段的数目显著高于预期。因此,可以假定有多个子分支,其各自来源于基因组的重复部分。可以有用于重复的许多分支,各自对应于基因组的不同部分,其中片段实际上来源于该部分。如下文描述的,实施方案可以鉴定对应于正确子分支的读段,即对应于与当前(ative)重叠群对应的片段的读段。
D.延伸中使用重叠读段
当使用与重叠群的末端重叠的读段来延伸重叠群时(其可以涉及使用k聚体),读段数目可以较少。例如,两个k聚体可以重叠,且仅一个或两个读段可以与每个重叠k聚体有关。如此,对于选择哪个分支没有很多证据,或者对于选择分支甚至没有足够信心,即使其是仅有的选项。这可以导致重叠群的延伸停止,而这是不期望的。
为了解决这一问题,可以进行一些实施方案以发现与初始重叠的读段重叠的其他k聚体/读段。如此,按照初始标准,与重叠群重叠可能不充分,但匹配初始重叠读段可以是充分的。以此方式,可以增加在用于延伸的下一个位置处的读段数目,由此提供期望的准确度(例如在用于延伸的位置处的最少读段数目)。
图5D的图显示依照本发明的实施方案利用读段与重叠读段的联配来获得用于延伸的更多读段。重叠群580正延伸。读段与末端序列581联配。重叠群580和末端序列581的长度用于例示,且该长度可以是更长或更短的。例如末端序列581可以是5-40个碱基。
在该例中,读段591和读段592充分地联配于末端序列581,例如通过联配9个碱基。然而,这是仅有的联配9个碱基的两个读段。如此,在仅具有两个读段时,没有足够的信息用于延伸。此外,在该例中,读段591和读段592在用于延伸的下一个位置中具有不同的碱基。如此,读段591可以是一个假设(分支)而读段593可以是另一个假设(分支)。
为了获得用于延伸的更多信息,实施方案可以将其他读段与读段591和592的假设序列联配。该联配可使用k聚体,然后可以检索用于联配k聚体的完全读段。在图5D中,显示读段593和594与初始重叠读段591和592联配。结果,有更多证据显示用于延伸593的下一个碱基是C而非A。
在一个实施方案中,可以实施将读段与初始重叠读段联配的过程直至获得用于下一个延伸位置的读段的阈值数目。初始重叠读段的数目可以变化,且阈值可以是预确定或动态的。阈值可以应用于每个分支,或仅用于给定延伸位置的总读段数目。
可以检查每个延伸位置来确保有充足的读段数目与该延伸位置重叠。如此,如果超过一个延伸位置具有充足数目的读段(例如对于给定分支为至少阈值数目的读段),那么重叠群可以延伸满足该标准的所有延伸位置。例如,如果足够的读段与在位置594处具有G的延伸位置594联配,那么重叠群580可以延伸两个碱基。如此,用于延伸的碱基数目可由覆盖的显著性限制,这在当获得用于下一个延伸位置(在图5D中是593)的阈值覆盖时可以停止。
IV.种子序列
组装过程以种子序列开始。理想地,种子序列是基因组中的独特序列。如果种子序列是独特的,那么可以确保实施方案将读段图谱定位到正确的地方(假定读段中没有错误,且感兴趣的基因组匹配该序列的基因组参照)。如果种子序列不独特,那么具体的组装将同时对于基因组的多个部分建立重叠群,并且错误可以源自使用不正确的读段来延伸重叠群。
可以以多种方式选择种子。例如,种子可以从参照基因组选择。作为另一个例子,可以基于读段,例如具有在基因组中出现一次的k聚体的基因组读段来选择种子。种子可以是在使用的索引中的k聚体的大小。使用独特k聚体,可以通过简单鉴定所有具有该k聚体的读段来将读段联配到正确的地方。
可以选择种子的长度以提供对于独特性的更高程度的确定性。示例长度包括16-29个碱基。有时独特的有20个碱基的序列,尽管有一些非独特的20碱基序列。对于添加到种子序列的每个碱基,结果是高4倍的独特性可能性。然而,种子的长度和k聚体索引与读段错误平衡。对于每个另外的碱基,任一个碱基中错误的总概率增加。可以确定哪种读段错误率是可容忍的,如此确定可接受的最长k聚体。
A.使用参照序列
在一些实施方案中,使用参照序列(其可以是全部或部分的参照基因组)来鉴定独特序列可能有用。从读段确定的索引中的k聚体可以经常不是独特的。使用参照的一种方式是去发现哪些k聚体被推定为在参照中是独特的。例如,可以从索引取k聚体并将其与参照比较以确定该k聚体是否出现在超过一个位置处。尽管这类实施方案使用参照来测定种子,但参照仍仅在最小意义上使用。
B.使用预期的标签
代替使用参照或者除了使用参照以外,可以使用用于k聚体的预期数目的标签。对应于k聚体的预期数目的标签可以用作确定其是否在基因组中独特的代理(proxy)。可以测定或估测标签的预期数目,如本文描述的。例如,可利用样品中的细胞数来测定标签的预期数目。
如果有20个细胞,那么因此可以预期40种标签。如此,如果用于k聚体的标签数目约为40,加/减10(或其他适宜范围),那么可以说它是有效种子。如果有200种标签(即200种具有不同标签的读段,其中该读段包括k聚体),那么k聚体可鉴定为不是有效种子。由于片段的创建和读段的选择是随机过程,当预期40种标签时,实施方案可考虑10-80的范围是适宜的。
在一个实施方案中,可以如下选择种子序列。可以指定有效标签的数目(即在已去除克隆后标签的数目)在特定范围内,例如(1+/-epsilon)*2*细胞或细胞等同物的数目,其中epsilon定义可接受的容忍性。该算法可以定义一系列初始的k聚体种子。每个种子然后可并行运行。
参照序列的使用和标签的预期数目的使用可组合使用。例如,可以鉴定具有在可接受范围内的标签数目的k聚体。这些鉴定的k聚体可与参照比较来确定k聚体在参照内是否是独特的。
C.多态种子(两个单倍体种子)
组装过程可从独特但在两个染色体之间非独特的种子开始。此类过程将从二倍体种子开始。其他实施方案可使用对于特定单体型独特的种子,这类种子对应于单倍体种子。使用单倍体种子,组装过程以单倍体重叠群开始,代替必须在组装过程期间从二倍体重叠群分离出两个单倍体重叠群。
例如,两个单倍体种子可对应于基因组中的多态性。在一个执行方式中,可从数据库,如dbSNP鉴定多态性。某个数据库可能对于特定群体是特异性的(例如选择对于特定群体经常发生的多态性)。一旦鉴定出基因组中特定位置处的多态性,就可以搜索序列读段(例如经由索引)来验证多态性存在于基因组中的该位置的读段中。例如,如果两个等位基因的每种在至少阈值数目的非专有或专有孔中发现(例如2-5的任意值)。
一旦已经将基因座确认为在样品中是多态性的,就可从该基因座创建两个单倍体种子。对应于多态性的一个等位基因的读段将会用于创建一个单倍体种子而对应于多态性的另一个等位基因的读段将会用于创建另一个单倍体种子。
在一个执行方式中,对应于多态性基因座的特定等位基因的孔可用于创建种子。这些孔可鉴定为对应于特定单体型,例如当孔仅出现在与多态性基因座的一个等位基因有关的孔中时。如此,即使读段不与多态性基因座联配(例如如通过图谱定位于参照测定的),实施方案可使用孔ID(或其他标签)来获知另一读段与图谱定位于多态性基因座的读段来自同一长片段,即使另一读段不图谱定位于该多态性基因座。例如,可鉴定在特定基因座具有A的孔,且这些孔可用于创建在基因座附近的单倍体种子(即用于在特定基因座处具有A的单体型)。
在一些实施方案中,可以使用超过一种多态性基因座(例如2-10)。例如,可能已知彼此接近的两个多态性基因座的两个等位基因(例如SNP)通常出现在同一单体型上。如此,对应于这两种等位基因的读段(例如配偶对的两个臂)可用于确定单倍体种子,其然后将覆盖这两种多态性基因座。以此方式,单倍体种子可以大于仅使用一种多态性基因座的情况。
如果两个多态性基因座彼此相对接近(例如在几万个碱基以内),那么与两个基因座联配的片段可以来自相同的长片段,如此来自相同的一组孔。在每个多态性基因座处开始单倍体种子,并将分别的初始单倍体种子连接成更大的单倍体种子可能是可以的。如此,取决于多态性基因座有多接近,可以创建对应于同一单体型的两个单倍体种子,然后通过延伸该单倍体种子之一或两者来连接。这类操作可以与使用辅助重叠群以相似的方式进行,如本文中描述的。
使用多个多态性位点允许更准确地测定在给定的基因组位置处对应于每个亲本(单体型)的标签列表,而不用连接多态性位点之间的种子序列(例如与5-10个这类相邻位点中的两个多态性位点的至少两个等位基因有关的标签)。这将降低对于在给定的基因组位置处定义每种单体型(亲本)的标签中的假阳性和假阴性结果。拥有这类标签列表允许从在包含多态性位点之一的给定基因组位置中从任何独特序列(独特k聚体)开始建立单倍体种子,该建立使用来自定义的对应标签的读段。一旦种子足够长(例如平均配偶对长度的50-70%),除了标签信息外还可使用配偶对信息来将种子延伸成更长的序列重叠群,其将长于读段和短于大多数配偶对的重复桥连。
如果在两个种子之间有重复区,那么可能更难连接种子。可以使用配偶对信息来帮助跨越重复区,例如使用局部k聚体索引,如本文描述的。例如,如果一个种子不够大来开始使用配偶对信息,那么可以使用在另一个多态性基因座处的另一个种子(例如一个种子附近的基因座)。在一个执行方式中,配偶对的一个读段可延伸使用配偶对的另一个读段创建的初始种子。配偶对的一个读段可对应于重复区。如果两个单倍体种子对应于已知通常存在于同一单体型上的等位基因,那么可连接这两个单倍体种子。
使用单倍体种子的一个优点是仅有一个分支用于延伸,而对于二倍体种子可以存在两个分支。当然,在那两个分支用于创建单倍体重叠群后,则对于每个单倍体重叠群将仅存在一个分支。但是,以单倍体重叠群开始避免对当两个分支确实存在时做出决定。而且,当从数据库鉴定出多态性基因座且在读段中有多态性的证据时,则有更高的鉴定出两个分支从而产生两个单倍体种子的可能性。
图17是依照本发明的实施方案创建用于组装生物体第一染色体区的序列的单倍体种子的方法的流程图。
在块1710,计算机系统从生物体的多个核酸分子的测序接收序列数据。多个核酸分子中每一个的测序数据包括核酸分子的至少一个部分的一个或多个序列读段。块1710可如本文中描述的实施。
在块1720,访问数据库来检索在群体中鉴定的一个或多个多态性基因座。例如,dbSNP可用于鉴定这类多态性基因座。
在块1730,将序列读段的一部分图谱定位到参照序列的一个或多个多态性基因座。这可以通过检查来自给定样品的读段中参照序列区段(包含多态性基因座)的存在来完成。或者,可在参照序列中在多态性基因座处发现序列读段的存在。由于鉴定出多态性基因座,图谱定位可以针对参照序列的特定部分。以此方式,可以测试生物体基因组的特定部分,其中已知那些特定的部分可能是杂合的。如此,该过程可以比仅分析读段来鉴定het更有效。
在一个例子中,使用参照序列,对于每个已知的多态性位点对每个等位基因定义k聚体。对于给定样品的读段使用这类k聚体和k聚体索引,在给定样品中检查这些多态性位点的存在。其他参照定义的k聚体(特别是在参照中仅存在一次的)可用于为增长的重叠群或辅助重叠群定义更多的种子,尤其是用于较难的重复。
在块1740,测定一个或多个多态性基因座的第一基因座是杂合的。与第一基因座图谱定位的读段指示第一染色体区中在第一基因座处第一等位基因和第二等位基因的存在。例如,某些数目的读段可具有第一等位基因而某些数目的读段可具有第二等位基因。使用标签(例如专有标签)的其他技术可用于确定第一基因座是杂合的。例如,如果来自已知多态性位点的两个等位基因在给定样品中具有来自足够不同的标签的足够读段,那么考虑的位点可鉴定为在该样品中是多态性的。
在块1750,使用图谱定位于第一基因座且具有第一等位基因的第一组读段创建第一单倍体种子。例如,第一等位基因可以是A,且第一组读段在第一基因座的位置处可具有A。第一单倍体种子的创建还可包括如后面块中描述的延伸。
在块1760,使用图谱定位于第一基因座且具有第二等位基因的第二组读段创建第二单倍体种子。例如,第二等位基因可以是G,且第二组读段在第一基因座的位置处可具有G。第二单倍体种子的创建还可包括如后面块中描述的延伸。
在块1770,使用与第一单倍体种子的末端重叠的读段来延伸第一单倍体种子。可以使用本文描述的技术来进行延伸,例如使用对应于用于创建第一单倍体种子的读段的代表性标签组。仅选择一个分支用于第一单倍体种子的每次延伸。如此,延伸可以更高效和/或准确,因为不需要分支检测。
在块1780,使用与第二单倍体种子的末端重叠的读段来延伸第二单倍体种子。可以使用本文描述的技术来进行延伸。仅选择一个分支用于第二单倍体种子的每次延伸。
V.使用标签用于延伸
如上文描述的,标签可用于确定如何延伸重叠群。标签提供关于有多少样品片段包括特定序列的信息。例如,20个细胞对于人的特定染色体区应提供40个长片段。如果已知片段的预期数目,那么可以利用具有与重叠群联配的读段的标签数目与预期数目之间的比较。再例如,可以使用具有与先前联配于重叠群的读段相同的标签的读段。
A.标签的预期数目
如上文提到的,在确定是否使用分支时,可以使用对应于该特定分支的读段的数目。例如,如果k聚体的头k-1个碱基与末端序列的最后k-1个碱基联配,那么包括该k聚体的读段数目可用于确定是否使用该k聚体和延伸该重叠群。在将周围碱基(即碱基在读段中k聚体的下一个处)用于确定如何延伸时也遵循同样的分析。
可以分析对应于特定分支的读段来确定不同标签的数目。可能的是两个读段可具有相同的标签;这可能发生在当两个读段是彼此的克隆或当扩增产生具有相同标签的两个覆盖基因组相同部分的读段时。标签的数目可用作对应于分支的片段数目的指导。如果标签的数目相对于预期的量非常低(例如在预期的数目是40的情况下为5),那么可以弃去该分支,其可能是源自测序错误或非显著水平的体细胞突变。如果标签的数目在预期数目的指定的容忍性以内,那么该分支可鉴定为是可行的。根据可行分支的数目,可能需要分析。如果标签的数目相对于预期的量较高(例如在预期的数目是40的情况下为200),那么该分支可鉴定为具有需要解析的子分支。所得子分支在下文更详细描述。
因此,可以通过以下延伸重叠群:测定对应于用于延伸第一重叠群的正确分支的序列读段的标签数目的预期范围;和为了延伸第一重叠群,选择对应于具有在正确分支的预期范围内的标签数目的第一分支的第一组的序列读段。
B.用于重叠群的代表性标签组
重叠群可具有代表性的标签组,例如代表性的孔组,来自该孔组的读段优先用于延伸重叠群。代表性的标签组可以以多种方式使用各种标准创建。该代表性组可用于解析分支和子分支,其通过鉴定可能是重叠群的部分的读段进行。具有相同标签的读段可能来自同一重叠群,如此可以使用具有与如已用于创建重叠群的相同标签的读段。
图6A显示对于种子序列如何可创建代表性标签组的示例。如显示的,种子序列对应于索引中的k聚体,其中k聚体对应于基因组的独特部分。如上文描述的,可以基于多种因素鉴定k聚体,包括包含独特k聚体的读段数目。可从索引鉴定包括独特k聚体的读段,且可以鉴定这些读段的标签(例如通过存储与相应读段有关的标签的索引)。
图6A显示包括作为种子的k聚体的4种读段。读段数目将通常更高,但显示用于例示性目的。每个读段绘制为对应标签在其之上。这些标签可包含开始种子延伸的代表性组。具有相同标签的读段可能对应于临近种子的部分基因组。例如,在孔45中的读段比来自不在代表性组中的孔的读段更可能来自包含读段610的相同长片段。注意,在标签对应于接收长片段的孔的实施方案中,可从通过片段化长片段获得的小片段确定读段。如此,来自片段化一个长片段的其他小片段将具有相同标签,且这些小片段应是用于延伸种子以获得与长片段相同序列的片段。
虽然重叠群的创建将重创建单个孔的长片段,实施方案使用来自多个孔的读段来形成代表性组,由此提供准确的重叠群。如此,可以使用从多个长片段获得的信息组装重叠群以确定正确的序列。
图6B显示了如何可以更新并维持标签的代表性组用于重叠群的示例。假定重叠群650从种子605创建,显示作为多个延伸步骤结果的重叠群。在使用读段来延伸重叠群的位置显示读段。如此,可以基于用于延伸重叠群的读段的标签来确定代表性组。尽管每个延伸步骤可以使用来自多个孔的读段,但以单个标签显示读段用于例示性目的。
如显示的,来自图6A的标签也出现在用于延伸重叠群的读段中。当将具有标签的读段用于延伸重叠群时,可将标签添加到代表性组。例如,一旦读段与末端序列重叠,就知晓与重叠读段关联的对应标签。这些对应标签可添加到代表性组中。在一个执行方式中,可从k聚体索引的匹配鉴定重叠读段。
标签的代表性组还可以称为邻近标签(或邻近孔)。使用邻近可传达孔在长片段的范围内(例如小于长片段的长度)。来自这些邻近孔的读段最有可能是简并于当前重叠群的读段。
C.使用代表性组延伸
可以以多种方式使用代表性组来延伸重叠群。一个实施方案可仅使用具有来自代表性组的标签的读段来确定用于延伸步骤的一个或多个碱基。另一个实施方案可以使用具有不在代表性组中的标签的读段,但使用代表性组来确定取哪个分支。
1.仅使用来自代表性组的标签
在一个实施方案中,可以仅使用在代表性组内的读段来确定要向重叠群添加哪个/些碱基用于延伸步骤。以此方式,减少了用于延伸重叠群的可能读段的范围,从而使得延伸过程更高效。还有,由于分析用于延伸步骤的读段的量减少,可以减少使用不正确读段的可能性。
代表性组的创建允许鉴定与当前重叠群一致的读段,其通过聚焦于具有来自代表性组的标签的读段。使用一致性读段可以减少使用来自基因组其他部分的、具有与重叠群类似的序列的读段的几率。
在某些点时可以更新代表性组,这可以在每个步骤进行或在指定数目的延伸步骤之后进行。如此,仅使用具有在代表性组内的标签的读段来确定使用哪个碱基来延伸重叠群,但可以鉴定与延伸一致的其他读段并将其标签添加到代表性组中。这可以允许当重叠群到达新的长片段的情况(例如重叠群变得太长时),其会具有有新标签的读段。
2.代表性组的%
在一些实施方案中,在确定要向重叠群添加哪个/些碱基用于延伸步骤时可以考虑所有读段。不过仍可以使用代表性组。可以基于哪个分支具有与代表性组具有最相似的标签的读段来选择用于延伸的分支。
每个分支可具有其自身的标签组,其与和该分支一致的读段关联。例如,如果分支对应于向重叠群添加A,那么可以鉴定于添加A一致的读段。还可以确定这些鉴定的读段的标签。这些标签对应于分支标签组。
为了确定分支是否是可行选项,可以将分支组的标签与重叠群的代表性组的标签比较。可以确定每个组中相同的标签的数目。共享的标签的数目越大,就可以视为分支与当前重叠群更一致。分支的预期读段的数目还可以与共享标签的数目组合使用。例如,标准可以是读段的数目应当是R1至R2,而孔的数目应当是W1至W2。
为了选择分支,可以使用多种标准,如果共享的标签数目范围。可能需要共享标签的数目大于绝对阈值和/或与分支有关的读段的特定百分数。绝对阈值可取决于样品的大小(例如细胞数),如此取决于分支的标签的预期数目。对于百分数,与分支的总标签比较的共享标签的最小百分数可取决于重叠群是二倍体还是单倍体。
除了使用需要的阈值以外,当确定选择的具体分支时,可以使用相同值(例如共享标签的绝对数目,共享标签的百分数)作为标准。例如,可以总是选择具有最高数目的共享标签的分支。再例如,可以总是选择具有最高百分数的共享标签的分支(例如第一分支的90%的读段具有共享的标签而另一分支仅有30%的读段具有共享标签)。
进一步地,如果两个分支具有用于共享标签的类似值,那么可以使算法继续用其他标准来选择分支,例如使用参照或已知发生的遗传变体的表。例如,可以选择对应于参照的分支。遗传变体的表可包括每种遗传变体(例如SNV)的发生频率。频率可以分解成生物体不同群体的频率(例如基于人的人种、种族、或出身国的不同群体)。对于遗传变体,如果一个分支对应于已知的遗传变体(可能需要其来自与测试的当前生物体相同的群体),那么可以选择该分支,例如在其他技术不完全解决选择哪个分支的情况下。
D.更新代表性组
不时地,可以更新代表性组以加入标签或除去标签。例如,假定重叠群具有标签的第一代表性组。当添加读段以延伸重叠群时,重叠群可延伸至每个新的长片段,其可具有不同的标签(例如在不同孔中)。如此,当这类读段用于延伸重叠群时,可以添加新的标签(注意这类读段包括与延伸简单一致的读段,这与严格使用这些读段来确定选择哪个分支相反,例如如在上文对于仅使用具有代表性组的标签的读段来选择分支所描述的)。
如果重叠群变得非常长,那么重叠群的末端可以延伸过来自特定孔的长片段。在该情况中,可以除去该孔的标签。可以使用多种标准来确定何时从代表性组除去标签。例如,当所有过去一周使用特定标签或与延伸步骤一致时,可以使用距离标准。例如,如果具有对应于孔56的标签的读段最后在100个碱基(或步骤)之前使用,那么可从代表性组除去标签56。
除去用于代表性组的标签是一种引退(retirement)类型,且使用的标准可称为引退日程表。下文论述了其他引退类型(例如关于配偶对)。在一些实施方案中,可以不采用引退,例如当重叠群的长度不足够长时。在一个执行方式中,引退可以仅在重叠群大于阈值长度时开始。
代表性组可以在每个步骤或在每N个延伸步骤时更新。另外,标签的除去可以以不同的间期进行。例如,可以实施多个延伸步骤来选择用于每个步骤的分支,而用于延伸或与延伸一致的读段和相应标签可在最后N个步骤中保存。在该步骤后,可以使用保存的读段和标签更新代表性组。
对于除去,代表性组中的每个标签可具有相应计数器(counter),其确定牵涉具有标签的读段的最后一步。当将具有标签的新读段用于延伸步骤时,可以设置或重设置计数器,视情况而定。如果计数器超过阈值,那么可从组中除去该标签。例如,代表性组可由仅针对已用于最后M个碱基(例如最后1000个碱基)的那些读段的标签构成。如果种子是100kb,那么没有引退会导致有太多标签,如此标签的代表性组将不再代表重叠群末端。由于重叠群可以任一方向延伸,两个方向可具有不同的标签组。
E.使用标签的方法
图7显示依照本发明的实施方案使用标签组装生物体第一染色体区的序列的方法700。对于方法700和本文描述的其他方法,通过体外扩增生成的分子可作为生物体的分子处理。方法700可完全或部分由计算机系统实施,本文中描述的其他方法也可以实施。
在块710,从生物体的多个核酸分子的测序接收序列数据。核酸分子可对应于如本文中描述的小片段。核酸分子的测序可使用任何适宜的测序技术进行。多个核酸分子中每个的测序数据可包括核酸分子的至少一个部分的一个或多个序列读段。例如,序列数据可包括配偶对的配对读段,或仅是单个序列读段。
序列数据还可以包括对应于一个或多个序列读段的标签。单个标签可对应于给定分子的所有序列读段。由于对于每个序列读段可以存储标签,或对于给定核酸分子的所有读段而言曲解(distort)一次。如上文描述的,标签指示核酸分子的来源,例如来源是分子起源的孔或特定长片段。
在块720,接收第一染色体区的第一重叠群。第一重叠群可以是种子序列或从延伸步骤产生的任何延伸序列。例如,第一重叠群可通过实施组装过程的计算机系统从外部源接收,从存储器找回,或内部确定。
在块730,使用与第一重叠群的末端序列重叠的一组序列读段延伸第一重叠群。在一个实施方案中,可以使用k聚体索引确定序列读段的组。所述序列读段的组可包括具有指示不同起源的多种不同标签的序列读段。例如,可使用来自多个不同孔的序列读段来确定如何延伸第一重叠群。通过来自多个孔的读出如何得到这类信息的例子在本申请中别处描述。
VI.解压缩/单体型
二倍体重叠群(DC或DipCon)是两个单体型的相位未知的重叠群。例如,种子序列可对应于它们在二倍体基因组的两条染色体之间共享的基因组的部分。由于种子序列在两种单体型中均出现,种子序列可视为代表两种单体型。可以将重叠群作为代表两种单体型的二倍体重叠群来延伸,直到遇到在这两个单体型之间的序列变异。
在某个点,可鉴定两个分支是有效的,其中每个分支对应于单体型之一。例如,可以鉴定het,例如其中等同地代表两种分支(例如两种具有类似的读段数目,孔的数目,相同的标签作为代表性组)。在遇到两个分支分开之后,产生两个不同的序列。对应于不同单体型的这两个不同的序列可称为单倍体重叠群。
将二倍体重叠群分成两个单倍体重叠群的过程称为解压缩。在一个实施方案中,解压缩可发生在遇到的第一变异处,且第一单倍体重叠群的组装过程可相对于第二单倍体重叠群的组装过程独立进行。第一单倍体重叠群的组装过程压缩(contractor)第一单倍体重叠群的代表性标签组,第二单倍体重叠群可具有其自身的代表性标签组用于延伸。
在另一个实施方案中,解压缩可在重叠群的延伸停止后发生(例如当未鉴定到准确延伸时)。如此,组装过程可采用全重叠群作为二倍体继续,其中追踪多态性位点的位置。一旦建立完全的重叠群(例如不再可能延伸),且可继续解压缩过程来确定每种单体型的特定序列,其使用多态性位点的存储的位置和分配(即,哪种等位基因对应于哪种单体型)。当遇到可能的多态性位点时,可使用每种单体型的代表性组来确定每种单体型的有效分支。
例如,当开始种子时,在基因组中的位置是未知的。仅通过随机几率(例如如果种子较短–20个碱基),则种子通常将不包括多态性,尽管可以选择种子以包括多态性,例如使用来自dbSNP的候选物。当重叠群扩大时,重叠群将命中变异(例如SNP或indel)–SNP在1,000个碱基中有约1个且indel在10,000个碱基中有约1个)。在一定数目(例如仅1或指定的数目)的多态性后,解压缩可以鉴定特异于一种单体型的标签,其在正确和高效延伸单倍体重叠群中可以是有用的。例如,在解压缩后,代表性组的标签数目可以减半。
A.解压缩的方法
图8显示依照本发明的实施方案用于确定和延伸单倍体重叠群的方法。
在块810,鉴定第一het,其中对应于标签代表性组的重叠序列读段具有两个等位基因。重叠序列读段对于两个分支可以具有相似的数目,由此提示het。本文中描述了用于鉴定het的其他技术。
在块820,分开第一重叠群以形成第一重叠群的第一单体型序列和第二单体型序列。第一单体型序列对应于第一单倍体重叠群,而第二单体型序列对应于第二单倍体重叠群。分开可以发生在以下点,将一个等位基因分配到第一单倍体重叠群而将另一个等位基因分配到第二单倍体重叠群。
在块830,鉴定标签代表性组的第一子集。该第一子集对应于在第一het处具有第一等位基因的序列读段。该第一子集对应于代表第一单倍体重叠群的标签。
在块840,鉴定标签代表性组的第二子集。该第二子集对应于在第一het处具有第二等位基因的序列读段。该第二子集对应于代表第二单倍体重叠群的标签。
在块850,使用具有标签第一子集的序列读段来延伸第一单体型序列。在一个实施方案中,延伸可以发生在将第一重叠群分开到两个单倍体重叠群之后的下一个碱基处。在另一个实施方案中,延伸可以在第二het处,其可以在第一het后许多个碱基处发生。第一子集的标签可以以类似的方式用于延伸,如本申请中别处描述的。
在块860,使用具有标签第二子集的序列读段来延伸第二单体型序列。该延伸可以以与第一单体型序列(单倍体重叠群)的延伸相似的方式发生。在单倍体重叠群的背景中,不会发生进一步的解压缩。
B.使用Indel相对于SNP的解压缩
插入或缺失(indel)是另一种多态性且可存在于两种单体型之间。indel可以是任意数目的核苷酸,如与SNP的单核苷酸形成对比。由于indel可以更大,与SNP形成对比,可以更容易地鉴定indel,因为相对于一种单体型,有更多办法来确定两种单体型。在这种趋异性更大的情况下,使用不同的代表性标签组来独立延伸每个单倍体重叠群可以是有利的,因为两种单体型显著不同。以一致方法来处理indel的能力可以提供更高准确性(与使用特定算法来处理indel的基于图谱定位的技术形成对比)。
一旦在一种单体型上发现indel,则单倍体重叠群的延伸可以独立进行。在另一个实施方案中,可以鉴定两种单倍体重叠群再次开始共享碱基的点。例如,在缺失后且当下一个碱基在两个单倍体重叠群中相同时,可使用接合点延伸过程,其使用所有序列读段来延伸两个单倍体重叠群。
C.延伸单倍体重叠群
在一个实施方案中,可以独立地延伸两个单倍体重叠群。例如,当遇到het时,可以设置标记(flag)来指示方法重叠群是单倍体重叠群。该标记可用于确定仅一个分支对于延伸该单倍体重叠群可以是有效的。可以发生的是可以延伸一个单倍体重叠群,而另一个单倍体重叠群命中了某区域,到该区域的延伸是不清楚的(例如一个单倍体重叠群可以具有重复区)。
即使第二单倍体重叠群的延伸在一个位置停止,该单倍体重叠群的延伸也可以重新开始。例如,如果持续第一单倍体重叠群的延伸,那么该延伸可遇到两个分支,其中所述分支显示相等数目的读段和/或标签。这类出现可指示以下存在,分支之一对应于第二单倍体重叠群。在该点,第二单倍体重叠群的延伸可再继续。对于其中第二单倍体重叠群的延伸中止的基因组部分,可以存储第二单倍体重叠群的该部分是未知的指示。
D.解压缩的重叠群
基因组可能具有大量区域,其中两种单体型是等同的,即未发现杂合子。如果这类区域足够大(例如约100千碱基),那么失去了定相信息。例如,两种单倍体重叠群的代表性标签组可以聚合成组合的标签组。在这类情况中,可能难以鉴定何时杂合子确实发生。在一个实施方案中,可以使用专有性标签的数目,例如如上文关于分支描述的。
在一个例子中,其中某区域中鉴定出一个单独的杂合基因座(het),该区域除此之外在两种单体型之间等同的,当其他杂合基因座(het)太远时定相信息不可用。例如,下一个最接近的het可能与这一单独的het不共享任何相同的标签。在此情况中,仍可以鉴定在该单独het处的基因型,例如使用专有标签的数目。
VII.配偶对和云
除了标签外或在标签以外,可将配偶对用于组装过程。配偶对是片段的不同部分的两个读段,从而使得这两个读段至多部分重叠(一个读段的开始和结束分别在另一读段的开始和结束之后发生),且通常在一个读段的末端和另一读段的开始之间具有分隔距离(配偶缺口)。示例配偶缺口是100-1,000个碱基(例如平均为约600个碱基)或500-5,000个碱基(例如平均为约1,200个碱基)。配偶对的例子包括在片段任一端的两个读段,一个读段具有1个,而另一读段在片段的中间部分,以及两个读段均在片段的中间部分。
一般云(general cloud)/索引(也称为读段k聚体索引(RKI))对应于具有可与重叠群的末端序列联配的读段的任意配偶对。在下文描述的多个实施方案中,可以搜索一般云来发现与重叠群末端联配的序列读段。在其他实施方案中,可以使用外部云(索引)和/或内部云(索引)来寻找与重叠群的末端联配的读段,或可用于确认哪个分支或子分支是正确的。当重叠群的末端序列到达基因组的重复区时,使用内部云和外部云可以是特别有用的。RKI中k聚体的长度可以不同于内部和外部索引中k聚体的长度,即对于不同的索引有不同的k值。
A.配偶对
图9A显示配偶对910的图表。两条实线指示配偶对的两个读段。点线代表两个读段之间的配偶缺口。核酸分子具有特定的取向,从而当对片段测序时,可以确定两个读段中哪一个是第一个(鉴于特定的取向)而两个读段中哪一个是第二个。如此,对于配偶对的集合,可以鉴定第一组的第一臂读段和第二组的第二臂读段。单个片段可具有超过两个读段,如此对于给定的片段可以有超过一个配偶对。
当已知配偶对的两个读段来自同一片段时,一个读段的联配指示另一个读段在重叠群末端邻近处。例如,如果第一读段(如所绘的左读段)联配于右末端序列(即用于向右延伸重叠群),则第二读段应在末端序列的特定数目的碱基以内(如由配偶缺口限定的)。在一个稍微不同的例子中,如果第二读段(如所绘的右读段)联配于右端序列,那么若重叠群长于配偶缺口,则第一读段可以联配于重叠群(例如第一读段已用在前一个延伸步骤中)。
图9B显示配偶对的第一读段930(左读段)的例子,该配偶对联配于重叠群920的末端922。第二读段935显示为重叠群920右边进一步的不确定位置。当重叠群920向右延伸时,可以完成该步骤。尽管第二读段935的确切位置未知,但其在重叠群920的末端922的某个邻近处以内的存在可用于解析分支和子分支,如下文描述的。具体地,该情况中的第二读段935可添加至外部云940以提供关于可能在将来延伸步骤(例如接下来的M个延伸步骤中的任意步骤,其中M与配偶对成比例)中遇到的重叠群的未来部分的一些信息。
图9C显示配偶对的第二读段965(右读段)的例子,该配偶对联配于重叠群950的末端952。第一读段960在重叠群950内部的位置处显示,其在该情况中是在重叠群的右末端的左边。在该例子中,第一读段950与重叠群950的联配增加了第二读段965确实对应于重叠群950的末端序列952的可能性。第一读段960可添加至内部云940。在内部云的多个实施方案中,可以将第一读段对重叠群的内部部分具体地进行联配,或内部k聚体索引可用作联配完整第一读段的代理。
在多个实施方案中,当在标签分析后有两个或更多个分支可行时,配偶对可以是有用的。当仅有一个可行分支时,配偶对还可以用于确认以确保无错误。当遇到重复区时,配偶对也可以是有用的。例如,如果重叠群具有1,000个碱基或更长的长度,且将20聚体索引用于将重叠群延伸到重复区中,那么对应于匹配的20聚体的读段的数目可能是非常大的(例如当预期的数目仅为40-80时达到数千)。配偶对可以帮助解析它们对应于来自基因组其他部分的读段的这些子分支,其恰好与基因组的重复性质相似。
B.内部云
如上文论述的,实施方案在确定配偶对的相应第二读段是否与重叠群的末端联配的过程中可利用第一读段对重叠群内部部分的联配。内部云可仅指重叠群的测定的序列,其不是重叠群末端的一部分,但是是在内部的。实施方案还可创建内部云作为与重叠群的内部部分联配的k聚体(例如已用于延伸该重叠群)的内部索引。
1.创建
在一个实施方案中,内部云可通过重叠群特定部分的序列创建或鉴定。例如,内部云可以是重叠群的序列,其离重叠群的末端有指定距离。在一个执行方式中,指定的距离可能取决于配偶对的两个读段之间的预期的、平均、或最小的配偶缺口距离。例如,如果最小配偶是100个碱基,那么内部云可以是重叠群的序列且排除每个末端上的100个碱基。
在其他实施方案中,内部云可创建为已与重叠群联配的序列读段的集合。在一个实施方案中,可以鉴定这些联配的序列读段的k聚体并添加至内部k聚体索引。可以搜索内部k聚体索引以发现给定第一读段的任意k聚体(或下文提供详情)。
在一些实施方案中,可以创建左内部云和右内部云。例如,如果重叠群非常大(即比配偶缺口大得多),那么可以创建并维持分开的左内部云和右内部云。左内部云可对应于离重叠群左末端至少有指定距离(例如最小配偶缺口),但离重叠群左末端小于指定距离(例如最大配偶缺口)的重叠群的部分。可以类似地限定右内部云。
图10A显示示例重叠群1000,其具有依照本发明的实施方案鉴定的左内部云1010和右内部云1020。所绘的内部云可由指定范围内的实际序列代表。在另一个实施方案中,该指定范围对应于哪些k聚体存储在索引中。如果使用k聚体且延伸步骤落在该范围外,那么可以移除该k聚体(也称为引退)。内部云还可以包括重叠群的末端。
2.使用内部云来选择第二臂读段用于延伸
内部云可用于鉴定要在延伸重叠群中使用的第二读段,因为第一读段与内部云一致。例如,当第二读段与末端序列联配时,可将相应的第一读段与内部云比较。如果第一读段与内部云联配(例如第一读段中的k聚体在内部k聚体索引中发现),那么可鉴定第二读段是可行的分支。
在一个实施方案中,一般云的第二臂读段可与末端序列比较以鉴定与末端序列联配的一组序列读段,但第一组可包含两个分支。也就是说,该组的第一子集可对应于将以A延伸重叠群的序列读段,而该组的第二子集可对应于将以G延伸重叠群的序列读段。
图11A显示重叠群1100的图表,其中分支1的第二读段与重叠群1100的末端1105联配。如所绘出的,配偶对的相应第一读段与内部云联配。第二读段具有将以A延伸重叠群的序列。显示了与重叠群末端联配的多个第二读段,其由以A延伸重叠群的分支1支持。如果分支1的所有或大部分的读段与内部云联配,那么这较好地支持了分支1是可行的分支。如上文所述的,对内部云的联配可以使用k聚体。
图11B是重叠群1150的图表,其中分支的第二读段与重叠群1150的末端11555联配。如所绘出的,配偶对的相应第一读段通常不与内部云联配。如显示的,三个第一读段中有两个不与内部云联配。当与分支1的联配质量比较时,这指示分支1更可能是正确的分支。这类确定可与对每个分支的读段的标签数目以及每个分支的总读段数目的分析联合来进行。同样的分析可用于在子分支之间进行选择。
因此,可将第一分支的相应第一臂读段与内部云比较以确定这些第一读段与内部云如何一致(比较可简单地针对重叠群的序列,因为内部云可能仅是初始序列)。第二分支的相应第一读段也可以与内部云比较。可确定每个比较的得分且可选择与内部云最一致的分支来延伸重叠群。
当对内部云的联配使用k聚体索引时,相应的第一读段可各自分解成多个k聚体。然后,这些k聚体可用于搜索内部k聚体索引。一旦在内部k聚体索引中找到匹配,那么可将第一读段的周围碱基与内部云内的周围碱基比较。这可以通过内部k聚体索引完成,其鉴定k聚体在重叠群内的位置。以此方式,联配可以是更准确的。
另外,一旦使用第二读段,那么可从一般云移除配偶对,从而不再使用配偶对和基因组的不同部分。使用k聚体,可通过移除与k聚体有关的特定读段来进行引退,例如用于延伸重叠群的k聚体。上述描述还可以用于延伸重叠群的左末端,但第一和第二臂读段将交换。
3.引退
如图10A中显示的,左内部云1010或右内部云1020可对应于重叠群1000的特定部分。这可以提高效率,因为仅需要对重叠群的部分作联配。此外,可以最小化意外联配(例如由于来自基因组不同部分的相似性),因为内部云保持得更小。基于预期的或测量的配偶缺口,可将对何时将序列读段添加至内部云和何时将其从内部云移除的确定设为预确定的值。
C.外部云
上文的论述聚焦于配偶对的读段和重叠群的确定序列之间的相似性。实施方案也可使用配偶对的读段与在将来发生的要遇到的延伸步骤中的预期序列之间的相似性。如果第一读段确实对应于重叠群的末端,那么第二臂读段和第一臂读段应对应于在将要来临的延伸步骤中所预期的序列。外部云可以由来自序列读段的k聚体序列读段构成。
图10B的图例示了依照本发明的实施方案的外部云。重叠群1050具有左末端1052和右末端1054。外部云对应于序列读段,估测其离重叠群的末端有一定距离。显示左外部云1060在重叠群1050的左末端1052的左边。显示左外部云1060具有以下范围:离重叠群左边缘(在最末端)100个碱基至离重叠群左边缘2000个碱基。该距离可基于配偶缺口的预期距离。依照显示的例子,第一读段可在左外部云1060中维持达1,900个延伸步骤,每次延伸为一次一个碱基。右外部云1070是相似的,只不过其将包括对应于用于延伸重叠群1050右末端1054的第一读段的第二读段。
1.创建
图12的图显示外部云1210的创建。显示重叠群1200,其在高亮的重叠群的末端序列1220处。显示外部云1210在重叠群1200右边缘的右边。显示了一组配偶对。在用于延伸重叠群的位置处显示每个配偶对的第一读段1220。如显示的,第二读段1225位于外部云内的某个位置处。
当不使用参照序列时,不知晓配偶距离。然而,已知配偶缺口的值的范围。如此,尽管不知道第二读段的确切位置,但仍可以确定第二读段将落在外部云内某处。如此,外部云能提供基因组的一些呈现,尽管该呈现不是准确的序列。只要新的第二读段与已添加至外部云的另一第二读段匹配,那么可以确定新的第二读段将可能与重叠群联配,如果重叠群向外延伸至目前由外部云限定的区域时。然后,对应于新的第二读段的第一读段还可以确认与重叠群的末端联配。
如此,外部云可使用第二读段建立,其对应于与重叠群末端序列联配的第一读段。可以得到对于任何给定的步骤添加至外部云的读段数目以与预期数目确认(例如基于细胞数目)。例如,如果预期数目是40,而且有与重叠群末端联配的第一读段,那么可以使用40个最佳匹配的第二读段。
以此方式,外部云给出了关于重叠群的接下来1000个左右的碱基(取决于配偶缺口)的大概概念。可以使用接下来是怎样的知识来确定哪个是要选择的正确分支或子分支。例如,许多第一读段可以联配于末端序列,其中这类第一读段的一些实际对应于基因组的不同部分。在这类情况中,外部云可用于过滤掉这些不属于的第一读段,其通过确定相应的第二读段中哪些与外部云一致。
外部云可表示为外部k聚体索引。外部k聚体索引和内部k聚体索引均可由不同长度的k聚体构成,其还可以与用于延伸重叠群的不同长度的。例如,可以使用20聚体索引来鉴定对末端序列的联配。可以选择长度20来提供贯穿全部基因组的更大的独特性。然而,由于内部和外部云可以比全基因组小得多,可以使用较低水平的独特性。如此,内部云可以使用10聚体索引,而外部云可使用10聚体索引或甚至8聚体或12聚体索引。
在一个实施方案中,当来自第二读段的k聚体与外部索引中的k聚体匹配时,可以确定该第二读段联配或者以其它方式与外部云一致。
2.使用外部云来选择第一臂读段用于延伸
如上文提到的,当延伸重叠群时,外部云可用于确定选择第一读段的哪个分支或子分支。对于正确的分支或子分支,第二读段应与已经使用的那些第一读段的一些第二读段匹配。正确的分支应与外部云的第二读段具有更多重叠。
图13A显示依照本发明的实施方案将分支1的第一读段1315和第二读段1325比较用于确定是否选择分支1的图。显示重叠群1300的右末端1302,其用于将重叠群1300向右延伸的过程。显示第一组的第一读段1315,其与重叠群1300的末端1302联配。显示相应的第二读段1325,其与外部云1320匹配。
图13B显示比较分支2的第二读段1345和第一读段1335以确定是否选择分支2的图。显示第二组的第一读段1335,其与重叠群1300的末端1302联配。但是,相应的第二读段1345中仅一个在外部云1320中发现匹配。如此,在该例子中,将选择分支1,因为第一组的第二读段1325将比分支2的第二读段1345与外部云1320更一致。注意该示例假定仅一个分支是正确的,例如当延伸单倍体重叠群时可能是这种情况。如果延伸二倍体重叠群(如此允许存在het),那么如果它们都等同一致且任何其他分支显示更低的一致性,就可以选择两个分支。一致性的水平可以测量为具有与外部k聚体索引匹配的k聚体的第二读段的绝对数目或百分数。
因此,第一读段可与末端序列比较以确定与末端序列联配的第一组。在此第一组中,可以有支持超过一个分支的第一读段。例如,可以有指示下一个碱基是A的第一读段(第一亚组),其对应于第一分支,且可以有指示下一个碱基是C的第一臂读段(第二亚组),其对应于第二分支。可以使用第一组的相应第二臂读段来确定应选择哪个分支用于延伸初始序列。
正确分支的第二读段应与外部云更一致,因为第二读段应联配于最近添加至外部云的第二读段(该外部云可保持为相对较小以仅对应于最近添加的第二读段,例如如图10B中显示的)。
当第二读段与外部云匹配时,第二读段可视为合格的。可能不知道序列读段在基因组中的确切位置,其他软件支持序列读段发生在由外部云代表的重叠群的末端的邻近区中。这种外部云的使用帮助消除假的分支以及假的读段和k聚体(其可能添加至外部云中)。
对于分支显示该例子,但也同样适用于选择子分支。可能有以下情况,其中许多第一读段仅支持一个分支,例如许多支持下一个碱基是A。但是,第一臂读段的数目可能太高(例如超过阈值,其可能与从细胞数目确定的预期数目有关)以致于所有第一读段均不能与基因组的该部分联配。如此,一些配偶对实际上对应于基因组的不同部分。可能的是第一读段在重复区内,且第二读段可能延伸过重复区。
在该情况中,有多个子分支,子分支对应于在组装过程中将出现的不同序列。外部云可用于确定哪个子分支与外部云最一致。当选择仅在子分支中时,对重叠群决定接着什么碱基,而是将何种第二读段添加到外部云。这对将来延伸步骤有分叉(ramification),其可能需要在两个不同分支之间进行选择,这将影响实际序列。如果外部云添加了无效的第二读段,那么这将导致错误的传播,其导致使用不恰当的碱基来延伸重叠群。如此,当仅在子分支之间选择时,这类过程有效地确定将何种第二读段添加至外部云,且帮助保持第二云的准确性。
可以基于哪些第二读段与外部云一致来决定哪些配偶对对应于哪种子分支。如果第二读段与外部云匹配,那么配偶对可视为正确子分支的部分。如果低于预期数目的第二读段与外部云匹配,那么将低于预期数目的读段分配到正确的子分支(例如当预期数目是40时仅使用20)可以是可接受的。
在一个实施方案中,如果超过预期数目的第二读段与外部云匹配,那么可以停止组装过程,因为这可能表示云(且由此重叠群的末端)已被污染。也可以在其他时间当数据不一致时停止组装过程,由此保持准确性。
3.引退
外部云的第二读段在其已添加后在预定数目的延伸步骤后可从外部云移除。这通常称为本文中的早期引退。早期引退允许外部云更小且更不易过度包容性(对于选择哪些分支或子分支来将新的第二读段添加至外部云)。
使用早期引退,第二读段不保持在外部云中。取而代之,可将一般云的任意第二读段与末端序列比较;然而,第二臂读段不一定具有与内部云联配的相应第一臂读段。在这类情况中,相应的第一读段可与内部云比较,如图11A和11B中绘出的。代替早期引退,可将第二读段保持在外部云中直至其被用于延伸重叠群,这称为后期引退,如下文章节中描述的。
4.使用外部云的第二臂读段用于延伸
外部云的第二臂读段可保持在外部云中,直至它们到达末端序列,然后用于延伸重叠群。这称为本文中的后期引退。由于第二臂读段在外部云中,已知相应的第一臂读段与重叠群一致,因为第一臂读段已经与重叠群联配。如此,相应的第一臂读段可明确地添加至内部云或暗含已知与内部云一致。
仍在外部云中的第二读段的联配通常在离相应第一读段的距离是配偶缺口的大小时发生。与末端序列联配的第二读段可以压倒性地指示单个分支。例如,超过80%的第二臂读段可能指示下一个碱基是A。在一个实施方案中,如果其他20%的读段的总数目低于阈值(例如其中读段可归为错误的阈值),那么可选择最强的分支来延伸重叠群。
在基于将外部云的第二读段联配于重叠群的末端选择分支后,可以鉴定与选择的分支一致的第一读段。然后,对应于选择的分支的第一读段的第二读段可添加至外部云,由此补充外部云。当配偶对的两个读段均已使用过时,可从一般云移除配偶对。
D.辅助重叠群
在上文的例子中,外部云提供了关于在延伸的重叠群的当前末端之外的即将来到的遗传信息的一些信息。这类信息不包括预期的特定序列,且可能具有缺口,因为从具有联配于重叠群的第一读段的配偶对鉴定第二读段。其他实施方案可提供分开的重叠群(辅助重叠群),其具有次序(order)和更少的缺口或无缺口(完全性),尽管准确性可能低于活性重叠群(即延伸的重叠群,且简称为重叠群)。辅助重叠群可用于解析用于延伸活性重叠群的分支,例如如本文中描述的。可将以高准确性构建的辅助重叠群(例如使用相同的阈值用于组装重叠群)可掺入到使用活性重叠群的组装中。
因此,在一些实施方案中,可以组装外部云以创建辅助重叠群,或在外部云之外或代替外部云可以组装辅助重叠群。由于知晓外部云的k聚体在染色体内前向的某个点处,可在重叠群实际到达这类点之前有利地组装k聚体。这类组装可在重叠群延伸之前或与重叠群的延伸并行实施。
1.建立辅助重叠群
可以暂时地制备辅助重叠群(HC)以指导延伸,但不用作最终重叠群。辅助重叠群也可以以更持久的方式使用以直接延伸重叠群。辅助重叠群可以以与延伸种子类似的方式建立。种子可以从配偶对的第二读段开始,其中第一读段已用于延伸重叠群。例如,可从外部云选择种子。在一个执行方式中,将独特的k聚体用作种子。
种子可以从两个方向延伸,类似于常规的种子延伸。这类延伸可以使用或不使用配偶对,因为可只从配偶对的任意读段延伸。如此,对于辅助重叠群,一些实施方案可仅使用读段和标签信息。例如,要使用的标签可限于那些已经包括在用于扩大重叠群的代表性组中的,因为这些标签对应于基因组的该区。在该点的重叠群可以是单倍体重叠群,如此对于每个单倍体重叠群可以有分别的标签组。余下的论述将仅考虑单倍体重叠群之一。
在一个实施方案中,外部云中的k聚体可用于组装辅助重叠群。例如,外部中k聚体的重叠可用于延伸辅助重叠群。
辅助重叠群能提供次序和完全性,否则这可能在外部云的某些执行方式中失去。完整性可通过使用具有代表性组的标签的任意k聚体获得,这仅来自用于重叠群的配偶对的k聚体形成对比。由于辅助重叠群以其自身信息建立,因已实施的操作,其可以是完全的。因此,辅助重叠群可从其中未知配偶对信息的读段创建。
在辅助重叠群中付诸的努力的量可以少于活性重叠群,例如可以容忍多一点的错误,因为辅助重叠群可能不用于提供序列,而是仅帮助延伸活性重叠群。如此,在一个执行方式中,当获得重复的序列时,那么可弃去辅助重叠群。在其他实施方案中,辅助重叠群可以是分开的活性重叠群,具有同样多的准确性,因此辅助重叠群可用于提供下一区域中的序列。例如,重叠群可能命中辅助重叠群。实施方案可追踪读段,从而两个读段不会均用于延伸重叠群和辅助重叠群。
图13C显示依照本发明的实施方案的辅助重叠群的创建和使用。活性重叠群1380具有末端1381,读段与其联配以延伸该活性重叠群1380。辅助重叠群1390与活性重叠群1380的末端1381分离,尽管辅助重叠群1390能向左延伸过末端1381,例如当活性重叠群1380延伸时。辅助重叠群1390显示在重复区1385的远侧,该重复区1385在活性重叠群1380和辅助重叠群1390之间。然而,分隔区不必须是重复区。重复区与基因组中的许多其他区域具有相似序列。辅助重叠群可在活性重叠群1380的两侧都使用。
使用用于创建活性重叠群1380的第一读段鉴定配偶对1382。配偶对1382的第二读段可用作用于创建辅助重叠群1390的种子。第二读段还未被用于延伸活性重叠群,且给定配偶对的预期长度,预期第二读段越过末端1381。使用配偶对1382的第二读段可帮助确保辅助重叠群接近末端1381。
在延伸辅助重叠群1390时,可能发生的是在两侧均命中重复区,其中延伸越过重复区可能较难。此外,可能有具有不与辅助重叠群1390联配的第二读段的配偶对。例如,配偶对1383的第二读段不与辅助重叠群1390联配。在此情况中,可以创建第二辅助重叠群1398。在另一个执行方式中,使用辅助重叠群1390可解析重复区1385,然后活性重叠群可延伸至重复区1395。在该点,可以创建辅助重叠群1398。
辅助重叠群可具有不同长度。在一个实施方案中,辅助重叠群可以延伸与最大配偶对距离(例如1Kb)可比的距离。可使用多种技术来强化该距离。在一个实施方案中,当辅助重叠群的长度达到最大配偶对距离(或其他距离)时,辅助重叠群的延伸可以停止。辅助重叠群可以延伸越过活性重叠群的末端。在活性重叠群延伸一定数目后,可以引退辅助重叠群,例如在活性重叠群已延伸100个碱基后。一旦引退旧的辅助重叠群,就可以创建新的辅助重叠群,其使用来自活性重叠群末端附近的配偶对的第二读段的种子。
在另一个实施方案中,当辅助重叠群的长度超过阈值距离时,可以引退辅助重叠群的更旧的部分。对将读段添加至辅助重叠群的位置可以保持记录。如此,引退可以是与活性重叠群最近的辅助重叠群的部分。在辅助重叠群位于两个重复区之间的实施方案中,辅助重叠群可以尽可能的长,因此期望延伸越过阈值距离。以此方式,可以使用辅助重叠群来区分落入两个重复区之间的片段。
辅助重叠群可以并行制备或在延伸活性重叠群之前制备。例如,可在种子(即活性重叠群的种子)的每一侧制备辅助重叠群。当获得一个或两个辅助重叠群时,就可以扩大活性重叠群。
在一些实施方案中,不同区带可以指定是否使用辅助重叠群。例如,在绿色区域中,在不使用辅助重叠群的情况下完成重叠群扩大。如果进入黄色区域,就要制备和使用辅助重叠群。预期这将使得延伸成为可能。在红色区带,活性重叠群的延伸停止。不同的条件可以定义每个区域。
2.辅助重叠群的存储
一旦制备了该辅助重叠群,其可以多种方式存储。例如,辅助重叠群可存储为具有臂名称和重叠群中位置的读段ID的链表(list)。该链表可以是经分选的链表,其对应于基因组序列在辅助重叠群区域中的次序。该链表可发挥索引的功能。如此,辅助重叠群可以与活性重叠群不同地存储。
在一个实施方案中,辅助重叠群以表(table)执行,其具有为重叠群内位置的键(key)和如下值:1)k聚体、2)读段ID、3)k聚体在读段内的位置、4)标签。作为对重叠群联配(允许错配)的取代,对该表的搜索能产生使用的第二读段的快速联配以确定哪些第一读段应当用于延伸活性重叠群。这类表还可以用于内部云和重叠群,例如代替对重叠群的联配。
3.使用辅助重叠群选择分支
辅助重叠群可用于证明或反驳要联配于活性重叠群末端的新读段。假设对于新配偶对,第一读段与活性重叠群末端匹配。然后,实施方案可以比较其他臂来查看其是否匹配辅助重叠群,且将匹配用作证据来证明应接受第一读段(例如应接受相应的分支)。如此,当有更多证据来自用于创建活性重叠群的配偶对的读段时,配偶对的第二读段可用于选择分支。
例如,假定对于延伸活性重叠群存在两个分支。每个分支具有与活性重叠群末端联配的第一读段。但是,并非所有的第二读段可与辅助重叠群联配。一个分支可能具有所有或高百分比(或量)的联配于辅助重叠群的第二读段,而另一分支可能具有较低数量或百分数的联配于辅助重叠群的读段。对应于更大量的与辅助重叠群联配的第二读段的分支将可能是正确的分支。
图13C显示一个分支的配偶对1392,其中配偶对1392具有确实与辅助重叠群1390联配的第二读段。而另一分支具有配偶对1391,其具有不与辅助重叠群1390联配的第二读段。如此,可以选择配偶对1392的分支作为正确分支来延伸活性重叠群1380。
由于辅助重叠群提供序列,匹配可以比类似的k聚体存在于外部云中的鉴定更准确。此外,由于有次序,可以使用当第二读段匹配于辅助重叠群时所处的距离。例如,如果辅助重叠群比最大配偶对距离长,那么第二读段对辅助重叠群远端的联配可以较小加权,因为配偶对将需要具有非常大的配偶缺口。可以较高加权下述联配,其表明配偶对具有更接近预期的配偶缺口长度的缺口。
4.重复和辅助重叠群
如上文提到的,当遇到重复区时,活性重叠群的延伸可以较为困难。辅助重叠群在此类情况中可以特别有用。由于第二读段可以独特地联配于辅助重叠群,可以鉴定出对应于重复区的第一读段。然后,可组装该组第一读段以确定重复区的序列。由于第一读段的组对应于与辅助重叠群联配的第二读段,第一读段组是可信的。在一个实施方案中,如果重复区太难以组装,则可使用辅助重叠群作为新重叠群的新种子,且可跳过重复区。
重复的一些例子如下。一个例子是两个邻近(例如1至100个碱基距离)重复,其长于读段长度但短于配偶对长度;例如长度各自有300个碱基相隔100个碱基的两个重复。另一个例子是长于配偶对长度的两个重复,其中两个重复在约5kb-50kb内存在,例如两个重复各具有5Kb长度,相隔50Kb。另一个例子是募集到两个邻近重复的读段的最大可能性估测。当匹配的k聚体和/或读段(例如具有许多读段的一个k聚体)的数目非常大时(例如测序覆盖度的2或3倍,或甚至测序覆盖度的1,000倍),可以鉴定重复区。
图13C显示两个重复区1385和1395和两个辅助重叠群1390和1398。先验性未知哪个辅助重叠群实际更接近活性重叠群1380。更接近的辅助重叠群应具有更多的与该更接近的辅助重叠群联配的第二读段,即对应于与活性重叠群1380联配的第一读段的第二读段。如此,辅助重叠群1390应比与辅助重叠群1398联配具有更多的与其联配的第二读段。
在一个例子中,有两个重复,其短于配偶对长于读段,且它们彼此处于短距离之内,例如短于配偶对。例如,每个重复区是300个碱基且分开的距离是200个碱基(例如辅助重叠群1390是200个碱基)。假定重复区1385和1395是相同的,只不过重复区1385在重复区1395具有G的位置处具有A。
实施方案可鉴定重复区1385更多地关联于辅助重叠群1390,因为与联配辅助重叠群1398相比,具有A的第一读段的配偶对的更多第二读段联配于辅助重叠群1390。而且,G具有更多的与辅助重叠群1398联配的第二读段。如此,辅助重叠群的次序信息可帮助鉴定哪个辅助重叠群更接近活性重叠群,且区分差异仅为几个碱基的重复区。
在另一个例子中,假定有在预期的配偶缺口分布内的串联重复。为了解决该问题,可对重复之间中的独特区域制备辅助重叠群。然后,鉴定是否有标签(例如孔),其长片段在重复之间结束。这可以通过分别组装每个标签的读段完成,且特定标签的组装的序列的末端将对应于辅助重叠群的中间部分。然后,来自该标签的读段可用于鉴定第一重复区中的独特特征,因为其读段不包括第二重复区,从而确定重复区的次序。
E.使用配偶对信息的方法
图14是依照本发明的实施方案使用配偶对信息组装生物体第一染色体区的序列的方法1400的流程图。
在块1410,从生物体多个核酸分子的测序接收序列数据。多个核酸分子中每个的序列数据包含序列读段的配偶对。配偶对包括核酸分子的第一部分的第一读段和核酸分子的第二部分的第二读段。在第一染色体区中的第一部分后是第二部分。
在块1420,接收第一染色体区的第一重叠群。可接收第一重叠群,其对应于组装过程不同部分的种子或任意重叠群。
在块1430,将序列读段与第一重叠群的末端序列比较以确定与末端序列联配的第一组序列读段。第一组的序列读段均来自核酸分子的相应部分。即,第一组的所有序列读段均为第一读段或第一组的所有序列读段均为第二读段。第一组序列读段来自配偶对的第一组。
在块1440,将配偶对的第一组的其他读段用于确定第一组序列读段的第一亚组。例如,当块1430中的序列读段是第一读段时,其他读段可以是第二读段。第二读段可以与外部云比较以确定使用哪个第一亚组(例如哪个分支或子分支)来延伸重叠群,例如如图11A和11B中所绘出的。再例如,其他读段可以是第一读段,块1430中的序列读段是第二读段。可将第一读段与内部云比较以确定使用哪个分支或子分支来延伸重叠群,例如如图13A和13B中所绘出的。
在块1450,使用第一亚组的序列读段来延伸第一重叠群。在一些实施方案中,第一读段和第二读段两者均联配于重叠群的末端。可以通过与内部云联配的第一读段的数目和与外部云联配的第二读段的数目来测量对每个分支的支持。在一个执行方式中,对与内部云联配的第一读段和与外部云联配的第二读段提供相等的加权。
在另一个执行方式中,可以对于内部云联配的第一读段给予更多的权重,因为可以联配完整的序列读段,而不可能的是完整的第二读段与外部云中的另一第二读段联配。取而代之,第二读段的k聚体将可能与外部索引中的k聚体匹配。可以实现第一读段对内部云的联配的更大加权,其通过仅使用第二读段对重叠群末端的联配来确定选择哪个分支。然后,可通过确定对应于选定的分支的第一读段来将第二读段添加至外部云,其中选择的配偶对的第二读段与外部云一致。
F.使用索引的引退
序列读段从一般云、内部云或外部云的引退可与k聚体从一般索引、内部索引或外部索引的引退分别或连同进行。在一个实施方案中,当对分支选择k聚体以延伸重叠群时,可以更新包含该k聚体的一般索引以移除包含该k聚体的选择分支的任意读段。例如,k聚体可以对应于100个第一读段,但仅20个第一读段可以对应于选择的分支(例如当仅20个第二读段与外部云匹配)。在此情况中,可以更新一般索引以从k聚体移除那20个读段(例如停止将那20个读段与k聚体关联)。
对于从内部索引引退,k聚体可具有与延伸步骤的数目对应的关联计数器。当使用k聚体来延伸重叠群时,计数器可设为0。然后,对于不包含k聚体的每个延伸步骤,可以增加计数器。在一个执行方式中,可以立即将k聚体添加至内部云或当计数器达到特定值时添加至内部云,所述特定值对应于内部云从离重叠群的末端1005和1025的指定距离开始(如图10A中绘出的)。当计数器超过阈值时,可从内部云移除该k聚体。如果再次使用k聚体来延伸重叠群而该k聚体仍在内部云中,则计数器可重新设为0。
可使用与用于从内部索引引退类似的技术来从外部索引引退。例如,当将k聚体添加至外部索引时,计数器可设为0。当计数器超过阈值(其可能与配偶对缺口或长度成比例)时,可从外部索引移除该k聚体。如果新序列读段的k聚体与外部索引的现有k聚体匹配,则可将该k聚体的计数器重设置。
以此方式,不一次次地弃去相同的k聚体,这可能产生错误。与完整序列读段形成对比,引退k聚体可以是有利的。k聚体的优点是你的读段的一部分可以是破裂的(例如由于较差合成或较差测序),而读段的其他部分却是较好的。此外,在引退读段的一个k聚体之后,读段的其他k聚体仍可使用。
另外,可以基于k聚体从代表性组引退标签。当没有更多的具有特定标签的k聚体在内部云中时,可从代表性组移除该标签。当k聚体的数目低于阈值数目时也可以移除标签。
G.得分
可以以多种方式确定将臂读段与内部/外部云比较的得分。对于与内部云的比较,序列读段的所有碱基可联配于内部云的序列。这类联配可提供与内部云一致性的更高得分。任何错配均可能降低得分。另外,如果使用内部k聚体索引,得分可以基于与内部索引中k聚体匹配的读段的k聚体的数目。与外部索引比较的得分还可以基于与外部索引中k聚体匹配的k聚体读段的数目。
可以使用所述得分来确定取哪个分支或子分支。可使用具有最高得分的配偶对。例如,可以将分支1的所有读段的得分加和以提供第一总和,且可以将分支2的所有读段的得分加和以提供第二总和。可比较第一总和和第二总和,且可选择对应于更大值的分支。
可能需要最小值来选择分支。如果任何分支均不满足最小值,则可以停止延伸。
VIII.K聚体索引
k聚体索引的使用已在上文描述。作为例子,可以使用k聚体索引来鉴定与重叠群的末端序列联配的读段,确定配偶对的读段是否联配于重叠群(例如使用内部索引),和确定配偶对的读段与重叠群的即将到来的部分一致(例如使用外部索引)。
K聚体可以是有用的,因为读段中的一个错误可以导致联配的问题。如果读段相对较长,那么可以有至少存在一个错误的不可接受的可能性。更小的k聚体将具有存在错误的更低的可能性,因为它们更小。如此,k聚体索引可以提供更多的冗余(redundancy),且可允许抓住更多的错误。
另外,k聚体索引可在一次操作中鉴定对多个读段的联配。例如,当对特定k聚体进行联配时,可以对与该k聚体关联的所有读段自动进行联配。除了与多个读段关联之外,k聚体还可以与一个或多个标签关联(例如每个标签与包含该k聚体的特定读段关联)。k聚体索引还可以包含特定读段的k聚体的位置,且可包含该读段的存储地址。
A.索引类型
有多种索引可以使用。索引可以基于存储于索引中的信息的类型而变化。索引还可以基于使用哪些读段来创建索引而变化。例如内部和外部索引对应于重叠群的不同部分。
1.读段/一般索引
读段k聚体索引(RKI或读段索引)对应于读段的k聚体(例如17聚体)的索引。图4A提供了RKI结构的一个例子。在一个方面,RKI可包括来自可与重叠群末端联配的任意读段的k聚体。对于每个读段,可以使用连续部分(例如17个连续碱基)来确定读段中的多个k聚体。在每个连续部分中,可以发现k聚体的滑动窗口。例如,如果读段具有25个碱基而k聚体索引是20,那么第一k聚体是序列中从位置1至位置20;第二k聚体是从位置2至位置21;如此类推。也可以使用读段的非连续部分来确定k聚体。
每个k聚体,连同其在读段上的位置、读段ID或地址、和读段标签可存储在索引中。如果所有读段具有相同长度,那么从存储器取回读段可以是硬式编码的以取回相同数量的数据,但指定地址以鉴定取回哪个数据。如果读段具有不同的长度,那么可将说明读段长度的数据存储在索引中,或者在存储地址处,从而指示取回多少数据。
一些实施方案可移除具有超过阈值数目(例如50或100)的关联读段的k聚体。此类k聚体可对应于基因组的重复区。如此,可以重复k聚体太多次以提供准确的组装。组装过程可鉴定此类以下情况,其中k聚体信息不回提供区域中的准确组装。这类k聚体的移除允许索引变得更小且更快。在一个执行方式中,此类k聚体可保存在分开的索引中,并用于在重叠群之间的基因组部分中填充,例如在过程某个点中当已发生组装时,从而允许更多地控制这类重复区可能导致的错误。
2.参照/基因组索引
基因组k聚体索引(GKI或GenomeIndex)对应于参照基因组的索引,其可用于特定情况中,如本文中描述的。对于基因组,可以定义k聚体的滑动窗口。对于每个k聚体,将基因组上的位置保存在索引中。每个k聚体可与多个在该处可发现该k聚体的位置关联(例如每个位置有效保存为不同的列)。GKI的执行类似于RKI,不过取代读段使用的是在基因组上的滑动窗口(一次1个碱基)。
在一个实施方案中,基因组k聚体计数索引(GKCI,GKC或GenomeCount)可存储对于每个k聚体的读段数目。读段的数目可保存在分开的索引中或同一k聚体索引的列中。该信息可提供更高的效率,从而使得对于每个k聚体命中的数目可从该处获得,而不用拉取与k聚体匹配的所有读段。读段的数目可对于多种目的有用。例如,可以连续保存k聚体的读段,从而使得在一个读段请求中获得所有读段,其中可以使用关联读段的数目来指定请求多少数据。再例如,可使用包含k聚体的读段的数目来鉴定基因组中的重复序列,当该数目较高时(例如大于阈值)。
3.内部和外部云
内部和外部云在上文论述,且可以以内部和外部索引执行。这些索引可具有不同于RKI的大小。例如,RKI可使用长度为17个碱基的k聚体,而内部和外部索引可使用具有12个碱基长度的k聚体。外部和内部索引还可使用不同长度的k聚体。
由于重叠群可向左和向右延伸,对于内部和外部索引两者可有左和右索引。例如,可以有左内部索引和右内部索引,以及左外部索引和右外部索引。
在一个实施方案中,左外部索引(LEI)将对应于读段(本文中也更一般性称为第一读段)左臂的k聚体的索引。当延伸向左时制备LEI。在重叠群上具有右臂的读段(第二读段)将贡献其左臂来建立LEI。可以扫描左臂的k聚体并置于索引中。如果重叠群的长度较短,那么可以允许云仅扩大。然而,如果重叠群的长度非常长(例如显著超过配偶对的长度),那么可以通过引退首先添加的读段/k聚体(例如对应于最接近重叠群的部分)来削减云。这类引退也在别处描述。
右外部索引(REI)将对应于读段右臂的k聚体的索引。当延伸朝右时可制备REI。在重叠群上具有左臂的读段将贡献其右臂来建立REI。可以扫描右臂的k聚体并置于索引中。引退可以与对LEI的相同的方式进行。
B.读段地址
图15A显示依照本发明的实施方案的示例k聚体索引1500,其具有对每个k聚体保存的读段地址。第一列1501显示k聚体列表,其中该列表可通过用于更快搜索的特定标准分选。其他每列对应于包含该行的k聚体的不同的读段。如显示的,对每个读段存储的值是存储地址,从其可取回读段。存储地址可以任何适宜的形式,例如十六进制、十进制等。
如图4A的,每个k聚体的读段数目将变化,其中空通道(slot)用“-”表示。这些空通道(anti-slot)实际上将不存储任何数据,且可以压缩索引的总大小。事实上,每行可以相继存储,其中下一行在前一行结束后开始。这类存储可以使用特定k聚体录入的总读段数目来将一个k聚体与另一个的读段区分。
在一个实施方案中,读段可以存储在存储器中,每个具有存储地址。可以分析每个序列读段来鉴定序列读段内的一个或多个k聚体。k聚体索引可以通过以下生成:对于每个k聚体,在k聚体索引中存储鉴定为包含该k聚体的序列读段的一个或多个存储地址。例如,一个特定的k聚体可见于4个读段中,且4个读段中每个的存储地址与k聚体关联存储(例如存储为索引中k聚体录入的部分)。k聚体索引可以存储在与读段相同的存储器中(例如RAM、ROM、闪存等)。
读段的数目通常将相当大,例如提供超过10倍、20倍、30倍、或100倍基因组覆盖。另外,k聚体索引可以包含存在于读段中的所有k聚体的实质性部分(注意存在的k聚体可比鉴定出的多)。例如,可在索引中发现超过10%,25%,或75%的存在于读段中所有k聚体。存在的k聚体的数目依赖于读段大小和使用的k聚体长度,且可依赖于如果k聚体限于连续碱基。例如,如果k聚体限于连续碱基,那么存在于具有25个碱基的1,000个读段的k聚体(当k聚体是20个碱基时)的总数目是至多6,000。但是,k聚体可以出现在超过一个读段中,因此总数目可能更低。
使存储地址作为读段标识允许更快地从存储器取回。例如,可从包含子送至存储器控制器的请求中包含的内容的索引获得存储地址,其可使用存储地址来解析请求的是哪项数据。不需要对标识的中间解析,因此提供更有效的取回。
C.k聚体在读段中的位置
没有存储地址或除了存储地址之外,k聚体录入可包含可以发现k聚体的具体读段中的位置。该位置可用于多种目的,例如鉴定读段是配偶对的第一读段还是第二读段(例如左臂读段或右臂读段)。该数据可允许仅搜索第一读段或第二读段,这在执行如上文对于配偶对描述的方法时可能有利。
图15B显示依照本发明的实施方案的示例k聚体索引1559,其具有对每个k聚体存储的读段地址。k聚体索引1550具有类似于图15A的构造,另外一列1552是读段位置。如此,对于每个k聚体,已知在每个关联的读段中何处可以发现该k聚体。在一个执行方式中,位置可对应于k聚体第一个碱基存在于读段中的位置。
在一些实施方案中,配偶对可以在存储器中彼此相邻存储,且位置可指示配偶对的哪个读段可发现k聚体。例如,k聚体1的第二关联读段具有位置26,当配偶对的每个读段是25个碱基时其可指示对应于第二读段。
在一个实施方案中,可以以下方式移除克隆。如果对于特定k聚体在读段内的位置相同,那么可将两个读段标记为可能是克隆。在一个执行方式中,两个读段可立即鉴定为克隆,但另外限制可实施对完整读段的进一步分析来鉴定其是否是克隆。如果将两个或更多个读段鉴定为克隆,那么实施方案可仅存储一个读段。例如,将一个读段选择为代表性读段而弃去其余的。或者,通过组合多个读段(例如平均)制备代表性读段。
D.索引中的标签
如上文提到的,对应于具体读段的标签也可以存储在索引中。以此方式,可使用标签鉴定具有特定标签(例如特定孔)的k聚体。这类搜素可用于发现具有对应于重叠群的代表性标签组的标签的k聚体。
图16显示依照本发明的实施方案的示例k聚体索引1600,其具有对每个k聚体存储的读段标签。如显示的,每个读段之后是标签和读段位置,尽管可使用不同的组合,例如仅读段标识和标签。标签可使用任何适宜的符号,如数字、字母、十六进制等。
如上文,可分析每个序列读段来确定多个k聚体。每个k聚体将通常小于从中确定该k聚体的序列读段的长度,但也可以长度等于该读段。序列读段的标签与多个k聚体关联作为索引的部分。例如,对于读段内的每个k聚体,将读段添加至索引中的k聚体录入中。如此,读段的标签将与读段的每个k聚体关联。
E.使用k聚体延伸
不管在索引中存储哪种类型的信息以及索引类型如何(例如内部/外部索引或读段索引),可使用k聚体索引来鉴定用于延伸重叠群的序列。延伸可以多种方式进行。
在一个实施方案中,一旦鉴定出匹配的k聚体,就可以取得相应的读段并与重叠群末端比较。以此方式,延伸可依赖于k聚体在读段中的位置,因为联配的读段上在k聚体之后可能有多个碱基(邻近碱基)。在另一个执行方式中,延伸对于每个步骤仍可以是相同的量。
在另一个实施方案中,k聚体可以大于末端序列。例如,20聚体可联配于重叠群的最后19个碱基,其中使用任何匹配的20聚体来延伸该重叠群(例如选择特定20聚体来延伸重叠群)。延伸的碱基数可取决于末端序列中的碱基数,其可以是比k聚体低的任意碱基数(例如少2,3,或4个碱基)。当延伸超过一个碱基时,分支的数目可以超过4,且可以是4N,其中N是用于延伸的碱基数目。在该实施方案中,可以使用对应于具有预期标签组中一种(其可以是指定标签)的更多的序列读段的k聚体来延伸重叠群。
当索引包含标签时,延伸可包括访问存储器中的索引以确定第一组序列读段,其具有与第一重叠群的末端序列重叠的k聚体。可以使用具有一种或多种指定标签(例如重叠群的代表性组)的序列读段的数目来选择分支,如本文中描述的。再例如,当对于单个等分试样确定重叠群时,第一组可仅对应于一个指定的标签。在一个执行方式中,可以仅搜索k聚体索引中具有一个或多个指定标签的读段,从而改进搜索的效率。
在一个实施方案中,第一组序列读段可具有与末端序列的k个碱基匹配的相同k聚体,其中使用读段的邻近碱基来延伸重叠群。在另一个实施方案中,第一组序列读段对应于至少两个不同的k聚体,其与末端序列的k-1个碱基重叠(或末端序列的更少数目的碱基,如k-2)。
所述第一组序列读段可以是与重叠群末端序列重叠的较大的k聚体集合(扩展集)的子集。可从扩展集鉴定第一组为具有一种或多种指定标签的序列读段。
索引还可以包含关于特定读段的特定k聚体的碱基调用(call)质量的信息。在一个实施方案中,当确定取哪个分支时,具有更高碱基调用得分的读段可给予更高的权重。在一些执行方式中,仅当碱基调用得分高于阈值时可将读段添加至k聚体索引。再例如,可在索引中鉴定具有足够高的碱基调用得分的读段(例如质量得分包括在索引中)且仅使用那些读段来选择分支。
F.多个索引
在一些实施方案中,可使用具有不同大小的索引。例如,可以使用17聚体索引和20聚体索引。在一个实施方案中,可以使用概率哈希表(probabilistic hash table)来降低索引的存储大小。使用这类技术,可能产生的不利是偶尔会丢失k聚体,但这类混乱仅以相对低的百分比发生(例如1%)。
G.局部K聚体索引
如本文提到的,可能难以组装重复区。例如,ALU重复可以是约300个碱基但在人基因组中出现约1百万次。但是,每个重复可能长度稍微不同和/或相差几个碱基。这类重复可相隔10kb。
当重叠群命中这类重复时,与重叠群末端联配的k聚体可能与多个读段(例如成千或成百万个读段)关联。再例如,第二读段(例如右臂读段)可能联配于重叠群的末端,但相应的第一读段不联配于重叠群。为了将该k聚体用于延伸,将需要分选过所有的读段,这是计算机上费力的。而且,许多读段将不是实际对应于在当前重叠群末端处存在的特定重复区的正确读段。
为了解决该问题,实施方案可鉴定是重叠群末端局部的读段,然后仅使用那些读段。可以使用这些读段形成局部k聚体索引,其特异于在该重叠群末端的重复。由于在局部k聚体索引中与k聚体关联的读段数目比一般k聚体索引少得多,搜索遍索引快得多。其他实施方案可使用局部读段而不执行索引。
在一个实施方案中,可使用活性重叠群和辅助重叠群来鉴定局部读段,其在上文论述过。例如,参照图13C,假定已创建辅助重叠群1390,且我们正试图组装重复区1385。可将第二读段联配于辅助重叠群1390。可以鉴定在创建辅助重叠群1390中使用的第二读段。或者,可以将新读段联配于辅助重叠群1390。
如此,鉴定的第二读段的相应第一读段已知发生在鉴定的第二读段的左边。可使用配偶对信息鉴定相应的第一读段。至少这些第一读段中的一些将来自重复区1385。一些可联配于活性重叠群1380而一些联配于辅助重叠群1390本身,但一些将联配于重复区1385。
鉴定的在重复区1390局部的第一读段和第二读段的数目是可管理的数目。如此,可以有效组装局部的第一读段以确定重复区1385中的序列。例如,可将第一读段联配于末端1381,联配于辅助重叠群1390的末端,和彼此联配。
而且,对应于与重叠群末端联配的第一读段的第二读段可用于组装重复区1385。这些第二读段对于重复区1385也是局部的,鉴于第一读段联配于重叠群。具有联配于重叠群末端的第一读段的这些第一组第二读段和具有联配于辅助重叠群的第二读段的第二组的第一读段可用于局部k聚体索引。
在使用局部k聚体索引的执行方式中,对于任意给定k聚体的读段数目相对较小。如此,当发现局部k聚体索引中的k聚体联配于特定序列(例如末端1381)时,该k聚体将与相对小数目的读段关联(例如数千相对于数百万)。如此,可以快速鉴定读段,且有更高的概率是鉴定的读段实际联配于延伸位置。局部k聚体索引中的k聚体可以具有不同于一般k聚体索引中的长度。在一个实施方案中,一旦与联配的k聚体关联的读段数目高于阈值数目(例如成千上万或百万),就可以建立局部k聚体索引。
IX.组合的技术
本文中描述的所有不同技术均可以以各种方式组合。例如,索引可用于有效鉴定序列读段中的联配。标签可用于鉴定可能来自同一长片段,且由此对应于已用于创建重叠群的读段的读段。使用此类标签可在分支中进行区分,且尤其是标签可用于相对短的重叠群。
另外,配偶对可用于在分支中或子分支中选择。具体地,当遇到重复区时配偶对可能可用。例如,约30%的基因组可能是重复,其中一些重复区能使用内部和/或外部索引组装。例如,可通过配偶对对短串联重复寻址,而长重复可能具有允许组装的差异。
A.组合方法
本文中描述的技术可以不同方式组合。用于从头组装的一个实施方案可如下进行。下文描述的执行方式和细节的不同部分可用于上文描述的更一般性的方法中。
在步骤1,定义k聚体(例如17)以为所有读段建立索引。k聚体大小也可用于用于为基因组参照建立索引。
在步骤2,从样品的读段制备k聚体索引。可从参照基因组制备另外的k聚体索引。k聚体索引可从样品和参照基因组的读段两者制备。所述k聚体索引可具有本文描述的特性。
在步骤3,从样品生物体的基因组制备一组k聚体种子,该生物体的基因组正从样品确定。可使用对于该特定k聚体的标签和任何其他读段信息来优化该组。所得k聚体种子的组可具有预期的条件,例如标签和/或读段的数目。
在步骤4,从两侧扩大每个k聚体种子,一次一侧,且可在两侧之间轮换。种子扩大可由k聚体对末端的联配、对应读段的标签、还有配偶对信息支持,如对于各个实施方案描述的。扩大的重叠群可通过多种违背条件停止。
在步骤5,当命中多态性时,重叠群可在使用单体型信息时从该点“解压缩”。可以阻止进一步“解压缩”(在重叠群上),因为当生物体是二倍体时其不是生物学可行的(仅允许2个单体型)。解压缩还可以使用对任意多态性的鉴定在后期阶段进行。
在步骤6,使用标签和配偶对信息将所得重叠群缝合起来。缝合可以一次两个进行,这可以在未搭支架的情况下完成。该缝合可以产生更长的重叠群(超重叠群)。
在步骤7,将超重叠群图谱定位于参照基因组并声明变异。对参照基因组的图谱定位可使用k聚体索引。对变异的鉴定可帮助鉴定突变和可能的疾病状态。
B.主要重叠群扩大
重叠群可以依照以下实施方案延伸。主要的重叠群扩大(MCG或重叠群扩大)算法可以以种子开始并尽可能多地生长该种子。种子可从左或右生长。可以设计不同方案来进行。一种方式是在右方进行一步,接着在左方进行一步。种子延伸可如下描述地进行。
在每一侧,如果存在以下情况则MCG可停止:(1)其命中重复区,该重复区可由大量来自RKI的招募的k聚体标记,(2)其未提供结果(缺少读段),例如没有满足联配或其他标准的分支,(3)候选物是不明确的,例如>2种单体型候选物,(4)候选孔与预期标签数目不一致。
在多个实施方案中,根据当前重叠群的大小MCG可使用不同信息。如果重叠群大小较短,可以使用短重叠群扩大(SCG)算法。如果重叠群大小较长(例如超过1,000个碱基),那么可以使用长重叠群扩大(LCG)算法。MCG可以二倍体(压缩的)方式持续直至其命中多态性。当多态性发生时,其提供了解压缩重叠群的机会,即将其转化为两个单倍体重叠群。因此,算法前行至解压缩步骤。
1.种子延伸
在种子延伸步骤(SES或种子延伸)中,从两个方向延伸种子。每个方向可以进行M,M-1,…,1个碱基,例如其中M是4。对于每次延伸,可以以M开始且继续降至1,或相反进行。前者可能最准确但较慢,后者可能不那么准确但更快。
首先,实施方案可考虑前者的情况,即在k聚体后以M个碱基开始。如果没有足够的具有可获的M次延伸的k聚体,那么可以考虑M-1。可以重复该过程直至M=1。如果M=1没有足够的读段支持,那么该过程可以停止。
或者,可以穷举性探索所有1…M种情况(即对于不同情况的延伸有不同数目的碱基),并比较一致性,以实现额外验证。在每个M,可以测试4M个条件,对应于可能的分支数。对于4M个情况的每个可能仅有1或2个条件满足。对于4M个分支的每种组合,评估延伸的信息支持。延伸的支持可使用标签和代表性标签组。在成功扩大步骤中使用的k聚体或读段可根据本文描述的技术引退。
2.短重叠群扩大
在短重叠群扩大(SCG或短Grow)算法中,当前重叠群较短,因此可能不完全利用配偶对信息。延伸基于联配读段的标签和重叠群的代表性标签组。
3.长重叠群扩大
在长重叠群扩大(LCG或长Grow)算法中,当前重叠群较长,因此除了对于SCG算法可用的信息之外,可以完全利用配偶对信息。在一个执行方式中,假定重叠群较长且当前延伸在右侧,那么可以完成以下:
(a)可以鉴定具有来自RKI的k聚体的候选读段,并使用EW(即代表性组)过滤。
(b)从步骤a的读段,可以鉴定在其右臂上具有匹配k聚体的读段。
(c)对于步骤b中的读段,可以鉴定相应的左臂。
(d)可以经由适当的云(例如当向右延伸时的内部云)验证步骤c中左臂的重叠。如果延伸在左侧进行,则可切换上述步骤。
可以如上文对配偶对描述的实施另外或不同的步骤。可将所有读段、索引和标签存储在RAM中,由此允许有效的访问和准确性(通过允许所有标准用语每一步骤)。例如,可通过相同组的一个或多个处理器访问RAM,例如以对称多处理(SMP)节点。
4.通用
通用重叠群扩大(UCG或UniversalGrow)是短和长重叠群扩大的杂合体。使用云含蓄完成重叠发现。延伸的每一侧(右和左)将具有内部和外部云,总计4种云。由于延伸在每侧进行,更新该侧的内部和外部云。这可以从首个迭代进行。云在其含有关键质量(mass)之前可能不是有用的。其他臂对现有重叠群的重叠可使用内部或外部云,以含蓄和快速的方式(例如使用索引)进行。
5.引退
可以将所有读段保存在索引中且没有问题是可能的,但对于非常长的重叠群,这可能导致问题。如此,可以实施读段引退(RR或读段引退)。如果应用于种子扩大步骤(进行进一步分析),可以在成功的扩大/延伸步骤之后应用以下方案之一:将读段的全部臂从RKI引退,或仅读段中的相应k聚体从RKI引退。如果应用于重叠群缝合步骤,当将读段用于成功缝合两个重叠群时,可以引退全部的读段。
引退可以基于延伸步骤的长度或数目(每个k聚体可具有计数器)。例如,对于每种读段可以有一个追踪的计数器。可以是一个计数器每读段,或者对于所有在同一步骤添加的所有k聚体可以有组数目,且因此对于具有相同组ID的那些有一个计数器。例如,当计数器达到超过1,000时,可以移除读段。引退可以从任何索引。甚至RKI也可以移除k聚体(或至少与k聚体关联的读段)。
C.重叠群缝合
在重叠群缝合步骤(CSS或重叠群缝合)中,可以使用在重叠群末端上的有效孔(标签)将重叠群缝合起来。由于重叠群的末端在平均片段长度以内,可以假定相应末端应来自相同片段,因而可以使用代表性标签组,如上文描述的。缝合可以提供超重叠群,其仍可视为重叠群。
重叠群缝合应一次性对两个重叠群或对重叠群的集合进行。当重叠群的末端具有不同形式,例如一种被解压缩成单倍体而另一种没有,那么可以实施不同的缝合方法。
在一个实施方案中,如果两个重叠群彼此相邻,实施方案可将其缝合,其通过在一个重叠群上具有配偶对的第一读段而第二读段在另一重叠群上进行。可能难以知晓哪些重叠群彼此相邻。在一个实施方案中,可将重叠群与参照基因组联配以确定属于基因组相同区域的重叠群。
例如,一个重叠群的末端可用于确定联配的k聚体。然后可发现对应于匹配k聚体的读段,并可鉴定配偶对。配偶对的其他读段(和相应k聚体)可用于确定其是否联配于其他重叠群的末端或重叠群内的任何序列。该联配可通过将其他读段与其他重叠群的内部索引比较来进行。再例如,联配可通过将一个重叠群的外部云与其他重叠群的内部云比较来进行。
在一个实施方案中,缝合可以连接两个重叠群,但在初始连接后两个缝合的重叠群之间可能仍存在缺口。在该点时,该缺口可使用对应于用于建立两个重叠群末端的读段的标签和配偶对的知识来潜在地填充。
D.长度和准确性
重叠群(包括超重叠群)的长度可在给定生物体的样品之间和基因组的不同部分之间变化。可以实现超过100Kb或1Mb的重叠群。在一个实施方案中,N50值长于100Kb或1Mb。可以获得每个人基因组小于1,000或300个错误的准确度。
E.参照的使用
在一个方面,如果将读段最初联配于参照,那么从头组装可以降低偏倚,该偏倚在其它情况中可以由参照导致。但是,参照可在后期阶段使用,例如以帮助将重叠群缝合在一起,如上文描述的。参照还可以用于选择种子。一些另外的用途在下面描述。
1.扩大
在一个实施方案中,如果有得到等同支持的两个不同分支,那么可以选择对应于参照的分支用于延伸重叠群。由于参照不用于确定分支,而仅用于选择哪一个最可能,因此降低了来自参照的任何偏倚。
2.变异
相对参照定义变异。使用相对较长的从头重叠群,可将它们图谱定位回到参照上以鉴定变异。长重叠群使得图谱定位回参照更容易。在那些重叠群内,可以相对于参照检测插入和缺失,其通过将长序列联配于参照进行。
X.计算机系统
本文所提及的任意计算机系统可以利用任何适合数量的亚系统。这些亚系统的例子示于图18中在计算机装置10中。在一些实施方案中,计算机系统包括单个计算机装置,其中所述亚系统可以是计算机装置的组成。在其它实施方案中,计算机系统可以包括多个计算机装置,每一个为亚系统,具有内部组成。
图18中示出的亚系统通过系统总线75内部互联。显示了另外的亚系统例如打印机74,键盘78,存储设备79,显示器76(它连接到显示器适配器82)等。外围设备和输入/输出(I/O)设备(其偶联到I/O控制器71)可以通过本领域已知的任意数量的方式,如输入/输出(I/O)端口77(例如USB、
)连接到所述计算机系统。例如,I/O端口77或外部接口81(例如,Ethernet,Wi-Fi等)可以用于将计算机系统10连接到广域网例如因特网,鼠标输入设备,或扫描仪。通过系统总线75的互联允许中心处理器73与每个亚系统通讯并控制从系统存储器72和存储设备79(例如,固定盘,例如硬盘驱动器或光盘)的指令执行,以及亚系统之间的信息交换。系统存储器72和/或存储设备79可以包括计算机可读介质。本文提到的任何数据可以从一个组成输出到另一个组成,并可以输出到使用者。
计算机系统可以包括多个相同的组成或亚系统,例如,通过外部接口81或通过内部接口连接在一起。在一些实施方案中,计算机系统,亚系统,或装置可以通过网络通讯。在这种情况下,可以认为一个计算机是客户机,而另一个计算机为服务器,其中每个可以是相同的计算机系统的一部分。客户机和服务器可以各自包括多个系统,亚系统,或组成。
应当理解本发明的任意实施方案可以以控制逻辑形式使用硬件(例如,应用专门的集成电路或现场可编程门阵列)和/或使用计算机软件使用以模块或集成方式的一般可编程处理器执行。如本文所使用的,处理器包括在同一个集成芯片上的单核处理器、多核处理器,或在单个电路板或网络化的多个处理单元。基于本文提供的公开和教导,本领域的普通技术人员将知道适合的其它方式和/或方法使用硬件以及硬件和软件的组合来实施本发明的实施方案。
在此申请中所述的任何软件组件或功能可以以被处理器执行的软件代码实施,所述软件代码使用任何合适的计算机语言,诸如例如Java、C、C++、C#、Objective-C、Swift或脚本语言,诸如Perl或Python,使用例如常规或面向对象的技术。软件代码可以被作为一系列指令或命令存储在用于存储和/或传输的计算机可读介质上,合适的介质包括随机存取存储器(RAM)、只读存储器(ROM)、磁介质(诸如硬盘驱动器或软盘)、或光介质(诸如致密盘(DC)或DVD(数字通用盘))、闪存等。计算机可读介质可以是这些存储器或传输设备的任何组合。
还可以使用适配用于经由符合包括因特网的各种协议的有线、光和/或无线网络传输的载波信号,编码和传输这些程序。如此,可以使用以这些程序编码的数据信号,创建根据本发明的实施方案的计算机可读介质。以程序代码编码的计算机可读介质可以与兼容设备封装在一起、或者与其它设备分开提供(例如,经由因特网下载)。任何这样的计算机可读介质可以驻留在单个计算机程序产品(例如,硬盘驱动器、CD或整个计算机系统)上、或在其内,并且可以存在在系统或网络内的不同计算机程序产品上或内。计算机系统可以包括监视器、打印机或其它合适的显示器,用于提供本文提及的任何结果给用户。
可以完全地或部分地利用包括一个或多个处理器(其可以被配置为实施步骤)的计算机系统执行本文所述的任何方法。因此,实施方案可以涉及配置为实施本文所述的任何方法的步骤的计算机系统,其潜在地具有执行相应步骤或相应步骤组的不同组件。虽然呈现为编号的步骤,但是本文的方法的步骤可以在相同时间、或以不同顺序执行。另外,这些步骤的部分可以与来自其它方法的其它步骤的部分一起使用。而且,步骤的全部或部分可以是可选的。另外,任何方法的任何步骤可以利用用于执行这些步骤的模块、电路或其它部件执行。
特定实施方案的具体细节可以以任何合适方式组合,而不违背本发明的实施方案的精神和范围。然而,本发明的其它实施方案可以涉及与每个单独方面、或这些单独方面的具体组合相关的具体实施方案。
已经为了说明和描述的目的呈现了本发明的示例性实施方案的上述描述。其并非意在穷举的、或者将本发明限于所述精确形式,并且,鉴于以上教示,许多修改和变化是可能的。选择和描述实施方案,以便最好地解释本发明的原理和其实际应用,由此使得本领域其它技术人员能够最好地利用各个实施方案中且具有各种适于预期的特定使用的修改的本发明。
“一”、“一个/一种”、“该”的叙述意在意指“一个或多个/一种或多种”,除非具体指示相反意思。使用“或”意图意指“包含性的或”而不是“排除性的或”,除非具体指示相反意思。
为了所有目的,通过全文引用纳入本文提及的所有专利、专利申请、公开出版物和描述。它们都不被承认是现有技术。