CN118056206A - 用于在分子中存储信息的方法、设备和系统 - Google Patents

用于在分子中存储信息的方法、设备和系统 Download PDF

Info

Publication number
CN118056206A
CN118056206A CN202280064870.8A CN202280064870A CN118056206A CN 118056206 A CN118056206 A CN 118056206A CN 202280064870 A CN202280064870 A CN 202280064870A CN 118056206 A CN118056206 A CN 118056206A
Authority
CN
China
Prior art keywords
information
stored
bit group
bit
molecular
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.)
Granted
Application number
CN202280064870.8A
Other languages
English (en)
Other versions
CN118056206B (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.)
Codon Hangzhou Technology Co ltd
Original Assignee
Codon Hangzhou Technology 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 Codon Hangzhou Technology Co ltd filed Critical Codon Hangzhou Technology Co ltd
Publication of CN118056206A publication Critical patent/CN118056206A/zh
Application granted granted Critical
Publication of CN118056206B publication Critical patent/CN118056206B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/12Computing arrangements based on biological models using genetic models
    • G06N3/123DNA computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/12Computing arrangements based on biological models using genetic models

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Genetics & Genomics (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Human Computer Interaction (AREA)
  • Read Only Memory (AREA)
  • Semiconductor Memories (AREA)

Abstract

本公开提供了一种用于在分子中存储信息的方法、设备和系统。所述方法包括:获取待存储信息,其中,所述待存储信息具有一个或多个位组,每个位组在所述待存储信息中的位置由第一地址来表示,每个位组的取值由第一内容来表示,且每个位组具有一个或多个位;确定与所述一个或多个位组中的至少一个位组相应的分子模块,其中,分子模块包括第一分子模块,且第一分子模块被配置为表示相应的位组的第一地址和第一内容两者;以及基于所确定的分子模块生成组合物,以使所述组合物对应于所述待存储信息。

Description

用于在分子中存储信息的方法、设备和系统
相关申请的交叉引用
本申请要求于2022年8月17日提交的、标题为“用于在分子中存储信息的方法、设备和系统”的中国专利申请第202210988065.6号的优先权,该申请的公开内容通过引用被全部合并于此。
技术领域
本公开涉及存储技术领域,尤其涉及一种用于在分子中存储信息的方法、设备和系统。
背景技术
随着信息技术的大幅发展,人们对于数据存储的需求也在迅速提高。传统的数据存储介质包括硬盘、闪存、磁带、光盘等,其存在存储密度低、保存时间短、能耗高等问题。为了实现更高的存储密度和更可靠的存储效果,目前已可以将信息存储在分子中。
发明内容
相关技术中,还缺乏一种合适的在分子中存储信息的方案,在编码效率、写入速度和成本等方面可以与计算机系统融合。因此,存在对现有的分子存储技术进行改进的需求。
由此,本公开实施例提出了如下解决方案。
根据本公开实施例的一方面,提供一种用于在分子中存储信息的方法,包括:
获取待存储信息,其中,所述待存储信息具有一个或多个位组,每个位组在所述待存储信息中的位置由第一地址来表示,每个位组的取值由第一内容来表示,且每个位组具有一个或多个位;
确定与所述一个或多个位组中的至少一个位组相应的分子模块,其中,分子模块包括第一分子模块,且第一分子模块被配置为表示相应的位组的第一地址和第一内容两者;以及
基于所确定的分子模块生成组合物,以使所述组合物对应于所述待存储信息。
在一些实施例中,获取待存储信息包括:
对初始待存储信息进行分隔,以产生一段或多段待存储信息,其中,每段待存储 信息的位数小于所述初始待存储信息的位数,且每段待存储信息的位数彼此相等或不等;或
对多段初始待存储信息进行合并以产生待存储信息,其中,所述待存储信息的位数大于每段初始待存储信息的位数。
在一些实施例中,确定与所述一个或多个位组中的至少一个位组相应的分子模块包括:
确定与所述一个或多个位组中的每个位组相应的第一分子模块。
在一些实施例中,所述待存储信息具有多个位组,且所述多个位组的取值包含至少两种第一内容,
确定与所述一个或多个位组中的至少一个位组相应的分子模块包括:
确定取值为一种第一内容的位组不对应于任何分子模块,并确定与取值为其他第一内容的其他位组中的至少一个位组相应的第一分子模块。
在一些实施例中,确定与所述一个或多个位组中的至少一个位组相应的分子模块包括:
确定所述一个或多个位组中的第二位组与第一位组之间是否满足预设关系,其中,第二位组的第一地址不同于第一位组的第一地址;以及
在第二位组与第一位组之间满足预设关系的情况下,确定与第二位组相应的分子模块,其中,分子模块包括第二分子模块,且第二分子模块被配置为表示相应的第二位组与第一位组之间的预设关系。
在一些实施例中,第二分子模块包括以下中的至少一者:
行程递增模块,其中,与第一预设数目a 1相应的行程递增模块被配置为表示第二位组与第一位组之间满足以下预设关系:紧邻第一位组之后存在连续的a 1个第二位组,且每个第二位组的第一内容与第一位组的第一内容相同,a 1为正整数;
行程倍数模块,其中,与第二预设数目a 2相应的行程倍数模块被配置为表示第二位组与第一位组之间满足以下预设关系:紧邻第一位组之后存在连续的(a 2-1)个第二位组,且每个第二位组的第一内容与第一位组的第一内容相同,a 2为大于1的正整数;
行程翻转模块,其中,与第三预设数目a 3相应的行程翻转模块被配置为表示第二位组与第一位组之间满足以下预设关系:第一位组和第二位组中的每个位仅具有0或1两种取值,第二位组仅具有取值不同的两个位,紧邻第一位组之后存在连续的a 3个第二位组,且第二位组的首位与第一位组的末位的取值不同,a 3为正整数;
行程重复模块,其中,行程重复模块被配置为表示第二位组与第一位组之间满足以下预设关系:第二位组的第一内容与第一位组的第一内容相同;
位增模块,其中,与第四预设数目a 4相应的位增模块被配置为表示第二位组与第一位组之间满足以下预设关系:第二位组仅具有一个位,紧邻第一位组之后存在连续的a 4个第二位组,且第二位组的取值与第一位组的末位的取值相同,a 4为正整数;以及
位减模块,其中,与第五预设数目a 5相应的位减模块被配置为表示第二位组与第一位组之间满足以下预设关系:第一位组的从后往前的连续a 5个位被确定为第二位组,且第一位组中的第二位组被去除,a 5为正整数且a 5小于或等于第一位组的总位数。
在一些实施例中,确定与所述一个或多个位组中的至少一个位组相应的分子模块包括:
将至少部分待存储信息从第一进制转换为第二进制;
将转换后的至少部分待存储信息划分为一个或多个位组;以及
确定与转换后所得的一个或多个位组中的至少一个位组相应的分子模块。
在一些实施例中,第一进制为二进制,第二进制为十进制,将至少部分待存储信息从第一进制转换为第二进制包括:
根据x i+1=2x i+b i+1进行迭代计算,以确定十进制的所述至少部分待存储信息,其中,x 0为预设初始值,b i+1为二进制的所述至少部分待存储信息中从左到右i+1位的取值,i为大于或等于0的整数,且当i+1与二进制的所述至少部分待存储信息的总位数相等时,相应的x i+1为十进制的所述至少部分待存储信息。
在一些实施例中,第一进制为二进制,第二进制为十进制,将至少部分待存储信息从第一进制转换为第二进制包括:
根据 计算十进制的所述至少部分待存储信息,其中,a n为二进制的所述至少部分待存储信息中第n+1位上的取值,i+1为二进制的所述至少部分待存储信息的总位数。
在一些实施例中,第一进制为二进制,第二进制为二进制的整数倍进制,将至少部分待存储信息从第一进制转换为第二进制包括:
根据所述第二进制和所述至少部分待存储信息的总位数确定是否需要在预设位置处对所述至少部分待存储信息进行补位;
若是,则根据所述第二进制对所述至少部分待存储信息进行补位,以获得目标待 存储信息;
若否,则直接将所述至少部分待存储信息作为目标待存储信息;
根据所述第二进制将二进制的至少部分待存储信息划分为一段或多段子信息,其中,每段子信息的位数为所述第二进制关于所述二进制的整数倍数;
分别将每段二进制的子信息转换为所述第二进制的相应值,以产生第二进制的所述至少部分待存储信息。
在一些实施例中,所确定的分子模块在所述组合物中的相对位置与相应的位组在所述待存储信息中的相对位置一致。
在一些实施例中,基于所确定的分子模块生成组合物,以使所述组合物对应于所述待存储信息包括:
获取与所确定的分子模块对应的单元模块,其中,每个分子模块由一个或多个单元模块合成;以及
合成所获取的单元模块以生成对应于所述待存储信息的所述组合物。
在一些实施例中,所确定的分子模块包括DNA片段和RNA片段中的至少一者,单元模块包括核苷酸,
合成所获取的单元模块以生成对应于所述待存储信息的所述组合物包括:
直接从所获取的核苷酸开始合成所述组合物,其中,所述组合物的至少部分片段与所确定的分子模块一致。
在一些实施例中,基于所确定的分子模块生成组合物,以使所述组合物对应于所述待存储信息包括:
在所确定的分子模块的连接端处形成与预设顺序相应的端接部;以及
混合形成有相应的端接部的分子模块以产生对应于所述待存储信息的组合物。
在一些实施例中,作为端接部的分子片段为相应的分子模块的一部分;或者
作为端接部的分子片段在分子模块确定之后被添加到相应的分子模块上。
在一些实施例中,混合形成有相应的端接部的分子模块以产生对应于所述待存储信息的组合物包括以下中的至少一者:
采用连接酶来按所述预设顺序组合所确定的分子模块;
采用设置在分子模块的端部的接头来按所述预设顺序组合所确定的分子模块;以及
采用聚合酶链式反应来按所述预设顺序组合所确定的分子模块。
在一些实施例中,分子模块包括脱氧核糖核酸、核糖核酸、非天然核苷酸、经修饰的核苷酸、人工合成核苷酸、肽、有机聚合物、有机小分子、碳纳米材料、无机物和间隔设置的分子片段中的至少一者。
在一些实施例中,采用分子模块的序列分布、序列长度、二级结构、结晶或无定型性质和形貌形态中的至少一者来区分各种分子模块。
在一些实施例中,不同的分子模块之间的编辑距离大于或等于预设距离阈值。
根据本公开实施例的另一方面,还提供一种用于在分子中存储信息的方法,包括:
获取待存储信息,其中,所述待存储信息具有一个或多个位组,每个位组在所述待存储信息中的位置由第一地址来表示,每个位组的取值由第一内容来表示,且每个位组具有一个或多个位;
根据所述待存储信息中每种第一内容的分布情况,确定一个或多个目标位组;
确定与所述一个或多个目标位组中的每个目标位组相应的分子模块,其中,分子模块包括第三分子模块,且第三分子模块被配置为表示相应的目标位组的第一地址;以及
基于所确定的分子模块生成组合物,以使所述组合物对应于所述待存储信息。
在一些实施例中,获取待存储信息包括:
对初始待存储信息进行分隔,以产生一段或多段待存储信息,其中,每段待存储信息的位数小于所述初始待存储信息的位数,且每段待存储信息的位数彼此相等或不等;或
对多段初始待存储信息进行合并以产生待存储信息,其中,所述待存储信息的位数大于每段初始待存储信息的位数。
在一些实施例中,根据所述待存储信息中每种第一内容的分布情况,确定一个或多个目标位组包括:
统计所述待存储信息中每种第一内容的出现频率,并确定具有最高出现频率的一种最高频内容;以及
将取值不是所述最高频内容的位组确定为目标位组。
在一些实施例中,第三分子模块包括一个或多个子分子模块,
确定与所述一个或多个目标位组中的每个目标位组相应的分子模块包括:
将目标位组的第一地址划分为一个或多个地址位组,每个地址位组在所述目标位组的第一地址中的位置由第二地址来表示,每个地址位组的取值由第二内容来表示, 且每个地址位组具有一个或多个位;
确定与所述一个或多个地址位组中的至少一个地址位组相应的子分子模块,其中,子分子模块包括第一子分子模块,且第一子分子模块被配置为表示相应的地址位组的第二地址和第二内容两者;以及
基于所确定的子分子模块的组合来确定第三分子模块。
在一些实施例中,确定与所述一个或多个地址位组中的至少一个地址位组相应的子分子模块包括:
确定所述一个或多个地址位组中的第二地址位组与第一地址位组之间是否满足预设关系,其中,第二地址位组的第二地址不同于第一地址位组的第二地址;以及
在第二地址位组与第一地址位组之间满足预设关系的情况下,确定与第二地址位组相应的子分子模块,其中,子分子模块包括第二子分子模块,且第二子分子模块被配置为表示相应的第二地址位组与第一地址位组之间的预设关系。
在一些实施例中,第二子分子模块包括:
行程增量模块,其中,与第六预设数目a 6相应的行程增量模块被配置为表示第二位组的第二地址位组与第一位组的第一地址位组之间满足以下预设关系:第一地址位组与a 6之和为第二地址位组,且第二位组的第一内容与第一位组的第一内容相同。
在一些实施例中,分子模块还包括第四分子模块,且第四分子模块被配置为表示相应的目标位组的第一内容。
在一些实施例中,确定与所述一个或多个目标位组中的每个目标位组相应的分子模块包括:
将至少部分待存储信息从第一进制转换为第二进制;
将转换后的至少部分待存储信息划分为一个或多个位组;以及
确定与转换后所得的一个或多个位组中的至少一个位组相应的分子模块。
在一些实施例中,第一进制为二进制,第二进制为十进制,将至少部分待存储信息从第一进制转换为第二进制包括:
根据x i+1=2x i+b i+1进行迭代计算,以确定十进制的所述至少部分待存储信息,其中,x 0为预设初始值,b i+1为二进制的所述至少部分待存储信息中从左到右i+1位的取值,i为大于或等于0的整数,且当i+1与二进制的所述至少部分待存储信息的总位数相等时,相应的x i+1为十进制的所述至少部分待存储信息。
在一些实施例中,第一进制为二进制,第二进制为十进制,将至少部分待存储信 息从第一进制转换为第二进制包括:
根据 计算十进制的所述至少部分待存储信息,其中,a n为二进制的所述至少部分待存储信息中第n+1位上的取值,i+1为二进制的所述至少部分待存储信息的总位数。
在一些实施例中,第一进制为二进制,第二进制为二进制的整数倍进制,将至少部分待存储信息从第一进制转换为第二进制包括:
根据所述第二进制和所述至少部分待存储信息的总位数确定是否需要在预设位置处对所述至少部分待存储信息进行补位;
若是,则根据所述第二进制对所述至少部分待存储信息进行补位,以获得目标待存储信息;
若否,则直接将所述至少部分待存储信息作为目标待存储信息;
根据所述第二进制将二进制的至少部分待存储信息划分为一段或多段子信息,其中,每段子信息的位数为所述第二进制关于所述二进制的整数倍数;
分别将每段二进制的子信息转换为所述第二进制的相应值,以产生第二进制的所述至少部分待存储信息。
在一些实施例中,所确定的分子模块在所述组合物中的相对位置与相应的位组在所述待存储信息中的相对位置一致。
在一些实施例中,基于所确定的分子模块生成组合物,以使所述组合物对应于所述待存储信息包括:
获取与所确定的分子模块对应的单元模块,其中,每个分子模块由一个或多个单元模块合成;以及
合成所获取的单元模块以生成对应于所述待存储信息的所述组合物。
在一些实施例中,所确定的分子模块包括DNA片段和RNA片段中的至少一者,单元模块包括核苷酸,
合成所获取的单元模块以生成对应于所述待存储信息的所述组合物包括:
直接从所获取的核苷酸开始合成所述组合物,其中,所述组合物的至少部分片段与所确定的分子模块一致。
在一些实施例中,基于所确定的分子模块生成组合物,以使所述组合物对应于所述待存储信息包括:
在所确定的分子模块的连接端处形成与预设顺序相应的端接部;以及
混合形成有相应的端接部的分子模块以产生对应于所述待存储信息的组合物。
在一些实施例中,作为端接部的分子片段为相应的分子模块的一部分;或者
作为端接部的分子片段在分子模块确定之后被添加到相应的分子模块上。
在一些实施例中,混合形成有相应的端接部的分子模块以产生对应于所述待存储信息的组合物包括以下中的至少一者:
采用连接酶来按所述预设顺序组合所确定的分子模块;
采用设置在分子模块的端部的接头来按所述预设顺序组合所确定的分子模块;以及
采用聚合酶链式反应来按所述预设顺序组合所确定的分子模块。
在一些实施例中,分子模块包括脱氧核糖核酸、核糖核酸、非天然核苷酸、经修饰的核苷酸、人工合成核苷酸、肽、有机聚合物、有机小分子、碳纳米材料、无机物和间隔设置的分子片段中的至少一者。
在一些实施例中,采用分子模块的序列分布、序列长度、二级结构、结晶或无定型性质和形貌形态中的至少一者来区分各种分子模块。
在一些实施例中,不同的分子模块之间的编辑距离大于或等于预设距离阈值。
根据本公开实施例的又一方面,提供一种用于在分子中存储信息的设备,包括:
存储器,所述存储器上存储有指令;以及
耦接至所述存储器的处理器,当所述指令被所述处理器执行时,实现如上所述的用于在分子中存储信息的方法。
根据本公开实施例的再一方面,提供一种用于在分子中存储信息的系统,包括:
获取单元,被配置为获取待存储信息,其中,所述待存储信息具有一个或多个位组,每个位组在所述待存储信息中的位置由第一地址来表示,每个位组的取值由第一内容来表示,且每个位组具有一个或多个位;
编码单元,被配置为确定与所述一个或多个位组中的至少一个位组相应的分子模块,其中,分子模块包括第一分子模块,且第一分子模块被配置为表示相应的位组的第一地址和第一内容两者;以及
写入器单元,被配置为基于所确定的分子模块生成组合物,以使所述组合物对应于所述待存储信息。
根据本公开实施例的另一方面,提供一种用于在分子中存储信息的系统,包括:
获取单元,被配置为获取待存储信息,其中,所述待存储信息具有一个或多个位 组,每个位组在所述待存储信息中的位置由第一地址来表示,每个位组的取值由第一内容来表示,且每个位组具有一个或多个位;
编码单元,被配置为根据所述待存储信息中每种第一内容的分布情况,确定一个或多个目标位组;和确定与所述一个或多个目标位组中的每个目标位组相应的分子模块,其中,分子模块包括第三分子模块,且第三分子模块被配置为表示相应的目标位组的第一地址;以及
写入器单元,被配置为基于所确定的分子模块生成组合物,以使所述组合物对应于所述待存储信息。
根据本公开实施例的又一方面,提供一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述指令被处理器执行时,实现如上所述的用于在分子中存储信息的方法。
根据本公开实施例的再一方面,提供一种计算机程序产品,所述计算机程序产品包括指令,当所述指令被处理器执行时,实现如上所述的用于在分子中存储信息的方法。
本公开实施例中,通过将待存储信息与分子模块之间的映射关系转换为根据待存储信息所提取的数据集与分子模块之间的映射关系,改变了目前分子存储编码中二进制的待存储信息与分子模块之间的直接对应关系,而是可以根据待存储信息的特点压缩、缺省部分信息的表示,或者可以采用一个分子模块来表示多种信息而不是仅仅表示单一信息,从而实现了所需要的分子模块的大规模减少,提升了编码效率,改善了写入速度,并降低了分子存储的成本。
下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本公开一示例性实施例的用于在分子中存储信息的方法的流程示意图;
图2(a)是根据本公开一具体示例中第一分子模块的示意图以及用第一分子模块来表示待存储信息“1010”的示意图;
图2(b)是根据本公开另一具体示例中第一分子模块的示意图;
图3(a)是根据本公开一些具体示例中第二分子模块的示意图;
图3(b)是根据本公开一些具体示例中用第二分子模块来表示待存储信息“101110”的一部分的示意图;
图3(c)是根据本公开一具体示例中用第二分子模块来表示待存储信息“10101”的示意图;
图4(a)是根据本公开一具体示例中用第二分子模块来表示待存储信息“0111001110”的一部分的示意图;
图4(b)是根据本公开一具体示例中用第二分子模块来表示待存储信息“01110011110”的一部分的示意图;
图4(c)是根据本公开一具体示例中用第二分子模块来表示待存储信息“011100110”的一部分的示意图;
图5是根据本公开另一示例性实施例的用于在分子中存储信息的方法的流程示意图;
图6(a)是根据本公开一具体示例中待存储信息的示意图;
图6(b)是用第三分子模块表示图6(a)中的待存储信息的示意图;
图7(a)是根据本公开一具体示例中第二子分子模块的示意图;
图7(b)是根据本公开一具体示例中用第二子分子模块来表示待存储信息“0110010001”的示意图;
图7(c)是根据本公开一具体示例中用第二子分子模块来表示待存储信息“0111010001”的示意图;
图8(a)是根据本公开一具体示例中转换进制前表示待存储信息“1001101010”的示意图;
图8(b)是根据本公开一具体示例中转换进制后表示待存储信息“1001101010”的示意图;
图9示出了根据本公开的第一具体示例的组合分子模块的示意图;
图10示出了根据本公开的第二具体示例的组合分子模块的示意图;
图11示出了根据本公开的第三具体示例的组合分子模块的示意图;
图12示出了根据本公开的第四具体示例的组合分子模块的示意图;
图13示出了根据本公开的第五具体示例的组合分子模块的示意图;
图14示出了根据本公开的第五具体示例的组合分子模块的示意图;
图15示出了根据本公开的第六具体示例的组合分子模块的示意图;
图16示出了根据本公开的一具体示例的采用化学法或酶促法生成组合物的示意图;
图17是根据本公开一示例性实施例的用于在分子中存储信息的设备的示意图;
图18是根据本公开一示例性实施例的用于在分子中存储信息的系统的示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
另外,在本公开的描述中,术语“第一”、“第二”、“第三”等仅用于描述目的,而不能理解为指示或暗示相对重要性和顺序。类似地,虽然在附图中以特定次序描绘了操作,但是这不应该被理解为要求以所示的特定次序或者以顺序次序执行这样的操作,或者要求执行所有图示的操作以实现所希望的结果。在某些情况下,多任务处理和并行处理可以是有利的。
在分子存储技术中,针对待存储信息中的每个位,可以分别用不同的分子模块来表示其位置和取值,并通过合成或组合这些分子模块来表示完整的待存储信息。可以理解的是,随着待存储信息的位数增多,所需的分子模块的种类和数量也将大幅增 多,这会导致需要消耗大量的分子模块来进行信息的存储,且将信息写入到由分子模块组合所产生的分子中的速度也会非常缓慢,进而导致分子存储的各种成本的大幅增加。
为了解决上述问题,本公开提出了一种用于在分子中存储信息的方法。在本公开的一示例性实施例中,如图1和图5所示,用于在分子中存储信息的方法可以包括:
步骤S100,获取待存储信息。
在生产和生活中,可能存在各种形式的信息,例如文字信息、图片信息、音频信息或视频信息等。为了方便存储这些信息,可以首先利用信息技术将它们转换为例如二进制编码形式的信息。在后文中,除非另有说明,将以待存储信息为二进制信息为例来详细阐述本公开的技术方案。然而可以理解的是,根据需要,待存储信息也可能是其他进制的,在此不作限制。
此外,在一些实施例中,还可以预先对初始待存储信息进行一些处理,以简化后续的存储步骤。例如,可以将较长的一段初始待存储信息预先分隔为多段较短的待存储信息。在一具体示例中,可以采用定长分隔的方式对初始待存储信息进行分隔,即分隔所得的每段待存储信息的位数彼此相等。或者,在另一具体示例中,可以采用变长分隔的方式对初始待存储信息进行分隔,即每段分隔出的待存储信息可以具有不同的位数。
在一些实施例中,还可以预先合并某些初始待存储信息,从而用更少的组合物来表示多段初始待存储信息。例如,对于多段初始待存储信息,一般需要相应数目的组合物来表示这些初始待存储信息,尽管每种组合物的结构可能比较简单,也会带来效率上的降低。为了解决上述问题,可以将多段初始待存储信息合并为一段待存储信息,并用一种组合物来表示该待存储信息,这样,即使该组合物的结构可能变得更加复杂,但合成一种组合物所需的时间往往比合成多种组合物所需的时间短,从而有助于提升效率。可以理解的是,可以根据需要按照各种方式来合成多段初始待存储信息,只要能够根据最终所得的组合物唯一地得出初始待存储信息即可。
这里,待存储信息可以具有一个或多个位组,每个位组可以具有一个或多个位。其中,每个位组在待存储信息中的位置可以由第一地址来表示,每个位组的取值可以由第一内容来表示。在一些实施例中,待存储信息中所划分出的每个位组的总位数可以是彼此相等的。在另一些实施例中,根据需要,待存储信息中所划分出的每个位组的总位数也可能是不相等的。
例如,以待存储信息为二进制信息“1010”为例,可以将这段待存储信息划分为四个位组,每个位组仅具有一个位,且从左到右每个位组的第一地址可以分别被表示为“0”、“1”、“2”和“3”(在本文中,除非另有说明,在对位置进行编号时将从“0”开始),相应地,每个位组的第一内容分别为“1”、“0”、“1”和“0”;或者,可以将这段待存储信息划分为两个位组,每个位组具有两个位,且从左到右每个位组的第一地址可以分别被表示为“0”和“1”,每个位组的第一内容分别为“10”和“10”;又或者,可以将这段待存储信息划分为一个位组,这个位组具有四个位,且这个位组的第一地址可以被表示为“0”,这个位组的第一内容为“1010”。在一些实施例中,可以根据待存储信息的特点以及所能利用的分子模块的种类等来确定划分位组的具体方式,以提高分子存储的编码效率、减少所需的分子模块、加快写入速度和降低存储成本等。
返回图1,在本公开的一示例性实施例中,用于在分子中存储信息的方法还可以包括:
步骤S210,确定与一个或多个位组中的至少一个位组相应的分子模块。
其中,分子模块可以包括第一分子模块,且第一分子模块可以被配置为表示相应的位组的第一地址和第一内容两者。这样,通过用同一个分子模块来表示相应的一个位组的第一地址和第一内容两者,相比分别用两个不同的分子模块来表示该位组的第一地址和第一内容,可以有效地减少表示一个位组所需的分子模块的数量,进而减少了表示整个待存储信息所需的分子模块的数量。这里的每个位组可以仅具有一个位,如下面的具体示例中所描述的。然而可以理解的是,每个位组也可以具有两个或两个以上的位,并利用相应的分子模块来表示具有各种第一内容和第一地址的位组,这里不作限制。
在一具体示例中,对应于二进制信息中的各个位的第一内容和第一地址的各种分子模块被列出在图2(a)的表格中,表格中用具有不同的形状或填充的图形来表示不同的分子模块(即,在本文中,除非另有说明,只要用来表示分子模块的两个图形的形状和填充中的一个属性是不同的,那么这两个分子模块就是不同的)。在表格中,m表示每个位组(位)的第一内容,其取值可以为0或1;n表示每个位组(位)的第一地址,例如n表示相应的位组(位)是待存储信息中从左到右的编号为n的位,或者说是二进制信息中的2 n位。
基于图2(a)中的表格,当表示二进制的待存储信息“1010”时,可以选取表格 中表示第一地址为“2 0”位且第一内容为“1”的分子模块、表示第一地址为“2 1”位且第一内容为“0”的分子模块、表示第一地址为“2 2”位且第一内容“1”的分子模块以及表示第一地址“2 3”位且第一内容为“0”的分子模块,按照一定的顺序(例如,按照待存储信息中每个位组(位)的排布顺序)来连接这些分子模块,从而将“1010”存储在相应的分子中,如图2(a)表格下方的图所示。
在另一具体示例中,也可以设置与十进制信息中的每个位对应的分子模块,当待存储信息为十进制信息或者将待存储信息转换为十进制信息后,可以用图2(b)中所示的分子模块来表示。在表格中,m表示每个位组(位)的第一内容,其取值可以为0至9;n表示每个位组(位)的第一地址,例如n表示相应的位组(位)是十进制信息中从左到右的编号为n的位,或者说是十进制信息中的10 n位。可以采用如上参考图2(a)所述的类似方式来确定与十进制信息中的每个位相应的分子模块,并组合所确定的分子模块以将信息存储在分子中,在此不再赘述。相比于图2(a)中所示的基于二进制的对应关系,图2(b)中所示的基于十进制的对应关系可能使用更少的分子模块来表示待存储信息。例如,从10 0至10 9位,可以利用共100个分子模块来表示最多10 10位信息,即约1吉字节(GB)信息。
可以理解的是,在其他一些实施例中,可以建立相应的分子模块库,利用分子模块的调用和组合来表示任意的k进制信息(∑m*k n),与上文中所述类似,其中m表示每个位的第一内容,n表示每个位在待存储信息中的第一地址。
在一些实施例中,确定与一个或多个位组中的至少一个位组相应的分子模块可以包括:确定与一个或多个位组中的每个位组相应的第一分子模块。
在这种情况下,用来表示待存储信息的分子中,分子模块的数量与待存储信息中所划分出的位组(位)的数量可以是一致的。例如,在图2(a)中所示的与待存储信息“1010”相应的分子中,每个位组(位)都具有其相应的分子模块被组合在整个分子中。
然而,考虑到在通常情况下,待存储信息可以具有多个位组,且多个位组的取值可以包含至少两种第一内容,如果每个位组的第一地址和第一内容都需要用相应的分子模块来表示,可能导致所需的分子模块的数量仍然较大。为了进一步减少所需的分子模块的数量,在另一些实施例中,确定与一个或多个位组中的至少一个位组相应的分子模块可以包括:确定取值为一种第一内容的位组不对应于任何分子模块,并确定与取值为其他第一内容的其他位组中的至少一个位组相应的第一分子模块。
换句话说,多种不同的第一内容中的一种第一内容可以被缺省表示,即这种第一内容不对应于任何分子模块,并利用第一分子模块来表示具有其他第一内容的至少一个位组。在恢复被保存在分子中的信息时,可以补充在存储时被缺省的具有第一内容的相应位组,以还原整个待存储信息。
在一具体示例中,在二进制信息的情况下,可以仅表示第一内容为“0”的位组(位),而缺省第一内容为“1”的位组(位);或者仅表示第一内容为“1”的位组(位),而缺省第一内容为“0”的位组(位)。例如,可以根据第一内容“0”和“1”的出现频率来确定缺省具有哪种第一内容的位组(位)。在一些实施例中,可以缺省具有较高的出现频率的第一内容的位组(位),以减少用于表示待存储信息的分子中分子模块的数量。
在另一具体示例中,在十进制信息的情况下,可以缺省具有第一内容为“0”的位组(位),而分别用相应的分子模块来表示第一内容为“1”至“9”的位组(位)。类似地,可以根据各种第一内容的出现频率来确定缺省具有哪种第一内容的位组(位),例如缺省具有最高的出现频率的一种第一内容的位组(位),以减少用于表示待存储信息的分子中分子模块的数量。需要注意的是,当具有最高的出现频率的第一内容为两种或更多种时,可以在其中任选一种以缺省。
考虑到在实际应用中,待存储信息往往具有较多的位组(位),如果将与位组(位)相应的每个分子模块直接组合在一起,那么组装后所得的分子往往会十分庞大。因此,还可以根据不同位组之间的某些特定关系来表示相应的位组,以进一步减少用来表示待存储信息的分子中分子模块的数量,提高写入速度,并降低存储成本。在一些实施例中,确定与一个或多个位组中的至少一个位组相应的分子模块可以包括:确定一个或多个位组中的第二位组与第一位组之间是否满足预设关系,其中,第二位组的第一地址不同于第一位组的第一地址;以及在第二位组与第一位组之间满足预设关系的情况下,确定与第二位组相应的分子模块,其中,分子模块包括第二分子模块,且第二分子模块被配置为表示相应的第二位组与第一位组之间的预设关系。
可以根据实际需要来设置不同的预设关系及相应的分子模块,在此不作限制。下面将以几种预设关系及相应的第二分子模块为例进行阐述。
在一些实施例中,第二分子模块可以包括行程递增模块。其中,与第一预设数目a 1相应的行程递增模块被配置为表示第二位组与第一位组之间满足以下预设关系:紧邻第一位组之后存在连续的a 1个第二位组,且每个第二位组的第一内容与第一位组的 第一内容相同,a 1为正整数。
如图3(a)所示,表格中的第二列列出了与各种第一预设数目(如表格中第一列所列出的)相应的行程递增模块。在一具体示例中,假设待存储信息为“101110”,如果采用一个分子模块来表示一个位的第一地址和第一内容两者,那么需要共三个分子模块来表示待存储信息“101110”中的从左到右的编号为3至5的位,如图3(b)中位于最上方的第一种表示。然而,考虑到待存储信息“101110”的从左到右的编号为3至5的位的第一内容均为“1”,那么可以利用图3(a)中所示的与第一预设数目“2”相应的行程递增模块来表示在第一地址编号为“3”的位之后的连续两位,如图3(b)中位于中间的第二种表示。其中,与第一预设数目“2”相应的行程递增模块可以被连接在表示待存储信息“101110”中第一地址编号为“3”的位的分子模块之后,以表示紧邻在该位之后,还有具有与这一位的第一内容相同的第一内容的连续的两个位。在上述具体示例中,每个位组具有仅一个位,然而可以理解的是,行程递增模块也可以用在具有两个或两个以上的位的位组中,表示紧邻第一位组之后存在连续的a 1个第二位组,且每个第二位组的第一内容与第一位组的第一内容相同,只是这里的第一内容由两个或两个以上的位形成。
在一些实施例中,第二分子模块可以包括行程倍数模块,其中,与第二预设数目a 2相应的行程倍数模块被配置为表示第二位组与第一位组之间满足以下预设关系:紧邻第一位组之后存在连续的(a 2-1)个第二位组,且每个第二位组的第一内容与第一位组的第一内容相同,a 2为大于1的正整数。
如图3(a)所示,表格中的第三列列出了与各种第二预设数目(如表格中第一列所列出的)相应的行程倍数模块。在一具体示例中,假设待存储信息为“101110”,考虑到待存储信息“101110”的从左到右的第一地址编号为3至5的位的第一内容均为“1”,因此也可以利用图3(a)中所示的与第二预设数目“3”相应的行程倍数模块来表示,如图3(b)中所述的位于最下方的第三种表示。其中,与第二预设数目“3”相应的行程倍数模块可以被连接在表示待存储信息“101110”中第一地址编号为“3”且第一内容为“1”的位的分子模块之后,以表示紧邻在这个位之后,还有连续的“3-1=2”个具有与这一位的第一内容相同的第一内容的位,或者说,在待存储信息中,第一地址编号为“3”的第一内容将重复出现3次(包含这一位本身在内)。类似地,在上述具体示例中,每个位组具有仅一个位,然而可以理解的是,行程倍数模块也可以用在具有两个或两个以上的位的位组中,表示紧邻第一位组之后存在连续的(a 2-1)个 第二位组,且每个第二位组的第一内容与第一位组的第一内容相同,只是这里的第一内容由两个或两个以上的位形成。
在一些实施例中,第二分子模块可以包括行程翻转模块,其中,与第三预设数目a 3相应的行程翻转模块被配置为表示第二位组与第一位组之间满足以下预设关系:第一位组和第二位组中的每个位仅具有0或1两种取值,第二位组仅具有取值不同的两个位,紧邻第一位组之后存在连续的a 3个第二位组,且第二位组的首位与第一位组的末位的取值不同,a 3为正整数。
如图3(a)所示,表格中的第四列列出了与各种第三预设数目(如表格中第一列所列出的)相应的行程翻转模块。在一具体示例中,如图3(c)所示,假设待存储信息为“10101”,也就是说,紧邻在待存储信息的第一地址编号为“0”的位之后,存在连续两个这样的第二位组,其中第二位组中的首位的取值与前一个位组的末位的取值不同,且第二位组中两个位的取值不同,因此可以利用图3(a)中的与第三预设数目“2”相应的行程翻转模块连接在表示第一地址编号为“0”且第一内容为“1”的位的第一分子模块之后,以表示待存储信息“10101”。
在一些实施例中,第二分子模块可以包括行程重复模块,其中,行程重复模块被配置为表示第二位组与第一位组之间满足以下预设关系:第二位组的第一内容与第一位组的第一内容相同。
在一具体示例中,如图4(a)所示,假设待存储信息为“0111001110”。这里,待存储信息中第一地址为1至3位均为“1”,这三位的第一内容可以利用表示第一地址为“1”且第一内容为“1”的分子模块与图3(a)中与第二预设数目“3”相应的行程倍数模块的组合来表示。另外,第一地址为6至8的位的第一内容也均为“1”,与第一地址为1至3的位的第一内容相同。此时,可以利用表示第一地址为6的分子模块(用于指示重复的起始位置)与行程重复模块的组合来表示待存储信息第一地址为6至8的位。
可以理解的是,在不同的实施例中,可以用不同的行程重复模块来指示对不同的位或位组的第一内容的重复。此外,行程重复模块所指示的被重复的位或位组在待存储信息中的位置可以在行程重复模块所表示的位或位组的前面,也可以在行程重复模块所表示的位或位组的后面。另外,行程重复模块可以表示对各种类型的分子模块的重复,例如不仅可以表示对指示位或位组的第一地址和第一内容两者的第一分子模块的重复,还可以表示对指示不同位组之间的预设关系的第二分子模块的重复,也可以 表示对可能存在的其他类型的分子模块的重复等,这里不作限制。此外,用行程重复模块来表示的位组可以具有仅一个位,也可以具有多个位,这里不作限制。
在一些实施例中,第二分子模块可以包括位增模块和/或位减模块。这里,位增模块和/或位减模块可以与例如行程重复模块等其他分子模块组合起来使用。
其中,与第四预设数目a 4相应的位增模块被配置为表示第二位组与第一位组之间满足以下预设关系:第二位组仅具有一个位,紧邻第一位组之后存在连续的a 4个第二位组,且第二位组的取值与第一位组的末位的取值相同,a 4为正整数。
在一具体示例中,如图4(b)所示,假设待存储信息为“01110011110”,其中第一地址为1至3的位的第一内容均为“1”,且第一地址为6至9的位的第一内容也均为“1”。对于第一地址为6至9的这四位,在图4(a)的基础上,可以在行程重复模块后加上与第四预设数目“1”相应的位增模块,表示再增加一位前一个位组的末位。
另外,与第五预设数目a 5相应的位减模块被配置为表示第二位组与第一位组之间满足以下预设关系:第一位组的从后往前的连续a 5个位被确定为第二位组,且第一位组中的第二位组被去除,a 5为正整数且a 5小于或等于第一位组的总位数。
在一具体示例中,如图4(c)所示,假设待存储信息为“011100110”,相比图4(a)中的待存储信息为“0111001110”,第一地址为“8”的位被去除。因此,在图4(a)的基础上,可以在行程重复模块后加上与第五预设数目“1”相应的位减模块,表示去除前一个第一位组的末位。
在一些实施例中,根据需要,还可以对待存储信息进行进制转换,并基于转换后的待存储信息来确定与其中至少一个位组相应的分子模块。具体而言,确定与一个或多个位组中的至少一个位组相应的分子模块可以包括:将至少部分待存储信息从第一进制转换为第二进制;将转换后的至少部分待存储信息划分为一个或多个位组;以及确定与转换后所得的一个或多个位组中的至少一个位组相应的分子模块。例如,可以将二进制的待存储信息转换为十进制等,以减少所需的分子模块。
在一具体示例中,可以基于通常的进制转换方式来进行第一进制与第二进制之间的转换。这里,第一进制或第二进制可以为二进制、八进制、十进制、十六进制、六十四进制或一百进制等。
具体而言,若第一进制为二进制,第二进制为十进制,将至少部分待存储信息从第一进制转换为第二进制可以包括:根据 计算十进制的至少部分待存 储信息,其中,a n为二进制的至少部分待存储信息中第n+1位上的取值,i+1为二进制的至少部分待存储信息的总位数。
例如,对于一段二进制的待存储信息x(b)=a ia i-1…a 1a 0,可以按照x(d)=2 0*a 0+2 1*a 1+…+2 i-1*a i-1+2 i*a i来将其转换为十进制的待存储信息x(d)。举例而言,采用上述方式,二进制的待存储信息“1001101010”可以被转换为十进制的“618”。
在另一些实施例中,若第一进制为二进制,第二进制为二进制的整数倍进制,将至少部分待存储信息从第一进制转换为第二进制可以包括:根据第二进制和至少部分待存储信息的总位数确定是否需要在预设位置处对至少部分待存储信息进行补位;若是,则根据第二进制对至少部分待存储信息进行补位,以获得目标待存储信息;若否,则直接将至少部分待存储信息作为目标待存储信息;根据第二进制将二进制的至少部分待存储信息划分为一段或多段子信息,其中,每段子信息的位数为第二进制关于二进制的整数倍数;分别将每段二进制的子信息转换为第二进制的相应值,以产生第二进制的至少部分待存储信息。
例如,假设第一进制为二进制,第二进制为八进制,那么对于一段二进制的待存储信息x(b)=a ia i-1…a 1a 0,如果其位数i+1是3的整数倍,则可以直接将x(b)划分为若干段子信息,其中每段子信息为三位,或者如果其位数i+1不是3的整数倍,则可以通过在二进制的待存储信息x(b)的头部、尾部或中间的预设位置处补充相应的位数,使得补位后的二进制的待存储信息的位数为3的整数倍,再将补位后的待存储信息划分为若干段子信息,其中每段子信息为三位。然后,分别将每段子信息转换为0~7中的相应值,从而将二进制的待存储信息转换为八进制的待存储信息x(o)。举例而言,采用上述方式,通过在二进制的待存储信息“1001101010”的头部补充两位“0”,其可以被转换为八进制的“1152”。
假设第一进制为二进制,第二进制为十六进制,那么对于一段二进制的待存储信息x(b)=a ia i-1…a 1a 0,如果其位数i+1是4的整数倍,则可以直接将x(b)划分为若干段子信息,其中每段子信息为四位,或者如果其位数i+1不是4的整数倍,则可以通过在二进制的待存储信息x(b)的头部、尾部或中间的预设位置处补充相应的位数,使得补位后的二进制的待存储信息的位数为4的整数倍,再将补位后的待存储信息划分为若干段子信息,其中每段子信息为四位。然后,分别将每段子信息转换为0~g中的相应值,从而将二进制的待存储信息转换为十六进制的待存储信息x(h)。举例而言,采用上述方式,通过在二进制的待存储信息“1001101010”的头部补充两位“0”,其 可以被转换为十六进制的“26a”。
类似地,对于二进制的待存储信息“1001101010”,还可以将其转换为六十四进制的待存储信息“({9}{42}) 64”或一百进制的待存储信息“({6}{18}) 100”等。
在另一具体示例中,也可以采用其他的转换方式来进行不同进制之间的转换。例如,可以基于一一对应的转换关系对待存储信息进行转换,以减少在存储过程中所需的分子模块的数量。在一些实施例中,可以采用线性转换的方式来进行进制转换。例如,可以根据下式进行迭代计算以将待存储信息的至少一部分从二进制转换为其他进制:
x i+1=ax i+b i+1
其中,a为预设转换系数,x 0为预设初始值,可以根据需要来确定。在一具体示例中,预设转换系数a=2,预设初始值x 0=1,这样可以使最终转换所得的x i+1尽可能小,以节约存储所需的分子模块的数量。b i+1为二进制的信息中从左到右i+1位的取值(如上文所述,i从0开始递增,且i为整数)。当i+1与二进制的待存储信息的总位数相等时,相应的x i+1为目标进制的待存储信息。在一具体示例中,目标进制可以是十进制,或者,在基于上式将二进制的待存储信息转换为十进制后,还可以基于十进制与其他进制之间的转换关系进一步将待存储信息转换为其他进制。此外,上式中的预设转换系数和/或预设初始值可以根据需要而改变,在此不作限制。
例如,当把二进制的待存储信息“1001101010”转换为十进制时,预设转换系数为a=2时,具体过程如下:
x 1=2x 0+b 1=3,
x 2=2x 1+b 2=6,
x 3=2x 2+b 3=12,
x 4=2x 3+b 4=25,
x 5=2x 4+b 5=51,
x 6=2x 5+b 6=102,
x 7=2x 6+b 7=205,
x 8=2x 7+b 8=410,
x 9=2x 8+b 9=821,
x 10=2x 9+b 10=1642。
也就是说,采用如上迭代计算的方式,二进制的待存储信息“1001101010”被转 换为十进制的“1642”。然后,可以利用如上文所述的方法来确定与“1642”中的每个位组相应的一个或多个分子模块,在此不再赘述。
另外,在对所存储的十进制信息进行还原时,可以根据与转换方式相应的还原方式来实现。例如,基于上述转换方式,在对“1642”进行还原时,可以按照如下过程来进行:
(x 9,b 10)=([x 10/a],x 10mod a)=(821,0),
(x 8,b 9)=([x 9/a],x 9mod a)=(410,1),
(x 7,b 8)=([x 8/a],x 8mod a)=(205,0),
(x 6,b 7)=([x 7/a],x 7mod a)=(102,1),
(x 5,b 6)=([x 6/a],x 6mod a)=(51,0),
(x 4,b 5)=([x 5/a],x 5mod a)=(25,1),
(x 3,b 4)=([x 4/a],x 4mod a)=(12,1),
(x 2,b 3)=([x 3/a],x 3mod a)=(6,0),
(x 1,b 2)=([x 2/a],x 2mod a)=(3,0),
(x 0,b 1)=([x 1/a],x 1mod a)=(1,1),
最后得到所还原的二进制信息为“1001101010”。
可以理解的是,在其他一些实施例中,也可以采用其他的方式来进行进制之间的转换,只要转换前后的待存储信息是一一对应的即可,在此不作限制。此外,进制的转换并不限于在二进制和十进制之间,而是可以根据需要确定转换前后的进制。
在本公开的另一示例性实施例中,如图5所示,用于在分子中存储信息的方法可以包括:
步骤S221,根据待存储信息中每种第一内容的分布情况,确定一个或多个目标位组。
在一具体示例中,根据待存储信息中每种第一内容的分布情况,确定一个或多个目标位组可以包括:统计待存储信息中每种第一内容的出现频率,并确定具有最高出现频率的一种最高频内容;以及将取值不是最高频内容的位组确定为目标位组。
采用这种方式,可以尽可能地将具有出现频率较小的第一内容的位组作为目标位组,并在后续步骤中用相应的分子模块来表示这些目标位组,从而节约了存储信息过程中所消耗的分子模块,也有助于提高将待存储信息写入到分子中的速度,从而降低分子存储的成本。需要注意的是,如果在待存储信息中存在两种不同的第一内容,它 们的出现频率都是最高的,那么选择具有其中仅一种第一内容的位组作为被缺省的位组(即,不对应于任何分子模块),而将具有剩下的第一内容的位组以及其他具有较低出现频率的第一内容的位组作为目标位组,并在后续步骤中用相应的分子模块来表示这些目标位组。
返回图5,用于在分子中存储信息的方法还可以包括:
步骤S222,确定与一个或多个目标位组中的每个目标位组相应的分子模块,其中,分子模块包括第三分子模块,且第三分子模块被配置为表示相应的目标位组的第一地址。
在一些实施例中,第三分子模块可以由一个或多个分子模块组成。例如,在一具体示例中,可以将每个第一地址视为一个“待存储信息”,并基于如图1中所述的方法来确定与这个第一地址相应的一个或多个分子模块,并将这一个或多个分子模块的组合确定为第三分子模块。
具体而言,用来表示目标位组的第一地址的第三分子模块可以包括一个或多个第一子分子模块,确定与一个或多个目标位组中的每个目标位组相应的分子模块可以包括:将目标位组的第一地址划分为一个或多个地址位组,每个地址位组在目标位组的第一地址中的位置由第二地址来表示,每个地址位组的取值由第二内容来表示,且每个地址位组具有一个或多个位;确定与一个或多个地址位组中的至少一个地址位组相应的子分子模块,其中,子分子模块包括第一子分子模块,且第一子分子模块被配置为表示相应的地址位组的第二地址和第二内容两者;以及根据所确定的子分子模块的组合来确定第三分子模块。当把一个第一地址视为一个“待存储信息”时,第一子分子模块可以被认为是相当于图1所示的实施例中的“第一分子模块”。另外,可以理解的是,在表示第一地址时,也可以基于第一地址中不同的地址位组之间的预设关系来确定相应的分子模块,即上文所述的各种“第二分子模块”也可以用来表示第一地址。
在一具体示例中,假设待存储信息为图6(a)中所示,可以选择具有出现频率最小的第一内容“1”的位组(位)作为目标位组,并对目标位组的第一地址进行保存。在这里,需要保存的第一地址包括“4”、“5371”和“10 9”。如图6(b)所示,可以利用图2(b)中所示的各种分子模块来表示这三个地址,形成三条相应的分子模块链。并且,由于仅存在两种不同的第一内容,只要确定了其中一种第一内容的位组的第一地址,就可以确定另一种第一内容的位的第一地址,因此可以不设置与任何一种 第一内容相应的分子模块。
此外,在一些实施例中,如果在待存储信息中“0”和“1”的出现频率均为50%,那么可以将具有第一内容为“0”的位组作为目标位组,并保存其第一地址。或者,也可以将具有第一内容为“1”的位组作为目标位组,并对其第一地址进行保存。
可以理解的是,如果在待存储信息中“0”和“1”的出现频率均为50%,那么基于第一内容为“0”和“1”之一来确定目标位组,并存储目标位组的第一地址所节省的分子模块的数量将是有限的。虽然“0”和“1”的出现频率相同,但是考虑到“0”和“1”的各种组合的出现频率同时相同的可能性较低,因此可以考虑使每个位组包含两个或更多个位,以找出其中出现频率较低的位组,从而尽可能减少所需的分子模块的数量。
例如,在二进制的待存储信息“100110001110”中,“0”和“1”的出现频率相同均为50%,但是位组“10”、位组“01”、位组“00”和位组“11”的出现频率并不都相同,而是分别为50%、16.67%、16.67%和16.67%。这时,可以将第一内容为“01”、“00”和“11”的位组确定为目标位组,并对这些目标位组的第一地址进行存储。同时,由于存在共四种不同的第一内容,因此还需要设置与至少三种第一内容相应的分子模块,以区分不同的第一内容。这里,分子模块还可以包括第四分子模块,且第四分子模块可以被配置为表示相应的目标位组的第一内容。例如,可以在表示第一地址的分子模块的前端、中端和末端中的至少一处分别连接表示第一内容“01”、“00”和“11”的第四分子模块。
这样,通过将待存储信息划分为多个位组,统计各个位组的出现频率以确定目标位组,并确定与目标位组相应的分子模块,可以进一步减少分子模块的消耗量,提高待存储信息写入到分子中的速度,并降低成本。其中,待存储信息中位组的具体划分方式,可以根据待存储信息的特点等因素来确定,以尽可能减少所需的分子模块。
此外,在一些实施例中,当确定了目标位组之后,可以对目标位组的第一地址进行一些转换,以减小所需表示的第一地址的最大值。例如,对于共16位的待存储信息“1001110000110110”,其中从左到右取值为“1”的位的第一地址分别为“0”、“3”、“4”、“5”、“10”、“11”、“13”、“14”,16位的待存储信息的中间地址为“16/2=8”,那么可以将上述第一地址序列改写为“0”、“3”、“4”、“5”、“6”、“5”、“3”、“2”,即对于小于中间地址“8”的第一地址,保持其值不变,而对于大于中间地址“8”的第一地址,将其取值转化为位数减去该第一地址的差值,这样, 转换后的第一地址的最大值为8,从而可以减少用来表示所有可能的第一地址所需的分子模块的数量。进一步地,可以采用循环切分的思想,对第一地址序列A:“0”、“3”、“4”、“5”和第一地址序列B:“10”、“11”、“13”、“14”分别进行如上的类似操作,使得可能的最大第一地址取值进一步转换为“16/4=4”,转换后可得共四个第一地址序列,即A1:“0”、“3”、“4”,A2:“8-5=3”,B1:“8-6=2”、“8-5=3”和B2:“3”、“2”。
进一步地,在一些实施例中,确定与一个或多个地址位组中的至少一个地址位组相应的子分子模块可以包括:确定一个或多个地址位组中的第二地址位组与第一地址位组之间是否满足预设关系,其中,第二地址位组的第二地址不同于第一地址位组的第二地址;以及在第二地址位组与第一地址位组之间满足预设关系的情况下,确定与第二地址位组相应的子分子模块,其中,子分子模块包括第二子分子模块,且第二子分子模块被配置为表示相应的第二地址位组与第一地址位组之间的预设关系。
在一些实施例中,如上文所述,如果将一个第一地址视为一个“待存储信息”,那么这里的“第二子分子模块”相当于上文中所述的“第二分子模块”。
此外,在一些实施例中,第二子分子模块可以包括行程增量模块,其中,与第六预设数目a 6相应的行程增量模块被配置为表示第二位组的第二地址位组与第一位组的第一地址位组之间满足以下预设关系:第一地址位组与a 6之和为第二地址位组,且第二位组的第一内容与第一位组的第一内容相同。
在一具体示例中,图7(a)示出了各种行程增量模块的示意图,其中第一列表示第六预设数目,第二列表示第二位组相对于第一位组的增量,第三列表示第三位组相对于第二位组的增量,第四列表示第四位组相对于第三位组的增量。如图7(b)所示,假设待存储信息为“0110010001”,确定将第一内容为“1”的位组作为目标位组,那么第一个目标位组的第一地址为“1”,第二个目标位组的第一地址是在第一个目标位组的第一地址的基础上加“1”,第三个目标位组的第一地址是在第二个目标位组的第一地址的基础上加“3”,且第四个目标位组的第一地址是在第三个目标位组的第一地址的基础上加“4”,因此可以利用表示第一个目标位组的分子模块、图7(a)中表示第一地址增量为“1”的第二个目标位组的分子模块、表示第一地址增量为“3”的第三个目标位组的分子模块和表示第一地址增量为“4”的第四个目标位组的分子模块的组合来表示待存储信息“0110010001”,如图7(b)所示。
可以理解的是,本文所述的各种分子模块可以组合使用,如图7(c)中所示。或 者,也可以根据需要用不同的分子模块来表示同一段待存储信息,如图3(b)中所示。
在一些实施例中,还可以结合至少一个目标位组的第一地址以及对待存储信息的进制转换来表示相应的待存储信息。其中,确定与一个或多个目标位组中的每个目标位组相应的分子模块可以包括:将至少部分待存储信息从第一进制转换为第二进制;将转换后的至少部分待存储信息划分为一个或多个位组;以及确定与转换后所得的一个或多个位组中的至少一个位组相应的分子模块。
在一具体示例中,如图8(a)和图8(b)所示,假设待存储信息的一部分为“1001101010”(从第一地址为100至109)。在图8(a)所示的一种存储方法中,可以分别用5个分子模块链来表示待存储信息中的具有第一内容为“1”的位的第一地址“100”、“103”、“104”、“106”和“108”。而在图8(b)所示的一种存储方法中,可以首先将这部分待存储信息转换为十进制,然后存储这部分待存储信息的起始位置(第一地址)“100”以及转换后所得的十进制数,以减少所需的分子模块。
进一步地,在一些实施例中,对于具有较多个位组(位)的待存储信息,还可以将其划分为若干个子信息。对于每个子信息,可以采用如上所述的方法来确定相应的分子模块,或者说,可以将每个子信息视为一个“待存储信息”,并采用如上所述的方式确定与这个“待存储信息”相应的分子模块。进一步地,可以另外添加特定的分子模块来表示每个子信息在整个待存储信息中的分子地址,以区分不同的子信息。例如,可以用1024个分子地址来将1TB的待存储信息划分为每个为1GB的多个子信息,每个子信息可以利用如上文所述的分子模块(在一具体示例中,例如图2(b)中所示的分子模块)来表示,再与所添加的用于表示每个子信息的分子地址的分子模块相组合,从而确定与整个待存储信息相应的分子。
在一些实施例中,还可以设置参考编码,例如待存储信息的第1001位、第1002位和第1003位可以以第1000位为参考,并被分别表示为第1位、第2位和第3位。这样,在利用分子模块进行存储的情况下,可以将表示参考编码“1000”的分子模块分别与代表第1位、第2位和第3位的分子模块进行组合,以表示相应的待存储信息,从而可以进一步减少分子模块的使用量,高写入速度,并降低成本。
返回图1和图5,用于在分子中存储信息的方法还可以包括:
步骤S300,基于所确定的分子模块生成组合物,以使组合物对应于所述待存储信息。
在一些实施例中,可以直接获取所确定的分子模块,并按预设顺序来组合所确定 的分子模块。在另一些实施例中,考虑到分子模块可以由更基本的单元模块合成(例如,作为分子模块的DNA片段可以由一个或多个作为单元模块的核苷酸合成),且单元模块本身的种类通常可以更少,且这种单元模块的获取、运输和保存等可能更加方便,因此也可以获取与所确定的各种分子模块对应的单元模块,而不是直接获取分子模块本身,并且从单元模块开始进行合成,以生成对应于待存储信息的组合物。其中,所确定的分子模块在组合物中的相对位置可以与相应的位组在待存储信息中的相对位置一致。
在本公开的实施例中,分子模块可以包括脱氧核糖核酸(DNA)、核糖核酸(RNA)、非天然核苷酸、经修饰的核苷酸、人工合成核苷酸、肽、有机聚合物、有机小分子、碳纳米材料、无机物和间隔设置的分子片段中的至少一者。在存储信息时,涉及不同分子模块的组合,这些分子模块之间可以以共价键、离子键、氢键、分子间作用力、疏水作用力、碱基互补配对等作用方式被组合在一起。
在上述分子中,DNA(脱氧核糖核酸)分子的性质较为适合作为分子存储的分子模块。首先,DNA分子的存储密度理论上可以达到传统存储介质的10 6至10 7倍以上;其次,DNA分子具有非常严格的碱基配对原则;再次,DNA分子还非常稳定,在干燥低温的条件下DNA分子可保存千年以上。
由此,可以优选地使用DNA分子来存储信息以数量级地降低数据存储运行和维护的费用。另外,在碳排放和能耗、数据安全、便携性等方面,DNA存储相比于传统的存储方式也有着非常大的优势。
在一些实施例中,可以采用分子模块的序列分布、序列长度、二级结构、结晶或无定型性质和形貌形态中的至少一者来区分。例如,可以用DNA、RNA、肽、有机聚合物的不同序列、不同长度或不同二级结构来表示不同内容的不同取值。此外,也可以用DNA、RNA、肽、有机聚合物、有机小分子、碳纳米材料、无机物的不同的化学形式、物理性质、结晶或无定型性质以及形貌形态来表示不同内容的不同取值。
进一步地,对分子模块进行组合所得的组合物可以是混合物或化合物。例如,组合物可以包括多种不同的DNA链,这些DNA链可以分别表示待存储信息中的一个或多个待存储信息片段,它们混合在一起表示完整的待存储信息。或者,也可以将表示各种待存储信息片段的DNA链进一步合成为更长的DNA链,以化合物的形式来表示完整的待存储信息。又或者,可以从更基本的核苷酸开始进行合成,从而产生与待存储信息对应的DNA链。
应理解的是,为了使不同的分子模块能够按预设顺序彼此连接,在一些实施例中,可以在选取分子模块时,选择具有相应的端接部的分子模块,即作为端接部的分子片段为相应的分子模块的一部分,以实现不同分子模块的按顺序的连接。
在另一些实施例中,按预设顺序组合所确定的分子模块,以使组合物对应于待存储信息可以包括:在所确定的分子模块的连接端处形成与预设顺序相应的端接部;以及混合形成有相应的端接部的分子模块以产生对应于待存储信息的组合物。也就是说,作为端接部的分子片段在分子模块的确定之后被添加到相应的分子模块上。
例如,在组合过程中,可以在分子模块的尾部添加不同的端接部,以使其能够分别与其他分子模块相连,以形成正确的分子链。
在一具体示例中,可以利用DNA单链或双链来作为分子模块。DNA由碱基、脱氧核糖和磷酸构成,其中碱基有腺嘌呤(A)、鸟嘌呤(G)、胸腺嘧啶(T)和胞嘧啶(C)共4种。相应地,DNA分子模块的端接部可以包括黏性末端。
在组装各种DNA时,如图9所示,可以使用连接酶来按预设顺序组合多条DNA链。或者,如图10所示,可以采用设置在DNA链的端部的接头(linker)在连接酶的作用下来按顺序组合多条DNA链。又或者,如图11和图12所示,可以采用聚合酶链式反应(PCR)来按预设顺序组合所确定的DNA。在图11所示的PCR方法中,以所确定的多条DNA链作为模版,并对包含了要连接的两段DNA链的连接端处的相应序列的DNA链进行扩增。在图12所示的PCR方法中,可以直接扩增要连接的DNA链。
在另一具体示例中,可以利用RNA来作为分子模块。其中,RNA由磷酸、核糖和碱基构成,RNA的碱基主要包括A(腺嘌呤)、G(鸟嘌呤)、C(胞嘧啶)、U(尿嘧啶)这4种。相应地,RNA分子模块的端接部可以包括对应的官能基团。
如图13所示,可以采用设置在RNA链的端部的接头序列和DNA的linker序列在连接酶的作用下来按预设顺序组合所确定的多条RNA链。
在又一具体示例中,可以利用肽来作为分子模块。一个氨基酸的氨基与另一个氨基酸的羧基可以缩合成肽,形成的酰胺基在蛋白质化学中称为肽键。氨基酸的分子最小,蛋白质最大,两个或以上的氨基酸脱水缩合形成若干个肽键从而组成一个肽链,多个肽链进行多级折叠就组成一个蛋白质分子。蛋白质有时也被称为“多肽”。相应地,肽分子模块的端接部可以包括对应的官能基团。可以在催化剂的作用下连接所确定的肽,以表示待存储信息的至少一部分。如图14所示,可以在催化剂的作用下连接所确定的肽,以表示待存储信息的至少一部分。
此外,如上文所描述的,可以利用分子模块的不同的二级结构来表示与不同目标内容对应的不同取值。如图15所示的两个具体示例中,具有不同二级结构的分子模块可以在连接酶的作用下被连接在一起。
在一些实施例中,如上文所述,也可以从用于组成分子模块的单元模块开始、而不是从分子模块开始进行合成。以组合物为DNA或RNA、相应地分子模块为DNA片段或RNA片段为例,在根据待存储信息确定了分子模块后,可以根据所确定的分子模块进一步确定组成这些分子模块所需的带有相应碱基的核苷酸,并获取这些核苷酸(例如,通过制备或购买等方式来获取相应的核苷酸),然后直接从核苷酸开始,采用例如化学法或酶促法等方法来合成表示待存储信息的组合物,如图16所示。在这个过程中,可能并未实际生成有各个单独的分子模块,而是直接从单元模块生成了最终的组合物。在化学法中,可以采用基于亚磷酰胺原理的柱式合成或芯片合成等,包括如光化学脱保护合成法、电化学合成法、微液滴法等,在酶促法中,可以采用相应的酶作为催化剂来促进合成的进行。
另外,为了方便读取所存储的信息,避免分子模块的组合的个别错误造成对读取信息的干扰,不同的分子模块之间的编辑距离可以大于或等于预设距离阈值。编辑距离是指从一种分子模块转换到另一种分子模块所需的操作步骤的数量。例如,当分子模块为包括10个碱基的DNA链时,分子模块“ATCGTAGCCA”与“TTCGTAGCCA”的编辑距离为1,分子模块“ATCGTAGCCA”与“TAGCATCGGT”的编辑距离为10。为了方便读取,在设计分子模块时,就可以仅选取两两之间的编辑距离大于或等于预设距离阈值的多个分子模块。
这样,在读取信息的过程中,即使分子模块中的个别碱基或其它片段出现错误,只要能够确定编辑距离小于预设距离阈值,仍然可以将读取到的该分子模块对应到某一具体的编码上,从而改善分子存储的容错性。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于装置实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
图17是根据本公开一示例性实施例的用于在分子中存储信息的设备的示意图。该设备900可以包括存储器901以及耦接至存储器901的处理器902,处理器902被配置为基于存储在存储器901中的指令,执行如上文所述的用于在分子中存储信息的 方法。
存储器901例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如可以存储有操作系统、应用程序、引导装载程序(Boot Loader)以及其他程序等。
用于在分子中存储信息的设备900还可以包括输入输出接口903、网络接口904、存储接口905等。这些接口903、904、905之间、以及存储器901与处理器902之间例如可以通过总线906连接。输入输出接口903为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口904为各种联网设备提供连接接口。存储接口905为SD卡、U盘等外置存储设备提供连接接口。
图18是根据本公开一示例性实施例的用于在分子中存储信息的系统的示意图。该系统可以包括获取单元810、编码单元820和写入器单元830。其中,获取单元810可以被配置为获取待存储信息,其中,待存储信息具有一个或多个位组,每个位组在待存储信息中的位置由第一地址来表示,每个位组的取值由第一内容来表示,且每个位组具有一个或多个位。在一些实施例中,编码单元820可以被配置为确定与一个或多个位组中的至少一个位组相应的分子模块,其中,分子模块包括第一分子模块,且第一分子模块被配置为表示相应的位组的第一地址和第一内容两者。在另一些实施例中,编码单元820可以被配置为根据待存储信息中每种第一内容的分布情况,确定一个或多个目标位组;以及确定与一个或多个目标位组中的每个目标位组相应的分子模块,其中,分子模块包括第三分子模块,且第三分子模块被配置为表示相应的目标位组的第一地址。如图18所示,编码单元820还可以包括处理器821和存储器822,以实现相应的编码。写入器单元830可以被配置为基于所确定的分子模块生成组合物,以使组合物对应于待存储信息。
本公开实施例还提供了一种计算机可读存储介质,其上存储有指令,该指令被处理器执行时,实现如上所述的用于在分子中存储信息的方法。
类似地,本公开实施例中的计算机可读存储介质可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。应注意,本文描述的计算机可读存储介质旨在包括但不限于这些和任意其它适合类型的存储器。
本公开实施例还提供了一种计算机程序产品,包括指令,该计算机程序指令被处理器执行时实现如上所述的用于在分子中存储信息的的方法。
指令可以是将由一个或多个处理器直接地执行的任何指令集,诸如机器代码,或者间接地执行的任何指令集,诸如脚本。本文中的术语“指令”、“应用”、“过 程”、“步骤”和“程序”在本文中可以互换使用。指令可以存储为目标代码格式以便由一个或多个处理器直接处理,或者存储为任何其他计算机语言,包括按需解释或提前编译的独立源代码模块的脚本或集合。本文其他部分更加详细地解释了指令的功能、方法和例程。
本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解,可由计算机程序指令实现流程图中一个流程或多个流程和/或方框图中一个方框或多个方框中指定的功能。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本领域内的技术人员应当明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
至此,已经详细描述了本公开的各实施例。为了避免遮蔽本公开的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。
虽然已经通过示例对本公开的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本公开的范围。本领域的技术人员应该理解,可在不脱离本公开的范围和精神的情况下,对以上实施例进 行修改或者对部分技术特征进行等同替换。本公开的范围由所附权利要求来限定。

Claims (44)

  1. 一种用于在分子中存储信息的方法,包括:
    获取待存储信息,其中,所述待存储信息具有一个或多个位组,每个位组在所述待存储信息中的位置由第一地址来表示,每个位组的取值由第一内容来表示,且每个位组具有一个或多个位;
    确定与所述一个或多个位组中的至少一个位组相应的分子模块,其中,分子模块包括第一分子模块,且第一分子模块被配置为表示相应的位组的第一地址和第一内容两者;以及
    基于所确定的分子模块生成组合物,以使所述组合物对应于所述待存储信息。
  2. 根据权利要求1所述的方法,其中,获取待存储信息包括:
    对初始待存储信息进行分隔,以产生一段或多段待存储信息,其中,每段待存储信息的位数小于所述初始待存储信息的位数,且每段待存储信息的位数彼此相等或不等;或
    对多段初始待存储信息进行合并以产生待存储信息,其中,所述待存储信息的位数大于每段初始待存储信息的位数。
  3. 根据权利要求1所述的方法,其中,确定与所述一个或多个位组中的至少一个位组相应的分子模块包括:
    确定与所述一个或多个位组中的每个位组相应的第一分子模块。
  4. 根据权利要求1所述的方法,其中,所述待存储信息具有多个位组,且所述多个位组的取值包含至少两种第一内容,
    确定与所述一个或多个位组中的至少一个位组相应的分子模块包括:
    确定取值为一种第一内容的位组不对应于任何分子模块,并确定与取值为其他第一内容的其他位组中的至少一个位组相应的第一分子模块。
  5. 根据权利要求1所述的方法,其中,确定与所述一个或多个位组中的至少一个位组相应的分子模块包括:
    确定所述一个或多个位组中的第二位组与第一位组之间是否满足预设关系,其中,第二位组的第一地址不同于第一位组的第一地址;以及
    在第二位组与第一位组之间满足预设关系的情况下,确定与第二位组相应的分子模块,其中,分子模块包括第二分子模块,且第二分子模块被配置为表示相应的第二位组与第一位组之间的预设关系。
  6. 根据权利要求5所述的方法,其中,第二分子模块包括以下中的至少一者:
    行程递增模块,其中,与第一预设数目a 1相应的行程递增模块被配置为表示第二位组与第一位组之间满足以下预设关系:紧邻第一位组之后存在连续的a 1个第二位组,且每个第二位组的第一内容与第一位组的第一内容相同,a 1为正整数;
    行程倍数模块,其中,与第二预设数目a 2相应的行程倍数模块被配置为表示第二位组与第一位组之间满足以下预设关系:紧邻第一位组之后存在连续的(a 2-1)个第二位组,且每个第二位组的第一内容与第一位组的第一内容相同,a 2为大于1的正整数;
    行程翻转模块,其中,与第三预设数目a 3相应的行程翻转模块被配置为表示第二位组与第一位组之间满足以下预设关系:第一位组和第二位组中的每个位仅具有0或1两种取值,第二位组仅具有取值不同的两个位,紧邻第一位组之后存在连续的a 3个第二位组,且第二位组的首位与第一位组的末位的取值不同,a 3为正整数;
    行程重复模块,其中,行程重复模块被配置为表示第二位组与第一位组之间满足以下预设关系:第二位组的第一内容与第一位组的第一内容相同;
    位增模块,其中,与第四预设数目a 4相应的位增模块被配置为表示第二位组与第一位组之间满足以下预设关系:第二位组仅具有一个位,紧邻第一位组之后存在连续的a 4个第二位组,且第二位组的取值与第一位组的末位的取值相同,a 4为正整数;以及
    位减模块,其中,与第五预设数目a 5相应的位减模块被配置为表示第二位组与第一位组之间满足以下预设关系:第一位组的从后往前的连续a 5个位被确定为第二位组,且第一位组中的第二位组被去除,a 5为正整数且a 5小于或等于第一位组的总位数。
  7. 根据权利要求1所述的方法,其中,确定与所述一个或多个位组中的至少一个位组相应的分子模块包括:
    将至少部分待存储信息从第一进制转换为第二进制;
    将转换后的至少部分待存储信息划分为一个或多个位组;以及
    确定与转换后所得的一个或多个位组中的至少一个位组相应的分子模块。
  8. 根据权利要求7所述的方法,其中,第一进制为二进制,第二进制为十进制,将至少部分待存储信息从第一进制转换为第二进制包括:
    根据x i+1=2x i+b i+1进行迭代计算,以确定十进制的所述至少部分待存储信息,其中,x 0为预设初始值,b i+1为二进制的所述至少部分待存储信息中从左到右i+1位的取值,i为大于或等于0的整数,且当i+1与二进制的所述至少部分待存储信息的总位数相等时,相应的x i+1为十进制的所述至少部分待存储信息。
  9. 根据权利要求7所述的方法,其中,第一进制为二进制,第二进制为十进制,将至少部分待存储信息从第一进制转换为第二进制包括:
    根据 计算十进制的所述至少部分待存储信息,其中,a n为二进制的所述至少部分待存储信息中第n+1位上的取值,i+1为二进制的所述至少部分待存储信息的总位数。
  10. 根据权利要求7所述的方法,其中,第一进制为二进制,第二进制为二进制的整数倍进制,将至少部分待存储信息从第一进制转换为第二进制包括:
    根据所述第二进制和所述至少部分待存储信息的总位数确定是否需要在预设位置处对所述至少部分待存储信息进行补位;
    若是,则根据所述第二进制对所述至少部分待存储信息进行补位,以获得目标待存储信息;
    若否,则直接将所述至少部分待存储信息作为目标待存储信息;
    根据所述第二进制将二进制的至少部分待存储信息划分为一段或多段子信息,其中,每段子信息的位数为所述第二进制关于所述二进制的整数倍数;
    分别将每段二进制的子信息转换为所述第二进制的相应值,以产生第二进制的所述至少部分待存储信息。
  11. 根据权利要求1所述的方法,其中,所确定的分子模块在所述组合物中的相对位置与相应的位组在所述待存储信息中的相对位置一致。
  12. 根据权利要求1所述的方法,其中,基于所确定的分子模块生成组合物,以使所述组合物对应于所述待存储信息包括:
    获取与所确定的分子模块对应的单元模块,其中,每个分子模块由一个或多个单元模块合成;以及
    合成所获取的单元模块以生成对应于所述待存储信息的所述组合物。
  13. 根据权利要求12所述的方法,其中,所确定的分子模块包括DNA片段和RNA片段中的至少一者,单元模块包括核苷酸,
    合成所获取的单元模块以生成对应于所述待存储信息的所述组合物包括:
    直接从所获取的核苷酸开始合成所述组合物,其中,所述组合物的至少部分片段与所确定的分子模块一致。
  14. 根据权利要求1所述的方法,其中,基于所确定的分子模块生成组合物,以使所述组合物对应于所述待存储信息包括:
    在所确定的分子模块的连接端处形成与预设顺序相应的端接部;以及
    混合形成有相应的端接部的分子模块以产生对应于所述待存储信息的组合物。
  15. 根据权利要求14所述的方法,其中,作为端接部的分子片段为相应的分子模块的一部分;或者
    作为端接部的分子片段在分子模块确定之后被添加到相应的分子模块上。
  16. 根据权利要求14所述的方法,其中,混合形成有相应的端接部的分子模块以产生对应于所述待存储信息的组合物包括以下中的至少一者:
    采用连接酶来按所述预设顺序组合所确定的分子模块;
    采用设置在分子模块的端部的接头来按所述预设顺序组合所确定的分子模块;以及
    采用聚合酶链式反应来按所述预设顺序组合所确定的分子模块。
  17. 根据权利要求1所述的方法,其中,分子模块包括脱氧核糖核酸、核糖核酸、 非天然核苷酸、经修饰的核苷酸、人工合成核苷酸、肽、有机聚合物、有机小分子、碳纳米材料、无机物和间隔设置的分子片段中的至少一者。
  18. 根据权利要求1所述的方法,其中,采用分子模块的序列分布、序列长度、二级结构、结晶或无定型性质和形貌形态中的至少一者来区分各种分子模块。
  19. 根据权利要求1所述的方法,其中,不同的分子模块之间的编辑距离大于或等于预设距离阈值。
  20. 一种用于在分子中存储信息的方法,包括:
    获取待存储信息,其中,所述待存储信息具有一个或多个位组,每个位组在所述待存储信息中的位置由第一地址来表示,每个位组的取值由第一内容来表示,且每个位组具有一个或多个位;
    根据所述待存储信息中每种第一内容的分布情况,确定一个或多个目标位组;
    确定与所述一个或多个目标位组中的每个目标位组相应的分子模块,其中,分子模块包括第三分子模块,且第三分子模块被配置为表示相应的目标位组的第一地址;以及
    基于所确定的分子模块生成组合物,以使所述组合物对应于所述待存储信息。
  21. 根据权利要求20所述的方法,其中,获取待存储信息包括:
    对初始待存储信息进行分隔,以产生一段或多段待存储信息,其中,每段待存储信息的位数小于所述初始待存储信息的位数,且每段待存储信息的位数彼此相等或不等;或
    对多段初始待存储信息进行合并以产生待存储信息,其中,所述待存储信息的位数大于每段初始待存储信息的位数。
  22. 根据权利要求20所述的方法,其中,根据所述待存储信息中每种第一内容的分布情况,确定一个或多个目标位组包括:
    统计所述待存储信息中每种第一内容的出现频率,并确定具有最高出现频率的一种最高频内容;以及
    将取值不是所述最高频内容的位组确定为目标位组。
  23. 根据权利要求20所述的方法,其中,第三分子模块包括一个或多个子分子模块,
    确定与所述一个或多个目标位组中的每个目标位组相应的分子模块包括:
    将目标位组的第一地址划分为一个或多个地址位组,每个地址位组在所述目标位组的第一地址中的位置由第二地址来表示,每个地址位组的取值由第二内容来表示,且每个地址位组具有一个或多个位;
    确定与所述一个或多个地址位组中的至少一个地址位组相应的子分子模块,其中,子分子模块包括第一子分子模块,且第一子分子模块被配置为表示相应的地址位组的第二地址和第二内容两者;以及
    基于所确定的子分子模块的组合来确定第三分子模块。
  24. 根据权利要求23所述的方法,其中,确定与所述一个或多个地址位组中的至少一个地址位组相应的子分子模块包括:
    确定所述一个或多个地址位组中的第二地址位组与第一地址位组之间是否满足预设关系,其中,第二地址位组的第二地址不同于第一地址位组的第二地址;以及
    在第二地址位组与第一地址位组之间满足预设关系的情况下,确定与第二地址位组相应的子分子模块,其中,子分子模块包括第二子分子模块,且第二子分子模块被配置为表示相应的第二地址位组与第一地址位组之间的预设关系。
  25. 根据权利要求24所述的方法,其中,第二子分子模块包括:
    行程增量模块,其中,与第六预设数目a 6相应的行程增量模块被配置为表示第二位组的第二地址位组与第一位组的第一地址位组之间满足以下预设关系:第一地址位组与a 6之和为第二地址位组,且第二位组的第一内容与第一位组的第一内容相同。
  26. 根据权利要求20所述的方法,其中,分子模块还包括第四分子模块,且第四分子模块被配置为表示相应的目标位组的第一内容。
  27. 根据权利要求20所述的方法,其中,确定与所述一个或多个目标位组中的每 个目标位组相应的分子模块包括:
    将至少部分待存储信息从第一进制转换为第二进制;
    将转换后的至少部分待存储信息划分为一个或多个位组;以及
    确定与转换后所得的一个或多个位组中的至少一个位组相应的分子模块。
  28. 根据权利要求27所述的方法,其中,第一进制为二进制,第二进制为十进制,将至少部分待存储信息从第一进制转换为第二进制包括:
    根据x i+1=2x i+b i+1进行迭代计算,以确定十进制的所述至少部分待存储信息,其中,x 0为预设初始值,b i+1为二进制的所述至少部分待存储信息中从左到右i+1位的取值,i为大于或等于0的整数,且当i+1与二进制的所述至少部分待存储信息的总位数相等时,相应的x i+1为十进制的所述至少部分待存储信息。
  29. 根据权利要求27所述的方法,其中,第一进制为二进制,第二进制为十进制,将至少部分待存储信息从第一进制转换为第二进制包括:
    根据 计算十进制的所述至少部分待存储信息,其中,a n为二进制的所述至少部分待存储信息中第n+1位上的取值,i+1为二进制的所述至少部分待存储信息的总位数。
  30. 根据权利要求27所述的方法,其中,第一进制为二进制,第二进制为二进制的整数倍进制,将至少部分待存储信息从第一进制转换为第二进制包括:
    根据所述第二进制和所述至少部分待存储信息的总位数确定是否需要在预设位置处对所述至少部分待存储信息进行补位;
    若是,则根据所述第二进制对所述至少部分待存储信息进行补位,以获得目标待存储信息;
    若否,则直接将所述至少部分待存储信息作为目标待存储信息;
    根据所述第二进制将二进制的至少部分待存储信息划分为一段或多段子信息,其中,每段子信息的位数为所述第二进制关于所述二进制的整数倍数;
    分别将每段二进制的子信息转换为所述第二进制的相应值,以产生第二进制的所述至少部分待存储信息。
  31. 根据权利要求20所述的方法,其中,所确定的分子模块在所述组合物中的相对位置与相应的位组在所述待存储信息中的相对位置一致。
  32. 根据权利要求20所述的方法,其中,基于所确定的分子模块生成组合物,以使所述组合物对应于所述待存储信息包括:
    获取与所确定的分子模块对应的单元模块,其中,每个分子模块由一个或多个单元模块合成;以及
    合成所获取的单元模块以生成对应于所述待存储信息的所述组合物。
  33. 根据权利要求32所述的方法,其中,所确定的分子模块包括DNA片段和RNA片段中的至少一者,单元模块包括核苷酸,
    合成所获取的单元模块以生成对应于所述待存储信息的所述组合物包括:
    直接从所获取的核苷酸开始合成所述组合物,其中,所述组合物的至少部分片段与所确定的分子模块一致。
  34. 根据权利要求20所述的方法,其中,基于所确定的分子模块生成组合物,以使所述组合物对应于所述待存储信息包括:
    在所确定的分子模块的连接端处形成与预设顺序相应的端接部;以及
    混合形成有相应的端接部的分子模块以产生对应于所述待存储信息的组合物。
  35. 根据权利要求34所述的方法,其中,作为端接部的分子片段为相应的分子模块的一部分;或者
    作为端接部的分子片段在分子模块确定之后被添加到相应的分子模块上。
  36. 根据权利要求34所述的方法,其中,混合形成有相应的端接部的分子模块以产生对应于所述待存储信息的组合物包括以下中的至少一者:
    采用连接酶来按所述预设顺序组合所确定的分子模块;
    采用设置在分子模块的端部的接头来按所述预设顺序组合所确定的分子模块;以及
    采用聚合酶链式反应来按所述预设顺序组合所确定的分子模块。
  37. 根据权利要求20所述的方法,其中,分子模块包括脱氧核糖核酸、核糖核酸、非天然核苷酸、经修饰的核苷酸、人工合成核苷酸、肽、有机聚合物、有机小分子、碳纳米材料、无机物和间隔设置的分子片段中的至少一者。
  38. 根据权利要求20所述的方法,其中,采用分子模块的序列分布、序列长度、二级结构、结晶或无定型性质和形貌形态中的至少一者来区分各种分子模块。
  39. 根据权利要求20所述的方法,其中,不同的分子模块之间的编辑距离大于或等于预设距离阈值。
  40. 一种用于在分子中存储信息的设备,包括:
    存储器,所述存储器上存储有指令;以及
    耦接至所述存储器的处理器,当所述指令被所述处理器执行时,实现根据权利要求1-39中任一项所述的方法。
  41. 一种用于在分子中存储信息的系统,包括:
    获取单元,被配置为获取待存储信息,其中,所述待存储信息具有一个或多个位组,每个位组在所述待存储信息中的位置由第一地址来表示,每个位组的取值由第一内容来表示,且每个位组具有一个或多个位;
    编码单元,被配置为确定与所述一个或多个位组中的至少一个位组相应的分子模块,其中,分子模块包括第一分子模块,且第一分子模块被配置为表示相应的位组的第一地址和第一内容两者;以及
    写入器单元,被配置为基于所确定的分子模块生成组合物,以使所述组合物对应于所述待存储信息。
  42. 一种用于在分子中存储信息的系统,包括:
    获取单元,被配置为获取待存储信息,其中,所述待存储信息具有一个或多个位组,每个位组在所述待存储信息中的位置由第一地址来表示,每个位组的取值由第一内容来表示,且每个位组具有一个或多个位;
    编码单元,被配置为根据所述待存储信息中每种第一内容的分布情况,确定一个或多个目标位组;和确定与所述一个或多个目标位组中的每个目标位组相应的分子模块,其中,分子模块包括第三分子模块,且第三分子模块被配置为表示相应的目标位组的第一地址;以及
    写入器单元,被配置为基于所确定的分子模块生成组合物,以使所述组合物对应于所述待存储信息。
  43. 一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述指令被处理器执行时,实现根据权利要求1-39中任一项所述的方法。
  44. 一种计算机程序产品,所述计算机程序产品包括指令,当所述指令被处理器执行时,实现根据权利要求1-39中任一项所述的方法。
CN202280064870.8A 2022-08-17 2022-09-20 用于在分子中存储信息的方法、设备和系统 Active CN118056206B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN202210988065.6A CN117669703A (zh) 2022-08-17 2022-08-17 用于在分子中存储信息的方法、设备和系统
CN2022109880656 2022-08-17
PCT/CN2022/119796 WO2024036689A1 (zh) 2022-08-17 2022-09-20 用于在分子中存储信息的方法、设备和系统

Publications (2)

Publication Number Publication Date
CN118056206A true CN118056206A (zh) 2024-05-17
CN118056206B CN118056206B (zh) 2024-09-13

Family

ID=89940490

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202210988065.6A Pending CN117669703A (zh) 2022-08-17 2022-08-17 用于在分子中存储信息的方法、设备和系统
CN202280064870.8A Active CN118056206B (zh) 2022-08-17 2022-09-20 用于在分子中存储信息的方法、设备和系统

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202210988065.6A Pending CN117669703A (zh) 2022-08-17 2022-08-17 用于在分子中存储信息的方法、设备和系统

Country Status (2)

Country Link
CN (2) CN117669703A (zh)
WO (1) WO2024036689A1 (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180121478A1 (en) * 2016-10-28 2018-05-03 Integrated Dna Technologies, Inc. DNA Data Storage Using Reusable Nucleic Acids
US20200063119A1 (en) * 2018-08-22 2020-02-27 Massachusetts Institute Of Technology In vitro dna writing for information storage
CN111443869A (zh) * 2020-03-24 2020-07-24 中国科学院长春应用化学研究所 一种文件存储方法、装置、设备及计算机可读存储介质
CN111858507A (zh) * 2020-06-16 2020-10-30 广州大学 基于dna的数据存储方法、解码方法、系统和装置
US20200357483A1 (en) * 2019-05-09 2020-11-12 Catalog Technologies, Inc. Data structures and operations for searching, computing, and indexing in dna-based data storage
CN112771215A (zh) * 2018-09-28 2021-05-07 哈佛学院院长等 使用分子混合物存储信息
CN113744804A (zh) * 2021-06-21 2021-12-03 深圳先进技术研究院 利用dna进行数据存储的方法、装置及存储设备
CN114356220A (zh) * 2021-12-10 2022-04-15 深圳先进技术研究院 基于dna存储的编码方法、电子设备及可读存储介质
CN114358293A (zh) * 2021-12-08 2022-04-15 三峡大学 基于生物分子的量子点计算机系统及其控制方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2947779A1 (en) * 2014-05-23 2015-11-25 Thomson Licensing Method and apparatus for storing information units in nucleic acid molecules and nucleic acid storage system
CN110569974B (zh) * 2018-06-06 2021-08-24 天津大学 可包含人造碱基的dna存储分层表示与交织编码方法
CN111489791B (zh) * 2020-04-07 2023-05-26 中国科学院重庆绿色智能技术研究院 固态纳米孔高密度编码dna数字存储读取方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180121478A1 (en) * 2016-10-28 2018-05-03 Integrated Dna Technologies, Inc. DNA Data Storage Using Reusable Nucleic Acids
US20200063119A1 (en) * 2018-08-22 2020-02-27 Massachusetts Institute Of Technology In vitro dna writing for information storage
CN112771215A (zh) * 2018-09-28 2021-05-07 哈佛学院院长等 使用分子混合物存储信息
US20200357483A1 (en) * 2019-05-09 2020-11-12 Catalog Technologies, Inc. Data structures and operations for searching, computing, and indexing in dna-based data storage
CN111443869A (zh) * 2020-03-24 2020-07-24 中国科学院长春应用化学研究所 一种文件存储方法、装置、设备及计算机可读存储介质
CN111858507A (zh) * 2020-06-16 2020-10-30 广州大学 基于dna的数据存储方法、解码方法、系统和装置
CN113744804A (zh) * 2021-06-21 2021-12-03 深圳先进技术研究院 利用dna进行数据存储的方法、装置及存储设备
CN114358293A (zh) * 2021-12-08 2022-04-15 三峡大学 基于生物分子的量子点计算机系统及其控制方法
CN114356220A (zh) * 2021-12-10 2022-04-15 深圳先进技术研究院 基于dna存储的编码方法、电子设备及可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
沈俊杰, 吕红兵: "DNA随机存储器的设计", 浙江大学学报(理学版), no. 05, 25 October 2005 (2005-10-25) *

Also Published As

Publication number Publication date
CN118056206B (zh) 2024-09-13
CN117669703A (zh) 2024-03-08
WO2024036689A1 (zh) 2024-02-22

Similar Documents

Publication Publication Date Title
JP7090148B2 (ja) Dnaベースのデータストレージ及びデータ取り出し
CN112711935B (zh) 编码方法、解码方法、装置及计算机可读存储介质
CN109830263B (zh) 一种基于寡核苷酸序列编码存储的dna存储方法
US9774351B2 (en) Method and apparatus for encoding information units in code word sequences avoiding reverse complementarity
WO2015176990A1 (en) Method and apparatus for storing information units in nucleic acid molecules and nucleic acid storage system
KR20170041730A (ko) 코드 생성 방법, 코드 생성 장치, 및 컴퓨터 판독가능 저장 매체
CN112288090B (zh) 存有数据信息的dna序列的处理方法及装置
US20210074380A1 (en) Reverse concatenation of error-correcting codes in dna data storage
Lippert Space-efficient whole genome comparisons with Burrows–Wheeler transforms
CN105760706A (zh) 一种二代测序数据的压缩方法
CN118056206B (zh) 用于在分子中存储信息的方法、设备和系统
CN115312129A (zh) 高通量测序背景下的基因数据压缩方法、装置及相关设备
Li et al. HL-DNA: A hybrid lossy/lossless encoding scheme to enhance DNA storage density and robustness for images
Pinho et al. A three-state model for DNA protein-coding regions
CN114678074B (zh) 一种隐藏寻址的dna存储编码设计方法
CN103797487A (zh) 使用生物信息学字符集和和映射的生物信息学字体的基因组/蛋白质组序列的表示、可视化,比较以及报告
Huo et al. CS2A: A compressed suffix array-based method for short read alignment
CN118412026A (zh) 用于在分子中存储信息的方法、设备和系统
KR102429200B1 (ko) Rsd 코드에 기반한 dna 코드 생성 방법
WO2022082573A1 (zh) 存有数据信息的dna序列的处理方法及装置
CN114822695B (zh) 用于dna存储的编码方法及编码装置
WO2023206023A1 (zh) 用于dna存储的编码方法及编码装置
Biswas et al. Extended nucleic acid memory as the future of data storage technology
WO2023272499A1 (zh) 编码方法、解码方法、装置、终端设备及可读存储介质
EP2985915A1 (en) Method for generating codes, device for generating code word sequences for nucleic acid storage channel modulation, and computer readable storage medium

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