CN111279422B - 编码/解码方法、编码/解码器和存储方法、装置 - Google Patents

编码/解码方法、编码/解码器和存储方法、装置 Download PDF

Info

Publication number
CN111279422B
CN111279422B CN201880068914.8A CN201880068914A CN111279422B CN 111279422 B CN111279422 B CN 111279422B CN 201880068914 A CN201880068914 A CN 201880068914A CN 111279422 B CN111279422 B CN 111279422B
Authority
CN
China
Prior art keywords
sequence
bit
binary code
code sequence
symbol group
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
CN201880068914.8A
Other languages
English (en)
Other versions
CN111279422A (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.)
BGI Shenzhen Co Ltd
Original Assignee
BGI Shenzhen Co Ltd
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 BGI Shenzhen Co Ltd filed Critical BGI Shenzhen Co Ltd
Publication of CN111279422A publication Critical patent/CN111279422A/zh
Application granted granted Critical
Publication of CN111279422B publication Critical patent/CN111279422B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B50/00ICT programming tools or database systems specially adapted for bioinformatics
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B30/00ICT specially adapted for sequence analysis involving nucleotides or amino acids
    • G16B30/20Sequence assembly
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/02Conversion to or from weighted codes, i.e. the weight given to a digit depending on the position of the digit within the block or code word
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code

Abstract

本公开涉及一种编码/解码方法、编码/解码器和存储方法、装置,涉及数据存储技术领域。该编码方法包括:根据第一二进制代码序列的第一位、第二二进制代码序列的第一位和参考符号,确定编码序列的第一位,参考符号为四种不同符号中的任一种;根据第一二进制代码序列的当前位、第二二进制代码序列的当前位和编码序列的前一位,确定编码序列的当前位,编码序列的当前位为除编码序列的第一位以外的其它位。

Description

