CN118118034A - 八碱基霍夫曼压缩轮转编码方法及装置 - Google Patents
八碱基霍夫曼压缩轮转编码方法及装置 Download PDFInfo
- Publication number
- CN118118034A CN118118034A CN202410177806.1A CN202410177806A CN118118034A CN 118118034 A CN118118034 A CN 118118034A CN 202410177806 A CN202410177806 A CN 202410177806A CN 118118034 A CN118118034 A CN 118118034A
- Authority
- CN
- China
- Prior art keywords
- base
- system data
- huffman
- pseudo
- data
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000007906 compression Methods 0.000 title claims abstract description 57
- 230000006835 compression Effects 0.000 title claims abstract description 57
- 238000004422 calculation algorithm Methods 0.000 claims description 24
- 239000002773 nucleotide Substances 0.000 claims description 14
- 125000003729 nucleotide group Chemical group 0.000 claims description 14
- 238000012795 verification Methods 0.000 claims description 12
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 108020004414 DNA Proteins 0.000 abstract description 31
- 108091028043 Nucleic acid sequence Proteins 0.000 abstract description 19
- 238000013500 data storage Methods 0.000 abstract description 8
- 230000015572 biosynthetic process Effects 0.000 abstract description 4
- 238000003786 synthesis reaction Methods 0.000 abstract description 4
- 238000012545 processing Methods 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 16
- 238000012937 correction Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 11
- 238000012163 sequencing technique Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 238000007672 fourth generation sequencing Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 101000899334 Homo sapiens Helicase POLQ-like Proteins 0.000 description 3
- 108060004795 Methyltransferase Proteins 0.000 description 3
- 230000002194 synthesizing effect Effects 0.000 description 3
- 229930182476 C-glycoside Natural products 0.000 description 2
- 238000001712 DNA sequencing Methods 0.000 description 2
- 102100022536 Helicase POLQ-like Human genes 0.000 description 2
- 238000012408 PCR amplification Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000010494 dissociation reaction Methods 0.000 description 2
- 230000005593 dissociations Effects 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000002777 nucleoside Substances 0.000 description 2
- 239000000126 substance Substances 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- -1 C-glycoside nucleoside Chemical class 0.000 description 1
- 150000000700 C-glycosides Chemical class 0.000 description 1
- 102000053602 DNA Human genes 0.000 description 1
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000037429 base substitution Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- SPTYHKZRPFATHJ-HYZXJONISA-N dT6 Chemical compound O=C1NC(=O)C(C)=CN1[C@@H]1O[C@H](COP(O)(=O)O[C@@H]2[C@H](O[C@H](C2)N2C(NC(=O)C(C)=C2)=O)COP(O)(=O)O[C@@H]2[C@H](O[C@H](C2)N2C(NC(=O)C(C)=C2)=O)COP(O)(=O)O[C@@H]2[C@H](O[C@H](C2)N2C(NC(=O)C(C)=C2)=O)COP(O)(=O)O[C@@H]2[C@H](O[C@H](C2)N2C(NC(=O)C(C)=C2)=O)COP(O)(=O)O[C@@H]2[C@H](O[C@H](C2)N2C(NC(=O)C(C)=C2)=O)CO)[C@@H](O)C1 SPTYHKZRPFATHJ-HYZXJONISA-N 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 229930182470 glycoside Natural products 0.000 description 1
- 229920001519 homopolymer Polymers 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000002515 oligonucleotide synthesis Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000000863 peptide conjugate Substances 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000002910 structure generation Methods 0.000 description 1
Abstract
本发明提供了一种八碱基霍夫曼压缩轮转编码方法及装置,涉及DNA数据存储技术领域。所述方法包括:通过霍夫曼压缩将原始数据压缩为六进制数据;基于六种碱基排列对所述六进制数据进行轮转编码,得到碱基序列。本发明,利用非天然碱基(P、B、S、Z)参与DNA序列的合成,并利用霍夫曼压缩处理数据可以增加DNA数据存储的存储密度,本发明实施例中,还提出对霍夫曼压缩处理得到的六进制数据进行轮转编码,避免碱基S连续出现、碱基Z连续出现以及碱基S和碱基Z连续出现,从而避免后续DNA测序过程中Hel308解旋酶的解离,造成测序结果错误。
Description
技术领域
本发明实施例涉及DNA数据存储技术领域,尤其涉及一种八碱基霍夫曼压缩轮转编码方法及装置。
背景技术
随着信息技术的快速发展,数据的指数级增长与当前主流存储介质的有限容量之间的差距越来越明显。面对数据存储的压力,亟需开发更高效的存储介质。DNA以其高信息密度、显著的耐用性、强大的可复制性和低维护成本等吸引人的优势,成为了一种具有巨大潜力的数据存储介质,相关技术中一系列的验证研究证明了DNA在信息存储领域的巨大价值。
人类目前正在以指数速度生产数据,这对更好的存储设备产生了需求。DNA是一种优秀的数据存储介质,因为它展示了每克百万字节数据的信息密度,高耐用性。
典型的DNA存储信息的全过程包括:1、信息编码,将选定的信息转换为二进制或其他形式的比特序列;2、DNA序列设计,设计DNA序列的编码规则,将比特映射到DNA碱基对,根据设计规则,将比特序列翻译为对应的DNA序列;3、DNA合成,实验室中通过化学方法合成设计好的DNA序列;4、DNA存储,存储合成的DNA样本;5、检索与读取,在需要读取信息时,从存储库中提取DNA样本,使用测序技术读取DNA序列,将读取的DNA序列解码为比特序列;6、信息还原,将解码后的比特序列转换回原始的数字信息形式。
在信息编码的过程中,使用DNA的四个碱基进行存储,存储密度较低。并且由于处理相似的数据,往往会在二进制编码中生成大量连续的0和1。因此,在DNA序列设计过程中,这种情况会导致大量连续相同的碱基出现。然而,DNA编码面临着物理限制,例如难以合成具有高GC含量和长均聚物序列(例如AAAAAA、TTTTTT…),因为这很容易出现测序错误,在寡核苷酸合成、聚合酶链式反应扩增和DNA储存过程可能会导致缺失、插入和取代错误。
发明内容
本发明实施例提供了一种八碱基霍夫曼压缩轮转编码方法及装置,以提高DNA数据存储的信息存储密度。
本发明实施例第一方面提供了一种八碱基霍夫曼压缩轮转编码方法,所述方法包括:
通过霍夫曼压缩将原始数据压缩为六进制数据;
基于六种碱基排列对所述六进制数据进行轮转编码,得到碱基序列;
其中,所述六种碱基排列是基于轮转编码算法,在以八种碱基S、Z、P、B、A、T、C、G为前一位核苷酸,并避免碱基S连续出现、碱基Z连续出现以及碱基S和碱基Z连续出现的情况下,对所述八种碱基进行排列得到的。
可选地,通过霍夫曼压缩将原始数据压缩为六进制数据,包括:
基于原始数据中的每个字符的出现频率构建霍夫曼六叉树;
遍历所述霍夫曼六叉树,给每个字符分配一个唯一的霍夫曼编码;
使用生成的霍夫曼编码替换原始数据中的每个字符,得到所述六进制数据。
可选地,基于所述六种碱基排列对所述六进制数据进行轮转编码,得到碱基序列,包括:
基于以下八碱基轮转编码算法,对所述六进制数据进行轮转编码,根据每一位数据的前一位核苷酸和当前数据信息查询所述六种碱基排列确定每一位数据对应的碱基,得到碱基序列:
可选地,所述方法还包括:
基于伪随机数生成器生成伪随机序列,并保存生成所述伪随机序列的种子值;
将所述伪随机序列转换为六进制伪随机序列;
将所述六进制伪随机序列与所述六进制数据相加,得到预处理六进制数据;
基于所述六种碱基排列对所述六进制数据进行轮转编码,得到碱基序列,包括:
基于所述六种碱基排列对所述预处理六进制数据进行轮转编码,得到碱基序列。
可选地,所述方法还包括:
将所述六进制数据按照预设DNA长度划分为多个六进制数据段;
对每个六进制数据段进行计算,得到对应的校验信息;
将所述校验信息添加到对应的六进制数据段中;
基于所述六种碱基排列对所述六进制数据进行轮转编码,得到碱基序列,包括:
基于所述六种碱基排列对各个六进制数据段进行轮转编码,得到多个碱基序列段。
本发明实施例第二方面提供了一种八碱基霍夫曼压缩轮转编码装置,所述装置包括:
压缩模块,用于通过霍夫曼压缩将原始数据压缩为六进制数据;
编码模块,用于基于六种碱基排列对所述六进制数据进行轮转编码,得到碱基序列;
其中,所述六种碱基排列是基于轮转编码算法,在以八种碱基S、Z、P、B、A、T、C、G为前一位核苷酸,并避免碱基S连续出现、碱基Z连续出现以及碱基S和碱基Z连续出现的情况下,对所述八种碱基进行排列得到的。
可选地,所述压缩模块,具体用于:
基于原始数据中的每个字符的出现频率构建霍夫曼六叉树;
遍历所述霍夫曼六叉树,给每个字符分配一个唯一的霍夫曼编码;
使用生成的霍夫曼编码替换原始数据中的每个字符,得到所述六进制数据。
可选地,所述编码模块,具体用于:
基于以下八碱基轮转编码算法,对所述六进制数据进行轮转编码,根据每一位数据的前一位核苷酸和当前数据信息查询所述六种碱基排列确定每一位数据对应的碱基,得到碱基序列:
可选地,所述装置还包括:
伪随机序列生成模块,用于基于伪随机数生成器生成伪随机序列,并保存生成所述伪随机序列的种子值;
伪随机序列转换模块,用于将所述伪随机序列转换为六进制伪随机序列;
叠加模块,用于将所述六进制伪随机序列与所述六进制数据相加,得到预处理六进制数据;
所述编码模块,具体用于:
基于所述六种碱基排列对所述预处理六进制数据进行轮转编码,得到碱基序列。
可选地,所述装置还包括:
划分模块,用于将所述六进制数据按照预设DNA长度划分为多个六进制数据段;
计算模块,用于对每个六进制数据段进行计算,得到对应的校验信息;
添加模块,用于将所述校验信息添加到对应的六进制数据段中;
所述编码模块,具体用于:
基于所述六种碱基排列对各个六进制数据段进行轮转编码,得到多个碱基序列段。
本发明实施例提供的八碱基霍夫曼压缩轮转编码方法中,利用非天然碱基(P、B、S、Z)参与DNA序列的合成,并利用霍夫曼压缩处理数据可以增加DNA数据存储的存储密度,本发明实施例中,还提出对霍夫曼压缩处理得到的六进制数据进行轮转编码,避免碱基S连续出现、碱基Z连续出现以及碱基S和碱基Z连续出现,从而避免后续DNA测序过程中Hel308解旋酶的解离,造成测序结果错误。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中提供的八碱基霍夫曼压缩轮转编码方法的步骤流程示意图;
图2是本发明实施例中提供的八碱基霍夫曼压缩轮转编码方法的步骤流程示意图;
图3是本发明实施例中提供的八碱基霍夫曼压缩轮转编码方法的步骤流程示意图;
图4是本发明实施例中提供的八碱基霍夫曼压缩轮转编码装置的结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
自然界中的天然碱基包括A、G、C、T,只使用DNA的四个碱基进行存储,存储密度较低,由此,本发明提出额外采用非天然碱基P、B、S、Z合成DNA序列以增大DNA存储的存储密度。采用非天然碱基P、B、S、Z合成DNA序列的情况下,需要采用纳米孔测序方法以实现DNA测序,以进一步解码得到原始数据,基于纳米孔技术的测序技术中,需要在Hel308 DNA解旋酶的作用下,将DNA-肽偶联物拉过MspA纳米孔,此时纳米孔会在离子流中产生独特的阶梯状电流信号,通过配套的识别软件,可以准确识别电流信号,并对电流中值进行分析。而连续C-糖苷核苷增加了Hel308与DNA解离概率,由此,本发明实施例提出采用轮转编码方式,可以避免碱基S连续出现、碱基Z连续出现以及碱基S和碱基Z连续出现,可以提高读取DNA序列的准确性。DNA存储过程中有信息编码过程,本发明实施例中采用霍夫曼压缩对比特序列进行压缩,可以增大DNA存储的存储密度。
具体的,本发明实施例中提供了一种八碱基霍夫曼压缩轮转编码方法,如图1所示,其示出了本发明实施例中提供的八碱基霍夫曼压缩轮转编码方法的步骤流程示意图,所述方法包括以下步骤:
S101,通过霍夫曼压缩将原始数据压缩为六进制数据。
S102,基于六种碱基排列对所述六进制数据进行轮转编码,得到碱基序列。
其中,所述六种碱基排列是基于轮转编码算法,在以八种碱基S、Z、P、B、A、T、C、G为前一位核苷酸,并避免碱基S连续出现、碱基Z连续出现以及碱基S和碱基Z连续出现的情况下,对所述八种碱基进行排列得到的。
本发明实施例中,步骤S101具体可以包括以下子步骤:
S1011,基于原始数据中的每个字符的出现频率构建霍夫曼六叉树。
S1012,遍历所述霍夫曼六叉树,给每个字符分配一个唯一的霍夫曼编码。
S1033,使用生成的霍夫曼编码替换原始数据中的每个字符,得到所述六进制数据。
霍夫曼压缩(Huffman Compression)是一种无损数据压缩算法。该算法通过根据输入数据中符号的出现频率来构建一颗霍夫曼树(Huffman Tree),从而实现对数据的高效压缩。霍夫曼压缩的整体思路如下:
1)构建霍夫曼树,统计输入数据中的每个符号(字符或比特)的出现频率,创建包含每个符号及其频率的叶节点的优先队列,从队列中弹出两个频率最低的节点,创建一个新的节点作为它们的父节点,其频率为子节点的频率之和,将新节点重新插入队列中,重复上述步骤,直到队列中只剩下一个节点,这个节点就是霍夫曼树的根节点。
2)生成霍夫曼编码,通过遍历霍夫曼树,给每个符号分配一个唯一的六进制编码,将这些编码存储在霍夫曼编码表中,用于压缩和解压。
3)压缩数据,使用生成的霍夫曼编码替换输入数据中的每个符号,替换后的数据即为压缩后的数据。
4)解压数据,利用霍夫曼编码表,将压缩后的数据解码为原始数据。
本发明实施例中,在得到霍夫曼编码之后,将每个字符对应的霍夫曼编码关联存储为霍夫曼编码表,对霍夫曼编码表进行存储,以使后续解码装置可以基于该霍夫曼编码表进行解码。
本发明实施例中,步骤S102具体可以包括:
基于以下八碱基轮转编码算法,对所述六进制数据进行轮转编码,根据每一位数据的前一位核苷酸和当前数据信息查询所述六种碱基排列确定每一位数据对应的碱基,得到碱基序列:
为了提高纳米孔测序过程的准确性并避免Hel308DNA解旋酶与DNA解离,DNA编码除了需符合生物学和化学方面的限制外,本发明实施例中,还提出了一个额外的编码约束,即需避免连续的C-核苷糖苷(S和Z)出现在编码得到的DNA序列中。轮转编码是一种信息编码的思想,其核心概念是通过对数据进行循环移动(轮转),产生一系列不同的编码形式。
轮转编码整体思路如下:
1)数据轮转:将数据中的一部分进行循环移动,形成不同的排列。
2)编码生成:对每个不同的排列生成一个对应的编码。
3)信息表示:利用不同编码表示原始信息的不同方面,增加信息的多样性。
4)解码还原:在需要还原原始信息时,通过相应的解码算法将编码逆向操作,还原出原始数据。
本发明实施例中,基于上述八碱基轮转编码算法,根据每一位数据的前一位核苷酸和当前数据信息查询上述六种碱基排列确定每一位数据对应的碱基。
由上述八碱基轮转编码算法可以看出,在编码过程中,基于前一位核苷酸和每种数据信息编码对应的碱基排列,进行逐位编码,不会出现碱基S连续排列、碱基Z连续排列,也不会出现碱基S和碱基Z连续排列,从而可以避免出现连续的C-核苷糖苷(S和Z),避免解码过程中采用纳米孔测序方法进行DNA测序的过程中出现Hel308解旋酶解离、造成测序结果错误。
本发明实施例中还提供了一种八碱基霍夫曼压缩轮转编码方法,如图2所示,其示出了本发明实施例中提供的八碱基霍夫曼压缩轮转编码方法的步骤流程示意图,所述方法包括以下步骤:
S201,通过霍夫曼压缩将原始数据压缩为六进制数据。
S202,基于伪随机数生成器生成伪随机序列,并保存生成所述伪随机序列的种子值。
S203,将所述伪随机序列转换为六进制伪随机序列。
S204,将所述六进制伪随机序列与所述六进制数据相加,得到预处理六进制数据。
S205,基于所述六种碱基排列对所述预处理六进制数据进行轮转编码,得到碱基序列。
本发明实施例中,考虑到原始二进制文件转换成六进制文件后会出现较长的连续重复的数据,经过轮转编码后,将会产生包含严重的二级结构的DNA序列,不利于纳米孔测序,由此,本发明实施例进一步提出采用叠加六进制的伪随机序列作为一级纠错保护,降低连续重复的数据,避免二级结构。
具体的,为了避免二级结构产生以及对DNA序列进行indel错误数据定位,在进行轮转编码之前可以先基于上述步骤S202~S204进行特定的伪随机序列生成与编码。
具体的,上述步骤S202中,可以根据DNA序列合成长度要求,确定最终生成的伪随机序列的位数。
可以理解,在实际应用时,可以根据DNA序列合成长度要求对步骤S201中得到的六进制数据进行划分,得到多个六进制数据段。相应的,在步骤S204中,可以将上述步骤S202中生成的伪随机序列与每个六进制数据段分别相叠加。
本发明实施例中,伪随机序列的生成使用伪随机数生成器(PRNG)来实现。PRNG是一种能够生成看似随机的数字序列,但实际上是通过确定性算法计算得到的。本发明实施例中,可以采用相关技术中任一成熟的伪随机数生成器,需要注意的是,在选择PRNG时,需要考虑到生成的随机数应该具有良好的随机性和均匀性。
具体的,本发明实施例中,在使用PRNG之前,可以预先设置一个种子值。种子值是PRNG的起始输入,它确定了生成的随机数序列。使用相同的种子值,生成的随机数序列将会是相同的,因此,在本发明实施例中,可以对所述种子值进行保存,以使后续解码设备可以基于该种子值确定编码时使用的随机数序列。
随机数通常以二进制形式表示,因此,在步骤S203中,可以将伪随机序列转换为六进制序列
具体实施时,可以通过将二进制数按照四位一组进行分割,并将每组转换为对应的十六进制数字来完成。最终得到的序列就是六进制的伪随机序列。
本发明实施例中还提供了一种八碱基霍夫曼压缩轮转编码方法,如图3所示,其示出了本发明实施例中提供的八碱基霍夫曼压缩轮转编码方法的步骤流程示意图,所述方法包括以下步骤:
S301,通过霍夫曼压缩将原始数据压缩为六进制数据。
S302,基于伪随机数生成器生成伪随机序列,并保存生成所述伪随机序列的种子值。
S303,将所述伪随机序列转换为六进制伪随机序列。
S304,将所述六进制伪随机序列与所述六进制数据相加,得到预处理六进制数据。
S305,将所述六进制数据按照预设DNA长度划分为多个六进制数据段。
S306,对每个六进制数据段进行计算,得到对应的校验信息。
S307,将所述校验信息添加到对应的六进制数据段中。
S308,基于所述六种碱基排列对各个六进制数据段进行轮转编码,得到多个碱基序列段。
纳米孔测序作为一种直接测序技术,它通过测量DNA分子通过纳米孔时的电信号变化来进行测序,而不需要PCR扩增或DNA片段连接等操作,相对于传统测序技术(例如Illumina测序)可能会有更高的错误率,包括替换、插入和删除错误,一般约为10%左右。其中indel(插入和删除)错误的纠正算法复杂,效率较低,本发明实施例中利用叠加的伪随机序列定位错误数据的位置,将indel错误转换成替换错误,再利用RS纠错码作为二级纠错保护纠正替换错误,从而恢复数据。
本发明实施例中,步骤S302~S304中提供的伪随机序列叠加方法和步骤S305~S307中提供的RS纠错码方法联合使用,从而在解码过程中可以利用叠加的伪随机序列定位错误数据的位置,将indel错误转换成替换错误,再利用RS纠错码作为二级纠错保护纠正替换错误。
从而,本发明实施例中,在DNA存储信息的信息编码过程中对得到的数据采用霍夫曼压缩,得到六进制序列,在六进制序列上叠加伪随机序列作用为indel错误定位的一级纠错保护,然后添加RS码作为二级纠错保护,纠正碱基替换错误,并在在DNA序列编码过程中采用八碱基轮转编码算法,确保Hel308DNA解旋酶不会因为连续的C-糖苷核苷而与DNA解离。
具体的,RS码属于块码,即传输的信息被分成单独的数据块,每个块还包含对应的奇偶校验位,编码过程不会改变信息符号。
RS码属于线性循环码,它是BCH(Bose-Chaudhuri-Hocquenghem)码的非二进制形式。(n,k)RS码具有以下特征:
1、整段码长为n,其中信息码长为k,纠错码长为n-k;
2、该代码的纠错能力由奇偶校验符号的数量确定。如果预先不知道出错位置,则RS码可以校正t=(n-k)/2个错误;若出错位事先已知,则最多可以纠正t=n-k个错误。
为了纠正DNA序列解码过程中的更多的碱基错误,本发明实施例中,在叠加伪随机数序列的基础上,另外增加RS纠错码设置步骤。具体如上述步骤S305~S307所示,相应的,在解码过程中,RS码的解码过程通常使用译码算法,例如Forney译码算法或者Berlekamp-Massey译码算法。具体的,可以通过以下方法,完成解码:
S1,接收到编码后的码字,并根据伪随机码定位到碱基错误位置,将indel错误转换成替换错误。
S2,使用译码算法,计算出错误位置和错误值。
S3,根据错误位置和错误值,对受损的数据进行纠正,恢复出原始数据。
基于同一发明构思,本发明实施例中还提供了一种八碱基霍夫曼压缩轮转编码装置,如图2所示,其示出了本发明实施例中提供的八碱基霍夫曼压缩轮转编码装置的结构示意图,所述装置包括:
压缩模块401,用于通过霍夫曼压缩将原始数据压缩为六进制数据;
编码模块402,用于基于六种碱基排列对所述六进制数据进行轮转编码,得到碱基序列;
其中,所述六种碱基排列是基于轮转编码算法,在以八种碱基S、Z、P、B、A、T、C、G为前一位核苷酸,并避免碱基S连续出现、碱基Z连续出现以及碱基S和碱基Z连续出现的情况下,对所述八种碱基进行排列得到的。
可选地,所述压缩模块401,具体用于:
基于原始数据中的每个字符的出现频率构建霍夫曼六叉树;
遍历所述霍夫曼六叉树,给每个字符分配一个唯一的霍夫曼编码;
使用生成的霍夫曼编码替换原始数据中的每个字符,得到所述六进制数据。
可选地,所述编码模块402,具体用于:
基于以下八碱基轮转编码算法,对所述六进制数据进行轮转编码,根据每一位数据的前一位核苷酸和当前数据信息查询所述六种碱基排列确定每一位数据对应的碱基,得到碱基序列:
可选地,所述装置还包括:
伪随机序列生成模块,用于基于伪随机数生成器生成伪随机序列,并保存生成所述伪随机序列的种子值;
伪随机序列转换模块,用于将所述伪随机序列转换为六进制伪随机序列;
叠加模块,用于将所述六进制伪随机序列与所述六进制数据相加,得到预处理六进制数据;
所述编码模块402,具体用于:
基于所述六种碱基排列对所述预处理六进制数据进行轮转编码,得到碱基序列。
可选地,所述装置还包括:
划分模块,用于将所述六进制数据按照预设DNA长度划分为多个六进制数据段;
计算模块,用于对每个六进制数据段进行计算,得到对应的校验信息;
添加模块,用于将所述校验信息添加到对应的六进制数据段中;
所述编码模块402,具体用于:
基于所述六种碱基排列对各个六进制数据段进行轮转编码,得到多个碱基序列段。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(装置)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程终端设备的处理器以产生一个机器,使得通过计算机或其他可编程终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种八碱基霍夫曼压缩轮转编码方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种八碱基霍夫曼压缩轮转编码方法,其特征在于,所述方法包括:
通过霍夫曼压缩将原始数据压缩为六进制数据;
基于六种碱基排列对所述六进制数据进行轮转编码,得到碱基序列;
其中,所述六种碱基排列是基于轮转编码算法,在以八种碱基S、Z、P、B、A、T、C、G为前一位核苷酸,并避免碱基S连续出现、碱基Z连续出现以及碱基S和碱基Z连续出现的情况下,对所述八种碱基进行排列得到的。
2.根据权利要求1所述的八碱基霍夫曼压缩轮转编码方法,其特征在于,通过霍夫曼压缩将原始数据压缩为六进制数据,包括:
基于原始数据中的每个字符的出现频率构建霍夫曼六叉树;
遍历所述霍夫曼六叉树,给每个字符分配一个唯一的霍夫曼编码;
使用生成的霍夫曼编码替换原始数据中的每个字符,得到所述六进制数据。
3.根据权利要求1所述的八碱基霍夫曼压缩轮转编码方法,其特征在于,基于所述六种碱基排列对所述六进制数据进行轮转编码,得到碱基序列,包括:
基于以下八碱基轮转编码算法,对所述六进制数据进行轮转编码,根据每一位数据的前一位核苷酸和当前数据信息查询所述六种碱基排列确定每一位数据对应的碱基,得到碱基序列:
4.根据权利要求1~3任一项所述的八碱基霍夫曼压缩轮转编码方法,其特征在于,所述方法还包括:
基于伪随机数生成器生成伪随机序列,并保存生成所述伪随机序列的种子值;
将所述伪随机序列转换为六进制伪随机序列;
将所述六进制伪随机序列与所述六进制数据相加,得到预处理六进制数据;
基于所述六种碱基排列对所述六进制数据进行轮转编码,得到碱基序列,包括:
基于所述六种碱基排列对所述预处理六进制数据进行轮转编码,得到碱基序列。
5.根据权利要求4所述的八碱基霍夫曼压缩轮转编码方法,其特征在于,所述方法还包括:
将所述六进制数据按照预设DNA长度划分为多个六进制数据段;
对每个六进制数据段进行计算,得到对应的校验信息;
将所述校验信息添加到对应的六进制数据段中;
基于所述六种碱基排列对所述六进制数据进行轮转编码,得到碱基序列,包括:
基于所述六种碱基排列对各个六进制数据段进行轮转编码,得到多个碱基序列段。
6.一种八碱基霍夫曼压缩轮转编码装置,其特征在于,所述装置包括:
压缩模块,用于通过霍夫曼压缩将原始数据压缩为六进制数据;
编码模块,用于基于六种碱基排列对所述六进制数据进行轮转编码,得到碱基序列;
其中,所述六种碱基排列是基于轮转编码算法,在以八种碱基S、Z、P、B、A、T、C、G为前一位核苷酸,并避免碱基S连续出现、碱基Z连续出现以及碱基S和碱基Z连续出现的情况下,对所述八种碱基进行排列得到的。
7.根据权利要求6所述的八碱基霍夫曼压缩轮转编码装置,其特征在于,所述压缩模块,具体用于:
基于原始数据中的每个字符的出现频率构建霍夫曼六叉树;
遍历所述霍夫曼六叉树,给每个字符分配一个唯一的霍夫曼编码;
使用生成的霍夫曼编码替换原始数据中的每个字符,得到所述六进制数据。
8.根据权利要求6所述的八碱基霍夫曼压缩轮转编码装置,其特征在于,所述编码模块,具体用于:
基于以下八碱基轮转编码算法,对所述六进制数据进行轮转编码,根据每一位数据的前一位核苷酸和当前数据信息查询所述六种碱基排列确定每一位数据对应的碱基,得到碱基序列:
9.根据权利要求6~8任一项所述的八碱基霍夫曼压缩轮转编码装置,其特征在于,所述装置还包括:
伪随机序列生成模块,用于基于伪随机数生成器生成伪随机序列,并保存生成所述伪随机序列的种子值;
伪随机序列转换模块,用于将所述伪随机序列转换为六进制伪随机序列;
叠加模块,用于将所述六进制伪随机序列与所述六进制数据相加,得到预处理六进制数据;
所述编码模块,具体用于:
基于所述六种碱基排列对所述预处理六进制数据进行轮转编码,得到碱基序列。
10.根据权利要求6~8任一项所述的八碱基霍夫曼压缩轮转编码装置,其特征在于,所述装置还包括:
划分模块,用于将所述六进制数据按照预设DNA长度划分为多个六进制数据段;
计算模块,用于对每个六进制数据段进行计算,得到对应的校验信息;
添加模块,用于将所述校验信息添加到对应的六进制数据段中;
所述编码模块,具体用于:
基于所述六种碱基排列对各个六进制数据段进行轮转编码,得到多个碱基序列段。
Publications (1)
Publication Number | Publication Date |
---|---|
CN118118034A true CN118118034A (zh) | 2024-05-31 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101421286B1 (ko) | 인코딩 및 디코딩 프로세스들을 위해 심볼들의 영속적 비활성화에 의한 fec 코드들을 활용하는 방법 및 장치 | |
Mitzenmacher | A survey of results for deletion channels and related synchronization channels | |
Chandak et al. | Overcoming high nanopore basecaller error rates for DNA storage via basecaller-decoder integration and convolutional codes | |
US7392461B2 (en) | Decoding for algebraic geometric code associated with a fiber product | |
JP3451221B2 (ja) | 誤り訂正符号化装置、方法及び媒体、並びに誤り訂正符号復号装置、方法及び媒体 | |
CN106888026B (zh) | 基于lsc-crc译码的分段极化码编译码方法及系统 | |
JP3046988B2 (ja) | データストリームのフレーム同期検出方法及び装置 | |
Cluzeau | Block code reconstruction using iterative decoding techniques | |
JP2000156646A5 (ja) | 符号化装置及び方法、復号装置及び方法、情報処理装置及び方法、並びに記憶媒体 | |
JP2005514828A5 (zh) | ||
KR20060052488A (ko) | 연결된 반복 및 대수 코딩 | |
CN114328000B (zh) | 1型2型分段纠错内码的dna存储级联编码与解码方法 | |
Gabrys et al. | Unique reconstruction of coded strings from multiset substring spectra | |
CN101779379B (zh) | 使用通用级联码(gcc)进行编码和解码 | |
Mishra et al. | Compressed DNA coding using minimum variance Huffman tree | |
Shomorony et al. | Torn-paper coding | |
Zhang et al. | A high storage density strategy for digital information based on synthetic DNA | |
Park et al. | Iterative coding scheme satisfying gc balance and run-length constraints for dna storage with robustness to error propagation | |
Yang et al. | Universal lossless data compression with side information by using a conditional MPM grammar transform | |
CN108429553B (zh) | 极化码的编码方法、编码装置及设备 | |
CN111243670A (zh) | 一种满足生物约束的dna信息存储编码方法 | |
CN118118034A (zh) | 八碱基霍夫曼压缩轮转编码方法及装置 | |
Hossein et al. | Weakly mutually uncorrelated codes | |
CN116187435A (zh) | 基于大小喷泉码及mrc算法利用dna进行信息存储方法及系统 | |
JP2010258532A (ja) | ビット長を符号に変換する回路及び方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication |