CN115249509A - 基于脱氧核糖核酸技术的数据编码方法及解码方法 - Google Patents

基于脱氧核糖核酸技术的数据编码方法及解码方法 Download PDF

Info

Publication number
CN115249509A
CN115249509A CN202110467805.7A CN202110467805A CN115249509A CN 115249509 A CN115249509 A CN 115249509A CN 202110467805 A CN202110467805 A CN 202110467805A CN 115249509 A CN115249509 A CN 115249509A
Authority
CN
China
Prior art keywords
base
base sequence
subsequence
sequences
sequence
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
Application number
CN202110467805.7A
Other languages
English (en)
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202110467805.7A priority Critical patent/CN115249509A/zh
Publication of CN115249509A publication Critical patent/CN115249509A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6522Intended application, e.g. transmission or communication standard

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)

Abstract

本申请实施例公开了一种基于脱氧核糖核酸技术的数据编码方法、解码方法、相关装置及系统,该编码方法包括:对目标数据包括的M段第一子数据编码,以得到M条第一碱基序列;获取M段第一子数据的M个第一索引和目标数据的第二索引,其中,第二索引为第一索引的一部分;对M个第一索引编码,以得到M条第二碱基序列;基于M条第一碱基序列和M条第二碱基序列得到N条第三碱基序列,其中,一条第三碱基序列是基于一条第二碱基序列,以及该条第二碱基序列的对应的第一碱基序列得到的;基于N条第三碱基序列,合成N条第一核苷酸序列;该编码方法使得用户可以根据需求读取从存储数据的核苷酸序列中读取特定的一部分数据。

Description

基于脱氧核糖核酸技术的数据编码方法及解码方法
技术领域
本申请实施例涉及数据存储技术领域,尤其涉及一种基于脱氧核糖核酸技术的数据编码方法、解码方法、相关装置及系统。
背景技术
随着时代的发展,全球数据总量越来越大,在不久的将来,数据总量将超过硬盘等存储介质的承受能力。
近年来,诞生了DNA存储技术。DNA存储技术是指将数据转换成脱氧核糖核酸(deoxyribonucleic acid,DNA)的碱基序列,然后基于转换后的碱基序列人工合成DNA序列,从而实现数据的存储。
DNA存储技术具有以下优点:单位质量的DNA约有1021个碱基,可存储455EB数据,此数据量为全球一年数据总量的1/4;单位体积的DNA可存储的数据为整个互联网的33倍;DNA单位体积的存储密度是硬盘和存储器的存储密度的106倍,是闪存的存储密度的103倍;DNA的存储时长至少为硬盘、闪存的存储时长的10倍。
另外,对于存储有数据的DNA序列,还可以通过聚合酶链反应(Polymerase ChainReaction,PCR)较容易地实现扩增,以获取所需数量的拷贝副本。DNA作为稳定的储存介质,对于高温、震荡等外部环境具有极强的抗干扰能力。
基于上述种种优点,DNA存储技术将成为数据存储的重要手段。
目前的DNA存储方法是将数据转换为多条DNA序列中的碱基序列,在读取数据时,通过读取多条DNA序列中的碱基序列来实现数据的读取。
然而,上述方法只能整体读取数据,而无法仅读取数据中特定的一部分。
发明内容
本申请实施例提供了一种基于脱氧核糖核酸技术的数据编码方法、解码方法、相关装置及系统,该编码方法用于得到存储数据的核苷酸序列,且使得用户可以根据需求读取从存储数据的核苷酸序列中读取特定的一部分数据。
本申请实施例第一方面提供了一种基于脱氧核糖核酸技术的数据编码方法,该方法包括:对目标数据编码,以得到M条第一碱基序列,其中,目标数据通常是二进制数据且包括M段第一子数据,一段第一子数据对应一条第一碱基序列,M为大于1的正整数,M段第一子数据可以是基于目标数据的原始目录划分得到的,也可以是基于用户的实际需求划分得到的;获取M段第一子数据的M个第一索引和目标数据的第二索引,其中,第二索引为第一索引的一部分,一个第一索引对应一段第一子数据;索引可以理解为用于查找某部分数据的指示,目录可以看成索引的一种;第二索引为第一索引的一部分可以理解为,第一索引是由第二索引以及其他指示信息组成;例如,第二索引为第1章,第一索引为第1章第1节;第一索引和第二索引可以是基于目标数据的原始目录或原始索引得到的,也可以是人工标注的;对M个第一索引编码,以得到M条第二碱基序列,其中,一条第二碱基序列对应一条第一碱基序列,具体地,可以采用DNA二进制编码模型、DNA三进制编码模型或DNA四进制编码模型对第一索引进行编码,DNA四进制编码模型有24种;基于M条第一碱基序列和M条第二碱基序列得到N条第三碱基序列,其中,一条第三碱基序列是基于一条第二碱基序列,以及该条第二碱基序列的对应的第一碱基序列得到的,例如,一条第三碱基序列包括一条第二碱基序列和一条第一碱基序列中的部分或全部,其中,N为大于或等于M的整数;基于N条第三碱基序列,合成N条第一核苷酸序列,其中,一条第一核苷酸序列对应一条第三碱基序列。
本申请实施例将目标数据划分为M段第一子数据,将M段第一子数据和M段第一子数据的M个第一索引分别编码为M条第一碱基序列和M条第二碱基序列,再基于一条第一碱基序列和一条第二碱基序列得到一条第三碱基序列,然后基于一条第三碱基序列合成一条第一核苷酸序列;这样,基于一个第一索引所对应的第二碱基序列,便可以从一条第一核苷酸序列中提取该第一索引所对应的第一子数据,使得用户可以根据需求读取从第一核苷酸序列中读取特定的一部分数据,实现了目标数据中特定部分数据的精准读取,使得DNA存储技术具备了随机读取的功能;此外,由于第二索引为第一索引的一部分,所以每条第二碱基序列都包含第二索引的碱基序列,即每条第一核苷酸序列都包含第二索引的碱基序列,这样,便可以基于第二索引的碱基序列提取所有第一核苷酸序列中存储的第一子数据,从而实现对目标数据的整体读取。
作为一种实现的方式,一条第一核苷酸序列的引物对应一条第三碱基序列中基于第二碱基序列得到的部分。
由于引物是合成核苷酸序列必不可少的一部分,且包含碱基序列,所以若第三碱基序列都包含在核苷酸序列的存储序列中,那么引物中的碱基序列将成为冗余,而该实现的方式利用引物携带第三碱基序列中的第二碱基序列,从而可以降低冗余;并且,使得第一核苷酸序列的引物具备了索引的功能,方便从第一核苷酸序列中提取数据。
作为一种实现的方式,一条第三碱基序列中基于第二碱基序列得到的部分包括第一碱基子序列和第二碱基子序列,第一核苷酸序列的引物包括第一端引物和第二端引物,其中,第一端引物可以是3’端引物,也可以是5’端引物;当第一端引物是3’端引物时,第二端引物则是5’端引物;当第一端引物是5’端引物时,第二端引物则是3’端引物;第一端引物对应第一碱基子序列,第二端引物对应第二碱基子序列。
由于第一端引物对应第一碱基子序列,第二端引物对应第二碱基子序列,使得第一端引物和第二端引物都得到了利用,以避免其中一端引物未被利用而导致冗余度较高,因此,该实施例能够进一步降低冗余。
作为一种实现的方式,第一索引是由多个子索引组成,该实现的方式对子索引的形式不做具体限定,多个子索引也可以理解为多级地址,例如,第一索引为庆余年第1章第1节,庆余年、第1章、第1节可以认为分别是第一索引的多个子索引;第二碱基序列包括第三碱基子序列和第四碱基子序列,第三碱基子序列是由多个子索引中的至少一个子索引编码得到的,第四碱基子序列是由多个子索引中的至少一个子索引编码得到的,且编码得到第三碱基子序列的子索引的数量与编码得到第四碱基子序列的子索引的数量相差至多一个;例如,第三碱基子序列是由三个子索引编码得到的,第四碱基子序列是由四个子索引编码得到的;第三碱基子序列是由三个子索引编码得到的,第四碱基子序列是由两个子索引编码得到的;第一碱基子序列是基于第三碱基子序列得到的,第二碱基子序列是基于第四碱基子序列得到的。
由于编码得到第三碱基子序列的子索引的数量与编码得到第四碱基子序列的子索引的数量相差至多一个,使得第三碱基子序列的长度和第四碱基子序列的长度不会相差过大;而第一碱基子序列是基于第三碱基子序列得到的,第二碱基子序列是基于第四碱基子序列得到的,所以使得第一碱基子序列的长度和第二子碱基序列的长度不会相差过大,从而可以保证一端引物的长度与第二端引物的长度的差值不会过大,达到降低冗余度的目的;并且,控制编码得到第三碱基子序列的子索引的数量与编码得到第四碱基子序列的子索引的数量的方法较简单,容易实现,不会给编码过程增加过多的工作量。
作为一种实现的方式,第一碱基子序列包括第一子序列和第二子序列,第一子序列是由第三碱基子序列得到的,第二子序列用于使得第一碱基子序列的长度大于第一长度。
通过第二子序列可以控制第一碱基子序列的长度大于第一长度,且第一长度可以设置为能够单独提取的引物的最小长度,所以该实现的方式使得对应第一碱基子序列的第一端引物能够被单独提取,以用于第一核苷酸序列的合成。
作为一种实现的方式,第二碱基子序列包括第三子序列和第四子序列,第三子序列是由第四碱基子序列得到的,第四子序列用于使得第二碱基子序列的长度大于第二长度。
通过第四子序列可以控制第二碱基子序列的长度大于第二长度,且第二长度可以设置为能够单独提取的引物的最小长度,所以该实现的方式使得对应第二碱基子序列的第二端引物能够被单独提取,以用于第一核苷酸序列的合成。
作为一种实现的方式,基于M条第一碱基序列和M条第二碱基序列得到N条第三碱基序列包括:将第一目标碱基序列划分为P条第五碱基子序列,第一目标碱基序列为M条第一碱基序列中的一条,P条第五碱基子序列的长度可以相同,也可以不同,其中,P为大于1且小于N的整数;基于P条第五碱基子序列和第二目标碱基序列得到P条长度小于第三长度的第三碱基序列,P条第三碱基序列属于N条第三碱基序列;第三长度是基于体外所能合成的核苷酸序列的长度确定,例如,目前体外所能合成的核苷酸序列的长度通常为170碱基,则第三长度可以为小于或等于170碱基的任意值;特殊情况下,前体外所能合成的核苷酸序列的长度可以达到200碱基,则第三长度可以为小于或等于200碱基的任意值;P条第三碱基序列中的一条第三碱基序列是基于一条第五碱基子序列、地址碱基序列以及第二目标碱基序列得到的,地址碱基序列用于指示第五碱基子序列在第一目标碱基序列中的位置,第二目标碱基序列为M条第二碱基序列中与第一目标碱基序列对应的一条。
由于目前体外能够合成核苷酸的长度是有限的,所以将第一目标碱基序列划分为P条第五碱基子序列,并基于P条第五碱基子序列和第二目标碱基序列得到P条长度小于第三长度的第三碱基序列,能够防止第一碱基序列的长度过长而导致核第一苷酸序列无法合成。
作为一种实现的方式,在基于P条第五碱基子序列和第二目标碱基序列得到P条长度小于第三长度的第三碱基序列之后,编码方法还包括:基于P条第三碱基序列和第二目标碱基序列得到Q条第三碱基序列,Q条第三碱基序列中的每条第三碱基序列包括第二目标碱基序列和第一纠错碱基序列,其中,第一纠错碱基序列是基于P条第三碱基序列得到的,且用于对P条第三碱基序列的纠错,Q为正整数且Q和P的和小于N;具体地,可以采用RS(Reed-solomon codes)编码方法对P条第三碱基序列进行处理,得到第一纠错碱基序列,其中RS编码是一种前向纠错的信道编码。
Q条第三碱基序列用于对P条第三碱基序列纠错,以降低数据存储的出错率。
作为一种实现的方式,第三碱基序列还包括第二纠错碱基序列,第二纠错碱基序列是基于第三碱基序列中除第二纠错碱基序列外的其他部分得到的,且用于第三碱基序列中除第二纠错碱基序列外的其他部分的纠错。
第二纠错碱基序列用于对第三碱基序列中除第二纠错碱基序列外的其他部分的纠错,以降低数据存储的出错率。
作为一种实现的方式,方法还包括:获取K段第二子数据的V个第三索引,一段第二子数据是由H段第一子数据组成,一个第三索引对应一段第二子数据,第二索引为第三索引的一部分,一段第二子数据的第三索引为组成该段第二子数据的任意一段第一子数据的第一索引的一部分,其中,V为大于1的整数,H为大于1且小于M的整数。
由于一段第二子数据的第三索引为组成该段第二子数据的任意一段第一子数据的第一索引的一部分,所以组成该段第二子数据的任意一段第一子数据的第一索引对应的第一碱基序列中,包含该段第二子数据的第三索引的碱基序列;那么,基于组成该段第二子数据的任意一段第一子数据的第一索引对应的第一碱基序列,合成的第一核苷酸序列中都包含该段第二子数据的第三索引的碱基序列;因此基于一段第二子数据的第三索引的碱基序列,可以提取第一核苷酸序列中存储的一段第二子数据,使得用户除了可以整体读取目标数据以及读取最小粒度的第一子数据外,还可以读取中间粒度的第二子数据。
本申请实施例第二方面提供了一种基于脱氧核糖核酸技术的数据解码方法,该方法包括:获取目标子数据的目标索引,其中,目标子数据为M段第一子数据中的一段,M段第一子数据包含于目标数据中,目标索引为M段第一子数据的M个第一索引中的一个,一段第一子数据对应一个第一索引,目标数据的第二索引为第一索引的一部分,M为大于1的正整数;目标子数据可以理解为用户想要从第一核苷酸序列存储的目标数据中,提取的一部分数据;对目标索引编码,以得到目标碱基序列;基于目标碱基序列和N条第一核苷酸序列得到X条第三碱基序列,其中,N条第一核苷酸序列是由N条第三碱基序列合成,一条第一核苷酸序列对应一条第三碱基序列,N条第三碱基序列是基于M条第一碱基序列和M条第二碱基序列得到,一条第二碱基序列对应一条第一碱基序列,一条第三碱基序列是基于一条第二碱基序列,以及该条第二碱基序列的对应的第一碱基序列得到的,M条第二碱基序列是对M个第一索引编码得到的,M条第一碱基序列是对目标数据编码得到的,一条第一碱基序列对应一段第一子数据,X条第三碱基序列属于N条第三碱基序列且是基于目标碱基序列得到的,目标碱基序列为M条第二碱基序列中的一条,X为小于N的正整数,具体地,X等于1或大于1;从X条第三碱基序列中得到目标碱基序列对应的第一碱基序列;对目标碱基序列对应的第一碱基序列解码,以得到第一子数据。
基于目标索引对应的目标碱基序列从N条第一核苷酸序列中得到X条第三碱基序列,并对X条第三碱基序列中的第一碱基序列解码,以得到第一子数据,使得用户可以根据目标索引读取从第一核苷酸序列中读取特定的一部分数据,实现了目标数据中目标子数据的精准读取,使得DNA存储技术具备了随机读取的功能。
作为一种实现的方式,一条第一核苷酸序列的引物对应一条第三碱基序列中基于第二碱基序列得到的部分,相应地,基于目标碱基序列和N条第一核苷酸序列得到X条第三碱基序列包括:基于目标碱基序列合成目标引物,目标碱基序列与目标引物的碱基序列互补;标碱基序列可以与目标引物的碱基序列的部分互补,即目标碱基序列的长度小于目标引物的碱基序列的长度,例如,目标碱基序列为AGCTGGTTCCAA,那么目标引物的碱基序列可以为AATCGACCAAGGTTAA;目标碱基序列也可以与目标引物的碱基序列的全部互补,即目标碱基序列的长度等于目标引物的碱基序列的长度,例如,目标碱基序列为AGCTGGTTCCAA,那么目标引物的碱基序列可以为TCGACCAAGGTT。
基于目标引物和N条第一核苷酸序列进行聚合酶链式反应,以得到X条第二核苷酸序列,X条第二核苷酸序列是基于目标引物和N条第一核苷酸序列中的X条得到;其中,聚合酶链式反应是一种用于放大扩增特定的DNA片段的分子生物学技术,它可看作是生物体外的特殊DNA复制;基于X条第二核苷酸序列的X条测序结果得到X条第三碱基序列,一条测序结果对应一条第二核苷酸序列,X条测序结果与X条第三碱基序列互补。
由于引物是合成核苷酸序列必不可少的一部分,且包含碱基序列,所以若第三碱基序列都包含在核苷酸序列的存储序列中,那么引物中的碱基序列将成为冗余,而该实现的方式利用引物携带第三碱基序列中的第二碱基序列,从而可以降低冗余,并且使得第一核苷酸序列的引物具备了索引的功能;这样,便可以基于目标引物从第一核苷酸序列中提取目标子数据,较方便且容易实现。
作为一种实现的方式,目标碱基序列包括第一碱基子序列和第二碱基子序列,目标引物包括第一端引物和第二端引物;第一端引物对应第一碱基子序列,第二端引物对应第二碱基子序列。
由于第一端引物对应第一碱基子序列,第二端引物对应第二碱基子序列,使得第一端引物和第二端引物都得到了利用,以避免其中一端引物未被利用而导致冗余度较高,因此,该实现的方式能够降低目标引物的冗余。
作为一种实现的方式,目标索引是由多个子索引组成;目标碱基序列包括第三碱基子序列和第四碱基子序列,第三碱基子序列是由多个子索引中的至少一个子索引编码得到的,第四碱基子序列是由多个子索引中的至少一个子索引编码得到的,且编码得到第三碱基子序列的子索引的数量与编码得到第四碱基子序列的子索引的数量相差至多一个;第一碱基子序列是基于第三碱基子序列得到的,第二碱基子序列是基于第四碱基子序列得到的。
由于编码得到第三碱基子序列的子索引的数量与编码得到第四碱基子序列的子索引的数量相差至多一个,使得第三碱基子序列的长度和第四碱基子序列的长度不会相差过大;而第一碱基子序列是基于第三碱基子序列得到的,第二碱基子序列是基于第四碱基子序列得到的,所以使得第一碱基子序列的长度和第二子碱基序列的长度不会相差过大,从而可以保证一端引物的长度与第二端引物的长度的差值不会过大,达到降低目标引物冗余的目的;并且,控制编码得到第三碱基子序列的子索引的数量与编码得到第四碱基子序列的子索引的数量的方法较简单,容易实现,不会给编码过程增加过多的工作量。
作为一种实现的方式,第一碱基子序列包括第一子序列和第二子序列,第一子序列是由第三碱基子序列得到的,第二子序列用于使得第一碱基子序列的长度大于第一长度。
通过第二子序列可以控制第一碱基子序列的长度大于第一长度,且第一长度可以设置为能够单独提取的引物的最小长度,所以该实现的方式使得目标引物能够被单独提取。
作为一种实现的方式,第二碱基子序列包括第三子序列和第四子序列,第三子序列是由第四碱基子序列得到的,第四子序列用于使得第二碱基子序列的长度大于第二长度。
通过第四子序列可以控制第二碱基子序列的长度大于第二长度,且第二长度可以设置为能够单独提取的引物的最小长度,所以该实现的方式使得目标引物能够被单独提取。
作为一种实现的方式,X条第三碱基序列包括P条长度小于第三长度的第三碱基序列,其中,P大于1,且为小于或等于X的正整数;P条第三碱基序列中的每条第三碱基序列是由一条第五碱基子序列、地址碱基序列以及目标碱基序列得到的,地址碱基序列用于指示第五碱基子序列在目标碱基序列对应的第一碱基序列中的位置;从X条第三碱基序列中得到目标碱基序列对应的第一碱基序列包括:基于X条第三碱基序列中的地址碱基序列确定,由X条第三碱基序列包括的第五碱基子序列组成的第一碱基序列。
由于目前体外能够合成核苷酸的长度是有限的,所以X条第三碱基序列包括P条长度小于第三长度的第三碱基序列,能够防止第一碱基序列的长度过长而导致核第一苷酸序列无法合成;且在该实现方式中,基于X条第三碱基序列中的地址碱基序列,可以将X条第三碱基序列包括的第五碱基子序列组成第一碱基序列,从而实现第一碱基序列的还原。
作为一种实现的方式,X条第三碱基序列还包括Q条第三碱基序列,Q条第三碱基序列中的每条第三碱基序列包括第二目标碱基序列和第一纠错碱基序列,其中,第一纠错碱基序列是基于P条第三碱基序列得到的,其中,Q为正整数且Q和P的和小于或等于X;在基于目标碱基序列和N条第一核苷酸序列得到X条第三碱基序列之后,在基于X条第三碱基序列中的地址碱基序列确定,由X条第三碱基序列包括的第三碱基子序列组成的第一碱基序列之前,方法还包括:基于Q条第三碱基序列中的第一纠错碱基序列对P条第三碱基序列纠错。
通过Q条第三碱基序列中的第一纠错碱基序列对P条第三碱基序列纠错,降低了提取的目标子数据的出错率。
作为一种实现的方式,X条第三碱基序列中的一条第三碱基序列中包括第二纠错碱基序列;在基于目标碱基序列和N条第一核苷酸序列得到X条第三碱基序列之后,在从X条第三碱基序列中得到目标碱基序列对应的第一碱基序列之前,方法还包括:基于第二纠错碱基序列,对第二纠错碱基序列所在的第三碱基序列中除第二纠错碱基序列外的其他部分进行纠错。
通过第二纠错碱基序列,对第二纠错碱基序列所在的第三碱基序列中除第二纠错碱基序列外的其他部分进行纠错,降低了提取的目标子数据的出错率。
其中,解码方法是编码方法的逆过程,所以本申请实施例第二方面的具体实现、相关说明以及技术效果请参考本申请实施例第一方面的描述。
本申请实施例第三方面提供了一种基于脱氧核糖核酸技术的数据编码装置,该装置包括:编码单元,用于对目标数据编码,以得到M条第一碱基序列,其中,目标数据包括M段第一子数据,一段第一子数据对应一条第一碱基序列,M为大于1的正整数;索引获取单元,用于获取M段第一子数据的M个第一索引和目标数据的第二索引,其中,第二索引为第一索引的一部分,一个第一索引对应一段第一子数据;编码单元,还用于对M个第一索引编码,以得到M条第二碱基序列,其中,一条第二碱基序列对应一条第一碱基序列;序列组合单元,用于基于M条第一碱基序列和M条第二碱基序列得到N条第三碱基序列,其中,一条第三碱基序列是基于一条第二碱基序列,以及该条第二碱基序列的对应的第一碱基序列得到的,其中,N为大于或等于M的整数。
作为一种实现的方式,一条第一核苷酸序列的引物对应一条第三碱基序列中基于第二碱基序列得到的部分。
作为一种实现的方式,一条第三碱基序列中基于第二碱基序列得到的部分包括第一碱基子序列和第二碱基子序列,第一核苷酸序列的引物包括第一端引物和第二端引物;第一端引物对应第一碱基子序列,第二端引物对应第二碱基子序列。
作为一种实现的方式,第一索引是由多个子索引组成;第二碱基序列包括第三碱基子序列和第四碱基子序列,第三碱基子序列是由多个子索的至少一个子索引编码得到的,第四碱基子序列是由多个子索引中的至少一个子索引编码得到的,且编码得到第三碱基子序列的子索引的数量与编码得到第四碱基子序列的子索引的数量相差至多一个;第一碱基子序列是基于第三碱基子序列得到的,第二碱基子序列是基于第四碱基子序列得到的。
作为一种实现的方式,第一碱基子序列包括第一子序列和第二子序列,第一子序列是由第三碱基子序列得到的,第二子序列用于使得第一碱基子序列的长度大于第一长度。
作为一种实现的方式,第二碱基子序列包括第三子序列和第四子序列,第三子序列是由第四碱基子序列得到的,第四子序列用于使得第二碱基子序列的长度大于第二长度。
作为一种实现的方式,序列组合单元,用于将第一目标碱基序列划分为P条第五碱基子序列,第一目标碱基序列为M条第一碱基序列中的一条,其中,P为大于1且小于N的整数;基于P条第五碱基子序列和第二目标碱基序列得到P条长度小于第三长度的第三碱基序列,P条第三碱基序列属于N条第三碱基序列;P条第三碱基序列中的一条第三碱基序列是基于一条第五碱基子序列、地址碱基序列以及第二目标碱基序列得到的,地址碱基序列用于指示第五碱基子序列在第一目标碱基序列中的位置,第二目标碱基序列为M条第二碱基序列中与第一目标碱基序列对应的一条。
作为一种实现的方式,该装置还包括:纠错序列获取单元,用于基于P条第三碱基序列和第二目标碱基序列得到Q条第三碱基序列,Q条第三碱基序列中的每条第三碱基序列包括第二目标碱基序列和第一纠错碱基序列,其中,第一纠错碱基序列是基于P条第三碱基序列得到的,且用于对P条第三碱基序列的纠错,Q为正整数且Q和P的和小于N。
作为一种实现的方式,第三碱基序列还包括第二纠错碱基序列,第二纠错碱基序列是基于第三碱基序列中除第二纠错碱基序列外的其他部分得到的,且用于第三碱基序列中除第二纠错碱基序列外的其他部分的纠错。
作为一种实现的方式,索引获取单元,还用于获取K段第二子数据的V个第三索引,一段第二子数据是由H段第一子数据组成,一个第三索引对应一段第二子数据,第二索引为第三索引的一部分,一段第二子数据的第三索引为组成该段第二子数据的任意一段第一子数据的第一索引的一部分,其中,V为大于1的整数,H为大于1且小于M的整数。
其中,以上各单元的具体实现、相关说明以及技术效果请参考本申请实施例第一方面的描述。
本申请实施例第四方面提供了一种基于脱氧核糖核酸技术的数据解码装置,装置包括:索引获取单元,用于获取目标子数据的目标索引,其中,目标子数据为M段第一子数据中的一段,M段第一子数据包含于目标数据中,目标索引为M段第一子数据的M个第一索引中的一个,一段第一子数据对应一个第一索引,目标数据的第二索引为第一索引的一部分,M为大于1的正整数;编码单元,用于对目标索引编码,以得到目标碱基序列;序列分离单元,用于从X条第三碱基序列中得到目标碱基序列对应的第一碱基序列;解码单元,用于对目标碱基序列对应的第一碱基序列解码,以得到第一子数据。
作为一种实现的方式,目标碱基序列包括第一碱基子序列和第二碱基子序列,目标引物包括第一端引物和第二端引物;第一端引物对应第一碱基子序列,第二端引物对应第二碱基子序列。
作为一种实现的方式,目标索引是由多个子索引组成;目标碱基序列包括第三碱基子序列和第四碱基子序列,第三碱基子序列是由多个子索引中的至少一个子索引编码得到的,第四碱基子序列是由多个子索引中的至少一个子索引编码得到的,且编码得到第三碱基子序列的子索引的数量与编码得到第四碱基子序列的子索引的数量相差至多一个;第一碱基子序列是基于第三碱基子序列得到的,第二碱基子序列是基于第四碱基子序列得到的。
作为一种实现的方式,第一碱基子序列包括第一子序列和第二子序列,第一子序列是由第三碱基子序列得到的,第二子序列用于使得第一碱基子序列的长度大于第一长度。
作为一种实现的方式,第二碱基子序列包括第三子序列和第四子序列,第三子序列是由第四碱基子序列得到的,第四子序列用于使得第二碱基子序列的长度大于第二长度。
作为一种实现的方式,X条第三碱基序列包括P条长度小于第三长度的第三碱基序列,其中,P大于1,且为小于或等于X的正整数;P条第三碱基序列中的每条第三碱基序列是由一条第五碱基子序列、地址碱基序列以及目标碱基序列得到的,地址碱基序列用于指示第五碱基子序列在目标碱基序列对应的第一碱基序列中的位置;序列分离单元,用于基于X条第三碱基序列中的地址碱基序列确定,由X条第三碱基序列包括的第五碱基子序列组成的第一碱基序列。
作为一种实现的方式,X条第三碱基序列还包括Q条第三碱基序列,Q条第三碱基序列中的每条第三碱基序列包括第二目标碱基序列和第一纠错碱基序列,其中,第一纠错碱基序列是基于P条第三碱基序列得到的,其中,Q为正整数且Q和P的和小于或等于X;该装置还包括,纠错单元,用于基于Q条第三碱基序列中的第一纠错碱基序列对P条第三碱基序列纠错。
作为一种实现的方式,X条第三碱基序列中的一条第三碱基序列中包括第二纠错碱基序列;该装置还包括,纠错单元,用于基于第二纠错碱基序列,对第二纠错碱基序列所在的第三碱基序列中除第二纠错碱基序列外的其他部分进行纠错。
其中,以上各单元的具体实现、相关说明以及技术效果请参考本申请实施例第二方面的描述。
本申请实施例第五方面提供了一种计算机设备,包括:一个或多个处理器和存储器;其中,所述存储器中存储有计算机可读指令;所述一个或多个处理器读取所述存储器中的所述计算机可读指令以使所述基于脱氧核糖核酸技术的数据编码装置实现如上述第一方面以及各种可能的实现方式中任一项所述的方法,或基于以使所述脱氧核糖核酸技术的数据解码装置实现如上述第二方面以及各种可能的实现方式中任一项所述的方法。
本申请实施例第六方面提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得所述计算机执行如上述第一方面以及各种可能的实现方式中任一项所述的方法,或如上述第二方面以及各种可能的实现方式中任一项所述的方法。
本申请实施例第七方面提供了一种计算机可读存储介质,包括指令,当所述指令在计算机上运行时,使得计算机执行如上述第一方面以及各种可能的实现方式中任一项所述的方法,或如上述第二方面以及各种可能的实现方式中任一项所述的方法。
本申请实施例第八方面提供了一种芯片,包括一个或多个处理器。所述处理器中的部分或全部用于读取并执行存储器中存储的计算机程序,以执行上述第一方面任意可能的实现方式中的方法,或执行上述第二方面任意可能的实现方式中的方法。
可选地,该芯片该包括存储器,该存储器与该处理器通过电路或电线与存储器连接。进一步可选地,该芯片还包括通信接口,处理器与该通信接口连接。通信接口用于接收需要处理的数据和/或信息,处理器从该通信接口获取该数据和/或信息,并对该数据和/或信息进行处理,并通过该通信接口输出处理结果。该通信接口可以是输入输出接口。
在一些实现方式中,所述一个或多个处理器中还可以有部分处理器是通过专用硬件的方式来实现以上方法中的部分步骤,例如涉及神经网络模型的处理可以由专用神经网络处理器或图形处理器来实现。
本申请实施例提供的方法可以由一个芯片实现,也可以由多个芯片协同实现。
本申请实施例第九方面提供了一种数据存储系统,包括合成设备和如本申请实施例第三方面所述的装置;
合成设备,用于基于N条第三碱基序列,合成N条第一核苷酸序列,其中,一条第一核苷酸序列对应一条第三碱基序列。
本申请实施例第十方面提供了一种数据存储系统,包括合成设备和如本申请实施例第四方面所述的装置;
合成设备,用于基于目标碱基序列和N条第一核苷酸序列得到X条第三碱基序列,其中,N条第一核苷酸序列是由N条第三碱基序列合成,一条第一核苷酸序列对应一条第三碱基序列,N条第三碱基序列是基于M条第一碱基序列和M条第二碱基序列得到,一条第二碱基序列对应一条第一碱基序列,一条第三碱基序列是基于一条第二碱基序列,以及该条第二碱基序列的对应的第一碱基序列得到的,M条第二碱基序列是对M个第一索引编码得到的,M条第一碱基序列是对目标数据编码得到的,一条第一碱基序列对应一段第一子数据,X条第三碱基序列属于N条第三碱基序列且是基于目标碱基序列得到的,目标碱基序列为M条第二碱基序列中的一条,X为小于N的正整数。
附图说明
图1为本申请实施例提供的数据存取系统的架构示意图;
图2为本申请实施例提供的基于脱氧核糖核酸技术的数据编码方法的一个实施例的流程示意图;
图3为本申请实施例中得到N条第三碱基序列的流程示意图;
图4为本申请实施例中描述P条第三碱基序列和Q条第三碱基序列的关系示意图;
图5为本申请实施例中第三碱基序列的一个实施例示意图;
图6为本申请实施例中核苷酸序列的结构图;
图7为本申请实施例中第三碱基序列的另一个实施例示意图;
图8为本申请实施例中引物与碱基子序列的关系示意图;
图9为本申请实施例提供的基于脱氧核糖核酸技术的数据编码方法的另一个实施例的流程示意图;
图10为本申请实施例提供的基于脱氧核糖核酸技术的数据解码方法的一个实施例的流程示意图;
图11为本申请实施例中得到X条第三碱基序列的流程示意图;
图12为本申请实施例提供的基于脱氧核糖核酸技术的数据解码方法的另一个实施例的流程示意图;
图13为构建目标引物的实施例示意图;
图14为本申请实施例提供的基于脱氧核糖核酸技术的数据编码装置的结构示意图;
图15为本申请实施例提供的基于脱氧核糖核酸技术的数据解码装置的结构示意图;
图16为本申请实施例中计算机设备的实施例示意图。
具体实施方式
本申请实施例提供了一种基于脱氧核糖核酸技术的数据编码方法、解码方法、相关装置及系统,该编码方法用于得到存储数据的核苷酸序列,且使得用户可以根据需求读取从存储数据的核苷酸序列中读取特定的一部分数据。
本申请实施例可以应用于图1所示的数据存取系统100中,该数据存储系统是利用脱氧核糖核酸技术进行数据存取,具体包括编解码设备101、核苷酸序列合成设备102、测序设备103以及存储装置104。
下面先对利用脱氧核糖核酸技术进行数据存取的过程进行说明,然后基于该数据存储存取的过程对数据存取系统100中的设备和装置的功能进行说明。
具体地,数据存取的过程包括数据存储的过程和数据读取的过程。
数据存储的过程为:将待存储的数据转换成碱基序列,合成并存储包含该碱基序列的核苷酸序列。
需要说明的是,在本申请实施例中,核苷酸序列主要是指脱氧核糖核酸(deoxyribonucleic acid,DNA)序列,下文不做赘述。
数据读取的过程为:从存储的核苷酸序列中读取碱基序列,并将碱基序列转换成数据;需要说明的是,可以直接对存储的核苷酸序列测序,以读取其中的碱基序列;但由于直接测序的方式会破坏核苷酸序列,所以为了防止核苷酸序列被破坏以实现数据的长期存储,会利用聚合酶链式反应(Polymerase Chain Reaction,PCR)技术对存储的核苷酸序列进行扩增,并从扩增得到的核苷酸序列中读取碱基序列。
其中,聚合酶链式反应是一种用于放大扩增特定的DNA片段的分子生物学技术,它可看作是生物体外的特殊DNA复制。
基于上述数据存取的过程,下面对图1所示的数据存取系统100中的设备和装置的功能进行说明。
在数据存储的过程中,编解码设备101用于基于待存储的数据进行编码操作,以得到碱基序列;核苷酸序列合成设备102用于基于编解码设备101输出的碱基序列,在体外合成相应的核苷酸序列;存储装置104用于存储合成的核苷酸序列,其中,存储装置104存储的核苷酸序列的状态可以有多种,本申请实施例对此不做具体限定,例如,存储装置104可以存储干粉状态的核苷酸序列,也可以存储溶液状态的核苷酸序列。
在数据读取的过程中,核苷酸序列合成设备102用于基于存储的核苷酸序列进行聚合酶链式反应(Polymerase Chain Reaction,PCR),以得到扩增的核苷酸序列;核苷酸序列合成设备102具体可以为体外合成芯片或喷墨打印设备。
测序设备103用于对扩增得到的核苷酸序列进行测序,得到碱基序列;编解码设备101用于对测序得到的碱基序列进行解码操作,以得到存储的数据。
其中,编解码设备101可以是具有编解码功能的任意设备,例如,编解码设备101可以为具有编解码功能的终端设备和服务器等计算机设备;存储装置104的种类可以有多种,具体可以与核苷酸序列的状态相关,例如,当核苷酸序列的状态为溶液时,存储装置104可以为储藏瓶;当核苷酸序列的状态为干粉时,存储装置104可以为储藏瓶,存储装置104也可以为储藏袋。
应理解,虽然将目标数据转换成多条碱基序列的方法能够实现目标数据的存储,但碱基序列中存储的数据是无序的,即对于一条碱基序列,无法确定这条碱基序列中存储的数据是目标数据中的哪一部分数据,所以无法根据需求读取目标数据中的特定的一部分数据;只能读取所有碱基序列以实现目标数据的整体读取,再从整体读取的目标数据中选择所需要的一部分数据。
为了解决上述问题,本申请实施例提供了一种方法,该方法是对目标数据包括的多段子数据分别进行编码,得到多条第一碱基序列;并且,获取多段子数据的索引,然后对多段子数据的索引进行编码,得到多条第二碱基序列;对于每段子数据,将该段子数据对应第一碱基序列和该段子数据的索引对应的第二碱基序列组合,得到第三碱基序列;最后基于第三碱基序列合成第一核苷酸序列。
这样,在读取数据时,便可以对所需的一段子数据的目标索引进行编码,得到目标碱基序列,然后从包括该目标碱基序列的核苷酸序列中读取所需的一段子数据即可;因此,本申请实施例提供的方法使得用户能够根据需求读取目标数据中的特定的一部分数据,实现了目标数据中特定部分数据的精准读取,使得DNA存储技术具备了随机读取的功能,弥补了目前的方法只具备整体读取的缺陷。
下面对本申请实施例提供的方法进行说明;可以理解的是,数据存取的过程包括数据存储的过程和数据读取的过程,相应地,本申请实施例提供的方法包括基于脱氧核糖核酸技术的数据编码方法和基于脱氧核糖核酸技术的数据解码方法两部分,下面将分别进行介绍。
请参阅图2,本申请实施例提供了一种基于脱氧核糖核酸技术的数据编码方法的一个实施例,方法包括:
步骤201,将原始数据转换成二进制数据。
其中,原始数据是指需要存储的数据;通常情况下,原始数据是非二进制数据。
当原始数据是非二进制数据时,便需要将原始数据转换成二进制数据,其中,转换方法是较成熟的技术,本申请实施例对此不做具体说明。
当原始数据是非二进制数据时,原始数据的形式可以有多种;例如,原始数据可以为文字、数字、图片、音频或视频。
可以理解的是,原始数据也可以是二进制数据,此时,便不需要进行二进制转换,所以步骤201是可选的。
步骤202,对二进制数据进行压缩。
当原始数据是二进制数据时,步骤202压缩的二进制数据便是原始数据;当原始数据是非二进制数据时,步骤202压缩的二进制数据便是基于原始数据二进制转换得到的;
需要说明的是,压缩二进制数据的方法有多种,本申请实施例对此不做具体限定;例如,可以采用霍夫曼编码、喷泉码等多种压缩编码方法对二进制数据进行压缩。
通过步骤202可以减少二进制数据的数据量,从而减少存储的数据量,不仅可以节省存储空间,还能够提高存储效率;当二进制数据的数量较小时,也可以不执行压缩操作,因此,步骤202是可选的。
步骤203,对目标数据编码,以得到M条第一碱基序列。
其中,目标数据通常是二进制数据;具体地,在执行了步骤202的情况下,目标数据则是经过步骤202压缩后的二进制数据;在执行了步骤201但未执行步骤202的情况下,目标数据则是经过步骤201转换后的二进制数据;在未执行步骤201和步骤202的情况下,目标数据则为二进制形式的原始数据。
目标数据包括M段第一子数据,一段第一子数据对应一条第一碱基序列,M为大于1的正整数。
需要说明的是,M段第一子数据的划分方法有多种,本申请实施例对此不做具体限定;下面通过具体的示例对M段第一子数据的划分方法进行说明。
示例性地,可以基于原始数据的目录将目标数据划分为M段第一子数据。
例如,原始数据是一本书,相应地,目标数据为该本书对应的二进制数据;该本书的内容包括第1章内容、第2章内容和第3章内容,第1章内容包括第1节内容和第2节内容,第2章内容包括第3节内容,第3章内容包括第4节内容。
基于此,M段第一子数据可以为第1章内容、第2章内容和第3章内容对应的二进制数据,即一段子数据为一章内容对应的二进制数据;M段第一子数据也可以为第1节内容、第2节内容、第3节内容和第4节内容对应的二进制数据,即一段子数据为一节内容对应的二进制数据。
示例性地,可以基于原始数据的存在形式将目标数据划分为M段第一子数据。
例如,原始数据是100张图片,目标数据为该原始数据对应的二进制数据,相应地,M段第一子数据则可以为100张图片,即一段子数据为一张图片所对应的二进制数据。
示例性地,还可以基于实际情况将目标数据划分为M段第一子数据,该实际情况可以与原始数据的或用户的实际需求相关。
例如,原始数据是一段音频数据,相应地,目标数据为该音频数据对应的二进制数据;由于该音频数据不存在目录,因此可以按照时间将目标数据划分为M段第一子数据,具体地,一段第一子数据可以为该段音频数据中的几分钟音频所对应的二进制数据或几秒钟音频所对应的二进制数据。
再例如,原始数据是一篇文章,目标数据为该文章对应的二进制数据,由于该篇文章不存在目录,因此可以按照段落将目标数据划分为M段第一子数据,具体地,一段第一子数据可以为该篇文章的一段所对应的二进制数据。
对目标数据编码,以得到M条第一碱基序列的方法有多种,本申请实施例对此不做具体限定;例如,可以采用DNA二进制编码模型、DNA三进制编码模型或DNA四进制编码模型对目标数据进行编码,基于DNA四进制编码模型自身的优越性,在该实施例中,可以采用DNA四进制编码模型对目标数据编码。
其中,DNA四进制编码模型有24种,可以从中选择一种对目标数据编码。
在本申请实施例中,碱基序列可以理解为由A、G、C、T四种碱基组成的一条序列,下文不再赘述。
步骤204,获取M段第一子数据的M个第一索引和目标数据的第二索引。
其中,第二索引为第一索引的一部分,一个第一索引对应一段第一子数据。
索引可以理解为用于查找某部分数据的指示,目录可以看成索引的一种。
第二索引为第一索引的一部分可以理解为,第一索引是由第二索引以及其他指示信息组成;例如,第二索引为第1章,第一索引为第1章第1节。
获取第一索引和第二索引的方法包括两种。
第一种方法为:根据原始数据中包含的目录或索引获取第一索引和第二索引,该过程可以看成索引的提取过程。
例如,仍假设原始数据是一本书,目标数据为该本书对应的二进制数据;该本书的名称为庆余年,该本书的内容包括第1章内容、第2章内容和第3章内容,第1章内容包括第1节内容和第2节内容,第2章内容包括第3节内容,第3章内容包括第4节内容。
基于此,第二索引可以为该书的名称,即庆余年。
当M段第一子数据可以为第1章内容、第2章内容和第3章内容对应的二进制数据时,M个第一索引为庆余年第1章、庆余年第2章和庆余年第3章;当M段第一子数据可以为第1节内容、第2节内容、第3节内容和第4节内容对应的二进制数据时,M个第一索引为庆余年第1章第1节、庆余年第1章第2节、庆余年第2章第3节和庆余年第3章第4节。
再例如,假设原始数据为存在两级文件夹下的3张图片,第一级文件夹的名称为图片,第一级文件夹中包括两个第二级文件夹,且这两个第二级文件夹的名称分别为风景和人物,名称为风景的第二级文件夹中包括两张图片,且这两张图片的名称分别为图片1和图片2,名称为人物的第二级文件夹中包括一张图片,且这张图片的名称为图片3。
相应地,M段第一子数据可以为图片1、图片2和图片3对应的二进制数据;基于此,第二索引为第一级文件夹的名称,即图片;M个第一索引由第一级文件夹的名称、第二级文件夹的名称以及图片的名称组成,具体地,M个第一索引包括图片风景图片1、图片风景图片2和图片人物图片3。
第二种方法为:对目标数据和M段第一子数据进行人工标注,以得到第一索引和第二索引。
例如,目标数据为一篇文章对应的二进制数据,相应地,可以将第二索引人工标注为该篇文章的标题;M段第一子数据是可以按照段落对目标数据进行划分得到的,相应地,可以按照段落对M段第一子数据进行人工标注,得到M个第二索引,M个第二索引可以为第一段、第二段、第三段等。
步骤205,获取K段第二子数据的V个第三索引。
一段第二子数据是由H段第一子数据组成,一个第三索引对应一段第二子数据,第二索引为第三索引的一部分,一段第二子数据的第三索引为组成该段第二子数据的任意一段第一子数据的第一索引的一部分,其中,V为大于1的整数,H为大于1且小于M的整数。
需要说明的是,K段第二子数据的划分的方法有多种,本申请实施例对此不做具体限定,只要能够使得第二子数据与第一子数据满足上述关系即可;同样地,V个第三索引的获取方法有多种,本申请实施例对此也不做具体限定,具体可参照前文中索引的两种获取方法的相关说明进行理解,只要使得第三索引与第二索引、第三索引与第一索引之间满足上述关系即可。
下面以具体的示例对K段第二子数据和V个第三索引进行说明。
例如,仍假设原始数据是一本书,该本书的名称为庆余年,该本书的内容包括第1章内容、第2章内容和第3章内容,第1章内容包括第1节内容和第2节内容,第2章内容包括第3节内容,第3章内容包括第4节内容。
目标数据为该本书对应的二进制数据,M段第一子数据为第1节内容、第2节内容、第3节内容和第4节内容对应的二进制数据;相应地,K段第二子数据可以包括第1章内容、第2章内容和第3章内容对应的二进制数据,V个第三索引则为庆余年第1章、庆余年第2章和庆余年第3章。
其中,步骤205是可选的。
步骤206,对M个第一索引编码,以得到M条第二碱基序列,其中,一条第二碱基序列对应一条第一碱基序列。
需要说明的是,对M个第一索引编码的方法有多种,本申请实施例对此不做具体限定;例如,可以采用DNA二进制编码模型、DNA三进制编码模型或DNA四进制编码模型对第一索引进行编码,基于DNA四进制编码模型的优越性,在该实施例中,可以采用DNA四进制编码模型对第一索引编码。
其中,DNA四进制编码模型有24种,可以从中选择一种对目标数据编码。
若采用DNA四进制编码模型对第一索引进行编码,则一个碱基可以存储2位二进制,第二碱基序列的长度则可以基于公式L1=[log2(M)]+1计算,其中,[log2(M)]表示对log2(M)进行取整操作;例如,若M个第一索引为庆余年第1章第1节、庆余年第1章第2节、庆余年第2章第3节和庆余年第3章第4节,则第二碱基序列的长度则为L1=log2(4)+1=3,即第二碱基序列的长度为3个碱基。
步骤207,基于M条第一碱基序列和M条第二碱基序列得到N条第三碱基序列。
其中,一条第三碱基序列是基于一条第二碱基序列,以及该条第二碱基序列的对应的第一碱基序列得到的,其中,N为大于或等于M的整数。
示例性地,一条第三碱基序列包括一条第二碱基序列和一条第一碱基序列中的部分或全部。
得到N条第三碱基序列的方法有多种,本申请实施例对此不做具体限定。
需要说明的是,第一碱基序列是由一段第一子数据编码得到的,第一子数据的数量可能较大,从而导致第一碱基序列的长度过长;而目前体外能够合成核苷酸的长度是有限的,所以为了防止第一碱基序列的长度过长而导致核苷酸序列无法合成,下面提供了一种方法,该方法先将长度较长的第一碱基序列划分为多条长度较短的碱基序列,再基于多条长度较短的碱基序列得到多条第三碱基序列。
具体地,如图3所示,步骤207可以包括:
步骤301,将第一目标碱基序列划分为P条第五碱基子序列,第一目标碱基序列为M条第一碱基序列中的一条,其中,P为大于1且小于N的整数。
划分第一目标碱基序列的方法有多种,本申请实施例对此不做具体限定;其中,划分得到的P条第五碱基子序列的长度可以相同,也可以不同。
步骤302,基于P条第五碱基子序列和第二目标碱基序列得到P条长度小于第三长度的第三碱基序列。
P条第三碱基序列属于N条第三碱基序列,P条第三碱基序列中的一条第三碱基序列是基于一条第五碱基子序列、地址碱基序列以及第二目标碱基序列得到的,地址碱基序列用于指示第五碱基子序列在第一目标碱基序列中的位置,第二目标碱基序列为M条第二碱基序列中与第一目标碱基序列对应的一条。
示例性地,P条第三碱基序列中的一条第三碱基序列包括一条第五碱基子序列、地址碱基序列以及第二目标碱基序列。
可以理解的是,P条第五碱基子序列是由第一目标碱基序列划分得到的,所以基于划分规则,可以将P条第五碱基序列组合成第一目标碱基序列,换句话说,划分规则指示了每条第五碱基序列在第一目标碱基序列中的位置;在该实施例中,通过地址碱基序列指示每条第五碱基子序列在第一目标碱基序列中的位置。
例如,将第一目标碱基序列划分为100条第五碱基子序列,可以按照100条第五碱基子序列在第一目标碱基序列中排列的先后顺序,依次将其标记为1、2、3……100,然后将1、2、3……100编码为地址碱基序列。
为了便于识别,可以统一将P条第三碱基序列中的地址碱基序列置于第三碱基序列的一端。
第三长度是基于体外所能合成的核苷酸序列的长度确定,例如,目前体外所能合成的核苷酸序列的长度通常为170碱基,则第三长度可以为小于或等于170碱基的任意值;特殊情况下,前体外所能合成的核苷酸序列的长度可以达到200碱基,则第三长度可以为小于或等于200碱基的任意值。
可以理解的是,为了解决碱基序列出错的问题,可以增加用于纠错的碱基序列;本申请实施例提供了两种增加碱基序列的方法,下面对此进行具体介绍。
步骤303,基于P条第三碱基序列和第二目标碱基序列得到Q条第三碱基序列,Q条第三碱基序列中的每条第三碱基序列包括第二目标碱基序列和第一纠错碱基序列,其中,第一纠错碱基序列是基于P条第三碱基序列得到的,且用于对P条第三碱基序列的纠错,Q为正整数且Q和P的和小于N。
具体地,可以采用RS(Reed-solomon codes)编码方法对P条第三碱基序列进行处理,得到第一纠错碱基序列,其中RS编码是一种前向纠错的信道编码。
包含第一纠错碱基序列的第三碱基序列的数量Q可以根据实际需要进行设定,可以理解的是,包含第一纠错碱基序列的第三碱基序列会增加冗余,因此为了降低冗余,包含第一纠错碱基序列的第三碱基序列的数量Q通常不会过大,例如,可以为2或3。
下面结合图4且通过一具体示例对P条第三碱基序列和Q条第三碱基序列的关系进行说明。
在该示例中,通过步骤301将第一目标碱基序列划分为98条第五碱基子序列,通过步骤302得到如图4所示的98条第三碱基序列,这98条第三碱基序列分别表示为序列1、序列2、序列3……序列98;然后通过步骤303得到2条第三碱基序列,这2条第三碱基序列中分别表示为纠错序列1和纠错序列2,纠错序列1和纠错序列2都包括第二目标碱基序列和第一纠错碱基序列。
最终,从图4中可以看出,基于第一目标碱基序列和第二目标碱基序列得到100条第三碱基序列。
基于上述说明可知,可以通过额外添加的Q条第三碱基序列,对P条第三碱基序列进行纠错。
除此之外,还可以在第三碱基序列内部添加用于纠错的碱基序列。
示例性地,N条第三碱基中的一条第三碱基序列还包括第二纠错碱基序列,第二纠错碱基序列是基于第三碱基序列中除第二纠错碱基序列外的其他部分得到的,且用于第三碱基序列中除第二纠错碱基序列外的其他部分的纠错。
与第二纠错碱基序列类似,也可以采用RS编码方法对第三碱基序列中除第二纠错碱基序列外的其他部分进行处理,得到第二纠错碱基序列。
其中,第二纠错碱基序列的长度也可以根据实际需要进行设定,为了降低冗余,第二纠错碱基序列的长度不会过长,例如,第二纠错碱基序列的长度可以为2个碱基或3个碱基。
为了便于识别,可以统一将N条第三碱基序列中的第二纠错碱基序列置于第三碱基序列的一端。
下面结合图对包含第二纠错碱基序列和地址碱基序列的第三碱基序列进行说明。
请参阅图5,图5所示的第三碱基序列是通过步骤303获取的P条第三碱基序列中的一条,且在该条第三碱基序列中添加了第二纠错碱基序列;如图4所示,该条第三碱基序列的头部是地址碱基序列,该条第三碱基序列的中部是数据序列,该条第三碱基序列的尾部是第二纠错碱基序列,其中数据序列可以由第二碱基序列和第五碱基子序列组成,数据序列中的第五碱基子序列是P条第五碱基子序列中的一条,P条第五碱基子序列是通过步骤301对第一碱基序列划分得到的。
地址碱基序列指示数据序列中的第五碱基子序列在第一碱基序列中的位置,第二纠错碱基序列用于地址碱基序列和数据序列的纠错。
步骤208,基于N条第三碱基序列,合成N条第一核苷酸序列。
具体地,可以采用图1所示的核苷酸序列合成设备102体外合成第一核苷酸序列,由于体外合成核苷酸序列的方法是较成熟的技术,故在此不做详述。
其中,一条第一核苷酸序列对应一条第三碱基序列,也可以理解为,一条第一核苷酸序列包含N条第三碱基序列中的一条。
需要说明的是,核苷酸序列的结构如图6所示,具体包括存储序列和引物两部分,引物具体包括3’端引物和5’端引物。
其中,存储序列中包含该核苷酸序列存储的信息;引物是指在核苷酸聚合作用起始时,刺激合成的一种具有特定核苷酸序列的大分子。
简单地说,引物是用于引导整条核苷酸序列合成的一小段核苷酸序列,在核苷酸序列合成的过程中,是由3’端引物一端向着5’端引物一端合成。
基于上述说明可知,引物是合成核苷酸序列必不可少的一部分,且包含碱基序列;若第三碱基序列都包含在核苷酸序列的存储序列中,那么引物中的碱基序列将成为冗余,为此,本申请实施例利用引物携带第三碱基序列中的部分序列,以降低冗余。
作为一种实现的方式,一条第一核苷酸序列的引物对应一条第三碱基序列中基于第二碱基序列得到的部分。
具体地,一条第三碱基序列是由一条第一碱基序列和第二碱基序列得到的,为了利用引物中的碱基序列以降低冗余,可以利用第三碱基序列中基于第二碱基序列得到的部分合成第一核苷酸序列的引物,然后利用该引物合成整条第一核苷酸序列,使得第三碱基序列中基于第二碱基序列得到的部分包含于引物中,第三碱基序列中基于第一碱基序列得到的部分包含于存储序列中。
需要说明的是,在生物学领域,用于合成核苷酸的引物需满足以下条件:不存在3个以上连续相同碱基,如AAA等;G碱基和C碱基的含量控制在40%-60%之间;引物内互补片段长度不超过4nt;引物间互补片段长度不超过10nt;引物间汉明距离≥6;无二级结构;解链温度在55-60℃。
同样地,本申请实施例中的引物也需要满足上述条件。
此外,由于引物对应一条第三碱基序列中基于第二碱基序列得到的部分,而第二碱基序列是对第一索引编码得到的,为了使得引物满足上述条件,在编码时需要控制第二碱基序列满足相应的条件;例如,第二碱基序列需要满足不存在3个以上连续相同碱基(即均聚物)、G碱基和C碱基的含量控制在40%-60%之间。
基于此,在步骤206中需要从已有的24种DNA四进制编码模型中,选择编码的第二碱基序列能够满足上述条件的四进制编码模型。
基于前述说明可知,引物包括3’端引物和5’端引物,若第三碱基序列中基于第二碱基序列得到的部分只包含于一端引物,那么另一端引物中的碱基序列也会成为冗余。
为此降低冗余,作为一种实现的方式,第三碱基序列中基于第二碱基序列得到的部分包含于两端引物中。
具体地,如图7所示,一条第三碱基序列中基于第二碱基序列得到的部分包括第一碱基子序列和第二碱基子序列,第一核苷酸序列的引物包括第一端引物和第二端引物;第一端引物对应第一碱基子序列,第二端引物对应第二碱基子序列。
其中,第一端引物可以是3’端引物,也可以是5’端引物;当第一端引物是3’端引物时,第二端引物则是5’端引物;当第一端引物是5’端引物时,第二端引物则是3’端引物。
在该实施例中,第一端引物对应第一碱基子序列,第二端引物对应第二碱基子序列,使得第一端引物和第二端引物都得到了利用,以避免其中一端引物未被利用而导致冗余度较高,因此,该实施例能够进一步降低冗余。
可以理解的是,对于一定长度的第一端引物和第二端引物来说,若第一端引物包括的第一碱基子序列较长,第二端引物包括的第二碱基子序列较短,那第二端引物则会包括冗余的碱基,从而导致第二端引物的利用率较低,冗余较高。
下面通过一示例对上述情况进行说明。
该示例为:假设通常情况下,第一端引物的长度为20个碱基,第二端引物的长度也为20个碱基,而第一碱基子序列的长度为25个碱基,第二碱基子序列的长度为15个碱基,那么为了保证第一端引物能够包括第一碱基子序列,实际合成的第一端引物的长度需要为25个碱基,而实际合成的包含第二碱基子序列的第二端引物中存在5个冗余的碱基。
相比之下,若第一碱基子序列的长度为20个碱基,第二碱基子序列的长度为10个碱基,那么实际合成的包括第一碱基子序列的第一端引物的长度为20个碱基,实际合成的包括第二碱基子序列的第二端引物的长度也为20个碱基,这样,第一端引物和第二端引物中均不存在冗余的碱基。
由此可见,若第一碱基子序列的长度与第二碱基子序列的长度的差值越大,第一端引物的长度与第二端引物的长度的差值就越大,冗余度越高。
所以,为了降低冗余度,在编码过程中,会控制第一碱基子序列的长度与第二碱基子序列的长度的差值尽可能地小,以使得第一端引物的长度与第二端引物的长度的差值尽可能地小。
假设第一碱基子序列的长度为Lm1,第二碱基子序列的长度为Lm2,第三碱基序列中基于第二碱基序列得到的部分的长度L则为Lm1+Lm2;控制第一碱基子序列的长度与第二碱基子序列的长度的差值尽可能地小,则可以表示为min|Lm1-Lm2|。
然而,在实际应用中,将第一碱基子序列的长度与第二碱基子序列的长度的差值控制为最小,可能会增加编码时的工作量,为此,只需保证第一碱基子序列的长度与第二碱基子序列的长度的差值不会过大即可。
作为一种实现的方式,第一索引是由多个子索引组成。
可以理解的是,子索引是第一索引的一部分,本申请实施例对子索引的形式不做具体限定。
下面通过具体的示例对第一索引和子索引之间的关系进行说明。
例如,第一索引为庆余年第1章第1节,则可以认为该第一索引包括3个子索引,分别为庆余年、第1章、第1节;第一索引为图片风景图片1,则可以认为该第一索引包括3个子索引,分别为图片、风景、图片1。
其中,多个子索引也可以理解为多级地址,例如庆余年、第1章、第1节可以认为分别是第一级地址、第二级地址、第三级地址;图片、风景、图片1可以认为分别是第一级地址、第二级地址、第三级地址。
第二碱基序列包括第三碱基子序列和第四碱基子序列,第三碱基子序列是由多个子索引中的至少一个子索引编码得到的,第四碱基子序列是由多个子索引中的至少一个子索引编码得到的,且编码得到第三碱基子序列的子索引的数量与编码得到第四碱基子序列的子索引的数量相差至多一个。
例如,第三碱基子序列是由三个子索引编码得到的,第四碱基子序列是由四个子索引编码得到的;第三碱基子序列是由三个子索引编码得到的,第四碱基子序列是由两个子索引编码得到的。
需要说明的是,可以通过多种方法,使得编码得到第三碱基子序列的子索引的数量与编码得到第四碱基子序列的子索引的数量相差至多一个,本申请实施例对此不做具体限定。
示例性地,组成第一索引的多个子索引是按照顺序依次排列,则可以对排序为奇数的所有子索引编码,以得到第三碱基子序列,对排序为偶数的所有子索引编码,以得到第四碱基子序列。
例如,组成第一索引的多个子索引包括1级索引、2级索引、3级索引和4级索引,则可以对1级索引和3级索引编码,以得到第三碱基子序列,对2级索引和4级索引编码,以得到第四碱基子序列。
第一碱基子序列是基于第三碱基子序列得到的,第二碱基子序列是基于第四碱基子序列得到的。
在该实施例中,编码得到第三碱基子序列的子索引的数量与编码得到第四碱基子序列的子索引的数量相差至多一个,使得第三碱基子序列的长度和第四碱基子序列的长度不会相差过大;而第一碱基子序列是基于第三碱基子序列得到的,第二碱基子序列是基于第四碱基子序列得到的,所以使得第一碱基子序列的长度和第二子碱基序列的长度不会相差过大,从而可以保证一端引物的长度与第二端引物的长度的差值不会过大,达到降低冗余度的目的;并且,控制编码得到第三碱基子序列的子索引的数量与编码得到第四碱基子序列的子索引的数量的方法较简单,容易实现,不会给编码过程增加过多的工作量。
需要说明的是,在核苷酸序列中,3’端引物和5’端引物不会过长,也不会过短;通常情况下,3’端引物和5’端引物的长度都不会超过30个碱基,3’端引物和5’端引物的长度都不会小于10个碱基。
在利用PCR技术扩增的过程中,需要先合成3’端引物或5’端引物,而能够单独提取3’端引物和5’端引物的条件之一便是引物的长度不小于10个碱基,即无法提取长度小于10个碱基的3’端引物和5’端引物。
基于此,需要控制合成3’端引物和5’端引物的碱基序列的长度不小于10个碱基,下面介绍具体的控制方法。
作为一种实现的方式,在第一碱基子序列添加固定的碱基序列,以控制第一碱基子序列的长度不小于10个碱基。
具体地,如图7所示,第一碱基子序列包括第一子序列和第二子序列,第一子序列是由第三碱基子序列得到的,第二子序列用于使得第一碱基子序列的长度大于第一长度。
需要说明的是,第二子序列的长度可以根据第一长度和第一子序列的长度确定,只要使得第一碱基子序列的长度大于第一长度即可,一般情况下,第二子序列的长度可以为5至10个碱基;第一长度大于或等于10个碱基。
上面对控制第一碱基子序列的长度的方法进行介绍,下面对控制第二碱基子序列的方法进行介绍。
作为一种实现的方式,在第二碱基子序列添加固定的碱基序列,以控制第二碱基子序列的长度不小于10个碱基。
具体地,如图7所示,第二碱基子序列包括第三子序列和第四子序列,第三子序列是由第四碱基子序列得到的,第四子序列用于使得第二碱基子序列的长度大于第二长度。
需要说明的是,第四子序列的长度可以根据第二长度和第三子序列的长度确定,只要使得第二碱基子序列的长度大于第二长度即可,一般情况下,第二子序列的长度可以为5至10个碱基;第二长度大于或等于10个碱基。
第二长度可以与第一长度相同,也可以与第一长度不同。
另外,第二子序列和第四子序列都起到控制序列长度的作用,但第二子序列和第四子序列可以相同,也可以不同。
为了便于理解,下面结合图8对第一端引物与第一碱基子序列的关系、第二端引物与第二碱基子序列的关系进行说明。
如图8所示,在第三碱基序列中,第一碱基子序列包括固定片段、1级索引和3级索引等,第二碱基子序列包括固定片段、2级索引、4级索引和J级索引等,其中,第一碱基子序列中的固定片段是指前文中的第二子序列,第二碱基子序列中的固定片段是指前文中的第四子序列,J为偶数。
如图8所示,利用上述第三碱基序列合成的第一核苷酸序列包括成5’端引物、地址碱基序列、数据序列、第二纠错序列和3’端引物,其中,5’端引物是基于第一碱基子序列合成,3’端引物是基于第二碱基子序列合成。
基于上述说明,采用本申请实施例提供的方法的编码过程如图9所示。
具体地,一方面,通过步骤201对原始数据进行转换,得到二进制数据;然后通过步骤202对二进制数据进行压缩,得到目标数据;再通过步骤203对目标数据进行编码,得到碱基序列;之后通过步骤301对碱基序列进行划分并添加地址码,以得到包含地址码的碱基序列,其中,该地址码是指前文中的地址碱基序列;向包含地址码的碱基序列中添加纠错码(即前文中的第二纠错碱基序列),以得到包含纠错码的碱基序列。
另一方面,通过步骤204获取索引(包括第一索引和第二索引);对索引(主要是指第一索引)分块,以得到分块后的索引(即多个子索引);通过步骤206对分块后索引编码,以得到索引碱基序列;基于索引碱基序列确定引物碱基序列(包括第一端引物的碱基序列和第二端引物的碱基序列)。
最终,基于包含纠错码的碱基序列和引物碱基序列得到完整的碱基序列;在完整的碱基序列的基础上,添加第一纠错碱基序列,得到碱基序列集;利用该碱基序列集合成第一核苷酸序列。
上文对基于脱氧核糖核酸技术的数据编码方法进行了说明,下面对基于脱氧核糖核酸技术的数据解码方法进行说明。
如图10所示,本申请实施例提供了一种基于脱氧核糖核酸技术的数据解码方法的一个实施例,该实施例包括:
步骤401,获取目标子数据的目标索引。
其中,目标子数据为M段第一子数据中的一段,M段第一子数据包含于目标数据中,目标索引为M段第一子数据的M个第一索引中的一个,一段第一子数据对应一个第一索引,目标数据的第二索引为第一索引的一部分,M为大于1的正整数。
需要说明的是,目标子数据可以理解为用户想要从第一核苷酸序列存储的目标数据中,提取的一部分数据。
由于前文对目标数据和M段第一子数据进行了说明,具体可参阅前文中步骤203的相关说明进行理解;并且,由于前文对M个第一索引和第二索引进行了说明,具体可参阅前文中步骤204的相关说明进行理解。
步骤402,对目标索引编码,以得到目标碱基序列。
需要说明的是,对目标索引编码的方法与对第一索引编码的方法相同,具体可参照步骤206的相关说明进行理解。
步骤403,基于目标碱基序列和N条第一核苷酸序列得到X条第三碱基序列。
其中,N条第一核苷酸序列是由N条第三碱基序列合成,一条第一核苷酸序列对应一条第三碱基序列,N条第三碱基序列是基于M条第一碱基序列和M条第二碱基序列得到,一条第二碱基序列对应一条第一碱基序列,一条第三碱基序列是基于一条第二碱基序列,以及该条第二碱基序列的对应的第一碱基序列得到的,M条第二碱基序列是对M个第一索引编码得到的,M条第一碱基序列是对目标数据编码得到的,一条第一碱基序列对应一段第一子数据,X条第三碱基序列属于N条第三碱基序列且是基于目标碱基序列得到的,目标碱基序列为M条第二碱基序列中的一条,X为小于N的正整数。
需要说明的是,若在编码过程中未对目标碱基序列对应的第一碱基序列进行划分,那么,N条第三碱基序列中仅存在一条基于目标碱基序列和目标碱基序列对应的第一碱基序列得到的第三碱基序列;在这种情况下,基于目标碱基序列和N条第一核苷酸序列仅能得到一条第三碱基序列,即X等于1。
基于前文中的步骤301和步骤302的相关说明可知,在编码过程中,可以将一条第一碱基序列划分为多条第五碱基子序列,并基于多条第五碱基子序列得到多条第三碱基序列,那么,N条第三碱基序列中存在多条基于目标碱基序列和目标碱基序列对应的第一碱基序列得到的第三碱基序列;在这种情况下,基目标碱基序列和N条第一核苷酸序列可以得到多条第三碱基序列,即X大于1。
由于前文对N条第三碱基序列、N条第三碱基序列、M条第一碱基序列和M条第二碱基序列进行了说明,因此可参阅前文编码方法的相关说明对步骤403进行理解。
步骤404,基于第二纠错碱基序列,对第二纠错碱基序列所在的第三碱基序列中除第二纠错碱基序列外的其他部分进行纠错。
需要说明的是,在X条第三碱基序列中的一条第三碱基序列中包括第二纠错碱基序列的情况下,需要执行步骤404,因此,步骤404是可选的。
纠错的方法与编码过程中第二纠错碱基序列的确定方法相对应,例如,若第二纠错碱基序列是采用RS编码方法得到的,那么在该实施例中,便可以采用RS编码方法并基于第二纠错碱基序列对第三碱基序列中除第二纠错碱基序列外的其他部分进行纠错;本申请实施例对具体的纠错过程不做详述。
步骤405,从X条第三碱基序列中得到目标碱基序列对应的第一碱基序列。
基于步骤403的相关说明可知,X可以等于1,也可以大于1。
当X等于1时,由于第三碱基序列是由目标碱基序列和目标碱基序列对应的第一碱基序列得到的,所以基于目标碱基序列和第三碱基序列可以得到第一碱基序列。
当X大于1时,得到第一碱基序列的过程如下。
作为一种实现的方式,X条第三碱基序列包括P条长度小于第三长度的第三碱基序列,其中,P大于1,且为小于或等于X的正整数。
P条第三碱基序列中的每条第三碱基序列是由一条第五碱基子序列、地址碱基序列以及目标碱基序列得到的,地址碱基序列用于指示第五碱基子序列在目标碱基序列对应的第一碱基序列中的位置。
示例性地,P条第三碱基序列中的每条第三碱基序列包括一条第五碱基子序列、地址碱基序列以及目标碱基序列。
P条第三碱基序列的相关说明可参阅步骤301和步骤302的相关说明进行理解。
相应地,操作405包括:基于X条第三碱基序列中的地址碱基序列确定,由X条第三碱基序列包括的第三碱基子序列组成的第一碱基序列。
可以理解的是,地址碱基序列用于指示第三碱基子序列在目标碱基序列对应的第一碱基序列中的位置,所以基于地址碱基序列和第三碱基子序列便可以组合得到P条第三碱基序列。
作为一种实现的方式,X条第三碱基序列除了包括P条第三碱基序列外,还可以包括用于纠错的第三碱基序列。
具体地,X条第三碱基序列还包括Q条第三碱基序列,Q条第三碱基序列中的每条第三碱基序列包括第二目标碱基序列和第一纠错碱基序列,其中,第一纠错碱基序列是基于P条第三碱基序列得到的,其中,Q为正整数且Q和P的和小于或等于X。
在操作403之后,在操作405之前,本申请实施例提供的解码方法还包括:基于Q条第三碱基序列中的第一纠错碱基序列对P条第三碱基序列纠错。
由于前文对Q条第三碱基序列进行了说明,因此可参阅前文步骤303的相关说明对上述步骤进行理解。
需要说明的是,对P条第三碱基序列纠错的方法与编码过程中得到P条第三碱基序列的方法相对应;例如,若P条第三碱基序列是采用RS编码方法得到的,那么便可以采用RS编码方法对P条第三碱基序列纠错,本申请实施例对纠错的具体过程不做详述。
步骤406,对目标碱基序列对应的第一碱基序列解码,以得到目标子数据。
需要说明的是,解码方法与编码过程中得到第一碱基序列的编码方法相对应,例如,若第一碱基序列是采用DNA四进制编码模型得到的,那么便可以采用DNA四进制编码模型对第一碱基序列解码,本申请对具体地的解码过程不做详述。
在得到目标子数据后,可以对目标子数据进行解压缩,以得到二进制数据,并将二进制数据转换为原始子数据,其中,原始子数据为原始数据中的一部分。
基于前文说明可知,一条第一核苷酸序列的引物对应一条第三碱基序列中基于第二碱基序列得到的部分,即第二碱基序列可以用于合成第一核苷酸的引物,基于此,如图11所示,步骤403可以包括:
步骤501,基于目标碱基序列合成目标引物,目标碱基序列与目标引物的碱基序列互补。
合成目标引物的方法为较成熟的技术,故在此不做详述;基于前述说明可知,目前无法提取长度小于10个碱基的引物,因此目标引物的长度大于或等于10个碱基。
需要说明的是,目标碱基序列可以与目标引物的碱基序列的部分互补,即目标碱基序列的长度小于目标引物的碱基序列的长度,例如,目标碱基序列为AGCTGGTTCCAA,那么目标引物的碱基序列可以为AATCGACCAAGGTTAA;目标碱基序列也可以与目标引物的碱基序列的全部互补,即目标碱基序列的长度等于目标引物的碱基序列的长度,例如,目标碱基序列为AGCTGGTTCCAA,那么目标引物的碱基序列可以为TCGACCAAGGTT。
下面以具体的示例,说明目标碱基序列与目标引物的碱基序列互补。
步骤502,基于目标引物和N条第一核苷酸序列进行聚合酶链式反应,以得到X条第二核苷酸序列,X条第二核苷酸序列是基于目标引物和N条第一核苷酸序列中的X条得到。
可以理解的时候,X条第二核苷酸序列的碱基序列与N条第一核苷酸序列中的X条第一核苷酸序列的碱基序列互补。
步骤503,基于X条第二核苷酸序列的X条测序结果得到X条第三碱基序列,一条测序结果对应一条第二核苷酸序列,X条测序结果与X条第三碱基序列互补。
具体的,可以基于图1所示的测序设备103对X条第二核苷酸序列进行测序,得到X条测序结果;由于X条测序结果与X条第三碱基序列互补,所以需要通过转换得到X条第三碱基序列。
作为一种实现的方式,目标碱基序列包括第一碱基子序列和第二碱基子序列,目标引物包括第一端引物和第二端引物;第一端引物对应第一碱基子序列,第二端引物对应第二碱基子序列。
需要说明的是,由于前文已对第一碱基子序列和第二碱基子序列进行了说明,具体可参阅前文的相关说明进行理解。
作为一种实现的方式,目标索引是由多个子索引组成。
目标碱基序列包括第三碱基子序列和第四碱基子序列,第三碱基子序列是由多个子索引中的至少一个子索引编码得到的,第四碱基子序列是由多个子索引中的至少一个子索引编码得到的,且编码得到第三碱基子序列的子索引的数量与编码得到第四碱基子序列的子索引的数量相差至多一个;
第一碱基子序列是基于第三碱基子序列得到的,第二碱基子序列是基于第四碱基子序列得到的。
需要说明的是,由于前文已对多个子索引、第一碱基子序列、第二碱基子序列、第三碱基子序列和第四碱基子序列进行了说明,具体可参阅前文的相关说明进行理解。
作为一种实现的方式,第一碱基子序列包括第一子序列和第二子序列,第一子序列是由第三碱基子序列得到的,第二子序列用于使得第一碱基子序列的长度大于第一长度。
需要说明的是,由于前文已对第一碱基子序列进行了说明,具体可参阅前文的相关说明进行理解。
作为一种实现的方式,第二碱基子序列包括第三子序列和第四子序列,第三子序列是由第四碱基子序列得到的,第四子序列用于使得第二碱基子序列的长度大于第二长度。
需要说明的是,由于前文已对第一碱基子序列进行了说明,具体可参阅前文的相关说明进行理解。
基于上述说明,采用本申请实施例提供的方法的解码过程如图12所示。
具体地,先通过步骤401获取目标索引,然后通过步骤402编码,得到目标碱基序列;接着,通过步骤403且基于N条第一核苷酸序列提取多条第三碱基序列;此后,对多条第三碱基序列进行纠错,以得到多条纠错后的第三碱基序列;接着将多条纠错后的第三碱基序列中的第五碱基子序列拼接,以得到第一碱基序列;通过步骤406对第一碱基序列解码,以得到目标子数据;最后可以对目标子数据进行解压缩,以得到二进制数据,并对二进制数据进行二进制转换以得到原始子数据。
为了便于理解,下面通过一应用例对上述编码方法和解码方法进行说明,其中,该应用例包括编码过程和解码过程。
编码过程如下。
第一步,选择文本某大学研究生学籍管理规定作为原始数据。
其中,某大学研究生学籍管理规定包括第一章入学与注册至第九章附则,第一章入学与注册至第九章附则具体包括第一条至第五十条;图4仅示出了某大学研究生学籍管理规定的部分内容;从图4中可以看出,某大学研究生学籍管理规定的第一章入学包括第一条内容、第二条内容、第三条内容和第四条内容。
第二步,对某大学研究生学籍管理规定进行二进制转换,以得到二进制序列。
第三步,对转换后的二进制序列进行霍夫曼编码压缩。
第四步,利用DNA四进制编码模型对压缩后的二进制序列进行编码,以得到50条碱基序列,其中,选择的DNA四进制编码模型为“00=A,01=T,10=C,11=G”,每章中的每条内容对应一个碱基序列。
第五步,基于某大学研究生学籍管理规定的目录获取50条内容的50个索引,每个索引包括题目、章、条三个子索引,例如,一个索引为:“某大学研究生学籍管理规定”、“第一章入学与注册”、“第一条”。
第六步,将50个索引编码为碱基序列,每条碱基序列的长度为26碱基;并将每条碱基序列划分为长度相近的两个子碱基序列,其中,一个子碱基序列包括固定碱基片段以及由“某大学研究生学籍管理规定”和“第一条”编码得到的碱基序列,另一个碱基序列包括固定碱基片段以及由“第一章入学与注册”编码得到的碱基序列。
第六步,利用上述50个索引合成50条引物。
第七步,将50条碱基序列的每条碱基序列划分为862列,每列100碱基,划分为862列,并将862列分别标记为1、2、3……862;然后在每列碱基序列尾部添加长度为4个碱基的纠错碱基序列,在每列碱基序列头部添加L1=log2(862)+1=10个碱基作为地址碱基序列;因此,最终得到862列长度为114碱基的碱基序列。
第八步,每98条碱基序列组成一个98行*114列的矩阵,其中98行为862列中的98列,并添加2行纠错碱基序列;其中,不足98条的剩余碱基序列构成一个矩阵。
第九步,基于所有矩阵中的碱基序列合成核苷酸序列。
解码过程如下。
第一步,获取目标索引。
例如,目标索引可以为“某大学研究生学籍管理规定”,目标索引可以为“某大学研究生学籍管理规定”和“第三章”,目标索引还可以为“某大学研究生学籍管理规定”、“第三章”和“第三十四条”。
第二步,对目标索引编码,得到目标碱基序列,目标碱基序列包括3’端引物的碱基序列和5’端引物的碱基序列。
当目标索引为“某大学研究生学籍管理规定”时,5’端引物的碱基序列为“TTACTGGGCA+A”,3’端引物的碱基序列为“CCCTCGTATT”,其中,5’端引物中的“A”是由“某大学研究生学籍管理规定”编码得到的。
如图13所示,当目标索引为“某大学研究生学籍管理规定”和“第七章”时,5’端引物的碱基序列为“TTACTGGGCA+A”,3’端引物的碱基序列为“TG+CCCTCGTATT”,其中,5’端引物中的“A”是由“某大学研究生学籍管理规定”编码得到的,3’端引物中的“TG”是基于“第七章”编码得到的;具体地,5’端引物中的“A”和3’端引物中的“TG”表示某大学研究生学籍管理规定的第七章。
如图13所示,当目标索引为“某大学研究生学籍管理规定”、“第七章”和“第三十四条”时,5’端引物的碱基序列为“TTACTGGGCA+A+CAT”,3’端引物的碱基序列为“TG+CCCTCGTATT”,其中,5’端引物中的“A+CAT”是基于“某大学研究生学籍管理规定+第三十四条”编码得到的,3’端引物中的“TG”是基于“第七章”编码得到的;具体地,5’端引物中的“A”和3’端引物中的“TG”表示某大学研究生学籍管理规定的第七章,5’端引物中的“A+CAT”和3’端引物中的“TG”表示某大学研究生学籍管理规定的第七章的第三十四条。
需要说明的是,在上述引物中,“TTACTGGGCA”是指前文中的第四子序列,“CCCTCGTATT”是指前文中的第二子序列,都是固定片段,用于控制引物长度。
第三步,基于目标碱基序列合成目标引物,其中,目标引物即图13中的引物序列,具体包括3’端引物和5’端引物。
第四步,利用目标引物和多条第一核苷酸序列进行PCR扩增,并基于扩增得到的第二核苷酸序列解码得到碱基序列,解码得到的碱基序列包括多个矩阵。
需要说明的是,对于多条第一核苷酸序来说,只要其引物的碱基序列与目标引物的碱基序列互补,都会进行PCR扩增。
当目标索引为“某大学研究生学籍管理规定”、“第七章”和“第三十四条”时,解码得到的序列中包括多个矩阵,每个矩阵中包括2行纠错碱基序列,除这2行纠错碱基序列外,多个矩阵共包含862条碱基序列。
当目标索引为“某大学研究生学籍管理规定”和“第七章”时,解码得到的序列中包括多个矩阵,每个矩阵中包括2行纠错碱基序列,除这2行纠错碱基序列外,多个矩阵共包含多个862条碱基序列。
第五步,对于每个矩阵中的碱基序列,利用2行纠错碱基序列对其进行RS解码,然后对矩阵中剩余的98行碱基序列分别进行RS解码,以完成纠错。
第六步,将纠错后的碱基序列包括的碱基拼接。
当目标索引为“某大学研究生学籍管理规定”、“第七章”和“第三十四条”时,将862条碱基序列拼接为一条碱基序列。
当目标索引为“某大学研究生学籍管理规定”和“第七章”时,每862条碱基序列拼接为一条碱基序列,共拼接得到多条碱基序列。
第七步,利用DNA四进制编码模型对碱基拼接的碱基序列进行解码,以得到二进制序列。
当目标索引为“某大学研究生学籍管理规定”、“第七章”和“第三十四条”时,对862条碱基序列拼接为一条碱基序列进行解码,以得到一条二进制序列。
当目标索引为“某大学研究生学籍管理规定”和“第七章”时,对多条碱基序列进行解码,以得到多条二进制序列。
第八步,对二进制序列进行解压缩,以完成数据的提取。
当目标索引为“某大学研究生学籍管理规定”、“第七章”和“第三十四条”时,通过第八步提取的某大学研究生学籍管理规定的第七章中的第三十四条的信息。
当目标索引为“某大学研究生学籍管理规定”和“第七章”时,通过第八步提取的某大学研究生学籍管理规定的第七章中所有条的信息。
从该应用例中可以看出,“某大学研究生学籍管理规定”和“第七章”组成的索引,包含于“某大学研究生学籍管理规定”、“第七章”和“第三十四条”组成的索引中,利用“某大学研究生学籍管理规定”、“第七章”和“第三十四条”组成的索引对应的引物仅能提取第三十四条的数据,而利用“某大学研究生学籍管理规定”和“第七章”组成的索引对应的引物除了可以提取第三十四条的数据外,还可以提取第七章中其他条的数据。
例如,多条第一核苷酸序列中包含存储有第三十四条数据的第一核苷酸序列和存储有第三十五条数据的第一核苷酸序列,第三十四条和第三十五条都属于第七章;“某大学研究生学籍管理规定”、“第七章”和“第三十四条”组成的索引,以及“某大学研究生学籍管理规定”、“第七章”和“第三十五条”组成的索引都包括“某大学研究生学籍管理规定”和“第七章”组成的索引。
所以若目标索引为“某大学研究生学籍管理规定”和“第七章”,则存储有第三十四条数据的第一核苷酸序列的引物和存储有第三十五条数据的第一核苷酸序列的引物中都包含与目标引物(基于目标索引合成的)互补的碱基序列,因此在一条目标引物的作用下,存储有第三十四条数据的第一核苷酸序列和存储有第三十五条数据的第一核苷酸序列会同时进行PCR扩增,从而得到2条第二核苷酸序列;从2条第二核苷酸序列便可以提取第三十四条和第三十五条的数据。
因此,在本申请实施例中,索引中包含的子索引的数量越少,提取的数据量越大;以前文的第一索引、第二索引和第三索引为例,第一索引包含第三索引,第三索引包含第二索引,所以利用一个第一索引对应的引物仅能提取一段第一数据,利用第二索引对应的引物可以提取M段第一数据,而利用一个第三第一索引对应的引物可以提取H段第一数据,H小于M。
综上所述,本申请实施例虽然将目标数据划分为M段第一子数据,并利用第一核苷酸序列对M段第一子数据分别进行存储,但在数据提取时,通过一个索引对应的一条引物不仅可以提取一段第一子数据,通过一个索引对应的一条引物还可以提取多段第一子数据,从而实现数据的批量提取,从而避免通过一个索引对应的一条引物只能提取一段第一子数据的情况,从而提高数据的提取效率。
请参阅图14,本申请实施例提供了一种基于脱氧核糖核酸技术的数据编码装置,该装置包括:编码单元601,用于对目标数据编码,以得到M条第一碱基序列,其中,目标数据包括M段第一子数据,一段第一子数据对应一条第一碱基序列,M为大于1的正整数;索引获取单元602,用于获取M段第一子数据的M个第一索引和目标数据的第二索引,其中,第二索引为第一索引的一部分,一个第一索引对应一段第一子数据;编码单元601,还用于对M个第一索引编码,以得到M条第二碱基序列,其中,一条第二碱基序列对应一条第一碱基序列;序列组合单元603,用于基于M条第一碱基序列和M条第二碱基序列得到N条第三碱基序列,其中,一条第三碱基序列是基于一条第二碱基序列,以及该条第二碱基序列的对应的第一碱基序列得到的,其中,N为大于或等于M的整数。
作为一种实现的方式,一条第一核苷酸序列的引物对应一条第三碱基序列中基于第二碱基序列得到的部分。
作为一种实现的方式,一条第三碱基序列中基于第二碱基序列得到的部分包括第一碱基子序列和第二碱基子序列,第一核苷酸序列的引物包括第一端引物和第二端引物;第一端引物对应第一碱基子序列,第二端引物对应第二碱基子序列。
作为一种实现的方式,第一索引是由多个子索引组成;第二碱基序列包括第三碱基子序列和第四碱基子序列,第三碱基子序列是由多个子索的至少一个子索引编码得到的,第四碱基子序列是由多个子索引中的至少一个子索引编码得到的,且编码得到第三碱基子序列的子索引的数量与编码得到第四碱基子序列的子索引的数量相差至多一个;第一碱基子序列是基于第三碱基子序列得到的,第二碱基子序列是基于第四碱基子序列得到的。
作为一种实现的方式,第一碱基子序列包括第一子序列和第二子序列,第一子序列是由第三碱基子序列得到的,第二子序列用于使得第一碱基子序列的长度大于第一长度。
作为一种实现的方式,第二碱基子序列包括第三子序列和第四子序列,第三子序列是由第四碱基子序列得到的,第四子序列用于使得第二碱基子序列的长度大于第二长度。
作为一种实现的方式,序列组合单元603,用于将第一目标碱基序列划分为P条第五碱基子序列,第一目标碱基序列为M条第一碱基序列中的一条,其中,P为大于1且小于N的整数;基于P条第五碱基子序列和第二目标碱基序列得到P条长度小于第三长度的第三碱基序列,P条第三碱基序列属于N条第三碱基序列;P条第三碱基序列中的一条第三碱基序列是基于一条第五碱基子序列、地址碱基序列以及第二目标碱基序列得到的,地址碱基序列用于指示第五碱基子序列在第一目标碱基序列中的位置,第二目标碱基序列为M条第二碱基序列中与第一目标碱基序列对应的一条。
作为一种实现的方式,该装置还包括:纠错序列获取单元604,用于基于P条第三碱基序列和第二目标碱基序列得到Q条第三碱基序列,Q条第三碱基序列中的每条第三碱基序列包括第二目标碱基序列和第一纠错碱基序列,其中,第一纠错碱基序列是基于P条第三碱基序列得到的,且用于对P条第三碱基序列的纠错,Q为正整数且Q和P的和小于N。
作为一种实现的方式,第三碱基序列还包括第二纠错碱基序列,第二纠错碱基序列是基于第三碱基序列中除第二纠错碱基序列外的其他部分得到的,且用于第三碱基序列中除第二纠错碱基序列外的其他部分的纠错。
作为一种实现的方式,索引获取单元602,还用于获取K段第二子数据的V个第三索引,一段第二子数据是由H段第一子数据组成,一个第三索引对应一段第二子数据,第二索引为第三索引的一部分,一段第二子数据的第三索引为组成该段第二子数据的任意一段第一子数据的第一索引的一部分,其中,V为大于1的整数,H为大于1且小于M的整数。
其中,以上各单元的具体实现、相关说明以及技术效果请参考本申请实施例方法部分的描述。
请参阅图15,本申请实施例提供了一种基于脱氧核糖核酸技术的数据解码装置,装置包括:索引获取单元701,用于获取目标子数据的目标索引,其中,目标子数据为M段第一子数据中的一段,M段第一子数据包含于目标数据中,目标索引为M段第一子数据的M个第一索引中的一个,一段第一子数据对应一个第一索引,目标数据的第二索引为第一索引的一部分,M为大于1的正整数;编码单元702,用于对目标索引编码,以得到目标碱基序列;序列分离单元703,用于从X条第三碱基序列中得到目标碱基序列对应的第一碱基序列;解码单元704,用于对目标碱基序列对应的第一碱基序列解码,以得到第一子数据。
作为一种实现的方式,目标碱基序列包括第一碱基子序列和第二碱基子序列,目标引物包括第一端引物和第二端引物;第一端引物对应第一碱基子序列,第二端引物对应第二碱基子序列。
作为一种实现的方式,目标索引是由多个子索引组成;目标碱基序列包括第三碱基子序列和第四碱基子序列,第三碱基子序列是由多个子索引中的至少一个子索引编码得到的,第四碱基子序列是由多个子索引中的至少一个子索引编码得到的,且编码得到第三碱基子序列的子索引的数量与编码得到第四碱基子序列的子索引的数量相差至多一个;第一碱基子序列是基于第三碱基子序列得到的,第二碱基子序列是基于第四碱基子序列得到的。
作为一种实现的方式,第一碱基子序列包括第一子序列和第二子序列,第一子序列是由第三碱基子序列得到的,第二子序列用于使得第一碱基子序列的长度大于第一长度。
作为一种实现的方式,第二碱基子序列包括第三子序列和第四子序列,第三子序列是由第四碱基子序列得到的,第四子序列用于使得第二碱基子序列的长度大于第二长度。
作为一种实现的方式,X条第三碱基序列包括P条长度小于第三长度的第三碱基序列,其中,P大于1,且为小于或等于X的正整数;P条第三碱基序列中的每条第三碱基序列是由一条第五碱基子序列、地址碱基序列以及目标碱基序列得到的,地址碱基序列用于指示第五碱基子序列在目标碱基序列对应的第一碱基序列中的位置;序列分离单元703,用于基于X条第三碱基序列中的地址碱基序列确定,由X条第三碱基序列包括的第五碱基子序列组成的第一碱基序列。
作为一种实现的方式,X条第三碱基序列还包括Q条第三碱基序列,Q条第三碱基序列中的每条第三碱基序列包括第二目标碱基序列和第一纠错碱基序列,其中,第一纠错碱基序列是基于P条第三碱基序列得到的,其中,Q为正整数且Q和P的和小于或等于X;该装置还包括,纠错单元705,用于基于Q条第三碱基序列中的第一纠错碱基序列对P条第三碱基序列纠错。
作为一种实现的方式,X条第三碱基序列中的一条第三碱基序列中包括第二纠错碱基序列;该装置还包括,纠错单元705,用于基于第二纠错碱基序列,对第二纠错碱基序列所在的第三碱基序列中除第二纠错碱基序列外的其他部分进行纠错。
其中,以上各单元的具体实现、相关说明以及技术效果请参考本申请实施例方法部分的描述。
本申请实施例还提供了一种计算机设备的实施例,请参阅图16,图16是本申请实施例提供的计算机设备一种结构示意图,计算机设备1800由一个或多个计算机设备实现,计算机设备1800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器1822,例如,中央处理器(central processing units,CPU)(例如,一个或一个以上处理器)、内存单元1830、通信接口1858和存储器1832。处理器1822、内存单元1830和存储器1832通过总线1860相连,通信接口1858用于实现设备1800与其他设备的通信连接。
其中,处理器1822还可以是其他通用处理器、数字信号处理器(digital signalprocessing,DSPDSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件、图形处理器(graphics processingunit,GPU)、神经网络处理单元(neural processing unit,NPU)、张量处理器(tensorprocessing unit,TPU)、人工智能(artificial intelligent)芯片等。通用处理器可以是微处理器或者是任何常规的处理器等。
内存单元1830中部署有操作系统1841和相应的程序代码1842。
该存储器1832可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data date SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlinkDRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
总线1860除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线1860。
应理解,根据本申请实施例的设备可对应于本申请实施例中图14或图15所述的装置,并可以对应于执行根据本申请实施例的方法中的相应主体,并且图16所示的设备中的各个模块的上述和其它操作和/或功能分别为了实现前述各个方法的相应流程,为了简洁,在此不再赘述。
本申请实施例还提供了一种数据存储系统,包括合成设备和如图14所述的装置;
合成设备,用于基于N条第三碱基序列,合成N条第一核苷酸序列,其中,一条第一核苷酸序列对应一条第三碱基序列。
本申请实施例还提供了一种数据存储系统,包括合成设备和如图15所述的装置;
合成设备,用于基于目标碱基序列和N条第一核苷酸序列得到X条第三碱基序列,其中,N条第一核苷酸序列是由N条第三碱基序列合成,一条第一核苷酸序列对应一条第三碱基序列,N条第三碱基序列是基于M条第一碱基序列和M条第二碱基序列得到,一条第二碱基序列对应一条第一碱基序列,一条第三碱基序列是基于一条第二碱基序列,以及该条第二碱基序列的对应的第一碱基序列得到的,M条第二碱基序列是对M个第一索引编码得到的,M条第一碱基序列是对目标数据编码得到的,一条第一碱基序列对应一段第一子数据,X条第三碱基序列属于N条第三碱基序列且是基于目标碱基序列得到的,目标碱基序列为M条第二碱基序列中的一条,X为小于N的正整数。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

Claims (26)

1.一种基于脱氧核糖核酸技术的数据编码方法,其特征在于,所述方法包括:
对目标数据编码,以得到M条第一碱基序列,其中,所述目标数据包括M段第一子数据,一段所述第一子数据对应一条所述第一碱基序列,M为大于1的正整数;
获取所述M段第一子数据的M个第一索引和所述目标数据的第二索引,其中,所述第二索引为所述第一索引的一部分,一个所述第一索引对应一段所述第一子数据;
对M个所述第一索引编码,以得到M条第二碱基序列,其中,一条所述第二碱基序列对应一条所述第一碱基序列;
基于所述M条第一碱基序列和所述M条第二碱基序列得到N条第三碱基序列,其中,一条所述第三碱基序列是基于一条所述第二碱基序列,以及该条所述第二碱基序列的对应的第一碱基序列得到的,其中,N为大于或等于M的整数;
基于所述N条所述第三碱基序列,合成N条第一核苷酸序列,其中,一条所述第一核苷酸序列对应一条所述第三碱基序列。
2.根据权利要求1所述的方法,其特征在于,一条所述第一核苷酸序列的引物对应一条所述第三碱基序列中基于所述第二碱基序列得到的部分。
3.根据权利要求2所述的方法,其特征在于,其特征在于,所述一条所述第三碱基序列中基于所述第二碱基序列得到的部分包括第一碱基子序列和第二碱基子序列,所述第一核苷酸序列的引物包括第一端引物和第二端引物;
所述第一端引物对应所述第一碱基子序列,所述第二端引物对应所述第二碱基子序列。
4.根据权利要求3所述的方法,其特征在于,所述第一索引是由多个子索引组成;
所述第二碱基序列包括第三碱基子序列和第四碱基子序列,所述第三碱基子序列是由所述多个子索引中的至少一个子索引编码得到的,所述第四碱基子序列是由所述多个子索引中的至少一个子索引编码得到的,且编码得到所述第三碱基子序列的所述子索引的数量与编码得到所述第四碱基子序列的所述子索引的数量相差至多一个;
所述第一碱基子序列是基于所述第三碱基子序列得到的,所述第二碱基子序列是基于所述第四碱基子序列得到的。
5.根据权利要求3或4所述的方法,其特征在于,所述第一碱基子序列包括第一子序列和第二子序列,所述第一子序列是由所述第三碱基子序列得到的,所述第二子序列用于使得所述第一碱基子序列的长度大于第一长度。
6.根据权利要求3至5中任意一项所述的方法,其特征在于,所述第二碱基子序列包括第三子序列和第四子序列,所述第三子序列是由所述第四碱基子序列得到的,所述第四子序列用于使得所述第二碱基子序列的长度大于第二长度。
7.根据权利要求1至6中任意一项所述的方法,其特征在于,所述基于所述M条第一碱基序列和所述M条第二碱基序列得到N条第三碱基序列包括:
将第一目标碱基序列划分为P条第五碱基子序列,所述第一目标碱基序列为所述M条第一碱基序列中的一条,其中,P为大于1且小于N的整数;
基于所述P条第五碱基子序列和第二目标碱基序列得到P条长度小于第三长度的第三碱基序列,P条第三碱基序列属于所述N条第三碱基序列;
所述P条第三碱基序列中的一条第三碱基序列是基于一条所述第五碱基子序列、地址碱基序列以及所述第二目标碱基序列得到的,所述地址碱基序列用于指示所述第五碱基子序列在所述第一目标碱基序列中的位置,所述第二目标碱基序列为所述M条第二碱基序列中与所述第一目标碱基序列对应的一条。
8.根据权利要求7所述的方法,其特征在于,在所述基于所述P条第五碱基子序列和第二目标碱基序列得到P条长度小于第三长度的第三碱基序列之后,所述编码方法还包括:
基于所述P条第三碱基序列和所述第二目标碱基序列得到Q条第三碱基序列,所述Q条第三碱基序列中的每条第三碱基序列包括所述第二目标碱基序列和第一纠错碱基序列,其中,所述第一纠错碱基序列是基于所述P条第三碱基序列得到的,且用于对所述P条第三碱基序列的纠错,所述Q为正整数且Q和P的和小于N。
9.根据权利要求1至8中任意一项所述的方法,其特征在于,所述第三碱基序列还包括第二纠错碱基序列,所述第二纠错碱基序列是基于所述第三碱基序列中除所述第二纠错碱基序列外的其他部分得到的,且用于所述第三碱基序列中除所述第二纠错碱基序列外的其他部分的纠错。
10.根据权利要求1至9中任意一项所述的编码方法,其特征在于,所述方法还包括:
获取K段第二子数据的V个第三索引,一段所述第二子数据是由H段所述第一子数据组成,一个所述第三索引对应一段所述第二子数据,所述第二索引为所述第三索引的一部分,一段所述第二子数据的第三索引为组成该段第二子数据的任意一段第一子数据的第一索引的一部分,其中,V为大于1的整数,H为大于1且小于M的整数。
11.一种基于脱氧核糖核酸技术的数据解码方法,其特征在于,所述方法包括:
获取目标子数据的目标索引,其中,所述目标子数据为M段第一子数据中的一段,所述M段第一子数据包含于目标数据中,所述目标索引为M段第一子数据的M个第一索引中的一个,一段所述第一子数据对应一个所述第一索引,所述目标数据的第二索引为所述第一索引的一部分,M为大于1的正整数;
对所述目标索引编码,以得到目标碱基序列;
基于所述目标碱基序列和N条第一核苷酸序列得到X条第三碱基序列,其中,所述N条第一核苷酸序列是由N条所述第三碱基序列合成,一条所述第一核苷酸序列对应一条所述第三碱基序列,所述N条所述第三碱基序列是基于M条第一碱基序列和M条第二碱基序列得到,一条所述第二碱基序列对应一条所述第一碱基序列,一条所述第三碱基序列是基于一条所述第二碱基序列,以及该条所述第二碱基序列的对应的第一碱基序列得到的,所述M条第二碱基序列是对所述M个第一索引编码得到的,所述M条第一碱基序列是对所述目标数据编码得到的,一条所述第一碱基序列对应一段所述第一子数据,所述X条第三碱基序列属于所述N条所述第三碱基序列且是基于所述目标碱基序列得到的,所述目标碱基序列为所述M条第二碱基序列中的一条,X为小于N的正整数;
从所述X条第三碱基序列中得到所述目标碱基序列对应的第一碱基序列;
对所述目标碱基序列对应的第一碱基序列解码,以得到所述第一子数据。
12.根据权利要求11所述的方法,其特征在于,一条所述第一核苷酸序列的引物对应一条所述第三碱基序列中基于所述第二碱基序列得到的部分;
所述基于所述目标碱基序列和N条第一核苷酸序列得到X条第三碱基序列包括:
基于所述目标碱基序列合成目标引物,所述目标碱基序列与所述目标引物的碱基序列互补;
基于所述目标引物和N条第一核苷酸序列进行聚合酶链式反应,以得到X条第二核苷酸序列,所述X条第二核苷酸序列是基于所述目标引物和所述N条第一核苷酸序列中的X条得到;
基于所述X条第二核苷酸序列的X条测序结果得到X条第三碱基序列,一条所述测序结果对应一条第二核苷酸序列,所述X条测序结果与X条第三碱基序列互补。
13.根据权利要求11或12所述的方法,其特征在于,所述目标碱基序列包括第一碱基子序列和第二碱基子序列,所述目标引物包括第一端引物和第二端引物;
所述第一端引物对应所述第一碱基子序列,所述第二端引物对应所述第二碱基子序列。
14.根据权利要求13所述的方法,其特征在于,所述目标索引是由多个子索引组成;
所述目标碱基序列包括第三碱基子序列和第四碱基子序列,所述第三碱基子序列是由所述多个子索引中的至少一个子索引编码得到的,所述第四碱基子序列是由所述多个子索引中的至少一个子索引编码得到的,且编码得到所述第三碱基子序列的所述子索引的数量与编码得到所述第四碱基子序列的所述子索引的数量相差至多一个;
所述第一碱基子序列是基于所述第三碱基子序列得到的,所述第二碱基子序列是基于所述第四碱基子序列得到的。
15.根据权利要求13或14所述的方法,其特征在于,所述第一碱基子序列包括第一子序列和第二子序列,所述第一子序列是由所述第三碱基子序列得到的,所述第二子序列用于使得所述第一碱基子序列的长度大于第一长度。
16.根据权利要求13至15中任意一项所述的方法,其特征在于,所述第二碱基子序列包括第三子序列和第四子序列,所述第三子序列是由所述第四碱基子序列得到的,所述第四子序列用于使得所述第二碱基子序列的长度大于第二长度。
17.根据权利要求11至16中任意一项所述的方法,其特征在于,所述X条第三碱基序列包括P条长度小于第三长度的第三碱基序列,其中,P大于1,且为小于或等于X的正整数;
所述P条第三碱基序列中的每条第三碱基序列是由一条第五碱基子序列、地址碱基序列以及所述目标碱基序列得到的,所述地址碱基序列用于指示所述第五碱基子序列在所述目标碱基序列对应的第一碱基序列中的位置;
所述从所述X条第三碱基序列中得到所述目标碱基序列对应的第一碱基序列包括:
基于所述X条第三碱基序列中的地址碱基序列确定,由所述X条第三碱基序列包括的第五碱基子序列组成的所述第一碱基序列。
18.根据权利要求17所述的方法,其特征在于,所述X条第三碱基序列还包括Q条第三碱基序列,所述Q条第三碱基序列中的每条第三碱基序列包括所述第二目标碱基序列和第一纠错碱基序列,其中,所述第一纠错碱基序列是基于所述P条第三碱基序列得到的,其中,Q为正整数且Q和P的和小于或等于X;
在所述基于所述目标碱基序列和N条第一核苷酸序列得到X条第三碱基序列之后,在所述基于所述X条第三碱基序列中的地址碱基序列确定,由所述X条第三碱基序列包括的第三碱基子序列组成的所述第一碱基序列之前,所述方法还包括:
基于所述Q条第三碱基序列中的第一纠错碱基序列对所述P条第三碱基序列纠错。
19.根据权利要求11至18中任意一项所述的方法,其特征在于,所述X条第三碱基序列中的一条第三碱基序列中包括第二纠错碱基序列;
在所述基于所述目标碱基序列和N条第一核苷酸序列得到X条第三碱基序列之后,在所述从所述X条第三碱基序列中得到所述目标碱基序列对应的第一碱基序列之前,所述方法还包括:
基于所述第二纠错碱基序列,对所述第二纠错碱基序列所在的第三碱基序列中除所述第二纠错碱基序列外的其他部分进行纠错。
20.一种基于脱氧核糖核酸技术的数据编码装置,其特征在于,所述装置包括:
编码单元,用于对目标数据编码,以得到M条第一碱基序列,其中,所述目标数据包括M段第一子数据,一段所述第一子数据对应一条所述第一碱基序列,M为大于1的正整数;
索引获取单元,用于获取所述M段第一子数据的M个第一索引和所述目标数据的第二索引,其中,所述第二索引为所述第一索引的一部分,一个所述第一索引对应一段所述第一子数据;
所述编码单元,还用于对M个所述第一索引编码,以得到M条第二碱基序列,其中,一条所述第二碱基序列对应一条所述第一碱基序列;
序列组合单元,用于基于所述M条第一碱基序列和所述M条第二碱基序列得到N条第三碱基序列,其中,一条所述第三碱基序列是基于一条所述第二碱基序列,以及该条所述第二碱基序列的对应的第一碱基序列得到的,其中,N为大于或等于M的整数。
21.一种基于脱氧核糖核酸技术的数据解码装置,其特征在于,所述装置包括:
索引获取单元,用于获取目标子数据的目标索引,其中,所述目标子数据为M段第一子数据中的一段,所述M段第一子数据包含于目标数据中,所述目标索引为M段第一子数据的M个第一索引中的一个,一段所述第一子数据对应一个所述第一索引,所述目标数据的第二索引为所述第一索引的一部分,M为大于1的正整数;
编码单元,用于对所述目标索引编码,以得到目标碱基序列;
序列分离单元,用于从X条第三碱基序列中得到所述目标碱基序列对应的第一碱基序列;
解码单元,用于对所述目标碱基序列对应的第一碱基序列解码,以得到所述第一子数据。
22.一种计算机设备,其特征在于,包括:一个或多个处理器和存储器;其中,所述存储器中存储有计算机可读指令;
所述一个或多个处理器读取所述计算机可读指令,以使所述训练设备实现如权利要求1至19中任一项所述的方法。
23.一种计算机可读存储介质,其特征在于,包括计算机可读指令,当所述计算机可读指令在计算机上运行时,使得所述计算机执行如权利要求1至19中任一项所述的方法。
24.一种计算机程序产品,其特征在于,包括计算机可读指令,当所述计算机可读指令在计算机上运行时,使得所述计算机执行如权利要求1至19中任一项所述的方法。
25.一种数据存储系统,其特征在于,包括合成设备和如权利要求20所述的装置;
所述合成设备,用于基于所述N条所述第三碱基序列,合成N条第一核苷酸序列,其中,一条所述第一核苷酸序列对应一条所述第三碱基序列。
26.一种数据存储系统,其特征在于,包括合成设备和如权利要求21所述的装置;
所述合成设备,用于基于所述目标碱基序列和N条第一核苷酸序列得到X条第三碱基序列,其中,所述N条第一核苷酸序列是由N条所述第三碱基序列合成,一条所述第一核苷酸序列对应一条所述第三碱基序列,所述N条所述第三碱基序列是基于M条第一碱基序列和M条第二碱基序列得到,一条所述第二碱基序列对应一条所述第一碱基序列,一条所述第三碱基序列是基于一条所述第二碱基序列,以及该条所述第二碱基序列的对应的第一碱基序列得到的,所述M条第二碱基序列是对所述M个第一索引编码得到的,所述M条第一碱基序列是对所述目标数据编码得到的,一条所述第一碱基序列对应一段所述第一子数据,所述X条第三碱基序列属于所述N条所述第三碱基序列且是基于所述目标碱基序列得到的,所述目标碱基序列为所述M条第二碱基序列中的一条,X为小于N的正整数。
CN202110467805.7A 2021-04-28 2021-04-28 基于脱氧核糖核酸技术的数据编码方法及解码方法 Pending CN115249509A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110467805.7A CN115249509A (zh) 2021-04-28 2021-04-28 基于脱氧核糖核酸技术的数据编码方法及解码方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110467805.7A CN115249509A (zh) 2021-04-28 2021-04-28 基于脱氧核糖核酸技术的数据编码方法及解码方法

Publications (1)

Publication Number Publication Date
CN115249509A true CN115249509A (zh) 2022-10-28

Family

ID=83696917

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110467805.7A Pending CN115249509A (zh) 2021-04-28 2021-04-28 基于脱氧核糖核酸技术的数据编码方法及解码方法

Country Status (1)

Country Link
CN (1) CN115249509A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116453602A (zh) * 2023-02-17 2023-07-18 祥符实验室 一种基于ddPCR与荧光液滴分选富集的DNA数据库随机读取方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116453602A (zh) * 2023-02-17 2023-07-18 祥符实验室 一种基于ddPCR与荧光液滴分选富集的DNA数据库随机读取方法
CN116453602B (zh) * 2023-02-17 2024-04-19 祥符实验室 一种基于ddPCR与荧光液滴分选富集的DNA数据库随机读取方法

Similar Documents

Publication Publication Date Title
US20200211677A1 (en) Dna-based data storage and retrieval
CN112382340B (zh) 用于dna数据存储的编解码方法和编解码装置
CN111600609B (zh) 一种优化中文存储的dna存储编码方法
US9830553B2 (en) Code generation method, code generating apparatus and computer readable storage medium
EP2947779A1 (en) Method and apparatus for storing information units in nucleic acid molecules and nucleic acid storage system
CN109830263B (zh) 一种基于寡核苷酸序列编码存储的dna存储方法
CN109889205B (zh) 编码方法及系统、解码方法及系统、编解码方法及系统
CN100576753C (zh) 静态赫夫曼解码的系统和方法
US20230274793A1 (en) Dna movable type storage system and method
US12080384B2 (en) Method for compressing genomic data
US9774351B2 (en) Method and apparatus for encoding information units in code word sequences avoiding reverse complementarity
CN110708076B (zh) 一种基于混合模型的dna存储编解码方法
WO2020132935A1 (zh) 一种定点编辑存储有数据的核酸序列的方法及装置
CN112749247B (zh) 文本信息存储和读取方法及其装置
Wang et al. Oligo design with single primer binding site for high capacity DNA-based data storage
CN115249509A (zh) 基于脱氧核糖核酸技术的数据编码方法及解码方法
WO2019080653A1 (zh) 编码/解码方法、编码/解码器和存储方法、装置
TWI770247B (zh) 核酸用於資料儲存之方法、及其非暫時性電腦可讀儲存介質、系統及電子裝置
US10931303B1 (en) Data processing system
CN115472232A (zh) 一种基于分类算法的dna数据存储动态压缩方法
CN115242255A (zh) 一种基于汉明-vt的dna存储编码方法
Antonini et al. DNA-based Media Storage: State-of-the-Art, Challenges, Use Cases and Requirements
CN114730616A (zh) 信息编码和解码方法、装置、存储介质以及信息存储和解读方法
Ota et al. Addressing Information Using Data Hiding for DNA-based Storage Systems
CN109857340B (zh) Nor flash中文件的存储和读取方法、装置及存储介质

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