编码/解码方法、编码/解码器和存储方法、装置
相关申请的交叉引用
本申请是以国际申请号为PCT/CN2018/103795,申请日为2018年9月3日的申请为基础,并主张其优先权。该PCT申请是以中国申请号为No.201711009900.2,申请日为2017年10月25日的申请为基础,并主张其优先权。该PCT申请和该中国申请的公开内容在此作为整体引入本申请中。
技术领域
本公开涉及数据存储技术领域,特别涉及一种编码方法、解码方法、存储方法、编码器、解码器、存储装置以及非瞬态计算机可读存储介质。
背景技术
随着现代科技,尤其是互联网的发展,全球的数据呈现指数级攀升的态势。不断增长的数据量对存储技术提出越来越高的要求。传统的存储技术,如磁带以及光碟存储,因为存储密度和时间有限越来越无法满足当前的数据需求。
近年来,发展起来的DNA存储技术为解决这些问题提供了一条新的途径。与传统的存储介质相比,以DNA作为存储介质进行信息存储具有存储时间长(可以到几千年以上,是现有磁带和光盘介质的百倍以上),存储密度高(达到109Gb/mm3,是有磁带和光盘介质的千万倍以上)以及存储安全性好等特点。
相关技术主要有George Church和Goldman等人在2012年提出的将二进制0、1信息转码到腺嘌呤A、胞嘧啶C、鸟嘌呤G和胸腺嘧啶T四种脱氧核糖核苷酸的方法,实现了每个核苷酸对1个二进制数据的编码。Goldman等人在2013年提出通过Huffman编码将二进制数据转换为三进制数据,再根据预设的规则将三进制数据转换为四种脱氧核糖核苷酸组成的序列。
发明内容
本公开的发明人发现上述相关技术中存在如下问题:编码序列的存储密度有待进一步提高,而且无法避免在编码序列中出现高GC或高AT重复的情况,从而导致难以在测序过程中读取序列信息。针对上述问题中的至少一个问题,本公开提出了一种存储密度大且能够避免高GC或高AT重复的编码、解码、存储技术方案。
根据本公开的一些实施例,提供了一种编码方法,包括:将第一二进制代码序列和第二二进制代码序列编码为一条编码序列,所述第一二进制代码序列与所述第二二进制代码序列位数相同,所述编码序列由四种不同符号构成,其中,所述编码序列通过以下步骤获得:根据所述第一二进制代码序列的第一位、所述第二二进制代码序列的第一位和参考符号,确定所述编码序列的第一位,所述参考符号为所述四种不同符号中的任一种,根据所述第一二进制代码序列的当前位、所述第二二进制代码序列的当前位和所述编码序列的前一位,确定所述编码序列的当前位,所述编码序列的当前位为除所述编码序列的第一位以外的其它位。
在一些实施例中,根据所述第一二进制代码序列中的第一位,按照第一映射关系,确定所述编码序列的第一位的第一候选符号组,所述第一候选符号组包含所述四种不同符号中的两种;根据所述第二二进制代码序列的第一位,以及所述参考符号,按照第二映射关系,确定所述编码序列的第一位的第二候选符号组,所述第二候选符号组包含所述四种不同符号中的两种,所述第一候选符号组与所述第二候选符号组具有一个相同的符号;将所述相同的符号确定为所述编码序列的第一位。
在一些实施例中,根据所述第一二进制代码序列中的当前位,按照预设的第一映射关系,确定所述编码序列的当前位的第一候选符号组,所述第一候选符号组包含所述四种不同符号中的两种;根据所述第二二进制代码序列的当前位,以及所述编码序列的前一位,按照预设的第二映射关系,确定所述编码序列的当前位的第二候选符号组,所述第二候选符号组包含所述四种不同符号中的两种,所述第一候选符号组与所述第二候选符号组具有一个相同的符号;将所述相同的符号确定为所述编码序列的当前位。
在一些实施例中,将待编码的信息转码成二进制代码;从所述二进制代码中提取所述第一二进制代码序列与所述第二二进制代码序列。
在一些实施例中,所述四种不同符号为腺嘌呤A、胞嘧啶C、鸟嘌呤G和胸腺嘧啶T四种脱氧核糖核苷酸,所述编码序列为包含所述四种脱氧核糖核苷酸的核酸序列。
在一些实施例中,所述第一映射关系为所述第一二进制代码序列中的第一位或当前位与所述第一候选符号组中的符号的对应关系,所述第一候选符号组中的符号为A、C、G、T中的两种。所述第二映射关系为所述第二二进制代码序列中的第一位和所述参考符号与所述第二候选符号组中的符号的对应关系,或者所述第二二进制代码序列中的当前位和前一位与所述第二候选符号组中的符号的对应关系,所述第二候选符号组中的符号为A、C、G、T中的两种。并且所述第二候选符号组与所述第一候选符号组具有一个相同的符号。
根据本公开的另一些实施例,提供一种存储方法,包括:将根据上述任一些实施例所述的编码方法获得的核酸序列拆分为多个序列片段;为各序列片段添加索引标识,所述索引标识中包含所述序列片段的位置顺序信息;将所述各序列片段合成各核酸片段。
在一些实施例中,将所述各核酸片段存储在介质中,所述介质为存储管或细胞。
在一些实施例中,所述索引标识为脱氧核糖核酸序列。
在一些实施例中,在将所述各核酸片段存储在介质中之前,组装所述各核酸片段。
在一些实施例中,在将所述各核酸片段存储在介质中之前,将所述各核酸片段连接到载体中。
根据本公开的又一些实施例,提供一种解码方法,包括:将根据上述任一些实施例所述的编码方法生成的编码序列解码为第一二进制代码序列和第二二进制代码序列,其中,所述第一二进制代码序列通过以下步骤获得:按照上述任一项实施例所述的编码方法中的第一映射关系,将所述编码序列包含的四种不同符号中的两种解码为0,将所述四种不同符号中的另外两种解码为1,以获得所述第一二进制代码序列,所述第二二进制代码序列通过以下步骤获得:根据所述编码序列的第一位和参考符号,按照上述任一个实施例所述的编码方法中的第二映射关系,确定所述第二二进制代码的第一位,所述参考符号为所述四种不同符号中的任一种,根据所述编码序列的当前位和前一位,按照上述任一项实施例所述的编码方法中的第二映射关系,确定所述第二二进制代码的当前位,所述编码序列的当前位为除所述编码序列的第一位以外的其它位。
在一些实施例中,对上述任一些实施例所述的存储方法合成的各核酸片段进行测序,获得各序列片段;根据所述各序列片段的索引标识,获取所述各序列片段的位置顺序信息;根据所述位置顺序信息,将所述各序列片段组合为所述编码序列。
在一些实施例中,所述四种不同符号为腺嘌呤A、胞嘧啶C、鸟嘌呤G和胸腺嘧啶T四种脱氧核糖核苷酸。
在一些实施例中,将解码获取的二进制代码序列组合为二进制代码;将所述二进制代码转码为相应的信息。
根据本公开的再一些实施例,提供一种编码器,包括:存储器,被配置为存储待编码的第一二进制代码序列和第二二进制代码序列,所述第一二进制代码序列与所述第二二进制代码序列位数相同;处理器,所述处理器与所述存储器相连,所述处理器被配置为将所述第一二进制代码序列和所述第二二进制代码序列编码为一条编码序列,所述编码序列由四种不同符号构成,其中,所述编码序列通过以下步骤获得:根据所述第一二进制代码序列的第一位、所述第二二进制代码序列的第一位和参考符号,确定所述编码序列的第一位,所述参考符号为所述四种不同符号中的任一种,根据所述第一二进制代码序列的当前位、所述第二二进制代码序列的当前位和所述编码序列的前一位,确定所述编码序列的当前位,所述编码序列的当前位为除所述编码序列的第一位以外的其它位。
在一些实施例中,根据所述第一二进制代码序列中的第一位,按照第一映射关系,确定所述编码序列的第一位的第一候选符号组,所述第一候选符号组包含所述四种不同符号中的两种;根据所述第二二进制代码序列的第一位,以及所述参考符号,按照第二映射关系,确定所述编码序列的第一位的第二候选符号组,所述第二候选符号组包含所述四种不同符号中的两种,所述第一候选符号组与所述第二候选符号组具有一个相同的符号;将所述相同的符号确定为所述编码序列的第一位。
在一些实施例中,所述处理器被配置为通过执行如下步骤确定所述编码序列的当前位:根据所述第一二进制代码序列中的当前位,按照预设的第一映射关系,确定所述编码序列的当前位的第一候选符号组,所述第一候选符号组包含所述四种不同符号中的两种;根据所述第二二进制代码序列的当前位,以及所述编码序列的前一位,按照预设的第二映射关系,确定所述编码序列的当前位的第二候选符号组,所述第二候选符号组包含所述四种不同符号中的两种,所述第一候选符号组与所述第二候选符号组具有一个相同的符号;将所述相同的符号确定为所述编码序列的当前位。
在一些实施例中,所述处理器被配置为将待编码的信息转码成二进制代码,从所述二进制代码中提取所述第一二进制代码序列与所述第二二进制代码序列。
在一些实施例中,所述四种不同符号为腺嘌呤A、胞嘧啶C、鸟嘌呤G和胸腺嘧啶T四种脱氧核糖核苷酸,所述编码序列为包含所述四种脱氧核糖核苷酸的核酸序列。
在一些实施例中,所述第一映射关系为所述第一二进制代码序列中的第一位或当前位与所述第一候选符号组中的符号的对应关系,所述第一候选符号组中的符号为A、C、G、T中的两种。所述第二映射关系为所述第二二进制代码序列中的第一位和所述参考符号与所述第二候选符号组中的符号的对应关系,或者所述第二二进制代码序列中的当前位和前一位与所述第二候选符号组中的符号的对应关系,所述第一候选符号组中的符号为A、C、G、T中的两种。并且所述第二候选符号组与所述第一候选符号组具有一个相同的符号。
根据本公开的再一些实施例,提供一种存储装置,包括:序列拆分模块,被配置为将根据上述任一些实施例所述的编码方法获得的核酸序列拆分为多个序列片段;索引添加模块,所述索引添加模块与所述序列拆分模块相连,被配置为给各序列片段添加索引标识,所述索引标识中包含所述序列片段的位置顺序信息;核酸合成模块,所述核酸合成模块与所述索引添加模块相连,被配置为将所述各序列片段合成各核酸片段。
在一些实施例中,所述索引标识为脱氧核糖核酸序列。
在一些实施例中,存储装置还包括核酸组装模块,所述核酸组装模块与所述核酸合成模块相连,被配置为组装所述各核酸片段。
在一些实施例中,存储装置还包括载体连接模块,所述载体连接模块与所述核酸合成模块相连,被配置为将所述各核酸片段连接到载体中。
在一些实施例中,存储装置还包括介质存储模块,所述介质存储模块与核酸合成模块相连,被配置为将所述各核酸片段存储在介质中,所述介质为存储管或细胞。
根据本公开的再一些实施例,提供一种解码器,包括:存储器,被配置为存储根据上述任一些实施例所述的编码器生成的编码序列。处理器,所述处理器与所述存储器相连,所述处理器被配置为如下步骤:按照上述任一些实施例所述的编码器中的第一映射关系,将所述编码序列包含的四种不同符号中的两种解码为0,将所述四种不同符号中的另外两种解码为1,以获得所述第一二进制代码序列,所述第二二进制代码序列通过以下步骤获得:根据所述编码序列的第一位和参考符号,按照上述任一些实施例所述的编码器中的第二映射关系,确定所述第二二进制代码的第一位,所述参考符号为所述四种不同符号中的任一种,根据所述编码序列的当前位和前一位,按照所述第二映射关系,确定所述第二二进制代码的当前位,所述编码序列的当前位为除所述编码序列的第一位以外的其它位。
在一些实施例中,对根据上述任一些实施例所述的存储方法合成的各核酸片段进行测序;根据所述各核酸片段的索引标识,获取所述各核酸片段的位置顺序信息;根据所述位置顺序信息,将所述各核酸片段组装为所述编码序列。
在一些实施例中,所述四种不同符号为腺嘌呤A、胞嘧啶C、鸟嘌呤G和胸腺嘧啶T四种脱氧核糖核苷酸。
在一些实施例中,所述处理器被配置为将解码获取的二进制代码序列组合为二进制代码,将所述二进制代码转码为相应的信息。
根据本公开的再一些实施例,提供一种非瞬态计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如下方法中的至少一种:上述任一些实施例所述的编码方法,上述任一些实施例所述的解码方法。
在上述实施例中,结合两条不同的二进制代码序列中的信息,以编码序列中的前一位为约束条件设置编码方法。该编码方法将两条不同的二进制代码序列编码为一条由四种不同符号构成的编码序列,从而提高了存储密度。而且,该编码方法具有多种联合编码实现方式,能够更加灵活地设置二进制代码与编码符号之间的映射关系,从而避免了由于在编码序列中出现高GC、高AT重复,进而导致后续的解码准确性低的问题。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1示出根据本公开一些实施例的编码方法的流程图。
图2示出根据本公开另一些实施例的编码方法的流程图。
图3示出根据本公开又一些实施例的编码方法的示意图。
图4示出根据本公开一些实施例的存储方法的流程图。
图5示出根据本公开一些实施例的解码方法的流程图。
图6示出根据本公开一些实施例的待编码信息的示意图。
图7a-7c示出序列片段1-3的测序峰图。
图8示出本公开一些实施例的编码器的框图。
图9示出本公开一些实施例的存储装置的框图。
图10示出本公开另一些实施例的存储装置的框图。
图11示出本公开一些实施例的解码器的框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本公开的编码方法能够将位数相同的第一二进制代码序列(例如序列a)和第二二进制代码序列(例如序列b)编码为一条编码序列。例如,可以将待编码的信息(如图片、视频、语音、文档等)转码成二进制代码,再从二进制代码中提取序列a与序列b。
图1示出根据本公开一些实施例的编码方法的流程图。
如图1所示,该编码方法可以具体包含:步骤110,确定编码序列的第一位;步骤120,确定编码序列的当前位。
在步骤110中,可以根据第一二进制代码序列的第一位、第二二进制代码序列的第一位和参考符号,确定编码序列的第一位。例如,编码序列可以由四种不同符号构成,参考符号可以为四种不同符号中的任一种。
在步骤120中,根据第一二进制代码序列的当前位、第二二进制代码序列的当前位和编码序列的前一位,确定编码序列的当前位,编码序列的当前位为除编码序列的第一位以外的其它位。
实际上,针对编码序列的“第一位”和“当前位”的编码原则是相同的,只不过“第一位”在编码序列中没有所谓的“前一位”,因此可以指定一个参考符号作为“第一位”的“前一位”。为了表述上的简洁和方便,下面均采用“当前位”和“前一位”来来描述本公开的实施例。在一些实施例中,可以通过图2中的方法来确定编码序列的当前位。
图2示出根据本公开另一些实施例的编码方法的流程图。
如图2所示,该编码方法包括:步骤1201,确定编码序列的当前位的第一候选符号组;步骤1202,确定编码序列的当前位的第二候选符号组;步骤1203,确定编码序列的当前位。
在步骤1201中,可以根据第一二进制代码序列中的当前位,按照预设的第一映射关系,确定编码序列的当前位的第一候选符号组,第一候选符号组包含四种不同符号中的两种。例如,第一映射关系可以设置为将0映射为符号1或符号2,将1映射为符号3或符号4。在这种情况下,0对应的第一候选符号组包含符号1和符号2,1对应的第一候选符号组包含符号3和符号4。
在步骤1202中,可以根据第二二进制代码序列的当前位,以及编码序列的前一位,按照预设的第二映射关系,确定编码序列的当前位的第二候选符号组。第二候选符号组包含四种不同符号中的两种,第一候选符号组与第二候选符号组具有一个相同的符号。例如,第二映射关系可以按照表1进行设置。
表1第二映射关系的一个实施例
在上表中,第二二进制代码序列的当前位可能为X或Y,X和Y可以是0或1中的一个,并保证X+Y=1,X×Y=0。例如,如果编码序列的前一位为符号1,则第二二进制代码序列的当前位X对应的第二候选符号组包含符号1和符号3;如果编码序列的前一位为符号2,则第二二进制代码序列的当前位Y对应的第二候选符号组包含符号2和符号4。第一映射关系和第二映射关系的设置能够保证第一候选符号组与第二候选符号组具有一个相同的符号。
在步骤1203中,可以将两个符号组中相同的符号确定为编码序列的当前位。例如,X=0,Y=1,如果第二二进制代码序列的当前位为X=0,则第一候选符号组包含符号1和符号2,如果编码序列的前一位为符号1,则根据上表中的映射关系,第二候选符号组包含符号1和符号3。在这种情况下,两个符号组的交集为符号1,则可以确定编码序列的当前位为符号1。
为了更清楚地说明上述编码方法,下面结合图3具体地给出一个将两条不同的二进制代码编码序列编码为同一条编码序列的实施例。
图3示出根据本公开又一些实施例的编码方法的示意图。如图3所示,二进制代码序列31为001100111100110011001100110011,二进制代码序列32为010101111101111111111111111111。图1和图2实施例中的编码方法的四种符号可以为腺嘌呤A、胞嘧啶C、鸟嘌呤G和胸腺嘧啶T,编码序列33为包含A、C、G和T四种脱氧核糖核苷酸的序列。
第一映射关系可以设置为:
A=0
T=0
G=1
C=1
即,二进制代码序列31中的当前位0对应的编码序列33当前位的第一候选符号组包含A和T,二进制代码序列31中的当前位1对应的编码序列33当前位的第一候选符号组包含G和C。
第二映射关系可以设置为:
表2第二映射关系的另一个实施例
在上表中,在编码序列33前一位为A的情况下,二进制代码序列32中的当前位0对应的编码序列33当前位的第二候选符号组包含A和G。其它情况也可以按照上表中的对应关系建立第二映射关系。
下面可以根据上述第一、第二映射关系,通过以下步骤确定编码序列33的所有“当前位”。
如果编码序列33的前一位是G或A,二进制代码序列31中的当前位是0,二进制代码序列32中的当前位是0,则编码序列33的当前位是A。如果编码序列33的前一位是G或A,二进制代码序列31中的当前位是0,二进制代码序列32中的当前位是1,则编码序列33的当前位是T。如果编码序列33的前一位是G或A,二进制代码序列31中的当前位是1,二进制代码序列32中的当前位是0,则编码序列33的当前位是G。如果编码序列33的前一位是G或A,二进制代码序列31中的当前位是1,二进制代码序列32中的当前位是1,则编码序列33的当前位是C。
如果编码序列33的前一位是C或T,二进制代码序列31中的当前位是0,二进制代码序列32中的当前位是0,则编码序列33的当前位是T。如果编码序列33的前一位是C或T,二进制代码序列31中的当前位是0,二进制代码序列32中的当前位是1,则编码序列33的当前位是A。如果编码序列33的前一位是C或T,二进制代码序列31中的当前位是1,二进制代码序列32中的当前位是0,则编码序列33的当前位是C。如果编码序列33的前一位是C或T,二进制代码序列31中的当前位是1,二进制代码序列32中的当前位是1,则编码序列33的当前位是G。按照上述方法对编码序列33逐位进行编码,可以获得编码序列33为ATCGATGCGCTACGTACGTACGTACG。
如果对编码序列33的第一位进行编码,由于没有所谓的“前一位”,因此可以设置一个参考位作为第一位的“前一位”。例如,可以在编码序列33前面设置A、C、G或T中的任一个作为参考位,将该参考位作为上述编码方法中的“前一位”,其余步骤均相同,在这里不再赘述。
上述编码过程同时考虑二进制代码序列31和32中的代码内容来决定最终的编码序列33中的内容。即,可以将两条不同的二进制代码序列的信息融合到一条相同的编码序列中,从而提高了编码的存储密度。
值得说明的是,只要保证编码序列当前位的第一候选符号组和第二候选符号组中存在一个相同的符号,可以设置多种第一映射关系和第二映射关系的组合。例如,第一映射关系也可以设置为:
A=0
G=0
T=1
C=1
第二映射关系可以相应的设置为:
表3第二映射关系的又一个实施例
上述第一映射关系和第二映射关系可以保证第一候选符号组和第二候选符号组中存在一个相同的符号,即,可以将两条不同的二进制代码序列编码为同一条编码序列。
也就是说,本公开的第一映射关系和第二映射关系可以有多种联合设置方式,具体可以通过以下步骤设置。
第一映射关系的设置方式可以表示为:
符号1=0
符号2=0
符号3=1
符号4=1
第二映射关系的设置方式可以表示为表4:
表4第二映射关系的设置方式
符号1、符号2、符号3、符号4可以分别对应碱基A、T、G、C中的一种。
第一映射关系中的符号1和符号2没有顺序关系,分别对应两种碱基,符号3和符号4对应另外两种碱基,所以第一映射关系有种设置方式。
第二映射关系需要满足Xn+Yn=1,Xn×Yn=0的条件,n∈{1,2,3,4,5,6,7,8}。对于每一种第一映射关系的设置方式,第二映射关系中的Xn和Yn都有两种可能的组合,即,Xn=0,Yn=1或Xn=1,Yn=0。由于n有8种可能性,所以第二映射关系具有28种设置方式。
因此,第一映射关系和第二映射关系的联合设置方式具有6×28=1536种。
由此,本公开可以变换多种映射关系对二进制代码序列进行编码,从而可以最大限度地避免编码序列中出现的高GC、高AT重复问题。
上述实施例中,结合两条不同的二进制代码序列中的信息,以编码序列中的前一位为约束条件设置编码方法。该编码方法将两条不同的二进制代码序列编码为一条由四种不同符号构成的编码序列,从而提高了存储密度。而且,该编码方法具有多种联合编码实现方式,能够更加灵活地设置二进制代码与编码符号之间的映射关系,从而避免了在编码序列中由于出现高GC、高AT重复,进而导致后续解码准确性低的问题。
根据上面的一些实施例,可以将二进制代码序列编码为包含A、C、G、T的核酸序列。这样就可以进一步通过图4中的存储方法将核酸序列合成为核酸片段保存起来。
图4示出根据本公开一些实施例的存储方法的流程图。
如图4所示,该存储方法包括步骤410-430。
在步骤410中,将根据上述一些实施例中的编码方法获得的核酸序列拆分为多个序列片段。这些序列片段的长度相对较短,方便合成。
在步骤420中,为各序列片段添加索引标识,索引标识中包含序列片段的位置顺序信息以便合成。索引标识可以为脱氧核糖核酸序列。
在步骤430中,将各序列片段合成为各核酸片段。可以将各核酸片段直接组装成较大片段,或者将各核酸片段连接到载体中。可以将各核酸片段存储在介质中,介质可以为存储管或细胞,例如,可以保存在离体的化学介质中,也可以保藏在活细胞中。
上述实施例中,将核酸序列合成为核酸片段保存起来,从而提高数据存储的保存时间和存储密度。
通过上面一些实施例完成二进制代码序列的编码和存储后,可以根据与编码方法相应的解码方法,通过图5中的步骤对编码序列进行解码。
图5示出根据本公开一些实施例的解码方法的流程图。
如图5所示,该解码方法可以将根据上述编码方法生成的编码序列解码为第一二进制代码序列和第二二进制代码序列,具体包括步骤510-530。
在步骤510中,可以按照上述编码方法中的第一映射关系,将编码序列包含的四种不同符号中的两种解码为0,将四种不同符号中的另外两种解码为1,以获得第一二进制代码序列。
在步骤520中,可以根据编码序列的第一位和参考符号,按照上述编码方法中的第二映射关系,确定第二二进制代码的第一位,参考符号为四种不同符号中的任一种。
在步骤530中,根据编码序列的当前位和前一位,按照第二映射关系,确定第二二进制代码的当前位,编码序列的当前位为除编码序列的第一位以外的其它位。
然后,可以将解码获取的二进制代码序列组合为二进制代码,再将二进制代码转码为相应的信息,如音频、视频、文档等文件。可以通过任意操作系统自带的程序或者为将二进制代码转换为相应信息专门编写的程序实现该步骤。
在一些实施例中,可以对根据上述存储方法合成的各核酸片段进行测序以获得各序列片段。测序方法可以是Sanger测序或者高通量测序。然后,根据各序列片段的索引标识,获取各序列片段的位置顺序信息,即对序列片段进行排序。最后,根据位置顺序信息,将各序列片段组合为编码序列。在这种情况下,编码序列为包含A、C、G、T四种脱氧核糖核苷酸的序列。
在另一些实施例中,编码序列为通过图3所示的编码方法获得。即编码序列33为ATCGATGCGCTACGTACGTACGTACG,采用的第一映射关系为A=0、T=0、G=1、C=1,第二映射关系如表2所示。
根据第一映射关系可以将编码序列33解码为二进制代码序列31:001100111100110011001100110011。根据第二映射关系可以将编码序列33解码为二进制代码序列32:010101111101111111111111111111。例如,可以通过以下步骤解码得出二进制代码序列32。
如果编码序列33的前一位为A或G,当前位为A或G,则解码为0。如果编码序列33的前一位为A或G,当前位为T或C,则解码为1。如果编码序列33的前一位为T或C,当前位为A或G,则解码为1。如果编码序列33的前一位为T或C,当前位为T或C,则解码为0。
对编码序列33的第一位进行解码时,可以按照编码时预先设定的参考位作为第一位的“前一位”,其余步骤相同。
上述实施例中,根据不同的映射关系可以从一条由四种不同符号构成的编码序列中解码出两条不同的二进制代码序列,从而提高了编码存储密度。
下面给出一些实施例,以文档信息为例具体描述根据本公开的技术方案来完成对信息的编码、存储和解码处理。
在编码过程中,首先,将待编码信息转码为二进制代码。
例如,图6示出根据本公开一些实施例的待编码信息的示意图。对图6中的文字进行编码,得到对应的二进制代码为:
“11100110100111001001101111100101101110101001000011100101101100011011000111100111100000001001000111100101101110001000001100001010000010010010110100101101111001011001010010010000110000101011011100100000111001101001110110001110111001111001100110111101000010101110011010010111101001011110011110000101101001111110100110100110100110011110011110000010100010011110011110010100100111111110011110110100101010111110011110000011100111111110111110111100100011001110011110011100101111001110011110011100100010111110011110000000100100011110010110111000100000111110011010001100100000101110010110001001100011011110010110110111100111011110001110000000100000100000101011101001101000111001111011100110101101011000000111100111100110111011010011100100101110001000101111100100101110001000100111100101100011011000001111100101101100001011101011101111101111001000110011100111100101101001000111100110100110001010111111101001100100111011011011100110101100101011001111101000100100001011110111100100101110011001110111100101101001001010100111100011100000001000001000001010”。
然后,将二进制代码划分为序列a和序列b两部分。
序列a为:
“1110011010011100100110111110010110111010100100001110010110110001101100011110011110000000100100011110010110111000100000110000101000001001001011010010110111100101100101001001000011000010101101110010000011100110100111011000111011100111100110011011110100001010111001101001011110100101111001111000010110100111111010011010011010011001111001111000001010001001111001111001010010011111111001111011010010101011111001111000001110011111111011111011110010001100111001111001110010111100111001111001110010001011111001111000000010010001”。
序列b为:
“1110010110111000100000111110011010001100100000101110010110001001100011011110010110110111100111011110001110000000100000100000101011101001101000111001111011100110101101011000000111100111100110111011010011100100101110001000101111100100101110001000100111100101100011011000001111100101101100001011101011101111101111001000110011100111100101101001000111100110100110001010111111101001100100111011011011100110101100101011001111101000100100001011110111100100101110011001110111100101101001001010100111100011100000001000001000001010”。
最后,利用第一映射关系和第二映射关系将序列a和序列b联合编码为同一条编码序列。
第一映射关系设置为:
A=0
T=0
C=1
G=1
第二映射关系设置为:
表5第二映射关系的再一个实施例
进行联合编码后得到的编码序列(SEQ ID NO:1)为:
“CGCTTGGTGATGCCTTGAAGGACGCGCTTGTCGAGGCAGACTTCTTAACGCTTGACGAGGTTTGCTCCATTGCGCTTGGCGATAATATGAACATTGCGCTTCACGAGGGAAACTTTTTGGAAAACTGATATTGAACAACTCCACAAGTGCAGCGCTTGTCGATGACTACTTCTTTACGTTTACACTCGTCGCAACAATTTGCGAACCTGATGCCTCGAAACCGTGCGAACCCGATGCTTCGAGGCCTGTATTCAGTGGGATGGTGAAGAGCGCACTTGACGGCAAGGGCTATAGTCGTGATGCGCCGTGTTCGAGATGGACATCCATGCCCAACGGCTTAAAGTGTAAGTAGCCCATCCCGATCACATGTAGCCCGCCCAAGCGCTGCTGTTGTGAGTGGCCGTTCGGCTATTTGCGTAGCCCCGGGTCCCCGACGCGATGTAAGCTTGGCATCCGCTTGCGATGTGGGCTACCGAACCCGATCGGATGTAAGACGCCCTTCCCGAAAAATTCTTCAATC”。
可以看出上述编码序列为包含所述四种脱氧核糖核苷酸的核酸序列。下面就根据本公开的存储方法将核酸序列合成核酸片段并存储。
在存储过程中,首先,将上述核酸序列拆分成三个长度为173bp的序列片段。
三个序列片段如表6所示:
表6序列片段
然后,为每一个短的序列片段添加长度为5bp的索引标识。三条序列片段的索引标识分别为:AGTCG、ACGCT和CAATG。
添加索引标识后的序列片段如表7所示,索引标识由下划线标出:
表7添加索引标识后的序列片段
最后,将表7中的3条序列片段合成核酸片段,并克隆到pUC57载体上。将连接到载体上的核酸片段置于离心管中,-20℃保存。
存储完毕后,在必要时就可以对存储在离心管的核酸片段进行解码以获得相应的文档信息。
在解码过程中,首先,可以对存储的核酸片段进行Sanger测序以获得序列片段1-3。
图7a-7c示出序列片段1-3的测序峰图。
如图7a-7c所示,测序后得到的序列片段与表7相符。
然后,根据索引标识获取各序列片段的顺序,并对序列片段进行排序后组装成为一条完整的编码序列。
组装后得到的编码序列(SEQ ID NO:1)为:
“CGCTTGGTGATGCCTTGAAGGACGCGCTTGTCGAGGCA GACTTCTTAACGCTTGACGAGGTTTGCTCCATTGCGCTTGGCGATAATATGAACATTGCGCTTCACGAGGGAAACTTTTTGGAAAACTGATATTGAACAACTCCACAAGTGCAGCGCTTGTCGATGACTACTTCTTTACGTTTACACTCGTCGCAACAATTTGCGAACCTGATGCCTCGAAACCGTGCGAACCCGATGCTTCGAGGCCTGTATTCAGTGGGATGGTGAAGAGCGCACTTGACGGCAAGGGCTATAGTCGTGATGCGCCGTGTTCGAGATGGACATCCATGCCCAACGGCTTAAAGTGTAAGTAGCCCATCCCGATCACATGTAGCCCGCCCAAGCGCTGCTGTTGTGAGTGGCCGTTCGGCTATTTGCGTAGCCCCGGGTCCCCGACGCGATGTAAGCTTGGCATCCGCTTGCGATGTGGGCTACCGAACCCGATCGGATGTAAGACGCCCTTCCCGAAAAATTCTTCAATC”。
然后,根据第一映射关系对上述编码序列进行解码,得到序列a:
“1110011010011100100110111110010110111010100100001110010110110001101100011110011110000000100100011110010110111000100000110000101000001001001011010010110111100101100101001001000011000010101101110010000011100110100111011000111011100111100110011011110100001010111001101001011110100101111001111000010110100111111010011010011010011001111001111000001010001001111001111001010010011111111001111011010010101011111001111000001110011111111011111011110010001100111001111001110010111100111001111001110010001011111001111000000010010001”。
根据第二映射关系对上述编码序列进行解码,得到序列b:
“1110010110111000100000111110011010001100100000101110010110001001100011011110010110110111100111011110001110000000100000100000101011101001101000111001111011100110101101011000000111100111100110111011010011100100101110001000101111100100101110001000100111100101100011011000001111100101101100001011101011101111101111001000110011100111100101101001000111100110100110001010111111101001100100111011011011100110101100101011001111101000100100001011110111100100101110011001110111100101101001001010100111100011100000001000001000001010”。
最后,可以利用软件将序列a和序列b转换为图6中的文字。
上述实施例中,通过本公开的技术方案将文档信息存入到了核酸片段中,而且可以对存储在核酸片段中的文档信息进行100%的完整的解码。得到的编码序列,除去索引标识,对文档信息的二进制存储密度为2bits/nt,明显高于相关技术中的存储方法。而且编码序列中连续GC、连续AT的含量均一,无过长的连续单碱基重复序列,即,避免了高GC、高AT的重复,使得后续对序列片段的解码更加准确。
图8示出本公开一些实施例的编码器的框图。
如图8所示,编码器8包括存储器81和处理器82。
存储器81存储待编码的第一二进制代码序列和第二二进制代码序列,第一二进制代码序列与第二二进制代码序列位数相同。
处理器82与存储器81相连,处理器82被配置为将第一二进制代码序列和第二二进制代码序列编码为一条编码序列。例如,处理器82将待编码的信息转码成二进制代码,从二进制代码中提取第一二进制代码序列与第二二进制代码序列。编码序列可以由四种不同符号构成,例如,A、C、G和T四种脱氧核糖核苷酸,编码序列为包含四种脱氧核糖核苷酸的核酸序列。编码序列可以通过以下步骤获得。
根据第一二进制代码序列的第一位、第二二进制代码序列的第一位和参考符号,确定编码序列的第一位,参考符号为四种不同符号中的任一种。例如,根据第一二进制代码序列中的第一位,按照预设的第一映射关系,确定编码序列的第一位的第一候选符号组,第一候选符号组包含四种不同符号中的两种。根据第二二进制代码序列的第一位,以及参考符号,按照预设的第二映射关系,确定编码序列的第一位的第二候选符号组,第二候选符号组包含四种不同符号中的两种,第一候选符号组与第二候选符号组具有一个相同的符号。将相同的符号确定为编码序列的第一位。
根据第一二进制代码序列的当前位、第二二进制代码序列的当前位和编码序列的前一位,确定编码序列的当前位,编码序列的当前位为除编码序列的第一位以外的其它位。例如,根据第一二进制代码序列中的当前位,按照预设的第一映射关系,确定编码序列的当前位的第一候选符号组,第一候选符号组包含四种不同符号中的两种。根据第二二进制代码序列的当前位,以及编码序列的前一位,按照预设的第二映射关系,确定编码序列的当前位的第二候选符号组,第二候选符号组包含四种不同符号中的两种,第一候选符号组与第二候选符号组具有一个相同的符号。将相同的符号确定为编码序列的当前位。
在一个实施例中,第一映射关系为第一二进制代码序列中的第一位或当前位与第一候选符号组中的符号的对应关系,第一候选符号组中的符号为A、C、G、T中的两种。第二映射关系为第二二进制代码序列中的第一位和参考符号与第二候选符号组中的符号的对应关系,或者第二二进制代码序列中的当前位和前一位与第二候选符号组中的符号的对应关系,第二候选符号组中的符号为A、C、G、T中的两种。
上述实施例中,结合两条不同的二进制代码序列中的信息,以编码序列中的前一位为约束条件设置编码方法。该编码方法将两条不同的二进制代码序列编码为一条由四种不同符号构成的编码序列,从而提高了存储密度。而且,该编码方法具有多种联合编码实现方式,能够更加灵活地设置二进制代码与编码符号之间的映射关系,从而避免了在编码序列中出现的高GC、高AT重复问题。
图9示出本公开一些实施例的存储装置的框图。
如图9所示,存储装置9包括:序列拆分模块91、索引添加模块92和核酸合成模块93。
序列拆分模块91将根据上述编码方法获得的核酸序列拆分为多个序列片段。
索引添加模块92与序列拆分模块91相连,为各序列片段添加索引标识,索引标识中包含序列片段的位置顺序信息。例如,索引标识可以为脱氧核糖核酸序列。
核酸合成模块93与索引添加模块92相连,将各序列片段合成各核酸片段。
图10示出本公开另一些实施例的存储装置的框图。
如图10所示,存储装置10包括:序列拆分模块91、索引添加模块92、核酸合成模块93、核酸组装模块104、载体连接模块105和介质存储模块106。其中序列拆分模块91、索引添加模块92、核酸合成模块93的作用与上面的实施例相同,不再赘述。
核酸组装模块104与核酸合成模块93相连,用于组装各核酸片段。
载体连接模块105与核酸合成模块93相连,用于将各核酸片段连接到载体中。
介质存储模块106与核酸合成模块93相连,用于将各核酸片段存储在介质中,介质为存储管或细胞。
上述实施例中,将核酸序列合成为核酸片段保存起来,从而提高数据存储的保存时间和存储密度。
图11示出本公开一些实施例的解码器的框图。
如图11所示,解码器11包括:存储器111和处理器112。
存储器111存储根据上述编码器生成的编码序列。
处理器112与存储器111相连,被配置为如下步骤。
按照上述编码器的第一映射关系,将编码序列包含的四种不同符号中的两种解码为0,将四种不同符号中的另外两种解码为1,以获得第一二进制代码序列。
第二二进制代码序列可以通过以下步骤获得。
根据编码序列的第一位和参考符号,按照上述编码器中的第二映射关系,确定第二二进制代码的第一位,参考符号为四种不同符号中的任一种。
根据编码序列的当前位和前一位,按照上述编码器中的第二映射关系,确定第二二进制代码的当前位,编码序列的当前位为除编码序列的第一位以外的其它位。
在一些实施例中,处理器112通过执行如下步骤获取编码序列。对根据上述存储方法合成的各核酸片段进行测序。根据各核酸片段的索引标识,获取各核酸片段的位置顺序信息。根据位置顺序信息,将各核酸片段组装为编码序列。
在一些实施例中,处理器112将解码获取的二进制代码序列组合为二进制代码,将二进制代码转码为相应的信息。
上述实施例中,根据不同的映射关系可以从一条由四种不同符号构成的编码序列中解码出两条不同的二进制代码序列,从而提高了编码存储密度。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制;尽管参照较佳实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者对部分技术特征进行等同替换;而不脱离本发明技术方案的精神,其均应涵盖在本发明请求保护的技术方案范围当中。
序列表
<110> 深圳华大生命科学研究院
<120> 编码/解码方法、编码/解码器和存储方法、装置
<130> IDC200057
<150> CN201711009900.2
<151> 2017-10-25
<160> 7
<170> PatentIn version 3.5
<210> 1
<211> 520
<212> DNA
<213> 人工序列
<220>
<223> 编码序列
<400> 1
cgcttggtga tgccttgaag gacgcgcttg tcgaggcaga cttcttaacg cttgacgagg 60
tttgctccat tgcgcttggc gataatatga acattgcgct tcacgaggga aactttttgg 120
aaaactgata ttgaacaact ccacaagtgc agcgcttgtc gatgactact tctttacgtt 180
tacactcgtc gcaacaattt gcgaacctga tgcctcgaaa ccgtgcgaac ccgatgcttc 240
gaggcctgta ttcagtggga tggtgaagag cgcacttgac ggcaagggct atagtcgtga 300
tgcgccgtgt tcgagatgga catccatgcc caacggctta aagtgtaagt agcccatccc 360
gatcacatgt agcccgccca agcgctgctg ttgtgagtgg ccgttcggct atttgcgtag 420
ccccgggtcc ccgacgcgat gtaagcttgg catccgcttg cgatgtgggc taccgaaccc 480
gatcggatgt aagacgccct tcccgaaaaa ttcttcaatc 520
<210> 2
<211> 173
<212> DNA
<213> 人工序列
<220>
<223> 序列片段-1
<400> 2
cgcttggtga tgccttgaag gacgcgcttg tcgaggcaga cttcttaacg cttgacgagg 60
tttgctccat tgcgcttggc gataatatga acattgcgct tcacgaggga aactttttgg 120
aaaactgata ttgaacaact ccacaagtgc agcgcttgtc gatgactact tct 173
<210> 3
<211> 173
<212> DNA
<213> 人工序列
<220>
<223> 序列片段-2
<400> 3
ttacgtttac actcgtcgca acaatttgcg aacctgatgc ctcgaaaccg tgcgaacccg 60
atgcttcgag gcctgtattc agtgggatgg tgaagagcgc acttgacggc aagggctata 120
gtcgtgatgc gccgtgttcg agatggacat ccatgcccaa cggcttaaag tgt 173
<210> 4
<211> 174
<212> DNA
<213> 人工序列
<220>
<223> 序列片段-3
<400> 4
aagtagccca tcccgatcac atgtagcccg cccaagcgct gctgttgtga gtggccgttc 60
ggctatttgc gtagccccgg gtccccgacg cgatgtaagc ttggcatccg cttgcgatgt 120
gggctaccga acccgatcgg atgtaagacg cccttcccga aaaattcttc aatc 174
<210> 5
<211> 178
<212> DNA
<213> 人工序列
<220>
<223> 添加索引标识后的序列片段-1
<400> 5
agtcgcgctt ggtgatgcct tgaaggacgc gcttgtcgag gcagacttct taacgcttga 60
cgaggtttgc tccattgcgc ttggcgataa tatgaacatt gcgcttcacg agggaaactt 120
tttggaaaac tgatattgaa caactccaca agtgcagcgc ttgtcgatga ctacttct 178
<210> 6
<211> 178
<212> DNA
<213> 人工序列
<220>
<223> 添加索引标识后的序列片段-2
<400> 6
acgctttacg tttacactcg tcgcaacaat ttgcgaacct gatgcctcga aaccgtgcga 60
acccgatgct tcgaggcctg tattcagtgg gatggtgaag agcgcacttg acggcaaggg 120
ctatagtcgt gatgcgccgt gttcgagatg gacatccatg cccaacggct taaagtgt 178
<210> 7
<211> 179
<212> DNA
<213> 人工序列
<220>
<223> 添加索引标识后的序列片段-3
<400> 7
caatgaagta gcccatcccg atcacatgta gcccgcccaa gcgctgctgt tgtgagtggc 60
cgttcggcta tttgcgtagc cccgggtccc cgacgcgatg taagcttggc atccgcttgc 120
gatgtgggct accgaacccg atcggatgta agacgccctt cccgaaaaat tcttcaatc 179

Claims (27)

1.一种编码方法,包括:
将第一二进制代码序列和第二二进制代码序列编码为一条编码序列,所述第一二进制代码序列与所述第二二进制代码序列位数相同,所述编码序列由四种不同符号中的多种构成,所述编码序列的位数与所述第一二进制代码序列的位数相同,所述编码序列为核酸序列,
其中,所述编码序列通过以下步骤获得:
根据所述第一二进制代码序列的第一位、所述第二二进制代码序列的第一位和参考符号,确定所述编码序列的第一位,所述参考符号为所述四种不同符号中的任一种,
根据所述第一二进制代码序列的当前位、所述第二二进制代码序列的当前位和所述编码序列的前一位,确定所述编码序列的当前位,所述编码序列的当前位为除所述编码序列的第一位以外的其它位;
其中,确定所述编码序列的第一位包括:
根据所述第一二进制代码序列中的第一位,按照第一映射关系,确定所述编码序列的第一位的第一候选符号组,所述第一候选符号组包含所述四种不同符号中的两种;
根据所述第二二进制代码序列的第一位,以及所述参考符号,按照第二映射关系,确定所述编码序列的第一位的第二候选符号组,所述第二候选符号组包含所述四种不同符号中的两种,所述第一映射关系和所述第二映射关系的设置能够保证所述第一候选符号组与所述第二候选符号组具有一个相同的符号;
将所述相同的符号确定为所述编码序列的第一位;
确定所述编码序列的当前位包括:
根据所述第一二进制代码序列中的当前位,按照第一映射关系,确定所述编码序列的当前位的第一候选符号组,所述第一候选符号组包含所述四种不同符号中的两种;
根据所述第二二进制代码序列的当前位,以及所述编码序列的前一位,按照第二映射关系,确定所述编码序列的当前位的第二候选符号组,所述第二候选符号组包含所述四种不同符号中的两种,所述第一映射关系和所述第二映射关系的设置能够保证所述第一候选符号组与所述第二候选符号组具有一个相同的符号;
将所述相同的符号确定为所述编码序列的当前位。
2.根据权利要求1所述的编码方法,还包括:
将待编码的信息转码成二进制代码;
从所述二进制代码中提取所述第一二进制代码序列与所述第二二进制代码序列。
3.根据权利要求1或2所述的编码方法,其中,
所述四种不同符号为腺嘌呤A、胞嘧啶C、鸟嘌呤G和胸腺嘧啶T四种脱氧核糖核苷酸,
所述编码序列为包含所述四种脱氧核糖核苷酸的核酸序列。
4.根据权利要求1所述的编码方法,其中,
所述第一映射关系为所述第一二进制代码序列中的第一位或当前位与所述第一候选符号组中的符号的对应关系,所述第一候选符号组中的符号为腺嘌呤A、胞嘧啶C、鸟嘌呤G、胸腺嘧啶T中的两种,
所述第二映射关系为所述第二二进制代码序列中的第一位和所述参考符号与所述第二候选符号组中的符号的对应关系,或者所述第二二进制代码序列中的当前位和前一位与所述第二候选符号组中的符号的对应关系,所述第二候选符号组中的符号为A、C、G、T中的两种。
5.根据权利要求2所述的编码方法,其中,
所述待编码的信息为图片、视频、音频、文档中的至少一种信息。
6.一种存储方法,包括:
将根据权利要求3所述的编码方法获得的核酸序列拆分为多个序列片段;
为各序列片段添加索引标识,所述索引标识中包含相应序列片段的位置顺序信息;
将所述各序列片段合成各核酸片段。
7.根据权利要求6所述的存储方法,还包括:
将所述各核酸片段存储在介质中,所述介质为存储管或细胞。
8.根据权利要求6所述的存储方法,其中,
所述索引标识为脱氧核糖核酸序列。
9.根据权利要求7所述的存储方法,还包括:
在将所述各核酸片段存储在介质中之前,组装所述各核酸片段。
10.根据权利要求7所述的存储方法,还包括:
在将所述各核酸片段存储在介质中之前,将所述各核酸片段连接到载体中。
11.一种解码方法,包括:
将权利要求1-5任一项所述的编码序列解码为第一二进制代码序列和第二二进制代码序列,所述第一二进制代码序列与所述第二二进制代码序列位数相同,所述编码序列的位数与所述第一二进制代码序列的位数相同,所述编码序列为核酸序列,
其中,所述第一二进制代码序列通过以下步骤获得:
按照第一映射关系,将所述编码序列包含的四种不同符号中的两种解码为0,将所述四种不同符号中的另外两种解码为1,以获得所述第一二进制代码序列,
所述第二二进制代码序列通过以下步骤获得:
根据所述编码序列的第一位和参考符号,按照第二映射关系,确定所述第二二进制代码的第一位,所述参考符号为所述四种不同符号中的任一种,
根据所述编码序列的当前位和前一位,按照所述第二映射关系,确定所述第二二进制代码的当前位,所述编码序列的当前位为除所述编码序列的第一位以外的其它位。
12.根据权利要求11所述的解码方法,其中,所述编码序列通过如下步骤获取:
对各核酸片段进行测序,获得各序列片段;
根据所述各序列片段的索引标识,获取所述各序列片段的位置顺序信息;
根据所述位置顺序信息,将所述各序列片段组合为所述编码序列。
13.根据权利要求11所述的解码方法,其中,
所述四种不同符号为腺嘌呤A、胞嘧啶C、鸟嘌呤G和胸腺嘧啶T四种脱氧核糖核苷酸。
14.根据权利要求11-13任一项所述的解码方法,还包括:
将解码获取的二进制代码序列组合为二进制代码;
将所述二进制代码转码为相应的信息。
15.一种编码器,包括:
存储器,被配置为存储待编码的第一二进制代码序列和第二二进制代码序列,所述第一二进制代码序列与所述第二二进制代码序列位数相同,所述编码序列的位数与所述第一二进制代码序列的位数相同;
处理器,所述处理器与所述存储器相连,所述处理器被配置为执行权利要求1所述的编码方法。
16.根据权利要求15所述的编码器,其中,所述处理器被配置为通过执行如下步骤确定所述编码序列的第一位:
根据所述第一二进制代码序列中的第一位,按照第一映射关系,确定所述编码序列的第一位的第一候选符号组,所述第一候选符号组包含所述四种不同符号中的两种;
根据所述第二二进制代码序列的第一位,以及所述参考符号,按照第二映射关系,确定所述编码序列的第一位的第二候选符号组,所述第二候选符号组包含所述四种不同符号中的两种,所述第一映射关系和所述第二映射关系的设置能够保证所述第一候选符号组与所述第二候选符号组具有一个相同的符号;
将所述相同的符号确定为所述编码序列的第一位。
17.根据权利要求15所述的编码器,其中,所述处理器被配置为通过执行如下步骤确定所述编码序列的当前位:
根据所述第一二进制代码序列中的当前位,按照第一映射关系,确定所述编码序列的当前位的第一候选符号组,所述第一候选符号组包含所述四种不同符号中的两种;
根据所述第二二进制代码序列的当前位,以及所述编码序列的前一位,按照第二映射关系,确定所述编码序列的当前位的第二候选符号组,所述第二候选符号组包含所述四种不同符号中的两种,所述第一映射关系和所述第二映射关系的设置能够保证所述第一候选符号组与所述第二候选符号组具有一个相同的符号;
将所述相同的符号确定为所述编码序列的当前位。
18.根据权利要求15所述的编码器,其中,
所述处理器被配置为将待编码的信息转码成二进制代码,从所述二进制代码中提取所述第一二进制代码序列与所述第二二进制代码序列。
19.根据权利要求15-18任一项所述的编码器,其中,
所述四种不同符号为腺嘌呤A、胞嘧啶C、鸟嘌呤G和胸腺嘧啶T四种脱氧核糖核苷酸,
所述编码序列为包含所述四种脱氧核糖核苷酸的核酸序列。
20.根据权利要求16所述的编码器,其中,
所述第一映射关系为所述第一二进制代码序列中的第一位或当前位与所述第一候选符号组中的符号的对应关系,所述第一候选符号组中的符号为腺嘌呤A、胞嘧啶C、鸟嘌呤G、胸腺嘧啶T中的两种,
所述第二映射关系为所述第二二进制代码序列中的第一位和所述参考符号与所述第二候选符号组中的符号的对应关系,或者所述第二二进制代码序列中的当前位和前一位与所述第二候选符号组中的符号的对应关系,所述第二候选符号组中的符号为A、C、G、T中的两种。
21.一种存储装置,包括:
序列拆分模块,被配置为将根据权利要求5所述的编码方法获得的核酸序列拆分为多个序列片段;
索引添加模块,所述索引添加模块与所述序列拆分模块相连,被配置为给各序列片段添加索引标识,所述索引标识中包含所述序列片段的位置顺序信息;
核酸合成模块,所述核酸合成模块与所述索引添加模块相连,被配置为将所述各序列片段合成各核酸片段。
22.根据权利要求21所述的存储装置,其中,所述存储装置还被配置为下述情况中的至少一个:
所述存储装置还包括介质存储模块,所述介质存储模块与所述核酸合成模块相连,被配置为将所述各核酸片段存储在介质中,所述介质为存储管或细胞;所述索引标识为脱氧核糖核酸序列;
所述存储装置还包括核酸组装模块,所述核酸组装模块与所述核酸合成模块相连,被配置为组装所述各核酸片段;所述存储装置还包括载体连接模块,所述载体连接模块与所述核酸合成模块相连,被配置为将所述各核酸片段连接到载体中。
23.一种解码器,包括:
存储器,被配置为存储编码序列;
处理器,所述处理器与所述存储器相连,所述处理器被配置为执行权利要求11所述的解码方法。
24.根据权利要求23所述的解码器,其中,所述处理器被配置为通过执行如下步骤获取所述编码序列:
对各核酸片段进行测序;
根据所述各核酸片段的索引标识,获取所述各核酸片段的位置顺序信息;
根据所述位置顺序信息,将所述各核酸片段组装为所述编码序列。
25.根据权利要求23所述的解码器,其中,
所述四种不同符号为腺嘌呤A、胞嘧啶C、鸟嘌呤G和胸腺嘧啶T四种脱氧核糖核苷酸。
26.根据权利要求23-25任一项所述的解码器,其中,所述处理器被配置为将解码获取的二进制代码序列组合为二进制代码,将所述二进制代码转码为相应的信息。
27.一种非瞬态计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如下方法中的至少一种:
如权利要求1-5中任一项所述的编码方法,或者如权利要求11-14中任一项所述的解码方法。
CN201880068914.8A 2017-10-25 2018-09-03 编码/解码方法、编码/解码器和存储方法、装置 Active CN111279422B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201711009900 2017-10-25
CN2017110099002 2017-10-25
PCT/CN2018/103795 WO2019080653A1 (zh) 2017-10-25 2018-09-03 编码/解码方法、编码/解码器和存储方法、装置

Publications (2)

Publication Number Publication Date
CN111279422A CN111279422A (zh) 2020-06-12
CN111279422B true CN111279422B (zh) 2023-12-22

Family

ID=66247716

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880068914.8A Active CN111279422B (zh) 2017-10-25 2018-09-03 编码/解码方法、编码/解码器和存储方法、装置

Country Status (3)

Country Link
US (1) US20200321079A1 (zh)
CN (1) CN111279422B (zh)
WO (1) WO2019080653A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113539371B (zh) * 2021-07-05 2023-06-23 南方科技大学 一种序列的编码方法及装置、可读存储介质
CN114758703B (zh) * 2022-06-14 2022-09-13 深圳先进技术研究院 基于重组质粒dna分子的数据信息存储方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1463497A (zh) * 2001-06-06 2003-12-24 精工爱普生株式会社 解码器、解码方法、查用表和解码程序
CN101565746A (zh) * 2009-06-03 2009-10-28 东南大学 带奇偶校验的信号组合编码dna连接测序方法
CN104850760A (zh) * 2015-03-27 2015-08-19 苏州泓迅生物科技有限公司 带有编码信息的人工合成dna存储介质及信息的存储读取方法和应用
CN105022935A (zh) * 2014-04-22 2015-11-04 中国科学院青岛生物能源与过程研究所 一种利用dna进行信息存储的编码方法和解码方法
CN105550570A (zh) * 2015-12-02 2016-05-04 深圳市同创国芯电子有限公司 一种应用于可编程器件的加密、解密方法及装置
CN106022006A (zh) * 2016-06-02 2016-10-12 广州麦仑信息科技有限公司 一种将基因信息进行二进制表示的存储方法
CN106845158A (zh) * 2017-02-17 2017-06-13 苏州泓迅生物科技股份有限公司 一种利用dna进行信息存储的方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060068405A1 (en) * 2004-01-27 2006-03-30 Alex Diber Methods and systems for annotating biomolecular sequences
CN104662544B (zh) * 2012-07-19 2018-08-03 哈佛大学校长及研究员协会 利用核酸存储信息的方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1463497A (zh) * 2001-06-06 2003-12-24 精工爱普生株式会社 解码器、解码方法、查用表和解码程序
CN101565746A (zh) * 2009-06-03 2009-10-28 东南大学 带奇偶校验的信号组合编码dna连接测序方法
CN105022935A (zh) * 2014-04-22 2015-11-04 中国科学院青岛生物能源与过程研究所 一种利用dna进行信息存储的编码方法和解码方法
CN104850760A (zh) * 2015-03-27 2015-08-19 苏州泓迅生物科技有限公司 带有编码信息的人工合成dna存储介质及信息的存储读取方法和应用
CN105550570A (zh) * 2015-12-02 2016-05-04 深圳市同创国芯电子有限公司 一种应用于可编程器件的加密、解密方法及装置
CN106022006A (zh) * 2016-06-02 2016-10-12 广州麦仑信息科技有限公司 一种将基因信息进行二进制表示的存储方法
CN106845158A (zh) * 2017-02-17 2017-06-13 苏州泓迅生物科技股份有限公司 一种利用dna进行信息存储的方法

Also Published As

Publication number Publication date
CN111279422A (zh) 2020-06-12
US20200321079A1 (en) 2020-10-08
WO2019080653A1 (zh) 2019-05-02

Similar Documents

Publication Publication Date Title
CN110945595B (zh) 基于dna的数据存储和检索
CN112382340B (zh) 用于dna数据存储的编解码方法和编解码装置
CN109830263B (zh) 一种基于寡核苷酸序列编码存储的dna存储方法
CN105976303B (zh) 一种基于矢量量化的可逆信息隐藏和提取方法
CN112288090B (zh) 存有数据信息的dna序列的处理方法及装置
CN113228193B (zh) 一种定点编辑存储有数据的核酸序列的方法及装置
CN111279422B (zh) 编码/解码方法、编码/解码器和存储方法、装置
KR101969848B1 (ko) 유전자 데이터를 압축하는 방법 및 장치
CN109979540B (zh) 一种dna信息存储编码方法
US20090045987A1 (en) Method and apparatus for encoding/decoding metadata
JP2004536481A (ja) 構造化文書の木構造におけるパスの符号化および復号化方法
CA3039688C (en) Efficient data structures for bioinformatics information representation
CN110867213A (zh) 一种dna数据的存储方法和装置
Zhang et al. A high storage density strategy for digital information based on synthetic DNA
JP2014197844A (ja) テキストをマトリクスコードシンボルに符号化するためのエンコーダ、およびマトリクスコードシンボルを復号化するためのデコーダ
CN111095423B (zh) 编码/解码方法、装置和数据处理装置
CN111061722B (zh) 一种数据压缩、数据解压缩方法、装置及设备
KR20050053996A (ko) 허프만 코드를 효율적으로 복호화하는 방법 및 장치
US20230032409A1 (en) Method for Information Encoding and Decoding, and Method for Information Storage and Interpretation
Gil et al. Decoding of nanopore-sequenced synthetic DNA storing digital images
CN110915140B (zh) 用于编码和解码数据结构的质量值的方法
CN110708074B (zh) Sam及bam文件cigar域的压缩及解压还原方法、系统和介质
CN114822695B (zh) 用于dna存储的编码方法及编码装置
CN116226049B (zh) 基于大小喷泉码利用dna进行信息存储的方法、系统及设备
San Antonio et al. Decoding Of Nanopore-Sequenced Synthetic DNA Storing Digital Images

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