CN109887549B - 一种数据存储、还原方法及装置 - Google Patents
一种数据存储、还原方法及装置 Download PDFInfo
- Publication number
- CN109887549B CN109887549B CN201910132713.6A CN201910132713A CN109887549B CN 109887549 B CN109887549 B CN 109887549B CN 201910132713 A CN201910132713 A CN 201910132713A CN 109887549 B CN109887549 B CN 109887549B
- Authority
- CN
- China
- Prior art keywords
- data
- target
- subdata
- group
- matrix
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请提供一种数据存储、还原方法及装置,该方法通过确定待存储文件被分割成的至少一组数据中的一组目标数据;计算生成矩阵与目标数据的乘积,得到生成矩阵中每条数据的第一目标子数据;若生成矩阵中数据的第一目标子数据不满足基因编码约束条件,更新生成矩阵中的数据,直至生成的第一目标子数据满足基因编码约束条件;基于生成矩阵中各条数据的第一目标子数据,生成目标数据的DNA数据的方式,将待存储文件转换成用于以DNA为数据存储介质进行数据存储的DNA数据,以便于达到以DNA为数据存储介质,实现数据存储的目的。
Description
技术领域
本发明涉及计算机软件技术领域,更具体地说,涉及一种数据存储、还原方法及装置。
背景技术
数据量的指数增长已超过数据存储硬盘容量的增大速度,使人们对存储设备的性能有了更高的要求,需要更加有效的存储技术以保证数据存储。
经研究发现,DNA是一种优秀的数据存储介质,它显示了每克数据的PB级信息密度,高耐久性。并且,以DNA作为数据存储介质进行数据存储时并不需要将数据存储至数据存储硬盘,因此,将DNA作为数据存储介质进行数据存储,可以有效避免因数据存储硬盘容量不能满足数据量增长的需求,而导致的不能有效实现数据存储的问题。
发明内容
有鉴于此,本发明提供一种数据存储、还原方法及装置,以基于DNA为数据存储介质,实现数据存储的目的。
技术方案如下:
一种数据存储方法,包括:
确定待存储文件被分割成的至少一组数据中的一组目标数据,所述数据包括第一预设条数的子数据,所述子数据的数据长度为预设数据长度;
计算生成矩阵与所述目标数据的乘积,得到所述生成矩阵中每条数据的第一目标子数据,所述生成矩阵包括第二预设条数的数据,所述生成矩阵中的每条数据的数据长度与所述第一预设条数相同;
若所述生成矩阵中数据的第一目标子数据不满足基因编码约束条件,更新所述生成矩阵中的所述数据,直至生成的所述第一目标子数据满足所述基因编码约束条件;
基于所述生成矩阵中各条数据的第一目标子数据,生成所述目标数据的DNA数据,所述DNA数据用于以DNA为数据存储介质进行数据存储,所述待存储文件的DNA数据由所述待存储文件被分割成的各个数据的DNA数据构成。
优选的,所述计算生成矩阵与所述目标数据的乘积,得到所述生成矩阵中每条数据的第一目标子数据,包括:
在所述目标数据中的每条子数据的尾部生成奇偶校验位,得到与所述目标数据对应的第一目标数据;
计算生成矩阵与所述第一目标数据的乘积,得到所述生成矩阵中每条数据的第一目标子数据。
优选的,所述基于所述生成矩阵中各条数据的第一目标子数据,生成所述目标数据的DNA数据,包括:
删除所述第一目标子数据中的末位数据,得到所述第一目标子数据的第二目标子数据;
基于所述目标数据中各目标子数据的第二目标子数据,生成所述目标数据的DNA数据。
优选的,所述计算生成矩阵与所述第一目标数据的乘积,得到所述生成矩阵中每条数据的第一目标子数据,包括:
叠加所述第一目标数据与非零矩阵,得到与所述第一目标数据对应的第二目标数据,所述非零矩阵的行数与所述第一预设条数相同,所述非零矩阵的列数为所述预设数据长度与1的和;
计算生成矩阵与所述第二目标数据的乘积,得到所述生成矩阵中每条数据的第一目标子数据。
优选的,所述基于所述生成矩阵中各条数据的第一目标子数据,生成所述目标数据的DNA数据,包括:
分别在所述生成矩阵的每条数据的第一目标子数据的尾部生成标识信息,所述标识信息用于指示所述目标数据、在生成所述第一目标子数据时更新所述生成矩阵中的该条数据的次数,以及所述生成矩阵中用于生成所述第一目标子数据的数据位于所述生成矩阵中的地址;
基于所述生成矩阵中各条数据的携带标识信息的第一目标子数据,生成所述目标数据的DNA数据。
一种数据存储装置,包括:
目标数据确定单元,用于确定待存储文件被分割成的至少一组数据中的一组目标数据,所述数据包括第一预设条数的子数据,所述子数据的数据长度为预设数据长度;
计算单元,用于计算生成矩阵与所述目标数据的乘积,得到所述生成矩阵中每条数据的第一目标子数据,所述生成矩阵包括第二预设条数的数据,所述生成矩阵中的每条数据的数据长度与所述第一预设条数相同;
更新单元,用于若所述生成矩阵中数据的第一目标子数据不满足基因编码约束条件,更新所述生成矩阵中的所述数据,直至生成的所述第一目标子数据满足所述基因编码约束条件;
生成单元,用于基于所述生成矩阵中各条数据的第一目标子数据,生成所述目标数据的DNA数据,所述DNA数据用于以DNA为数据存储介质进行数据存储,所述待存储文件的DNA数据由所述待存储文件被分割成的各个数据的DNA数据构成。
一种数据还原方法,包括:
确定待还原的DNA数据,所述DNA数据由至少一个第一目标子数据构成;
将所述至少一个第一目标数据中,指示同一目标数据的第一目标子数据归为一组,得到多组第一目标子数据;
针对每组第一目标子数据,从该组第一目标子数据中选取数据长度为所述预设数据长度的所述第一预设条数个第一目标子数据,构成该组第一目标子数据对应的第三目标数据;
针对每组所述第一目标子数据,根据该组第一目标子数据中每个第一目标子数据的标识信息指示的地址和次数,构造该组第一目标子数据的逆矩阵;
针对每组所述第一目标子数据,计算该组第一目标子数据的逆矩阵以及该组第一目标子数据对应的第三目标数据的乘积,得到该组第一目标子数据对应的第四目标数据;所述第四目标数据用于还原成文件。
优选的,还包括:
针对每组第一目标子数据,在该组第一目标子数据对应的所述第三目标数据中的每个第一目标子数据的尾部生成奇偶校验位,得到与该组第一目标子数据对应的第五目标数据;
所述针对每组所述第一目标子数据,计算该组第一目标子数据的逆矩阵以及该组第一目标子数据对应的第三目标数据的乘积,得到该组第一目标子数据对应的第四目标数据,包括:
针对每组所述第一目标子数据,计算该组第一目标子数据的逆矩阵和该组第一目标子数据对应的第五目标数据的乘积,得到该组第一目标子数据对应的第四目标数据。
优选的,还包括:
删除所述第四目标数据中每条数据尾部的数据,得到最终的第四目标数据。
一种数据还原装置,包括:
DNA数据确定单元,用于确定待还原的DNA数据,所述DNA数据由至少一个第一目标子数据构成;
分组单元,用于将所述至少一个第一目标数据中,指示同一目标数据的第一目标子数据归为一组,得到多组第一目标子数据;
选取单元,用于针对每组第一目标子数据,从该组第一目标子数据中选取数据长度为所述预设数据长度的所述第一预设条数个第一目标子数据,构成该组第一目标子数据对应的第三目标数据;
逆矩阵构造单元,用于针对每组所述第一目标子数据,根据该组第一目标子数据中每个第一目标子数据的标识信息指示的地址和次数,构造该组第一目标子数据的逆矩阵;
还原单元,用于针对每组所述第一目标子数据,计算该组第一目标子数据的逆矩阵以及该组第一目标子数据对应的第三目标数据的乘积,得到该组第一目标子数据对应的第四目标数据;所述第四目标数据用于还原成文件。
本申请提供一种数据存储、还原方法及装置,该方法通过确定待存储文件被分割成的至少一组数据中的一组目标数据;计算生成矩阵与目标数据的乘积,得到生成矩阵中每条数据的第一目标子数据;若生成矩阵中数据的第一目标子数据不满足基因编码约束条件,更新生成矩阵中的数据,直至生成的第一目标子数据满足基因编码约束条件;基于生成矩阵中各条数据的第一目标子数据,生成目标数据的DNA数据的方式,将待存储文件转换成用于以DNA为数据存储介质进行数据存储的DNA数据,以便于达到以DNA为数据存储介质,实现数据存储的目的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种数据存储方法流程图;
图2为本申请实施例提供的另一种数据存储方法流程图;
图3为本申请实施例提供的一种数据还原方法流程图;
图4为本申请实施例提供的另一种数据还原方法流程图;
图5为本申请实施例提供的一种数据存储装置的结构示意图;
图6为本申请实施例提供的一种数据还原装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例:
图1为本申请实施例提供的一种数据存储方法流程图。如图1所示,该方法包括:
S101、确定待存储文件被分割成的至少一组数据中的一组目标数据,数据包括第一预设条数的子数据,子数据的数据长度为预设数据长度;
在本申请实施例中,可以使用标准的无损算法对待存储文件进行压缩,将待存储文件打包到压缩文件中,进而将压缩文件分成长度为K*L的非重叠组(即,将压缩文件分割成多个非重叠组,每个非重叠组看成是一组数据),每个非重叠组中包含K个长度为L的二进制数据。
其中,待存储文件被分割成的每一组数据可以看成是一个矩阵,该矩阵是一个K行L列的矩阵,该矩阵可以用一个向量D=(D1,D2,...,DK)描述。其中,Dk用于表示位于该矩阵中第K行的元素。
S102、计算生成矩阵与目标数据的乘积,得到生成矩阵中每条数据的第一目标子数据,生成矩阵包括第二预设条数的数据,生成矩阵中的每条数据的数据长度与第一预设条数相同;
在本申请实施例中,初始化生成矩阵G,其中,初始化的生成矩阵G定义如下:
该初始化的生成矩阵是一个N行K列的矩阵,该生成矩阵G是定义在Rp上的矩阵,是范德蒙矩阵的改进型。
其中,该生成矩阵中的每行元素可以看成是一条数据,该生成矩阵包括第二预设条数的数据,并且,该生成矩阵中每行元素的个数与第一预设条数相同,生成矩阵中每行元素的个数可以看成是生成矩阵中该行元素所对应数据的长度。即,生成矩阵中的行数为第二预设条数,生成矩阵中的列数与第一预设条数相同。
S103、若生成矩阵中数据的第一目标子数据不满足基因编码约束条件,更新生成矩阵中的数据,直至生成的第一目标子数据满足基因编码约束条件;
在本申请实施例中,待存储数据被分割成多组数据,可以分别将每组数据看成一个目标数据,计算生成矩阵G分别与每组目标数据的乘积,以得到该组目标数据的乘积结果。
其中,目标数据是一个K*L的矩阵,生成矩阵G是一个N*K的矩阵,计算生成矩阵G与目标数据的乘积,可以得到一个N*L的矩阵,该N*L的矩阵可以看成是该组目标数据的乘积结果,其中,生成矩阵中每行元素可以看成是生成矩阵中的一条数据,计算生成矩阵与目标数据的乘积可以看成是计算生成矩阵中每条数据对应的第一目标子数据的过程,该组目标数据的乘积结果中每行元素可以看成是一条第一目标子数据,生成矩阵中每条数据对应的第一目标子数据为该组目标数据的乘积结果中对应行的第一目标子数据。
在本申请实施例中,计算生成矩阵与目标数据的乘积时,若针对生成矩阵中的数据,得到的该数据对应的第一目标子数据不满足基因编码约束条件,则需要对该生成矩阵中的该条数据进行更新,直至生成的该条数据的第一目标子数据满足基因编码约束条件为止,不在更新生成矩阵中的该条数据并将此时得到的第一目标子数据作为该条数据对应的第一目标子数据,以及记录该条数据的更新次数。
其中,计算生成矩阵与目标数据的乘积,可以得到生成矩阵中每条数据对应的第一目标子数据(也可称为每条数据的第一目标子数据),并将得到的各条第一目标子数据作为该目标数据的DNA数据。
目标数据的DNA数据可以看成是由多条第一目标子数据构成的矩阵,每条第一目标子数据矩阵中的行与该第一目标子数据对应的数据位于生成矩阵中的行相同。
S104、基于生成矩阵中各条数据的第一目标子数据,生成目标数据的DNA数据,DNA数据用于以DNA为数据存储介质进行数据存储,待存储文件的DNA数据由待存储文件被分割成的各个数据的DNA数据构成。
本申请实施例中,待存储文件被分割成至少一组数据,针对每组数据执行上述步骤S10-S104得到该组数据的DNA数据后,将得到的至少一个组数据中每组数据的DNA数据作为待存储文件的DNA数据,进而将待存储文件的DNA数据以DNA为数据存储介质进行数据存储。
图2为本申请实施例提供的另一种数据存储方法流程图。
如图2所示,该方法包括:
S201、确定待存储文件被分割成的至少一组数据中的一组目标数据,数据包括第一预设条数的子数据,子数据的数据长度为预设数据长度;
S202、在目标数据中的每条子数据的尾部生成奇偶校验位,得到与目标数据对应的第一目标数据;
在本申请实施例中,目标数据中包括多条子数据,分别在每条子数据的尾部生成奇偶校验位,将生成有奇偶校验位的各条子数据作为与目标数据对应的第一目标数据。
S203、计算生成矩阵与第一目标数据的乘积,得到生成矩阵中每条数据的第一目标子数据;生成矩阵包括第二预设条数的数据,生成矩阵中的每条数据的数据长度与第一预设条数相同;
在本申请实施例中,优选的,计算生成矩阵与第一目标数据的乘积,得到生成矩阵中每条数据的第一目标子数据,包括:叠加第一目标数据与非零矩阵,得到与第一目标数据对应的第二目标数据,非零矩阵的行数与第一预设条数相同,非零矩阵的列数为预设数据长度与1的和;计算生成矩阵与第二目标数据的乘积,得到生成矩阵中每条数据的第一目标子数据。
在本申请实施例中,设置有非零矩阵,该非零矩阵的行数与第一预设条数相同,该非零矩阵的列书为预设数据长度与1的和。即,非零矩阵相对于目标数据所对应的矩阵而言,该非零矩阵的行数与目标数据对应的矩阵的行数相同,该非零矩阵的列数比目标数据对应的矩阵的列数多1。
在本申请实施例中,叠加非零矩阵与第一目标数据,可以得到与第一目标数据对应的第二目标数据,进而计算生成矩阵与该第二目标数据的乘积,得到生成矩阵中每条数据的第一目标子数据。
S204、若生成矩阵中数据的第一目标子数据不满足基因编码约束条件,更新生成矩阵中的数据,直至生成的第一目标子数据满足基因编码约束条件;
S205、删除第一目标子数据中的末位数据,得到第一目标子数据的第二目标子数据;
在本申请实施例中,在得到生成矩阵中数据的第一目标子数据满足基因编码约束条件时,将该第一目标子数据作为该生成矩阵中该数据的第一目标子数据,并将该第一目标子数据中的末位数据删除,并将删除末位数据后的第一目标子数据作为该第一目标子数据的第二目标子数据。
S206、基于目标数据中各目标子数据的第二目标子数据,生成目标数据的DNA数据,DNA数据用于以DNA为数据存储介质进行数据存储,待存储文件的DNA数据由待存储文件被分割成的各个数据的DNA数据构成。
在本申请实施例中,由目标数据中各目标子数据的第二目标子数据,构成该目标数据的DNA数据。
进一步的,在本申请实施例提供的一种数据存储方法中,为了便于对数据的还原,还可以进一步在分别在生成矩阵的每条数据的第一目标子数据的尾部生成标识信息,标识信息用于指示目标数据、在生成第一目标子数据时更新生成矩阵中的该条数据的次数,以及生成矩阵中用于生成第一目标子数据的数据位于生成矩阵中的地址;进而基于生成矩阵中各条数据的携带标识信息的第一目标子数据,生成目标数据的DNA数据。
为了便于对本申请实施例提供的一种数据存储方法的理解,现对待存储文件的DNA数据以DNA为数据存储介质进行数据存储的过程进行详细介绍。
在本申请实施例中,可以将待存储文件的DNA数据看成是待存储文件经过上述数据存储方法生成的DNA存储样品,将该DNA存储样品以DNA为数据存储介质进行数据存储的过程为:
1、样品池的制备:将DNA存储样品重悬,保存(可分装后保存)。
利用不同的DNA聚合酶进行PCR。
a)按照聚合酶的说明书,加入合适的组分、模板及正反向引物,混匀;b)计算引物的最优Tm值;c)根据聚合酶给的PCR反应条件,进行PCR反应,共执行n个循环,d)将得到的产物进行纯化回收,溶于适量体积的样品池。
2、PCR扩增
以主样品池中的产物为模板,依次循环进行PCR的反应。
第一次PCR反应:
a)按照聚合酶的说明书,加入合适的组分、模板及正反向引物,混匀;b)计算引物的最优Tm值;c)根据聚合酶给的PCR反应条件,进行PCR反应,共执行n个循环,d)验证将得到的PCR产物,并保存;e)将得到的PCR产物作为下次PCR反应的模板,取适量后,进行下一次PCR反应。
后n次PCR反应同上。n次PCR循环完成后,将第n次的PCR产物进行测序,再将测序结果进行对比排序,即完成存储信息的提取。
1)将合成的DNA池重悬浮于428.4μL 0.5x TE中,最终加入150ng/μL(分装50μl/份液氮冷冻,-80℃冰箱保存)。
2)使用标准DNA聚合酶进行PCR的DNA片段扩增
PCR反应条件:
纯化产物溶于25μl dd H2O。
完成后,将PCR产物进行测序,再将测序结果进行对比排序,完成存储信息的提取。
进一步的,在本申请实施例中,还提供一种数据还原方法流程图,具体请参见图3。
如图3所示,该方法包括:
S301、确定待还原的DNA数据,DNA数据由至少一个第一目标子数据构成;
S302、将至少一个第一目标数据中,指示同一目标数据的第一目标子数据归为一组,得到多组第一目标子数据;
S303、针对每组第一目标子数据,从该组第一目标子数据中选取数据长度为预设数据长度的第一预设条数个第一目标子数据,构成该组第一目标子数据对应的第三目标数据;
S304、针对每组第一目标子数据,根据该组第一目标子数据中每个第一目标子数据的标识信息指示的地址和次数,构造该组第一目标子数据的逆矩阵;
在本申请实施例中,第一目标子数据的逆矩阵可以认为是本申请上述实施例在执行数据存储方法时所采用的生成矩阵的逆矩阵。
S305、针对每组第一目标子数据,计算该组第一目标子数据的逆矩阵以及该组第一目标子数据对应的第三目标数据的乘积,得到该组第一目标子数据对应的第四目标数据;第四目标数据用于还原成文件。
图4为本申请实施例提供的另一种数据还原方法流程图。
如图4所示,该方法包括:
S401、确定待还原的DNA数据,DNA数据由至少一个第一目标子数据构成;
S402、将至少一个第一目标数据中,指示同一目标数据的第一目标子数据归为一组,得到多组第一目标子数据;
S403、针对每组第一目标子数据,从该组第一目标子数据中选取数据长度为预设数据长度的第一预设条数个第一目标子数据,构成该组第一目标子数据对应的第三目标数据;
S404、针对每组第一目标子数据,在该组第一目标子数据对应的第三目标数据中的每个第一目标子数据的尾部生成奇偶校验位,得到与该组第一目标子数据对应的第五目标数据;
S405、针对每组第一目标子数据,根据该组第一目标子数据中每个第一目标子数据的标识信息指示的地址和次数,构造该组第一目标子数据的逆矩阵;
S406、针对每组第一目标子数据,计算该组第一目标子数据的逆矩阵和该组第一目标子数据对应的第五目标数据的乘积,得到该组第一目标子数据对应的第四目标数据;
S407、删除第四目标数据中每条数据尾部的数据,得到最终的第四目标数据,该最终的第四目标数据用于还原成文件。
相应的,图5为本申请实施例提供的一种数据存储装置的结构示意图。
如图5所示,该装置包括:
目标数据确定单元51,用于确定待存储文件被分割成的至少一组数据中的一组目标数据,数据包括第一预设条数的子数据,子数据的数据长度为预设数据长度;
计算单元52,用于计算生成矩阵与目标数据的乘积,得到生成矩阵中每条数据的第一目标子数据,生成矩阵包括第二预设条数的数据,生成矩阵中的每条数据的数据长度与第一预设条数相同;
更新单元53,用于若生成矩阵中数据的第一目标子数据不满足基因编码约束条件,更新生成矩阵中的数据,直至生成的第一目标子数据满足基因编码约束条件;
生成单元54,用于基于生成矩阵中各条数据的第一目标子数据,生成目标数据的DNA数据,DNA数据用于以DNA为数据存储介质进行数据存储,待存储文件的DNA数据由待存储文件被分割成的各个数据的DNA数据构成。
相应的,图6为本申请实施例提供的一种数据还原装置的结构示意图。
如图6所示,该装置包括:
DNA数据确定单元61,用于确定待还原的DNA数据,DNA数据由至少一个第一目标子数据构成;
分组单元62,用于将至少一个第一目标数据中,指示同一目标数据的第一目标子数据归为一组,得到多组第一目标子数据;
选取单元63,用于针对每组第一目标子数据,从该组第一目标子数据中选取数据长度为预设数据长度的第一预设条数个第一目标子数据,构成该组第一目标子数据对应的第三目标数据;
逆矩阵构造单元64,用于针对每组第一目标子数据,根据该组第一目标子数据中每个第一目标子数据的标识信息指示的地址和次数,构造该组第一目标子数据的逆矩阵;
还原单元65,用于针对每组第一目标子数据,计算该组第一目标子数据的逆矩阵以及该组第一目标子数据对应的第三目标数据的乘积,得到该组第一目标子数据对应的第四目标数据;第四目标数据用于还原成文件。
本申请提供一种数据存储、还原方法及装置,该方法通过确定待存储文件被分割成的至少一组数据中的一组目标数据;计算生成矩阵与目标数据的乘积,得到生成矩阵中每条数据的第一目标子数据;若生成矩阵中数据的第一目标子数据不满足基因编码约束条件,更新生成矩阵中的数据,直至生成的第一目标子数据满足基因编码约束条件;基于生成矩阵中各条数据的第一目标子数据,生成目标数据的DNA数据的方式,将待存储文件转换成用于以DNA为数据存储介质进行数据存储的DNA数据,以便于达到以DNA为数据存储介质,实现数据存储的目的。
以上对本发明所提供的一种数据存储、还原方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备所固有的要素,或者是还包括为这些过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种数据存储方法,其特征在于,包括:
确定待存储文件被分割成的至少一组数据中的一组目标数据,所述数据包括第一预设条数的子数据,所述子数据的数据长度为预设数据长度;
计算生成矩阵与所述目标数据的乘积,得到所述生成矩阵中每条数据的第一目标子数据,所述生成矩阵包括第二预设条数的数据,所述生成矩阵中的每条数据的数据长度与所述第一预设条数相同;
若所述生成矩阵中数据的第一目标子数据不满足基因编码约束条件,更新所述生成矩阵中的所述数据,直至生成的所述第一目标子数据满足所述基因编码约束条件;
基于所述生成矩阵中各条数据的第一目标子数据,生成所述目标数据的DNA数据,所述DNA数据用于以DNA为数据存储介质进行数据存储,所述待存储文件的DNA数据由所述待存储文件被分割成的各个数据的DNA数据构成。
2.根据权利要求1所述的方法,其特征在于,所述计算生成矩阵与所述目标数据的乘积,得到所述生成矩阵中每条数据的第一目标子数据,包括:
在所述目标数据中的每条子数据的尾部生成奇偶校验位,得到与所述目标数据对应的第一目标数据;
计算生成矩阵与所述第一目标数据的乘积,得到所述生成矩阵中每条数据的第一目标子数据。
3.根据权利要求2所述的方法,其特征在于,所述基于所述生成矩阵中各条数据的第一目标子数据,生成所述目标数据的DNA数据,包括:
删除所述第一目标子数据中的末位数据,得到所述第一目标子数据的第二目标子数据;
基于所述目标数据中各目标子数据的第二目标子数据,生成所述目标数据的DNA数据。
4.根据权利要求2所述的方法,其特征在于,所述计算生成矩阵与所述第一目标数据的乘积,得到所述生成矩阵中每条数据的第一目标子数据,包括:
叠加所述第一目标数据与非零矩阵,得到与所述第一目标数据对应的第二目标数据,所述非零矩阵的行数与所述第一预设条数相同,所述非零矩阵的列数为所述预设数据长度与1的和;
计算生成矩阵与所述第二目标数据的乘积,得到所述生成矩阵中每条数据的第一目标子数据。
5.根据权利要求1-4任意一项所述的方法,其特征在于,所述基于所述生成矩阵中各条数据的第一目标子数据,生成所述目标数据的DNA数据,包括:
分别在所述生成矩阵的每条数据的第一目标子数据的尾部生成标识信息,所述标识信息用于指示所述目标数据、在生成所述第一目标子数据时更新所述生成矩阵中的该条数据的次数,以及所述生成矩阵中用于生成所述第一目标子数据的数据位于所述生成矩阵中的地址;
基于所述生成矩阵中各条数据的携带标识信息的第一目标子数据,生成所述目标数据的DNA数据。
6.一种数据存储装置,其特征在于,包括:
目标数据确定单元,用于确定待存储文件被分割成的至少一组数据中的一组目标数据,所述数据包括第一预设条数的子数据,所述子数据的数据长度为预设数据长度;
计算单元,用于计算生成矩阵与所述目标数据的乘积,得到所述生成矩阵中每条数据的第一目标子数据,所述生成矩阵包括第二预设条数的数据,所述生成矩阵中的每条数据的数据长度与所述第一预设条数相同;
更新单元,用于若所述生成矩阵中数据的第一目标子数据不满足基因编码约束条件,更新所述生成矩阵中的所述数据,直至生成的所述第一目标子数据满足所述基因编码约束条件;
生成单元,用于基于所述生成矩阵中各条数据的第一目标子数据,生成所述目标数据的DNA数据,所述DNA数据用于以DNA为数据存储介质进行数据存储,所述待存储文件的DNA数据由所述待存储文件被分割成的各个数据的DNA数据构成。
7.一种数据还原方法,其特征在于,包括:
确定待还原的DNA数据,所述DNA数据由至少一个第一目标子数据构成;
将至少一个第一目标数据中,指示同一目标数据的第一目标子数据归为一组,得到多组第一目标子数据;
针对每组第一目标子数据,从该组第一目标子数据中选取数据长度为预设数据长度的第一预设条数个第一目标子数据,构成该组第一目标子数据对应的第三目标数据;
针对每组所述第一目标子数据,根据该组第一目标子数据中每个第一目标子数据的标识信息指示的地址和次数,构造该组第一目标子数据的逆矩阵;
针对每组所述第一目标子数据,计算该组第一目标子数据的逆矩阵以及该组第一目标子数据对应的第三目标数据的乘积,得到该组第一目标子数据对应的第四目标数据;所述第四目标数据用于还原成文件。
8.根据权利要求7所述的方法,其特征在于,还包括:
针对每组第一目标子数据,在该组第一目标子数据对应的所述第三目标数据中的每个第一目标子数据的尾部生成奇偶校验位,得到与该组第一目标子数据对应的第五目标数据;
所述针对每组所述第一目标子数据,计算该组第一目标子数据的逆矩阵以及该组第一目标子数据对应的第三目标数据的乘积,得到该组第一目标子数据对应的第四目标数据,包括:
针对每组所述第一目标子数据,计算该组第一目标子数据的逆矩阵和该组第一目标子数据对应的第五目标数据的乘积,得到该组第一目标子数据对应的第四目标数据。
9.根据权利要求8所述的方法,其特征在于,还包括:
删除所述第四目标数据中每条数据尾部的数据,得到最终的第四目标数据。
10.一种数据还原装置,其特征在于,包括:
DNA数据确定单元,用于确定待还原的DNA数据,所述DNA数据由至少一个第一目标子数据构成;
分组单元,用于将至少一个第一目标数据中,指示同一目标数据的第一目标子数据归为一组,得到多组第一目标子数据;
选取单元,用于针对每组第一目标子数据,从该组第一目标子数据中选取数据长度为预设数据长度的第一预设条数个第一目标子数据,构成该组第一目标子数据对应的第三目标数据;
逆矩阵构造单元,用于针对每组所述第一目标子数据,根据该组第一目标子数据中每个第一目标子数据的标识信息指示的地址和次数,构造该组第一目标子数据的逆矩阵;
还原单元,用于针对每组所述第一目标子数据,计算该组第一目标子数据的逆矩阵以及该组第一目标子数据对应的第三目标数据的乘积,得到该组第一目标子数据对应的第四目标数据;所述第四目标数据用于还原成文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910132713.6A CN109887549B (zh) | 2019-02-22 | 2019-02-22 | 一种数据存储、还原方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910132713.6A CN109887549B (zh) | 2019-02-22 | 2019-02-22 | 一种数据存储、还原方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109887549A CN109887549A (zh) | 2019-06-14 |
CN109887549B true CN109887549B (zh) | 2023-01-20 |
Family
ID=66928942
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910132713.6A Active CN109887549B (zh) | 2019-02-22 | 2019-02-22 | 一种数据存储、还原方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109887549B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113096742B (zh) * | 2021-04-14 | 2022-06-14 | 湖南科技大学 | 一种dna信息存储并行寻址写入方法及*** |
CN118227947A (zh) * | 2024-05-22 | 2024-06-21 | 北京灵汐科技有限公司 | 针对矩阵的数据存储、数据处理方法及装置、设备、介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104850411A (zh) * | 2015-06-10 | 2015-08-19 | 清华大学 | 存储***基准评测程序生成方法及装置 |
WO2015180203A1 (zh) * | 2014-05-30 | 2015-12-03 | 周家锐 | 一种高通量dna测序质量分数无损压缩***及压缩方法 |
CN105760706A (zh) * | 2014-12-15 | 2016-07-13 | 深圳华大基因研究院 | 一种二代测序数据的压缩方法 |
CN107055468A (zh) * | 2012-06-01 | 2017-08-18 | 欧洲分子生物学实验室 | Dna中数字信息的高容量存储 |
CN107798219A (zh) * | 2016-08-30 | 2018-03-13 | 清华大学 | 将数据进行生物存储并还原的方法 |
CN109074424A (zh) * | 2016-05-04 | 2018-12-21 | 深圳华大生命科学研究院 | 利用dna存储文本信息的方法、其解码方法及应用 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8131471B2 (en) * | 2002-08-08 | 2012-03-06 | Agilent Technologies, Inc. | Methods and system for simultaneous visualization and manipulation of multiple data types |
KR100996029B1 (ko) * | 2003-04-29 | 2010-11-22 | 삼성전자주식회사 | 저밀도 패리티 검사 코드의 부호화 장치 및 방법 |
US10790044B2 (en) * | 2016-05-19 | 2020-09-29 | Seven Bridges Genomics Inc. | Systems and methods for sequence encoding, storage, and compression |
US10774379B2 (en) * | 2017-03-15 | 2020-09-15 | Microsoft Technology Licensing, Llc | Random access of data encoded by polynucleotides |
-
2019
- 2019-02-22 CN CN201910132713.6A patent/CN109887549B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107055468A (zh) * | 2012-06-01 | 2017-08-18 | 欧洲分子生物学实验室 | Dna中数字信息的高容量存储 |
WO2015180203A1 (zh) * | 2014-05-30 | 2015-12-03 | 周家锐 | 一种高通量dna测序质量分数无损压缩***及压缩方法 |
CN105760706A (zh) * | 2014-12-15 | 2016-07-13 | 深圳华大基因研究院 | 一种二代测序数据的压缩方法 |
CN104850411A (zh) * | 2015-06-10 | 2015-08-19 | 清华大学 | 存储***基准评测程序生成方法及装置 |
CN109074424A (zh) * | 2016-05-04 | 2018-12-21 | 深圳华大生命科学研究院 | 利用dna存储文本信息的方法、其解码方法及应用 |
CN107798219A (zh) * | 2016-08-30 | 2018-03-13 | 清华大学 | 将数据进行生物存储并还原的方法 |
Non-Patent Citations (2)
Title |
---|
BASIC Codes: Low-Complexity Regenerating;hanxu hou;《IEEE TRANSACTIONS ON INFORMATION THEORY》;20160630;全文 * |
Duplication-Correcting Codes for Data Storage;Siddharth Jain;《IEEE TRANSACTIONS ON INFORMATION THEORY》;20170831;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109887549A (zh) | 2019-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102138864B1 (ko) | Dna 디지털 데이터 저장 장치 및 저장 방법, 그리고 디코딩 방법 | |
US20230214319A9 (en) | High-Capacity Storage of Digital Information in DNA | |
CN109887549B (zh) | 一种数据存储、还原方法及装置 | |
US20090055425A1 (en) | Sequence identification and analysis | |
EP3311318B1 (en) | Method for compressing genomic data | |
US20210074380A1 (en) | Reverse concatenation of error-correcting codes in dna data storage | |
CN103093121A (zh) | 双向多步deBruijn图的压缩存储和构造方法 | |
Frousios et al. | REAL: an efficient REad ALigner for next generation sequencing reads | |
WO2015193140A1 (en) | Method and apparatus for encoding information units in code word sequences avoiding reverse complementarity | |
US9886561B2 (en) | Efficient encoding and storage and retrieval of genomic data | |
CN110708076A (zh) | 一种基于混合模型的dna存储编解码方法 | |
Song et al. | Super-robust data storage in DNA by de Bruijn graph-based decoding | |
CN115312129A (zh) | 高通量测序背景下的基因数据压缩方法、装置及相关设备 | |
WO2019204702A1 (en) | Error-correcting dna barcodes | |
KR102339723B1 (ko) | Dna 저장 장치의 연성 정보 기반 복호화 방법, 프로그램 및 장치 | |
CN115798605A (zh) | 纳米孔测序原始信号数据压缩方法、装置、设备及介质 | |
Halperin et al. | Handling long targets and errors in sequencing by hybridization | |
CN110990188B (zh) | 一种基于Hadamard矩阵的部分重复码的构造方法 | |
CN109816110B (zh) | Scrypt算法工作量证明方法及装置 | |
CN114023374A (zh) | Dna信道仿真与编码优化方法及装置 | |
Gu et al. | Using disk based index and box queries for genome sequencing error correction | |
EP2947589A1 (en) | Method and apparatus for controlling a decoding of information encoded in synthesized oligos | |
US20170253871A1 (en) | Method of preparing oligonucleotide pool using one oligonucleotide | |
CN114730616A (zh) | 信息编码和解码方法、装置、存储介质以及信息存储和解读方法 | |
WO2023206023A1 (zh) | 用于dna存储的编码方法及编码装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |