用于压缩基因组序列数据的方法技术

技术编号:33079242 阅读:11 留言:0更新日期:2022-04-15 10:27
本发明专利技术涉及一种基于参考的方法,其用于压缩由测序机器产生的基因组序列数据。确定先前已与参考序列比对的核苷酸或碱基的序列与参考序列是完全映射的、不完全映射的还是未映射的;然后根据所述确定进行编码。该确定步骤包括:对于每个不完全映射的序列,将所述序列与参考序列之间的失配的数目与参考阈值进行比较,以及根椐用于压缩由测序机器产生的基因组序列数据的所述比较方法的结果,根据不同的编码过程对不完全映射的序列进行编码。码过程对不完全映射的序列进行编码。码过程对不完全映射的序列进行编码。

【技术实现步骤摘要】
【国外来华专利技术】用于压缩基因组序列数据的方法


[0001]本专利技术整体涉及表示由测序机器产生的基因组测序数据的方法,并且更具体地涉及用于压缩这样的基因组测序数据的计算机实现的方法。本公开提供了一种基于参考的压缩方法,其允许快速压缩和解压缩,同时不引起信息丢失,并且具有高压缩比。

技术介绍

[0002]下一代测序机器现在以可承受的价格产生海量的测序数据。最新的系统在36小时的单次运行中产生超过60亿个150个核苷酸长的序列,足以对20个完整的人类基因组进行测序。这为遗传疾病的诊断和个性化医疗的发展开辟了许多新的视角,旨在适应基于人基因组特异性的治疗。
[0003]然而,这也带来了新的挑战,特别是与存储海量数据相关的成本。用于原始(未比对)序列数据的最常用的文件格式为FASTQ格式,其保存序列数据(A、C、T、G核苷酸的字符串,也称为读段)、质量值(测序平台对每个核苷酸造成测序错误的概率)和序列名称。这是普通ASCII文本文件,通常用通用文本压缩方案LZ(Lempel

Ziv方案,在gzip软件中实现)来压缩。然而,使用此类压缩方法带来了几个问题:
[0004]–
由于数据的冗余未被完全利用而导致的低压缩比
[0005]–
压缩和解压缩缓慢
[0006]还存在专用于FASTQ编码的压缩方法,分为基于参考的方法或基于非参考的方法。然而,它们中没有一个完全令人满意,原因是:a)基于参考的方法具有良好的压缩比,但速度缓慢,b)基于非参考的方法速度较快,但压缩比较低。这种基于非参考的方法的一个示例由软件SPRING提供,该软件是用于FASTQ文件的无参考压缩器(万维网地址:github.com/shubhamchandak94/SPRING)。然而,由软件SPRING提供的压缩方法的压缩比低。
[0007]在基于参考的压缩方法中,已经提出了一些使用序列比对并且旨在具有更快的速度且具有良好压缩比的方法。然而,此类方法遭遇了几个问题,值得注意的一个主要问题是,它们并非完全无损。这种已知的基于参考的压缩方法例如描述于专利文献WO 2018/068829 A1中。在该所描述的方法中,在与一个或多个参考序列比对之后,根据匹配准确度将核苷酸序列分类(从而创建比对读段的类别),然后使用不同的源模型和熵编码器针对其中数据被分区的每一层将这些核苷酸序列编码为多层语法元素。因此,数据的类别被单独编码,并且被构造在语法元素的不同层中,每个层均包含描述符,这些描述符单义地表示所述层的经分类和比对的读段。该方法旨在获得具有简化的信息熵的不同信息源,从而允许提高压缩性能以及对特定类别压缩数据的选择性访问。然而,这种压缩方法以与在读段比对步骤结束时获得的顺序不同的顺序对读段进行重新排序(即,根据其类别对读段进行重新排序)。于是在压缩过程(尤其是初始序列排序)中丢失了一些信息。因此,一些分析结果的再现性可能受到影响,因为一些下游分析软件可能依赖于读段的顺序。此外,以与读段的初始顺序不同的顺序解压缩数据使得检查未压缩文件是否与初始文件相同更加困难。此外,这种压缩方法速度相对缓慢,尤其是在与最先进的基于非参考的压缩方法相比时。

技术实现思路

