CN116226049B - 基于大小喷泉码利用dna进行信息存储的方法、系统及设备 - Google Patents

基于大小喷泉码利用dna进行信息存储的方法、系统及设备 Download PDF

Info

Publication number
CN116226049B
CN116226049B CN202211633595.5A CN202211633595A CN116226049B CN 116226049 B CN116226049 B CN 116226049B CN 202211633595 A CN202211633595 A CN 202211633595A CN 116226049 B CN116226049 B CN 116226049B
Authority
CN
China
Prior art keywords
fountain code
decoding
dna
module
small
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
Application number
CN202211633595.5A
Other languages
English (en)
Other versions
CN116226049A (zh
Inventor
蒋昌跃
崔竞松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan University WHU
Original Assignee
Wuhan University WHU
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan University WHU filed Critical Wuhan University WHU
Priority to CN202211633595.5A priority Critical patent/CN116226049B/zh
Publication of CN116226049A publication Critical patent/CN116226049A/zh
Application granted granted Critical
Publication of CN116226049B publication Critical patent/CN116226049B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • G06F16/137Hash-based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种基于大小喷泉码利用DNA进行信息存储的方法、系统及设备,使用一个固定长度的小喷泉码来编码存储有关源文件的关键参数,弥补传统喷泉码需要额外信道传递关键参数的缺陷。编码对于输入的待存储的源文件使用编码程序生成用户指定数量和格式的数据包;编码程序将编码生成的数据包转换成DNA序列;编码程序在将数据包转换成DNA序列过程中自动规避掉含有规避子序列的不合格序列,保留合格的DNA序列;解码在接收到DNA序列后,使用纠错编码对DNA序列进行筛选,将合格的DNA序列转换成二进制数据;对处理后的数据先进行小喷泉码解码;利用小喷泉码解码出的结果再继续对大喷泉码进行解码。本发明便于喷泉码在DNA信息存储中的工程应用。

Description

基于大小喷泉码利用DNA进行信息存储的方法、系统及设备
技术领域
本发明涉及数据编码与信息安全存储领域,涉及一种信息存储的方法、系统及设备,具体涉及一种利用计算机编码的基于大小喷泉码利用DNA进行信息存储的方法、系统及设备。
背景技术
依据国际数据公司(International Data Corporation,IDC)的估计,2025年全球数据产出量将达到175ZB,而当前的存储介质生成以及海量数据的拷贝和传输也面临着挑战。DNA具有存储数字信息的能力,以DNA作为信息存储的介质,具有高效、存储容量大、存储时间长、易获取等优点。喷泉码技术应用于DNA存储中具有高存储密度、有部分数据丢失的情况下也能以较高概率成功解码的优点,因此使用喷泉码的DNA存储技术在未来将有广阔的应用前景。
传统的喷泉码模型在编码端和解码端通常忽略了源文件划分成的数据包数目K值的传递,如果直接将传统喷泉码模型应用在DNA存储场景中,需要一个额外的信道来传递关键到解码端,否则将会使得解码端难以终止解码程序,而增加额外信道的方式不利用实际的工程实现;而如果在编码端和解码端将参数K设为定值,将不符合DNA存储真实的应用场景。因此,现有的喷泉码模型在实际的工程实现与应用存在一定的弊端。
发明内容
有鉴于此,本发明提供了一种基于大小喷泉码利用DNA进行信息存储的方法及系统,用于解决或至少部分解决现有DNA存储应用中的喷泉码模型不便于工程实现的问题。
本发明的方法所采用的技术方案是:一种基于大小喷泉码利用DNA进行信息存储的方法,包括以下步骤:
步骤1:对待存储的源文件进行处理,包括:
(1)读入源文件,进行拼接文件名、生成哈希值以及数据填充操作;
(2)获取源文件的比特长,生成哈希值进行拼接;
(3)将源文件内容及源文件比特长划分数据包,以互不重叠等长的格式划分;
步骤2:分别利用大喷泉码和小喷泉码对源文件的内容和比特长数字进行编码;
其中,大喷泉码用于编码存储源文件的内容、源文件的名字以及一个哈希值,哈希值用于解码时的自校验;编码过程与小喷泉码编码相互独立,大小喷泉码编码同一个数据包时使用同一个随机种子;
小喷泉码用于对待存储的源文件的比特长该关键参数进行编码存储,并将编码结果与大喷泉码编码的结果、随机种子、纠错编码数据合并成最终的编码数据包;每个数据包末尾固定只拼接一个小喷泉码编码数据,数据包头部存放大喷泉码与小喷泉码共同的随机种子;小喷泉码编码数据尾部拼接一个哈希值,用于解码时的哈希自校验;
将编码生成的数据转换成DNA序列,并筛选出不含指定规避序列的DNA序列,获得用户指定长度和数量的合格DNA序列;所述指定规避序列,是DNA序列里用户输入的指定的DNA子片段;
步骤3:DNA序列存储;
步骤4:利用大喷泉码和小喷泉码对合格DNA序列解码;
将合格DNA序列转换成二进制数据,从数据中按照预设长度分割出小喷泉码,进行小喷泉码解码;
利用小喷泉码解码出的数据进行大喷泉码解码,解码成功则恢复出存储的源文件。
本发明的系统所采用的技术方案是:一种基于大小喷泉码利用DNA进行信息存储的系统,包括以下模块:
模块1,用于对待存储的源文件进行处理,包括:
(2)读入源文件,进行拼接文件名、生成哈希值以及数据填充操作;
(2)获取源文件的比特长,生成哈希值进行拼接;
(3)将源文件内容及源文件比特长划分数据包,以互不重叠等长的格式划分;
模块2,用于分别利用大喷泉码和小喷泉码对源文件的内容和比特长数字进行编码;
其中,大喷泉码用于编码存储源文件的内容、源文件的名字以及一个哈希值,哈希值用于解码时的自校验;编码过程与小喷泉码编码相互独立,大小喷泉码编码同一个数据包时使用同一个随机种子;
小喷泉码用于对待存储的源文件的比特长该关键参数进行编码存储,并将编码结果与大喷泉码编码的结果、随机种子、纠错编码数据合并成最终的编码数据包;每个数据包末尾固定只拼接一个小喷泉码编码数据,数据包头部存放大喷泉码与小喷泉码共同的随机种子;小喷泉码编码数据尾部拼接一个哈希值,用于解码时的哈希自校验;
将编码生成的数据转换成DNA序列,并筛选出不含指定规避序列的DNA序列,获得用户指定长度和数量的合格DNA序列;所述指定规避序列,是DNA序列里用户输入的指定的DNA子片段;
模块3:DNA序列存储;
模块4:利用大喷泉码和小喷泉码对合格DNA序列解码;
将合格DNA序列转换成二进制数据,从数据中按照预设长度分割出小喷泉码,进行小喷泉码解码;
利用小喷泉码解码出的数据进行大喷泉码解码,解码成功则恢复出存储的源文件。
本发明的设备所采用的技术方案是:一种基于大小喷泉码利用DNA进行信息存储的设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现所述的基于大小喷泉码利用DNA进行信息存储的方法。
相对于现有的应用在DNA存储中的喷泉码模型而言,本发明使用了一个小喷泉码来编码存储源文件的比特长信息,解码利用该信息可以推算出源文件被划分成的数据包的数目以及填充的多余比特数,可以帮助解码端进行解码过程,有利于提高喷泉码使用的灵活性和实际工程实现的可用性。
小喷泉码与大喷泉码同步对同一个数据包进行编码,使用同一个随机种子及相同的度分布函数,大小喷泉码编码完之后按照“随机种子+大喷泉码编码数据+小喷泉码编码数据+纠错编码”的格式生成编码数据包。大喷泉码与小喷泉码编码数量相同,每个数据包末尾固定为一个小喷泉码数据包。小喷泉码编码存储的数据有效解决了传统喷泉码需要额外信道向解码端传递解码关键参数的问题,使得喷泉码模型可以更好地进行工程实现与应用。
本发明还可以满足用户的规避序列要求,由于生化实验上的要求,并不是所有编码生成的DNA序列都可是使用,一些含有规避序列的DNA序列需要进行筛选和剔除,利用喷泉码的纠删性,对编码生成的DNA序列进行扫描,发现含有规避序列的DNA序列直接丢弃。
本发明可以编码任意大小、任意类型的文件:凡是计算机可以表示的文件类型,理论上都可以使用模型编码程序存储进DNA序列中,但待编码存储的文件越大,则计算机消耗的资源越大,需要的计算机配置越高。
本发明的解码在确保序列无错的情况下进行解码,以较高的概率还原出编码存储在DNA序列中的源文件。
附图说明
图1为本发明的实施例的方法流程图;
图2为本发明的实施例中的大小喷泉码的编码程序过程流程图;
图3为本发明的实施例中的大小喷泉码的解码程序过程流程图;
图4为本发明的实施例中的大小喷泉码的数据包结构示意图。
具体实施方式
为了便于本领域普通技术人员理解和实施本发明,下面结合附图及实施例对本发明作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本发明,并不用于限定本发明。
本发明的目的在于提供一种基于大小喷泉码利用DNA进行信息存储的方法、系统及设备,用于改善现有的喷泉码模型直接应用在DNA存储中不够灵活、不便于工程实现和应用的问题。传统喷泉码在编码端和解码端忽略一些关键参数的传递,导致解码过程不够灵活,实际工程应用中不便于实现。喷泉码在解码时需要一些关键参数来指导结束解码过程及恢复存储的源文件,例如编码端将源文件划分成的数据包数目K,这些参数由编码端根据具体编码的源文件来确定。喷泉码解码的本质是从方程组中解出K个未知数,而参数K由编码端生成,因此有必要将参数K的相关信息随数据包一起传递到解码端。
本发明的主要构思如下:采用喷泉码编码技术进行DNA文件存储,基于传统的喷泉码,重新设计了一大一小两个喷泉码组合对文件进行编码,将编码生产的数据转换为符合用户需求的DNA序列,并能从编码数据中恢复出源文件。
本发明还考虑了生化实验中的一些DNA性质限制要求,能自动编码生产符合实际应用需求的DNA序列(规避序列筛选,就是将编码装置生成的DNA序列与用户输入的规避序列进行字符串匹配,看编码生成的DNA序列中是否含有规避子序列,如果有则将该编码生成的DNA序列丢弃掉,这个过程称为规避序列筛选)并且解码装置能从编码的DNA序列中以较高的概率恢复出编码的源文件;同时,本发明对源文件编码出的存储数据具有较高的存储密度,编码数据包按照“随机种子、大喷泉码、小喷泉码”的顺序以最紧密的方式进行拼接,充分利用了有限的空间存放更多的数据。
请见图1,本发明提供的一种基于大小喷泉码利用DNA进行信息存储的方法,包括以下步骤:
步骤1:对待存储的源文件进行处理,包括:
(1)读入源文件,进行拼接文件名、生成哈希值以及数据填充等操作;
(2)获取源文件的比特长,生成哈希值进行拼接;
(3)将源文件内容及源文件比特长划分数据包,以互不重叠等长的格式划分。
步骤2:分别利用大喷泉码和小喷泉码对源文件的内容和比特长数字进行编码;
其中,大喷泉码用于编码存储源文件的内容、源文件的名字以及一个哈希值,哈希值用于解码时的自校验;编码过程与小喷泉码编码相互独立,大小喷泉码编码同一个数据包时使用同一个随机种子;
小喷泉码用于对待存储的源文件的比特长该关键参数进行编码存储,并将编码结果与大喷泉码编码的结果、随机种子、纠错编码数据合并成最终的编码数据包;
请见图4,本实施例的每个数据包末尾固定只拼接一个小喷泉码编码数据,数据包头部存放大喷泉码与小喷泉码共同的随机种子;小喷泉码编码数据尾部拼接一个哈希值,用于解码时的哈希自校验;
将编码生成的数据转换成DNA序列,并筛选出不含指定规避序列的DNA序列,获得用户指定长度和数量的合格DNA序列;指定规避序列,是DNA序列里用户输入的指定的DNA子片段;
步骤3:DNA序列生化实验序列合成、扩增、存储、测序;
DNA序列的生化合成、扩增、存储、测序为存储介质的保存阶段。数字信息利用计算机转换成DNA序列后要利用生化实验转换成实际的脱氧核糖核苷酸(DNA)有机物,DNA具有一定的半衰期,因此需要对合成的DNA序列进行扩增,再将DNA放入培养基或生物体内进行存储。再数据读取阶段,先获取存储的脱氧核糖核苷酸有机物,再利用DNA测序技术获得真实的DNA序列,再将测序的序列结果送入计算机进行解码读取存储的信息。
步骤4:利用大喷泉码和小喷泉码对合格DNA序列解码;
将合格DNA序列转换成二进制数据,从数据中按照预设长度分割出小喷泉码,进行小喷泉码解码;
利用小喷泉码解码出的数据进行大喷泉码解码,解码成功则恢复出存储的源文件。
请见图2,本实施例中,步骤2的具体实现包括以下子步骤:
步骤2.1:读入源文件,获取源文件比特长和文件内容生成哈希值后与文件拼接;
步骤2.2:根据用户输入信息计算种子空间,源文件划分数据包(大喷泉码),记为A,原文件比特长生成哈希值后拼接成一个数,划分数据包(小喷泉码),记为B;
其中,随机种子的比特长根据编码时用户要求的DNA序列数量确定。
传统喷泉码在对数据进行编码时,有一个度分布函数用于指导编码,而每编码一个数据包就需要一个唯一的随机种子,随机种子从0开始可以无限生成,但在DNA存储应用场景中,在编码之前用户就需要确定编码DNA序列也就是喷泉码编码数据包的数量,因此随机种子不用产生无限个,根据用户需要的DNA序列数量确定随机种子的范围,此时再计算随机中的比特长(种子空间)。例如用户需要编码1000条DNA序列,随机种子从0到999,而数字999在计算机里需要10比特长度来表示,因此计算种子空间为10比特,也就是说从0到999这1000个数都用10比特的长度来表示。
孤波分布为传统喷泉码的度分布函数:
d为度,K为待编码数据包的个数。
步骤2.3:利用大喷泉码对A进行编码,利用小喷泉码对B进行编码;
步骤2.4:将随机种子、大喷泉码、小喷泉码和纠错编码合并成最终的编码数据包,并转换成DNA序列;
步骤2.5:判断是否出现规避序列;
若是,则丢弃,并回转执行步骤2.3;
若否,则保留DNA序列,将编码生成的DNA序列输出写入文件;
步骤2.6:判断种子空间是否耗尽;
若是,则种子空间加1后回转执行步骤2.2;
若否,则执行步骤2.7;
步骤2.6:判断DNA序列是否达到要求;
若是,则被流程结束;
若否,则回转执行步骤2.3。
请见图3,本实施例中,步骤4的具体实现包括以下子步骤:
步骤4.1:用纠错编码筛选合格DNA序列,转换成二进制数据;
步骤4.2:按照种子空间,取所有序列的头部作为种子;
步骤4.3:取所有序列的末尾固定的比特作为小喷泉码编码数据;
步骤4.4:随机种子与小喷泉码尝试解码;
步骤4.5:判断是否解码成功;
若是,则执行步骤4.6;
若否,则执行步骤4.12;
步骤4.6:小喷泉码末尾哈希值进行自校验;
步骤4.7:判断自校验是否成功;
若是,则执行步骤4.8;
若否,则执行步骤4.12;
步骤4.8:确定种子空间,利用小喷泉码结果进行大喷泉码解码;
步骤4.9:判断解码是否成功;
若是,则执行步骤4.10;
若否,则给出解码失败原因为DNA序列数量不够,本流程结束;
步骤4.10:大喷泉码解码数据进行哈希自校验;
步骤4.11:判断哈希自校验是否成功;
若是,则解码成功,本流程结束;
若否,则给出解码失败原因为DNA变异,有错误序列参与解码,本流程结束;
步骤4.12:判断种子空间是否达到预定的上限;
若是,则解码失败,给出解码失败原因为序列数量不够或基因变异有错误序列参与解码,本流程结束;
若否,则种子空间加1,并回转执行步骤4.2。
本实施例中,大小喷泉码编码对用户输入的待存储的源文件进行编码处理,对一定范围内的任意大小和类型的文件都可进行编码存储,编码是用户可以指定编码输出DNA序列的长度和数量,编码程序在对用户输入的信息进行判断合法后进行编码,编码生成的DNA序列在进行生化实验处理和保存。
本实施例在喷泉码编码之前先进行信源编码预处理,包括:
(1)读入源文件,进行拼接文件名、生成哈希值以及数据填充等操作;
(2)获取源文件的比特长,生成哈希值进行拼接;
(3)将源文件内容及源文件比特长划分数据包,以互不重叠等长的格式划分。
本实施例的大喷泉码与小喷泉码的编码方式与传统的喷泉码编码相同,编码过程主要为:
(1)根据给出的度分布函数,得到一个随机值d,作为编码数据包的度。
(2)从源文件划分的K个数据包中,均匀随机挑选d个数据包作为待编码数据包的原始数据包。
(3)将选出的d个原始数据包进行异或运算,得到的结果就是编码数据包的值。
(4)一直重复上面三个步骤,可得到任意数量的编码数据包。
在编码的具体实施过程中,编码程序先读取待存储的源文件,获得其比特长;将源文件的文件名按照100字节拼在文件内容后,对整体进行哈希生成一个256位的哈希,在拼接在末尾,对这个数据使用大喷泉码进行编码存储;对源文件的比特长信息用64位的数据类型表示,对这个数进行哈希同样生成一个256位的哈希值,拼接在源文件比特长之后,再对其使用小喷泉码进行编码存储。
在规避序列筛选阶段,由于生化实验上的限制,并不是所有与生成的DNA序列都是可用的,例如GC含量高、均聚物长(如AAAAAA…)或序列中含有酶切位点子序列的DNA序列是不可取的,因为它们很难合成,而且容易出现测序错误,所以为了保证编码数据转换成的DNA序列可以满足生化合成实验上的要求,在编码输出DNA序列时要考虑规避序列的限制。
借助喷泉码的纠删性质来进行规避序列的筛选。
由于喷泉码主要应用在删除信道的场景中,喷泉码良好的特性能够保证即使在有数据丢失的情况下,只要收集到足够数量的数据包依然有较高的概率成功解码出源文件。因此当编码生成的DNA序列中出现了需要规避的子序列时,可直接丢弃该条序列,由于编码端可以生成无限数量的编码数据包,所以丢弃部分数据不会对整个编解码过程产生影响。当编码出足够数量的合格的DNA序列时,即可停止编码。
解码对接收到的DNA序列进行解码,先将所有DNA序列转换成二进制数据,再从数据的头部按照与编码装置约定的随机种子范围截取随机种子,再从数据包尾部按照与编码装置约定的长度截取小喷泉码数据。
本实施例中,编码与解码约定随机种子的比特长范围为10比特到24比特,可编码DNA序列条数范围为1024条至16777216条,符合实际应用的需求,该范围也可根据实际的使用场景进行扩大或缩小,只需编码和解码约定好相同的范围即可。
需要说明的是,解码用于解码的数据包全部都应该为正确的序列,不能让有错误的DNA序列参与解码。DNA序列的正确性通过在DNA序列的末尾添加纠错码予以保证,解码端在解码时先利用纠错码进行DNA序列筛选,挑选出所有合格的DNA序列后再进行解码。
本实施例中,解码具体用于:
对接收到的数据包进行转换,将DNA序列转换为而二进制数据。
按照与编码约定好的规则,从转换的数据头部截取数据作为数据包的随机种子,再从数据包尾部截取小喷泉码编码数据。
先利用所有的随机种子和小喷泉码数据对小喷泉码进行解码,利用小喷泉码编码存储数据末尾的256位长的哈希值进行哈希自校验,通过哈希校验的即为正确的随机种子;否则将随机种子的比特长加1,再次进行小喷泉码解码。
本实施例中,小喷泉码解码成功后,利用小喷泉码解码出的数据与确定的随机种子对大喷泉数据进行解码,对大喷泉码解码出的数据同样利用末尾的256位的哈希值进行自校验,通过自校验的数据即为解码成功,从剩余的数据末尾截取100字节为文件名,将剩余的数据写入文件保存,解码程序结束。
本实施例中,编码与解码是相互配套的,同一套的编码与解码具有相同的规则约定,例如随机种子的比特长度范围、小喷泉码数据包的长度、一些参数的数据类型、位长等。
对其他相互配套的编解码来说,不同的编码与解码相互约定的规则可能不同,不是相互配套的编解码不应该混合使用,否则可能导致解码失败。
本邻域内的技术人员应明白,本发明的实施可提供模型、算法和计算机程序、置的产品,因此,本发明可采用硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
应当理解的是,上述针对较佳实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。

Claims (9)

1.一种基于大小喷泉码利用DNA进行信息存储的方法,其特征在于,包括以下步骤:
步骤1:对待存储的源文件进行处理,包括:
(1)读入源文件,进行拼接文件名、生成哈希值以及数据填充操作;
(2)获取源文件的比特长,生成哈希值进行拼接;
(3)将源文件内容及源文件比特长划分数据包,以互不重叠等长的格式划分;
步骤2:分别利用大喷泉码和小喷泉码对源文件的内容和比特长数字进行编码;
其中,大喷泉码用于编码存储源文件的内容、源文件的名字以及一个哈希值,哈希值用于解码时的自校验;编码过程与小喷泉码编码相互独立,大小喷泉码编码同一个数据包时使用同一个随机种子;
小喷泉码,用于对待存储的源文件的比特长度这个参数进行编码存储,并将编码结果与大喷泉码编码的结果、随机种子、纠错编码数据合并成最终的编码数据包;每个数据包末尾固定只拼接一个小喷泉码编码数据,数据包头部存放大喷泉码与小喷泉码共同的随机种子;小喷泉码编码数据尾部拼接一个哈希值,用于解码时的哈希自校验;
将编码生成的数据转换成DNA序列,并筛选出不含指定规避序列的DNA序列,获得用户指定长度和数量的合格DNA序列;所述指定规避序列,是DNA序列里用户输入的指定的DNA子片段;
步骤3:DNA序列存储;
步骤4:利用大喷泉码和小喷泉码对合格DNA序列解码;
将合格DNA序列转换成二进制数据,从数据中按照预设长度分割出小喷泉码,进行小喷泉码解码;
利用小喷泉码解码出的数据进行大喷泉码解码,解码成功则恢复出存储的源文件。
2.根据权利要求1所述的基于大小喷泉码利用DNA进行信息存储的方法,其特征在于,步骤2的具体实现包括以下子步骤:
步骤2.1:读入源文件,获取源文件比特长和文件内容生成哈希值后与文件拼接;
步骤2.2:根据用户输入信息计算种子空间,源文件划分数据包,记为A,原文件比特长生成哈希值后拼接成一个数,划分数据包,记为B;
步骤2.3:利用大喷泉码对A进行编码,利用小喷泉码对B进行编码;
步骤2.4:将随机种子、大喷泉码、小喷泉码和纠错编码合并成最终的编码数据包,并转换成DNA序列;
步骤2.5:判断是否出现规避序列;
若是,则丢弃,并回转执行步骤2.3;
若否,则保留DNA序列,将编码生成的DNA序列输出写入文件;
步骤2.6:判断种子空间是否耗尽;
若是,则种子空间加1后回转执行步骤2.2;
若否,则执行步骤2.7;
步骤2.7:判断DNA序列是否达到要求;
若是,则被流程结束;
若否,则回转执行步骤2.3。
3.根据权利要求2所述的基于大小喷泉码利用DNA进行信息存储的方法,其特征在于:步骤2.2中所述种子空间的随机种子的比特长根据编码时用户要求的DNA序列数量确定。
4.根据权利要求1所述的基于大小喷泉码利用DNA进行信息存储的方法,其特征在于,步骤4的具体实现包括以下子步骤:
步骤4.1:用纠错编码筛选合格DNA序列,转换成二进制数据;
步骤4.2:按照种子空间,取所有序列的头部作为种子;
步骤4.3:取所有序列的末尾固定的比特作为小喷泉码编码数据;
步骤4.4:随机种子与小喷泉码尝试解码;
步骤4.5:判断是否解码成功;
若是,则执行步骤4.6;
若否,则执行步骤4.12;
步骤4.6:小喷泉码末尾哈希值进行自校验;
步骤4.7:判断自校验是否成功;
若是,则执行步骤4.8;
若否,则执行步骤4.12;
步骤4.8:确定种子空间,利用小喷泉码结果进行大喷泉码解码;
步骤4.9:判断解码是否成功;
若是,则执行步骤4.10;
若否,则给出解码失败原因为DNA序列数量不够,本流程结束;
步骤4.10:大喷泉码解码数据进行哈希自校验;
步骤4.11:判断哈希自校验是否成功;
若是,则解码成功,本流程结束;
若否,则给出解码失败原因为DNA变异,有错误序列参与解码,本流程结束;
步骤4.12:判断种子空间是否达到预定的上限;
若是,则解码失败,给出解码失败原因为序列数量不够或基因变异有错误序列参与解码,本流程结束;
若否,则种子空间加1,并回转执行步骤4.2。
5.一种基于大小喷泉码利用DNA进行信息存储的系统,其特征在于,包括以下模块:
模块1,用于对待存储的源文件进行处理,包括:
(1)读入源文件,进行拼接文件名、生成哈希值以及数据填充操作;
(2)获取源文件的比特长,生成哈希值进行拼接;
(3)将源文件内容及源文件比特长划分数据包,以互不重叠等长的格式划分;
模块2,用于分别利用大喷泉码和小喷泉码对源文件的内容和比特长数字进行编码;
其中,大喷泉码用于编码存储源文件的内容、源文件的名字以及一个哈希值,哈希值用于解码时的自校验;编码过程与小喷泉码编码相互独立,大小喷泉码编码同一个数据包时使用同一个随机种子;
小喷泉码,用于对待存储的源文件的比特长度这个参数进行编码存储,并将编码结果与大喷泉码编码的结果、随机种子、纠错编码数据合并成最终的编码数据包;每个数据包末尾固定只拼接一个小喷泉码编码数据,数据包头部存放大喷泉码与小喷泉码共同的随机种子;小喷泉码编码数据尾部拼接一个哈希值,用于解码时的哈希自校验;
将编码生成的数据转换成DNA序列,并筛选出不含指定规避序列的DNA序列,获得用户指定长度和数量的合格DNA序列;所述指定规避序列,是DNA序列里用户输入的指定的DNA子片段;
模块3:DNA序列存储;
模块4:利用大喷泉码和小喷泉码对合格DNA序列解码;
将合格DNA序列转换成二进制数据,从数据中按照预设长度分割出小喷泉码,进行小喷泉码解码;
利用小喷泉码解码出的数据进行大喷泉码解码,解码成功则恢复出存储的源文件。
6.根据权利要求5所述的基于大小喷泉码利用DNA进行信息存储的系统,其特征在于,模块2包括以下子模块:
模块2.1,用于读入源文件,获取源文件比特长和文件内容生成哈希值后与文件拼接;
模块2.2,用于根据用户输入信息计算种子空间,源文件划分数据包,记为A,原文件比特长生成哈希值后拼接成一个数,划分数据包,记为B;
模块2.3,用于利用大喷泉码对A进行编码,利用小喷泉码对B进行编码;
模块2.4,用于将随机种子、大喷泉码、小喷泉码和纠错编码合并成最终的编码数据包,并转换成DNA序列;
模块2.5,用于判断是否出现规避序列;
若是,则丢弃,并回转执行模块2.3;
若否,则保留DNA序列,将编码生成的DNA序列输出写入文件;
模块2.6,用于判断种子空间是否耗尽;
若是,则种子空间加1后回转执行模块2.2;
若否,则执行模块2.7;
模块2.6,用于判断DNA序列是否达到要求;
若是,则被流程结束;
若否,则回转执行模块2.3。
7.根据权利要求6所述的基于大小喷泉码利用DNA进行信息存储的系统,其特征在于:模块2.2中所述随机种子的比特长根据编码时用户要求的DNA序列数量确定。
8.根据权利要求5所述的基于大小喷泉码利用DNA进行信息存储的系统,其特征在于,模块4包括以下子模块:
模块4.1,用于用纠错编码筛选合格DNA序列,转换成二进制数据;
模块4.2,用于按照种子空间,取所有序列的头部作为种子;
模块4.3,用于取所有序列的末尾固定的比特作为小喷泉码编码数据;
模块4.4,用于随机种子与小喷泉码尝试解码;
模块4.5,用于判断是否解码成功;
若是,则执行模块4.6;
若否,则执行模块4.12;
模块4.6,用于小喷泉码末尾哈希值进行自校验;
模块4.7,用于判断自校验是否成功;
若是,则执行模块4.8;
若否,则执行模块4.12;
模块4.8,用于确定种子空间,利用小喷泉码结果进行大喷泉码解码;
模块4.9,用于判断解码是否成功;
若是,则执行模块4.10;
若否,则给出解码失败原因为DNA序列数量不够,本流程结束;
模块4.10,用于大喷泉码解码数据进行哈希自校验;
模块4.11,用于判断哈希自校验是否成功;
若是,则解码成功,本流程结束;
若否,则给出解码失败原因为DNA变异,有错误序列参与解码,本流程结束;
模块4.12,用于判断种子空间是否达到预定的上限;
若是,则解码失败,给出解码失败原因为序列数量不够或基因变异有错误序列参与解码,本流程结束;
若否,则种子空间加1,并回转执行模块4.2。
9.一种基于大小喷泉码利用DNA进行信息存储的设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至4中任一项所述的基于大小喷泉码利用DNA进行信息存储的方法。
CN202211633595.5A 2022-12-19 2022-12-19 基于大小喷泉码利用dna进行信息存储的方法、系统及设备 Active CN116226049B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211633595.5A CN116226049B (zh) 2022-12-19 2022-12-19 基于大小喷泉码利用dna进行信息存储的方法、系统及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211633595.5A CN116226049B (zh) 2022-12-19 2022-12-19 基于大小喷泉码利用dna进行信息存储的方法、系统及设备

Publications (2)

Publication Number Publication Date
CN116226049A CN116226049A (zh) 2023-06-06
CN116226049B true CN116226049B (zh) 2023-11-10

Family

ID=86577569

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211633595.5A Active CN116226049B (zh) 2022-12-19 2022-12-19 基于大小喷泉码利用dna进行信息存储的方法、系统及设备

Country Status (1)

Country Link
CN (1) CN116226049B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018148257A1 (en) * 2017-02-13 2018-08-16 Thomson Licensing Apparatus, method and system for digital information storage in deoxyribonucleic acid (dna)
WO2020254428A2 (en) * 2019-06-19 2020-12-24 Eth Zurich Functional materials with embedded memory using sequence-controlled polymer-based storage
CN114974429A (zh) * 2022-06-22 2022-08-30 任兆瑞 一种基于十进制的dna存储编码方法、设备及可读存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10027347B2 (en) * 2014-03-28 2018-07-17 Thomson Licensing Methods for storing and reading digital data on a set of DNA strands
US10742233B2 (en) * 2017-07-11 2020-08-11 Erlich Lab Llc Efficient encoding of data for storage in polymers such as DNA
CN112313749A (zh) * 2018-04-13 2021-02-02 香港理工大学 使用肽的数据存储
CN113314187B (zh) * 2021-05-27 2022-05-10 广州大学 一种数据存储方法、解码方法、系统、装置及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018148257A1 (en) * 2017-02-13 2018-08-16 Thomson Licensing Apparatus, method and system for digital information storage in deoxyribonucleic acid (dna)
WO2020254428A2 (en) * 2019-06-19 2020-12-24 Eth Zurich Functional materials with embedded memory using sequence-controlled polymer-based storage
CN114974429A (zh) * 2022-06-22 2022-08-30 任兆瑞 一种基于十进制的dna存储编码方法、设备及可读存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DNA存储中的编码技术;毕昆;顾万君;陆祖宏;;生物信息学;18(第02期);全文 *
隐蔽信道新型分类方法与威胁限制策略;王翀;王秀利;吕荫润;张常有;吴敬征;关贝;王永吉;;软件学报;31(第01期);全文 *

Also Published As

Publication number Publication date
CN116226049A (zh) 2023-06-06

Similar Documents

Publication Publication Date Title
US11263416B2 (en) Two-dimensional code generation and identification
Shomorony et al. DNA-based storage: Models and fundamental limits
US10742233B2 (en) Efficient encoding of data for storage in polymers such as DNA
WO2018148260A1 (en) Apparatus, method and system for digital information storage in deoxyribonucleic acid (dna)
Lenz et al. An upper bound on the capacity of the DNA storage channel
Welzel et al. DNA-Aeon provides flexible arithmetic coding for constraint adherence and error correction in DNA storage
CN110719141B (zh) 一种信息的传输方法、译码方法和装置
CN1187718A (zh) 包括结合正交调幅的穿孔乘积码的数字传输系统与方法
Drinea et al. On lower bounds for the capacity of deletion channels
Gabrys et al. Unique reconstruction of coded strings from multiset substring spectra
CN116187435B (zh) 基于大小喷泉码及mrc算法利用dna进行信息存储方法及系统
Mishra et al. Compressed DNA coding using minimum variance Huffman tree
CN110060734B (zh) 一种高鲁棒性dna测序用条形码生成和读取方法
CN114253484B (zh) 一种大数据云存储服务器
Kracht et al. Insertion and deletion correcting DNA barcodes based on watermarks
CN115296862A (zh) 一种基于数据编码的网络数据安全传输方法
Zhang et al. A high storage density strategy for digital information based on synthetic DNA
CN116226049B (zh) 基于大小喷泉码利用dna进行信息存储的方法、系统及设备
Pic et al. Rotating labeling of entropy coders for synthetic DNA data storage
CN113687976A (zh) 面向dna信息存储的编码和解码方法与装置
KR102339723B1 (ko) Dna 저장 장치의 연성 정보 기반 복호화 방법, 프로그램 및 장치
CN110808739A (zh) 一种信源符号概率分布未知的二元编码方法及装置
CN116564424A (zh) 基于纠删码与组装技术的dna数据存储方法、读取方法及终端
Qin et al. Robust Multi-Read Reconstruction from Contaminated Clusters Using Deep Neural Network for DNA Storage
US20240184666A1 (en) Preprocessing for Correcting Insertions and Deletions in DNA Data Storage

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