基因测序数据解压方法、系统及计算机可读介质转让专利

申请号 : CN201710982666.5

文献号 : CN109698703B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李根宋卓刘蓬侠王振国冯博伦

申请人 : 人和未来生物科技(长沙)有限公司

摘要 :

本发明公开了一种基因测序数据解压方法、系统及计算机可读介质,解压方法包括遍历获取待解压读序列Rc,针对每一条待解压读序列Rc解压重构为正负链类型d、k位原始基因序列CS1和可逆运算结果CS2;以CS1作为初始的短串K‑mer通过预测数据模型P1获取相邻位对应的预测字符c,滑动窗口迭代获取预测字符集PS,将CS2、PS编码后通过可逆函数的反函数进行逆向运算解密;将CS1、解密结果组合得到读序列R。本发明具有压缩率低,解压时间短,解压性能稳定的优点,不需要对基因数据进行精准比对,有较高的计算效率,预测数据模型的预测准确度越高,则可逆运算结果中的重复字符串就越多,压缩的压缩率就越低。

权利要求 :

1.一种基因测序数据解压方法,其特征在于实施步骤包括:

1)从待解压的基因测序数据datac中遍历获取待解压读序列Rc;

2)针对每一条待解压读序列Rc,首先将待解压读序列Rc解压重构为正负链类型d、k位原始基因序列CS1和长度为Lr-k位的可逆运算结果CS2;以k位原始基因序列CS1作为初始的短串K-mer,将短串K-mer通过预设的预测数据模型P1获取短串K-mer相邻位对应的预测字符c,所述预测数据模型P1包含参考基因组的正链及负链中任意短串K-mer及其相邻位对应的预测字符c,每获得一个预测字符c则将新的预测字符c和短串K-mer的后k-1位构成新的短串K-mer通过预设的预测数据模型P1迭代获取新的预测字符c,最终得到所有预测字符c构成长度为Lr-k位的预测字符集PS,将可逆运算结果CS2、预测字符集PS编码后通过可逆函数的反函数进行逆向运算,得到Lr-k位的可逆运算结果CS2的解密结果;将k位原始基因序列CS1、可逆运算结果CS2的解密结果组合后得到待解压读序列Rc对应的原始读序列R并输出。

2.根据权利要求1所述的基因测序数据解压方法,其特征在于,步骤2)的详细步骤包括:

2.1)从待解压的基因测序数据datac中遍历获取一条待解压读序列Rc;

2.2)将待解压读序列Rc解压重构为正负链类型d、k位原始基因序列CS1和长度为Lr-k位的可逆运算结果CS2;

2.3)以k位原始基因序列CS1作为初始的短串K-mer,将短串K-mer通过预设的预测数据模型P1获取短串K-mer相邻位对应的预测字符c,所述预测数据模型P1包含参考基因组的正链及负链中任意短串K-mer及其相邻位对应的预测字符c,每获得一个预测字符c则将新的预测字符c和短串K-mer的后k-1位构成新的短串K-mer通过预设的预测数据模型P1迭代获取新的预测字符c,最终得到所有预测字符c构成长度为Lr-k位的预测字符集PS;

2.4)将可逆运算结果CS2、预测字符集PS编码后通过可逆函数的反函数进行逆向运算,得到Lr-k位的可逆运算结果CS2的解密结果;

2.5)将k位原始基因序列CS1、可逆运算结果CS2的解密结果组合后得到待解压读序列Rc对应的原始读序列R并输出;

2.6)判断待解压的基因测序数据datac的待解压读序列Rc是否遍历完毕,如果尚未遍历完毕,则跳转执行步骤2.1);否则结束并退出。

3.根据权利要求2所述的基因测序数据解压方法,其特征在于,步骤2.3)的详细步骤包括:

2.3.1)创建对应短串K-mer的窗口变量CS和预测字符集PS,设置窗口变量CS的初始值为k位原始基因序列CS1,创建迭代变量j并设置初始值为0;

2.3.2)将窗口变量CS、待解压读序列Rc的正负链类型d构建元组(CS,d),使用映射函数将元组(CS,d)映射到一个[0,L]范围的整数集合中,其中L是整数集合的上确界且等于预测数据模型P1的长度,0是整数集合的下确界,所述预测数据模型P1包含参考基因组的正链及负链中任意短串K-mer及其相邻位对应的预测字符c,且预测数据模型P1为长度为L的基因字符串;