[0008]本公开通过提供用于压缩基因组序列数据的系统、方法、计算机程序和硬件电路系统来解决现有技术解决方案的问题。在一个方面,公开了用于压缩由测序机器产生的基因组序列数据的计算机实现的方法,所述基因组序列数据包括已与参考序列比对的核苷酸或碱基的序列的读段,从而产生比对读段,所述比对读段作为读段列表存储在初始文件中,所述方法包括:
[0009]‑
针对每个比对读段,确定所述读段与所述参考序列是完全映射的还是不完全映射的,或者所述读段是否与所述参考序列是未映射的,
[0010]‑
根据所述确定对所述读段进行编码,其中根据第一编码过程对被确定为完全映射的所述读段进行编码,并且根据第二编码过程对被确定为未映射的所述读段进行编码,
[0011]‑
其中所述确定步骤包括针对每个不完全映射的读段,将所述读段与所述参考序列之间的失配的数目与阈值进行比较,
[0012]‑
其中,在所述编码步骤中,根据所述第二编码过程或第三编码过程对被确定为不完全映射的所述读段进行编码,当所述失配数目大于所述阈值时,根据所述第二编码过程对所述不完全映射的读段进行编码,当所述失配数目低于所述阈值时,根据所述第三编码过程对所述不完全映射的读段进行编码,
[0013]‑
其中,在所述第二编码过程中,所述读段的每个核苷酸或碱基被单独编码,
[0014]‑
其中所述第一编码过程和所述第三编码过程包括不同的描述符集合,每个描述符集合单义地表示与对应的编码过程相关联的读段,所述第一编码过程和所述第三编码过程中的每一者是简化的信息源熵编码过程。
[0015]本公开克服了现有压缩方法的缺点,方式为:允许快速压缩和解压缩,同时不引起信息丢失,并且提供高压缩比。更具体地,本公开的重点是以最紧凑的方式对最频繁出现的情况进行编码,即使这意味着对于罕见的最不频繁出现的情况采用降级的编码模式。这导致压缩性能的巨大提高。此外,由于本公开所使用的基因组信息表示格式,由本文所述的方法执行的压缩更快。最后但并非最不重要的是,本公开照此保持读段的初始顺序,并且不根据读段的类别对读段进行重新排序。因此,在该过程期间没有信息丢失,这使得能够更容易地进行下游分析,以及在解压缩步骤之后进行有效的一致性检查。
[0016]根据附图和以下具体实施方式,本公开的这些和其他特征和优点将变得更加明显。此外,尽管阈值在本文中可以被称为被超过或未被超过,但是应当理解,可以概念性地采用此类阈值,使得确定此类阈值是否被满足、符合或以其他方式被检测到,而不管用于实现那些阈值评估的数目或值是使用正值还是负值来描述。
[0017]根据本公开的一个创新方面,公开了一种用于压缩基因组序列数据的方法。在一个方面,所述方法可以包括经由通过一个或多个计算机执行软件指令来进行一个或多个操作,其中所述操作包括:由所述一个或多个计算机获得读段记录;由所述一个或多个计算机确定所述读段记录是对应于被完全映射到参考序列的读段还是被不完全映射到所述参考序列的读段;基于由所述一个或多个计算机确定所述读段记录对应于被不完全映射到所述参考序列的读段,由所述一个或多个计算机确定所述不完全映射的读段的失配数目是否满足预先确定的失配阈值数目,以及基于确定所述失配数目满足所述预先确定的失配阈值数目,由所述一个或多个计算机将所述不完全映射的读段的每个失配编码为具有1个字节大
小的记录。
[0018]其他方面包括执行如本文所公开的方法的动作的对应系统、装置和计算机程序,如由在计算机可读存储设备上编码的指令所定义的。
[0019]这些和其他版本可任选地包括以下特征中的一个或多个特征。例如,在一些具体实施中,由所述一个或多个计算机确定所述不完全映射的读段的失配数目是否满足预先确定的失配阈值数目本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种用于压缩由测序机器产生的基因组序列数据的计算机实现的方法,所述基因组序列数据包括已与参考序列比对的核苷酸或碱基的序列的读段,从而产生比对读段,所述比对读段作为读段列表存储在初始文件中,所述方法包括:针对每个比对读段,确定所述读段与所述参考序列是完全映射的还是不完全映射的,或者所述读段是否与所述参考序列是未映射的,根据所述确定对所述读段进行编码,其中根据第一编码过程对被确定为完全映射的所述读段进行编码,并且根据第二编码过程对被确定为未映射的所述读段进行编码,其中确定步骤包括针对每个不完全映射的读段,将所述读段与所述参考序列之间的失配的数目与阈值进行比较,其中,在编码步骤中,根据所述第二编码过程或第三编码过程对被确定为不完全映射的所述读段进行编码,当所述失配数目大于所述阈值时,根据所述第二编码过程对所述不完全映射的读段进行编码,并且当所述失配数目低于所述阈值时,根据所述第三编码过程对所述不完全映射的读段进行编码,其中,在所述第二编码过程中,所述读段的每个核苷酸或碱基被单独编码,其中所述第一编码过程和所述第三编码过程包括不同的描述符集合,每个描述符集合单义地表示与对应的编码过程相关联的所述读段,所述第一编码过程和所述第三编码过程中的每一者是简化的信息源熵编码过程。2.根据权利要求1所述的方法,其中所述确定步骤包括当读段被确定为与所述参考序列不完全映射并且具有低于所述阈值的失配数目时的进一步确定,所述进一步确定有关于所述读段与所述参考序列是全局映射的还是局部映射的,并且其中所述第三编码过程包括第一编码子过程和第二编码子过程,根据所述第一编码子过程对被确定为全局映射的所述读段进行编码,根据所述第二编码子过程对被确定为局部映射的所述读段进行编码,所述第一编码子过程和所述第二编码子过程包括不同的描述符集合,每个描述符集合单义地表示与对应的编码子过程相关联的所述读段。3.根据权利要求2所述的方法,其中所述第一编码子过程的所述描述符包括所述参考序列中的比对起始位置、读段长度和由符号替换表示的失配列表,并且其中所述第二编码子过程的所述描述符包括所述参考序列中的局部比对起始位置、读段长度、由符号替换表示的失配列表,以及不是所述比对的一部分的所述读段的剪切部分的长度。4.根据权利要求3所述的方法,其中,在所述编码步骤中,将要根据所述第二编码子过程编码的读段的所述剪切部分串联,所述剪切部分的每个核苷酸或碱基被单独编码。5.根据前述权利要求中任一项所述的方法,其中,在所述编码步骤中,在1个字节上编码不完全映射的读段的每个失配。6.根据权利要求5所述的方法,其中,在所述编码步骤中,不完全映射的读段的每个失配如下编码:
·
所述字节的前两位用于编码所述读段中存在的替代核苷酸或碱基而不是所述参考序列中的对应参考核苷酸或碱基;并且
·
所述字节的后六位用于编码所述参考序列中的所述失配的位置,所述位置被计算为相对于所述读段的前一个失配的偏移。7.根据权利要求6所述的方法,其中,在所述编码步骤中,如果在给定失配与所述前一
个失配之间计算出的所述偏移大于最大可编码值,则在所述两个失配之间插入至少一个假失配,直到所述失配中的每一者与所述至少一个假失配之间的每个偏移都低于所述最大可编码值,假失配被定义为这样的失配:对于所述失配,所述字节的位用于编码所述失配,或者用于编码与所述参考序列中的对应参考核苷酸或碱基相等的核苷酸或碱基。8.根据前述权利要求中任一项所述的方法,还包括将所述读段列表划分为读段块的初始步骤,其中每个块开始于包含对所述块进行解码所需的信息的标头,其中所述压缩方法逐块进行。9.根据权利要求8所述的方法,其中所述读段块具有相同的块大小。10.根据前述权利要求中任一项所述的方法,还包括提供包含编码读段列表的压缩文件的最终步骤,所述编码读段以与存储在所述初始文件中的所述读段的顺序相同的顺序存储在所述压缩文件中。11.根据前述权利要求中任一项所述的方法,其中所述阈值等于31。12.根据前述权利要求中任一项所述的方法,还包括:针对每个比对读段,确定所述读段是否包含至少一个对应于所述测序机器不能检出任何碱基或核苷酸的情况的失配的步骤。13.根据权利要求12所述的方法,还包括:针对每个包含至少一个对应于所述测序机器不能检出任何碱基或核苷酸的情况的失配的读段,确定此类失配的数目的步骤,以及将所述数目与参考阈值进行比较的步骤。14.根据权利要求13所述的方法,其中,在所述编码步骤中,如果此类失配的数目大于所述参考阈值,则将要根据所述第二编码过程编码的读段的每个核苷酸或碱基以4位单独编码,并且如果此类失配的数目低于所述参考阈值,则将要根据所述第二编码过程编码的读段的每个核苷酸或碱基以2位单独编码,并且所述编码步骤还包括编码沿着所述参考序列的位置的列表,所述位置对应于所述参考序列中的此类失配的位置。15.一种在计算机可读存储介质上体现的计算机程序产品,所述计算机程序产品包括计算机可执行指令,所述计算机可执行指令在由处理器执行时,使得所述处理器执行包括前述权利要求中任一项所述的方法的所述步骤的操作。16.一种具有计算机可执行指令的计算机可读存储介质,所述计算机可执行指令在由处理器执行时,使得所述处理器执行包括权利要求1至14中任一项所述的方法的所述步骤的操作。17.一种设备,包括:处理器;和存储器,其可操作地耦接到所述处理器以形成计算装置,所述存储器存储处理器可执行指令,所述处理器可执行指令至少基于在所述处理器上被执行而使得所述处理器执行包括权利要求1所述的方法的所述步骤的操作。18.一种用于压缩基因组序列数据的方法,所述方法包括:由所述一个或多个处理器访问存储装置,所述存储装置以保留由映射和比对模块产生的多个读段记录的序列排序的方式存储所述多个读段记录;针对所述多个读段记录中的每个特定读段记录:由所述一个或多个处理器获得所述特定读段记录;
由所述一个或多个处理器确定所述特定读段记录是对应于被完全映射到参考序列的读段还是被不完全映射到所述参考序列的读段;基于由所述一个或多个处理器确定所述特定读段记录对应于被不完全映射到所述参考序列的读段,由所述一个或多个处理器确定所述不完全映射的读段的失配数目是否满足预先确定的失配阈值数目;基于确定所述失配数目满足所述预先确定的失配阈值数目,由所述一个或多个处理器将所述不完全映射的读段的每个失配编码为具有预先确定的压缩记录大小的压缩记录;以及由所述一个或多个处理器将所述压缩记录存储在所述存储装置中,同时维持所述读段记录的所述序列排序。19.根据权利要求18所述的方法,其中所述多个读段记录中的每个读段记录包括:指示所述比对读段相对于所述参考序列的绝对起始位置的数据,指示所述读段的长度的数据,指示所述读段是完全映射的还是不完全映射的数据,指示在所述读段中识别的失配的数目的数据,指示所述读段是否包括至少一个未确定的碱基N的数据,指示所述读段中的未确定的碱基N的数目的数据,指示所述读段是映射的还是未映射的数据,指示所述读段记录在由所述映射和比对模块输出的读段记录序列中的位置的数据,以及指示所述读段中的所述可能失配的相对位置的数据。20.根据权利要求18所述的方法,其中所述预先确定的压缩记录大小是一个字节。21.根据权利要求20所述的方法,其中将所述不完全映射的读段的每个失配编码为具有一个字节大小的压缩记录包括:针对每个特定失配,由一个或多个处理器编码所述字节的前两位以包括表示存在于所述读段中的替代核苷酸或碱基而不是所述参考序列中的对应参考核苷酸或碱基的数据;以及由一个或多个处理器编码所述字节的剩余六位以包括表示所述参考序列中的所述失配的位置的数据,所述位置被计算为相对于所述读段的前一个失配的偏移。22.根据权利要求21所述的方法,所述方法还包括:由一个或多个处理器确定所述偏移是否大于最大可编码值;基于确定所述偏移大于所述最大编码值,由一个或多个处理器在所述特定失配与所述前一个失配之间插入至少一个假失配。23.根据权利要求18所述的方法,其中所述方法还包括:基于确定所述失配数目不满足所述预先确定的失配阈值数目,由一个或多个处理器使用简化的信息熵编码过程将对应于所述失配中的每一者的位置的所述参考序列的位置列表编码到所述参考序列中。24.根据权利要求18所述的方法,其中所述方法还包括:基于确定所述读段记录对应于被完全映射到所述参考序列的读段,由所述一个或多个处理器使用简化的信息熵编码来编码所述读段记录的至少一部分。
25.根据权利要求18所述的方法,其中由所述一个或多个计算机确定所述不完全映射的读段的失配数目是否满足预先确定的失配阈值数目包括:由所述一个或多个处理器确定所述不完全映射的读段的所述失配数目是否大于所述参考阈值。26.一种用于压缩基因组序列数据的系统,所述系统包括:一个或多个计算机,和存储指令的一个或多个存储装置,所述指令在由一个或多个计算机执行时,能够操作以使得所述一个或多个计算机执行以下操作,所述操作包括:由所述一个或多个计算机访问存储装置,所述存储装置以保留由映射和比对模块产生的多个读段记录的序列排序的方式存储所述多个读段记录;针对所述多个读段记录中的每个特定读段记录:由所述...

【专利技术属性】
技术研发人员:G
申请(专利权)人:因美纳有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1