2.3.3)用映射函数得到的函数值i查询预测数据模型P1中的第i位P1[i]作为窗口变量CS相邻位对应的预测字符c,其中i∈[0,L];将预测字符c赋值给预测字符集PS中的第j位,其中j∈[0,Lr-k],Lr-k为可逆运算结果CS2的长度;

2.3.4)将窗口变量CS的后k-1位和当前得到的预测字符c组合后赋值给窗口变量CS,将迭代变量j加1;

2.3.5)判断迭代变量j大于可逆运算结果CS2的长度(Lr-k)是否成立,如果成立则跳转执行下一步,否则,跳转执行步骤2.3.2);

2.3.6)输出长度为(Lr-k)的预测字符集PS。

4.根据权利要求2所述的基因测序数据解压方法,其特征在于,步骤2.3)的详细步骤包括:S2.3.1)创建对应短串K-mer的窗口变量CS和预测字符集PS,设置窗口变量CS的初始值为k位原始基因序列CS1,创建迭代变量j并设置初始值为0;

S2.3.2)将窗口变量CS输入预测数据模型P1得到短串K-mer在参考基因组的正链及负链中相邻位对应的预测字符c,所述预测数据模型P1为预先基于参考基因组中的短串K-mer及其相邻位对应的碱基字母c0完成训练的神经网络模型;

S2.3.3)将预测字符c赋值给预测字符集PS中的第j位,其中j∈[0,Lr - k],Lr-k为可逆运算结果CS2的长度;

S2.3.4)将窗口变量CS的后k-1位和当前得到的预测字符c组合后赋值给窗口变量CS,将迭代变量j加1;

S2.3.5)判断迭代变量j大于可逆运算结果CS2的长度(Lr-k)是否成立,如果成立则跳转执行下一步,否则,跳转执行步骤2.3.2);

S2.3.6)输出长度为(Lr-k)的预测字符集PS。

5.根据权利要求1所述的基因测序数据解压方法,其特征在于,所述可逆函数具体是指XOR异或函数或位减法函数,XOR异或函数的反函数为XOR异或函数,位减法函数的反函数为位加法函数。

6.根据权利要求1~5中任意一项所述的基因测序数据解压方法,其特征在于,步骤2)中的解压重构具体是指使用统计模型和熵编码的逆算法进行解压重构。

7.一种基因测序数据解压系统,包括计算机系统,其特征在于,所述计算机系统被编程以执行权利要求1~6中任意一项所述的基因测序数据解压方法的步骤。

8.一种计算机可读介质,所述计算机可读介质上存储有计算机程序,其特征在于,所述计算机程序使计算机执行权利要求1~6中任意一项所述的基因测序数据解压方法的步骤。

说明书 :

基因测序数据解压方法、系统及计算机可读介质

技术领域

[0001] 本发明涉及基因测序和数据压缩技术,具体涉及一种基因测序数据解压方法、系统及计算机可读介质。

背景技术

[0002] 近年来,随着下一代测序技术(Next Generation Sequence, NGS)的持续进步,基因测序的速度更快,成本更低,基因测序技术得以在更加广泛的生物、医疗、健康、刑侦、农业等等许多领域被推广应用,从而导致基因测序产生的原始数据量以每年3到5倍、甚至更快的速度爆炸式增长。而且,每个基因测序样本数据又很大,例如一个人的55x全基因组测序数据大约是400GB。因此,海量的基因测试数据的存储、管理、检索和传输面临技术和成本的挑战。
[0003] 数据压缩(data compression)就是缓解这个挑战的技术之一。数据压缩,是为了减少存储空间而把数据转换成比原始格式更紧凑形式的过程。原始的输入数据包含我们需要压缩或减小尺寸的符号序列。这些符号被压缩器编码,输出结果是编码过的数据。通常在之后的某个时间,编码后的数据会被输入到一个解压缩器,在这里数据被解码、重建,并以符号序列的形式输出原始数据。如果输出数据和输入数据始终完全相同,那么这个压缩方案被称为无损的(lossless),也称无损编码器。否则,它就是一个有损的(lossy)压缩方案。
[0004] 目前,世界各国研究人员已经开发出多种用于基因测序数据的压缩方法。基于基因测序数据的用途,其压缩后必须随时可以重建、恢复成原始数据,因此,有实际意义的基因测序数据压缩方法都是无损压缩。如果按总的技术路线分类,可以将基因测序数据压缩方法分成三大类:通用(general purpose)压缩算法、有参考基因组(reference-based)的压缩算法和无参考基因组(reference-free)的压缩算法。
[0005] 通用压缩算法,就是不考虑基因测序数据的特点,采用通用的压缩方法进行数据压缩。
[0006] 无参考基因组压缩算法,就是不使用参考基因组,只是利用基因测序数据自身的特点,采用某种压缩方法对目标样本数据直接进行数据压缩。已有的无参考基因组压缩算法常用的压缩方法有霍夫曼编码、以LZ77和LZ78为代表的字典方法、算术编码等基础的压缩算法及其变种和优化。
[0007] 有参考基因组压缩算法,就是选取某个基因组数据作为参考基因组,利用基因测序数据自身的特点,以及目标样本数据和参考基因组数据之间的相似性,间接进行数据压缩。已有的有参考基因组压缩算法常用的相似性表示、编码和压缩方法主要还是霍夫曼编码、以LZ77和LZ78为代表的字典方法、算术编码等基础的压缩算法及其变种和优化。
[0008] 衡量压缩算法性能或效率的2个最常用的技术指标是:压缩率(compression ratio)或压缩比;压缩/解压时间或压缩/解压速度。压缩率=(压缩后数据大小/压缩前数据大小)x 100%,压缩比=(压缩前数据大小/压缩后数据大小),即压缩率和压缩比互为倒数。压缩率和压缩比只和压缩算法本身有关,多种算法间可以直接进行比较,压缩率越小或压缩比越大,表明算法性能或效率越好;压缩/解压时间,即从读取原始数据到解压完成所需的机器运行时间;压缩/解压速度,即平均每单位时间可以处理压缩的数据量。压缩/解压时间和压缩/解压速度,既和压缩算法本身有关,也和使用的机器环境(包括硬件和系统软件)有关,因此,多种算法必须基于相同的机器环境运行,压缩/解压时间或压缩/解压速度的比较才有意义,在此前提下,压缩/解压时间越短,压缩/解压速度越快,表明算法性能或效率越好。另外,还有一个参考技术指标是运行时的资源消耗,主要是机器存储的峰值。在压缩率和压缩/解压时间相当的情况下,对存储的要求越少,表明算法性能或效率越好。
[0009] 根据研究人员对已有的基因测序数据压缩方法的比较研究结果,无论是通用压缩算法、无参考基因组的压缩算法,还是有参考基因组压缩算法,都存在的问题有:1、压缩率还有进一步下降的空间;2、在获得相对较好的压缩率时,算法的压缩/解压时间相对较长,时间成本成为新的问题。此外,与通用压缩算法和无参考基因组压缩算法相比,有参考基因组压缩算法通常能获得更好的压缩率。但是,对于有参考基因组的压缩算法,参考基因组的选择会导致算法性能的稳定性问题,即处理相同的目标样本数据,当选择不同的参考基因组时,压缩算法性能可能存在明显差异;而使用相同的参考基因组选择策略,当处理同种的、不同的基因测序样本数据时,压缩算法的性能同样可能存在明显差异。

发明内容

[0010] 本发明要解决的技术问题:针对现有技术的上述问题,提供一种基因测序数据解压方法、系统及计算机可读介质,本发明的基因测序数据解压方法是一种无损的、有参考基因组的基因测序数据解压方法,具有压缩率低、解压时间短、解压缩性能稳定的优点,不需要对基因数据进行精准比对,有较高的计算效率,预测数据模型P1的预测准确度越高,则可逆运算结果中的重复字符串就越多,从而压缩的压缩率就越低。
[0011] 为了解决上述技术问题,本发明采用的技术方案为:
[0012] 一方面,本发明提供一种基因测序数据解压方法,实施步骤包括:
[0013] 1)从待解压的基因测序数据datac中遍历获取待解压读序列Rc;
[0014] 2)针对每一条待解压读序列Rc,首先将待解压读序列Rc解压重构为正负链类型d、k位原始基因序列CS1和长度为Lr-k位的可逆运算结果CS2;以k位原始基因序列CS1作为初始的短串K-mer,将短串K-mer通过预设的预测数据模型P1获取短串K-mer相邻位对应的预测字符c,所述预测数据模型P1包含参考基因组的正链及负链中任意短串K-mer及其相邻位对应的预测字符c,每获得一个预测字符c则将新的预测字符c和短串K-mer的后k-1位构成新的短串K-mer通过预设的预测数据模型P1迭代获取新的预测字符c,最终得到所有预测字符c构成长度为Lr-k位的预测字符集PS,将可逆运算结果CS2、预测字符集PS编码后通过可逆函数的反函数进行逆向运算,得到Lr-k位可逆运算结果CS2的解密结果;将k位原始基因序列CS1、可逆运算结果CS2的解密结果组合后得到待解压读序列Rc对应的原始读序列R并输出。
[0015] 优选地,步骤2)的详细步骤包括:
[0016] 2.1)从待解压的基因测序数据datac中遍历获取一条待解压读序列Rc;
[0017] 2.2)将待解压读序列Rc解压重构为正负链类型d、k位原始基因序列CS1和长度为Lr-k位的可逆运算结果CS2;
[0018] 2.3)以k位原始基因序列CS1作为初始的短串K-mer,将短串K-mer通过预设的预测数据模型P1获取短串K-mer相邻位对应的预测字符c,所述预测数据模型P1包含参考基因组的正链及负链中任意短串K-mer及其相邻位对应的预测字符c,每获得一个预测字符c则将新的预测字符c和短串K-mer的后k-1位构成新的短串K-mer通过预设的预测数据模型P1迭代获取新的预测字符c,最终得到所有预测字符c构成长度为Lr-k位的预测字符集PS;
[0019] 2.4)将可逆运算结果CS2、预测字符集PS编码后通过可逆函数的反函数进行逆向运算,得到Lr-k位可逆运算结果CS2的解密结果;
[0020] 2.5)将k位原始基因序列CS1、可逆运算结果CS2的解密结果组合后得到待解压读序列Rc对应的原始读序列R并输出;
[0021] 2.6)判断待解压的基因测序数据datac的待解压读序列Rc是否遍历完毕,如果尚未遍历完毕,则跳转执行步骤2.1);否则结束并退出。
[0022] 优选地,步骤2.3)的详细步骤包括:
[0023] 2.3.1)创建对应短串K-mer的窗口变量CS和预测字符集PS,设置窗口变量CS的初始值为k位原始基因序列CS1,创建迭代变量j并设置初始值为0;
[0024] 2.3.2)将窗口变量CS、待解压读序列Rc的正负链类型d构建元组(CS,d),使用映射函数将元组(CS,d)映射到一个[0,L]范围的整数集合中,其中L是整数集合的上确界且等于预测数据模型P1的长度,0是整数集合的下确界,所述预测数据模型P1包含参考基因组的正链及负链中任意短串K-mer及其相邻位对应的预测字符c;
[0025] 2.3.3)用映射函数得到的函数值i查询预测数据模型P1中的第i位P1[i]作为窗口变量CS相邻位对应的预测字符c,其中i∈[0,L];将预测字符c赋值给预测字符集PS中的第j位,其中j∈[0,Lr - k],Lr-k为可逆运算结果CS2的长度;
[0026] 2.3.4)将窗口变量CS的后k-1位和当前得到的预测字符c组合后赋值给窗口变量CS,将迭代变量j加1;
[0027] 2.3.5)判断迭代变量j大于可逆运算结果CS2的长度(Lr-k)是否成立,如果成立则跳转执行下一步,否则,跳转执行步骤2.3.2);
[0028] 2.3.6)输出长度为(Lr-k)的预测字符集PS。
[0029] 优选地,步骤2.3)的详细步骤包括:
[0030] S2.3.1)创建对应短串K-mer的窗口变量CS和预测字符集PS,设置窗口变量CS的初始值为k位原始基因序列CS1,创建迭代变量j并设置初始值为0;
[0031] S2.3.2)将窗口变量CS输入预测数据模型P1得到短串K-mer在参考基因组的正链及负链中相邻位对应的预测字符c,所述预测数据模型P1为预先基于参考基因组中的短串K-mer及其相邻位对应的碱基字母c0完成训练的神经网络模型;
[0032] S2.3.3)将预测字符c赋值给预测字符集PS中的第j位,其中j∈[0,Lr - k],Lr-k为可逆运算结果CS2的长度;
[0033] S2.3.4)将窗口变量CS的后k-1位和当前得到的预测字符c组合后赋值给窗口变量CS,将迭代变量j加1;
[0034] S2.3.5)判断迭代变量j大于可逆运算结果CS2的长度(Lr-k)是否成立,如果成立则跳转执行下一步,否则,跳转执行步骤2.3.2);
[0035] S2.3.6)输出长度为(Lr-k)的预测字符集PS。
[0036] 优选地,所述可逆函数具体是指XOR异或函数或位减法函数,XOR异或函数的反函数为XOR异或操作,位减法函数的反函数为位加法函数。
[0037] 优选地,步骤2)中的解压重构具体是指使用统计模型和熵编码的逆算法进行解压重构。
[0038] 另一方面,本发明还提供一种基于字符预测的基因测序数据解压系统,包括计算机系统,所述计算机系统被编程以执行本发明前述的基因测序数据解压方法的步骤。
[0039] 此外,本发明还提供一种计算机可读介质,计算机可读介质上存储有计算机程序,所述计算机程序使计算机执行本发明前述的基因测序数据解压方法的步骤。
[0040] 本发明基因测序数据解压方法具有下述优点:
[0041] 1、本发明是一种无损的、有参考基因组的基因测序数据解压方法,通过利用参考基因组的预测数据模型P1,能够有效提升基因序列数据的压缩倍率,具有压缩率低,解压时间短,解压缩性能稳定的优点。
[0042] 2、区别于现有技术使用参考序列进行基因序列精准比对后再进行数据压缩,本发明不需要对基因数据进行精准比对,有较高的计算效率;预测数据模型P1的预测准确度越高,则可逆运算结果中的重复字符串就越多,从而压缩的压缩率就越低。

附图说明

[0043] 图1为本发明实施例方法的基本原理示意图。

具体实施方式

[0044] 参见图1,本实施例基因测序数据解压方法的实施步骤包括:
[0045] 1)从待解压的基因测序数据datac中遍历获取待解压读序列Rc;
[0046] 2)针对每一条待解压读序列Rc,首先将待解压读序列Rc解压重构为正负链类型d、k位原始基因序列CS1和长度为Lr-k位的可逆运算结果CS2;以k位原始基因序列CS1作为初始的短串K-mer,将短串K-mer通过预设的预测数据模型P1获取短串K-mer相邻位对应的预测字符c,所述预测数据模型P1包含参考基因组的正链及负链中任意短串K-mer及其相邻位对应的预测字符c,每获得一个预测字符c则将新的预测字符c和短串K-mer的后k-1位构成新的短串K-mer通过预设的预测数据模型P1迭代获取新的预测字符c,最终得到所有预测字符c构成长度为Lr-k位的预测字符集PS,将可逆运算结果CS2、预测字符集PS编码后通过可逆函数的反函数进行逆向运算,得到Lr-k位的可逆运算结果CS2的解密结果;将k位原始基因序列CS1、可逆运算结果CS2的解密结果组合后得到待解压读序列Rc对应的原始读序列R并输出。
[0047] 需要说明的是,获取相邻位的预测字符c时,相邻位的定义和k位原始基因序列CS1的位置定义相关,如果k位原始基因序列CS1的位置定义为读序列R的前k位,则相邻位是指下一位;如果k位原始基因序列CS1的位置定义为读序列R的后k位,则相邻位是指上一位;如果k位原始基因序列CS1的位置定义为读序列R的中间k位,则相邻位包括上一位和下一位。参见图1,本实施例中k位原始基因序列CS1的位置定义为读序列R的前k位,相邻位具体是指下一位。对应地,长度为Lr-k位的可逆运算结果CS2读序列R中的后Lr-k位原始基因字母对应的加密内容。
[0048] 本实施例中,步骤2)的详细步骤包括:
[0049] 2.1)从待解压的基因测序数据datac中遍历获取一条待解压读序列Rc;
[0050] 2.2)将待解压读序列Rc解压重构为正负链类型d、k位原始基因序列CS1和长度为Lr-k位的可逆运算结果CS2;其中正负链类型d为0或1,0表示读序列R来自正链,1表示读序列R来自负链;
[0051] 2.3)以k位原始基因序列CS1作为初始的短串K-mer,将短串K-mer通过预设的预测数据模型P1获取短串K-mer相邻位对应的预测字符c,所述预测数据模型P1包含参考基因组的正链及负链中任意短串K-mer及其相邻位对应的预测字符c,每获得一个预测字符c则将新的预测字符c和短串K-mer的后k-1位构成新的短串K-mer通过预设的预测数据模型P1迭代获取新的预测字符c,最终得到所有预测字符c构成长度为Lr-k位的预测字符集PS;
[0052] 2.4)将可逆运算结果CS2、预测字符集PS编码后通过可逆函数的反函数进行逆向运算,得到Lr-k位可逆运算结果CS2的解密结果;
[0053] 2.5)将k位原始基因序列CS1、可逆运算结果CS2的解密结果组合后得到待解压读序列Rc对应的原始读序列R并输出;
[0054] 2.6)判断待解压的基因测序数据datac的待解压读序列Rc是否遍历完毕,如果尚未遍历完毕,则跳转执行步骤2.1);否则结束并退出。
[0055] 需要说明的是,步骤2.5)将k位原始基因序列CS1、可逆运算结果CS2的解密结果组合时,需要保持k位原始基因序列CS1、可逆运算结果CS2的解密结果组合的原始顺序。如果k位原始基因序列CS1的位置定义为读序列R的前k位,则k位原始基因序列CS1在前、可逆运算结果CS2的解密结果在后进行组合即可。如果k位原始基因序列CS1的位置定义为读序列R的后k位,则k位原始基因序列CS1在后、可逆运算结果CS2的解密结果在前进行组合即可。如果k位原始基因序列CS1的位置定义为读序列R的中间k位,则相邻位包括上一位和下一位,此时可逆运算结果CS2的解密结果同样也会包含k位原始基因序列CS1前的若干位和k位原始基因序列CS1后的若干位,此时则将包含k位原始基因序列CS1前的若干位、k位原始基因序列CS1、k位原始基因序列CS1后的若干位进行组合即可。
[0056] 本实施例中,步骤2.3)的详细步骤包括:
[0057] 2.3.1)创建对应短串K-mer的窗口变量CS和预测字符集PS,设置窗口变量CS的初始值为k位原始基因序列CS1,创建迭代变量j并设置初始值为0;
[0058] 2.3.2)将窗口变量CS、待解压读序列Rc的正负链类型d构建元组(CS,d),使用映射函数将元组(CS,d)映射到一个[0,L]范围的整数集合中,其中L是整数集合的上确界且等于预测数据模型P1的长度,0是整数集合的下确界,所述预测数据模型P1包含参考基因组的正链及负链中任意短串K-mer及其相邻位对应的预测字符c;
[0059] 2.3.3)用映射函数得到的函数值i查询预测数据模型P1中的第i位P1[i]作为窗口变量CS相邻位对应的预测字符c,其中i∈[0,L];将预测字符c赋值给预测字符集PS中的第j位,其中j∈[0,Lr - k],Lr-k为可逆运算结果CS2的长度;
[0060] 2.3.4)将窗口变量CS的后k-1位和当前得到的预测字符c组合后赋值给窗口变量CS,将迭代变量j加1;
[0061] 2.3.5)判断迭代变量j大于可逆运算结果CS2的长度(Lr-k)是否成立,如果成立则跳转执行下一步,否则,跳转执行步骤2.3.2);
[0062] 2.3.6)输出长度为(Lr-k)的预测字符集PS。
[0063] 本实施例中,步骤2.4)中的可逆函数具体是指XOR异或函数、XOR异或操作的反函数为XOR异或函数;本实施例中,A、C、G、T四种基因字母分别被编码为00、01、10和11四种字符编码,例如某一位基因字母为A,而预测字符c同样为A,则该位的XOR异或操作结果(可逆运算结果)为00,否则XOR异或操作结果根据预测字符c不同而有所不同;在解压时,针对预测字符c的字符编码和XOR异或操作结果(可逆运算结果)再进行XOR异或操作(通过可逆函数的反函数的逆向操作),即可复原得到原始的基因字母。将A、C、G、T四种基因字母分别被编码为00、01、10和11四种字符编码是一种优选的比较精简的编码方式,此外也可以根据需要采用其他的二进制编码方式,同样也可以实现基因字母、预测字符、可逆运算结果三者的可逆转换。毫无疑问,除了XOR异或运算以外,步骤2.4)中的可逆函数也可以采用位减法函数,此时则可逆函数的反函数为位加法函数,同样也可以实现基因字母、预测字符、可逆运算结果三者的可逆转换。
[0064] 本实施例中,步骤2)中的解压重构具体是指使用统计模型和熵编码的逆算法进行解压重构。
[0065] 本实施例中,步骤1)中的预测数据模型P1生成步骤包括:
[0066] A1)获取待处理的参考基因组数据dataref(参考基因组数据dataref为一个或多个物种的完整或部分参考基因组或物种中某一个具体个体测序得到的基因序列);
[0067] A2)获取参考基因组数据dataref中作为短串K-mer的任意定长子字符串及其预测字符c之间的映射关系,得到包含参考基因组的正链及负链中任意短串K-mer及其相邻位对应的预测字符c的预测数据模型P1。短串K-mer的长度k一般取值为16 32中的一个具体值。~
[0068] 其中,步骤A2)的实施步骤包括:
[0069] A2.1)按照指定间隔顺序提取参考基因组数据dataref的正链S1中的定长子字符串作为短串K-mer构造正链短串集合KS1,正链S1为原始顺序的参考基因组数据dataref本身;
[0070] A2.2)按照指定间隔顺序提取参考基因组数据 dataref的负链S2中的定长子字符串作为短串K-mer构造负链短串集合KS2,负链S2为参考基因组数据 dataref的逆序互补基因序列,逆序互补基因序列和参考基因组数据dataref之间碱基A和T互换、碱基C和G互换;
[0071] A2.3)根据正链短串集合KS1、负链短串集合KS2生成参考基因组数据 dataref对应的预测数据模型P1,预测数据模型P1包含正链S1及负链S2中的任意短串K-mer及其对应的统计得到的最大可能下一位的预测字符c之间的映射关系。
[0072] 其中,步骤A2.3)的详细步骤包括:
[0073] A2.3.1)针对正链短串集合KS1顺序提取短串K-mer并构造正链预测集合KP1,正链短串集合KS1中的每一个元素在正链预测集合KP1中存在一个对应的元组,该元组至少包含三种信息:短串K-mer、来自正链的标记d、在正链S1中的下一个碱基字母c0;
[0074] A2.3.2)针对负链短串集合KS2顺序提取短串K-mer并构造负链预测集合KP2,负链短串集合KS2中的每一个元素在负链预测集合KP2中存在一个对应的元组,该元组至少包含三种信息:短串K-mer、自负链的标记d、元素在负链S2中的下一个碱基字母c0;
[0075] A2.3.3)将正链预测集合KP1和负链预测集合KP2中的元组映射到碱基字母A、C、G、T,统计正链S1及负链S2中的任意短串K-mer及其对应的统计得到的最大可能下一位的碱基字母,得到包含正链S1及负链S2中的任意短串K-mer及其对应的统计得到的最大可能下一位的预测字符c之间的映射关系预测数据模型P1。
[0076] 其中,步骤A2.3.3)的详细步骤包括:
[0077] A2.3.3.1)逐个从正链预测集合KP1、负链预测集合KP2中取出每一个元组(k-mer,d, c0),其中k-mer为元组对应的短串K-mer,d为正负链类别,d=0表示为正链,d=1 表示为负链,c0为元组对应的短串K-mer在正链S1或负链S2中相邻位对应的碱基字母;
[0078] A2.3.3.2)使用预设的映射函数,将取出的每一个元组(k-mer,d, c0) 的子元组(k-mer,d)映射到一个范围为[0,L]的整数集合中的某一行生成一个L行4列的二维统计表F且由元组(k-mer,d, c0)中元组对应的短串K-mer在正链S1或负链S2中相邻位对应的碱基字母c0确定其命中行的对应列,其中L是整数集合的上确界,0是整数集合的下确界,统计整数集合中每个值对应出现的碱基字母A、C、G、T的数目,二维统计表F中的4列对应碱基字母A、C、G、T,二维统计表F中的元素Fi,c存储了值为i的子元组(k-mer,d)所对应的碱基字母A、C、G、T出现的数目,其中,下标i∈[0,L],c∈{A、C、G、T};
[0079] A2.3.3.3)从0到L行遍历二维统计表 F,将每行中最大值的元素Fi,c所对应的碱基字母构成一维字符序列作为预测数据模型P1,预测数据模型P1的长度为L,L是整数集合的上确界,预测数据模型P1的第i位字符P1[i]表示命中整数集合第i行的元组对应的短串K-mer的预测字符c。
[0080] 其中,步骤A2.3.3.2)中统计整数集合中每个值对应出现的A、C、G、T的数目具体是指:在将取出的每一个元组(k-mer,d, c0) 的子元组(k-mer,d)映射到一个范围为[0,L]的整数集合时,针对二维统计表F的每一行的四个元素Fi,c分别设置四个计数值的Fi,A、Fi,C、Fi,G、Fi,T,若命中整数集合第i行的元组对应的短串K-mer在正链S1或负链S2中相邻位对应的碱基字母c0为A,则将第i行的Fi,A加1;若命中整数集合第i行的元组对应的短串K-mer在正链S1或负链S2中相邻位对应的碱基字母c0为C,则将第i行的Fi,C加1;若命中整数集合第i行的元组对应的短串K-mer在正链S1或负链S2中相邻位对应的碱基字母c0为G,则将第i行的Fi,G加1;若命中整数集合第i行的元组对应的短串K-mer在正链S1或负链S2中相邻位对应的碱基字母c0为T,则将第i行的Fi,T加1;最终统计得到整数集合中每个值对应出现的A、C、G、T的数目Fi,A、Fi,C、Fi,G、Fi,T。
[0081] 本实施例还提供一种基因测序数据解压系统,包括计算机系统,所述计算机系统被编程以执行本实施例前述的基因测序数据解压方法的步骤。此外,本实施例还提供一种计算机可读介质,计算机可读介质上存储有计算机程序,所述计算机程序使计算机执行本实施例前述的基因测序数据解压方法的步骤。
[0082] 实施例二:
[0083] 本实施例与实施例一基本相同,其主要区别点为步骤1)中的预测数据模型P1不同。本实施例中,预测数据模型P1为预先基于参考基因组中的短串K-mer及其相邻位对应的碱基字母c0完成训练的神经网络模型。对应地,步骤2.3)的详细步骤包括:
[0084] S2.3.1)创建对应短串K-mer的窗口变量CS和预测字符集PS,设置窗口变量CS的初始值为k位原始基因序列CS1,创建迭代变量j并设置初始值为0;
[0085] S2.3.2)将窗口变量CS输入预测数据模型P1得到短串K-mer在参考基因组的正链及负链中相邻位对应的预测字符c,所述预测数据模型P1为预先基于参考基因组中的短串K-mer及其相邻位对应的碱基字母c0完成训练的神经网络模型;
[0086] S2.3.3)将预测字符c赋值给预测字符集PS中的第j位,其中j∈[0,Lr - k],Lr-k为可逆运算结果CS2的长度;
[0087] S2.3.4)将窗口变量CS的后k-1位和当前得到的预测字符c组合后赋值给窗口变量CS,将迭代变量j加1;
[0088] S2.3.5)判断迭代变量j大于可逆运算结果CS2的长度(Lr-k)是否成立,如果成立则跳转执行下一步,否则,跳转执行步骤2.3.2);
[0089] S2.3.6)输出长度为(Lr-k)的预测字符集PS。
[0090] 对应地实施例一的步骤A2.3),本实施例生成的预测数据模型P1的详细步骤包括:
[0091] B2.3.1)针对正链短串集合KS1顺序提取短串K-mer并构造正链预测集合KP1,使得正链短串集合KS1中的每一个元素在正链预测集合KP1中存在一个对应的元组,该元组至少包含三种信息:短串K-mer、来自正链的标记d、在正链S1中的下一个碱基字母c0;
[0092] B2.3.2)针对负链短串集合KS2顺序提取短串K-mer并构造负链预测集合KP2,使得负链短串集合KS2中的每一个元素在负链预测集合KP2中存在一个对应的元组,该元组至少包含三种信息:短串K-mer、来自负链的标记d、负链S2中的下一个碱基字母c0;
[0093] B2.3.3)将正链预测集合KP1和负链预测集合KP2中的元组对应的短串K-mer及其在正链S1或负链S2中相邻位对应的碱基字母c0生成训练集,通过训练集来对神经网络模型进行训练,并将完成训练的神经网络模型作为预测数据模型P1。
[0094] 以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。