一种DNA数据的存储方法和装置制造方法及图纸

技术编号:23471778 阅读:40 留言:0更新日期:2020-03-06 13:26
本申请提供一种DNA数据存储的方法和装置,可以实现将二进制数据转换为碱基序列,进而合成DNA分子进行存储。在当前的DNA编码的方法中,难以控制胞嘧啶和鸟嘌呤的比例,导致合成的DNA分子在合成或测序过程中可能发生碱基的删除、插入、替换以及丢失错误等问题。本申请所提供的DNA数据存储的方法,在将二进制数据转换成碱基序列时,能够在保证碱基的存储密度以及编码效率的前提下,控制胞嘧啶和鸟嘌呤的比例,从而提高所生成的有效碱基序列的比例。

A storage method and device of DNA data

【技术实现步骤摘要】
一种DNA数据的存储方法和装置
本专利技术涉及数据存储
,特别涉及一种DNA数据的存储方法和装置。
技术介绍
数据时代对于存储能力有着很高的需求,而现有存储介质普遍存在着占用空间大以及数据保存时间不长等缺陷。随着生物技术的发展,研究者发现可以使用脱氧核糖核酸(英文全称:DeoxyribonucleicAcid,简称:DNA)作为数据存储的媒介。且DNA作为存储介质具有存储量大以及保存时间长等优点,据研究统计,1克DNA能够存储大约2PB大小的数据,而且用DNA存储数据的保存时间可能长达数千年。DNA分子具有四种碱基,它们分别是:腺嘌呤A(Adenine)、胞嘧啶C(Cytosine)、鸟嘌呤G(Guanine)和胸腺嘧啶T(Thymine)。基于DNA的数据存储技术是利用上述四种碱基序列来表示二进制“0”和“1”组成的数据序列,这个过程被称为编码。而将碱基序列转换成二进制序列的过程,则称为解码。当二进制数据转换成碱基序列之后,通过DNA合称技术生成单链的DNA分子结构保存。生成的单链DNA分子可以通过DNA测序技术,检测出单链DNA分子中的四种碱基组成的序列,并通过解码机制得出最终的二进制数据流。然而,在上述过程中,对于DNA的合成和测序,DNA分子有可能发生碱基的删除、插入、替换以及丢失错误等问题,从而使得保存的数据出错或者丢失。当DNA分子中出现过长的连续相同碱基时,例如在一段碱基序列中连续出现多个鸟嘌呤,形成GGGGG,DNA分子中碱基的替换和删除的错误概率非常明显。目前DNA合成中连续相同碱基可以接受的长度为3。为了解决编码过程中连续相同碱基长度的问题,业界提出了循环编码算法,该算法主要思想是将二进制数据转换为三进制编码,再通过循环编码使得每两个相邻的碱基都不相同。然而循环编码算法可能会导致胞嘧啶和鸟嘌呤比例(简称:CG比例)过高的问题,从而导致保存在DNA中的数据出错或者丢失。
技术实现思路
本专利技术提供了一种DNA数据的存储方法和装置,在将二进制数据转换成碱基序列时,能够在保证碱基的存储密度以及编码效率的前提下,限制连续相同碱基长度以及控制CG比例,从而提高所生成的有效碱基序列的比例。第一方面,本申请提供一种DNA数据编码方法,该方法用于计算机装置,用于将二进制数据编码为DNA碱基序列,包括:获取待编码的二进制数据;获取编码块,该编码块包括至多N种编码因子,其中,N种编码因子中的第n种编码因子包括1个单映射碱基因子和n个双映射碱基因子,单映射碱基因子表示1个碱基对应1个比特位,其中,腺嘌呤和胸腺嘧啶对应不同的比特值,双映射碱基因子表示1个碱基对应两个比特位,其中每个碱基对应不同的比特值,编码块中双映射碱基因子的个数与所有碱基因子的个数的比值不超过预设的值,n为小于等于N的正整数;将二进制数据根据编码块中的单映射碱基因子与双映射碱基因子的顺序以及单映射碱基因子对应的比特值与双映射碱基因子对应的比特值进行编码。通过采用上述DNA数据编码方法,由于所使用的编码块中最大可能的CG比例不超过预设的值,当将待编码的二进制转换成DNA碱基序列后,该碱基序列所包含的CG比例也必然不超过预设值,因此可以控制DNA碱基序列中的CG比例,提高所生成的有效碱基序列的比例。在本申请的第一方面,一种可能的实现方式是,将二进制数据根据编码块中的单映射碱基因子与双映射碱基因子的顺序以及单映射碱基因子对应的比特值与双映射碱基因子对应的比特值进行编码,包括:根据编码块中的单映射碱基因子及双映射碱基因子顺序找到每个单映射碱基因子及每个双映射碱基因子在二进制数据中对应的比特值;根据每个双映射碱基因子对应的比特值,将双映射碱基因子对应的比特值转换为对应的碱基;根据每个单映射碱基因子对应的比特值,将单映射碱基因子对应的比特值转换为对应的碱基。通过采用上述方法,有利于提高编码的效率。在本申请的第一方面,另一种可能的实现方式是,单映射碱基因子表示的胞嘧啶和鸟嘌呤对应不同的比特值,根据每个单映射碱基因子对应的比特值,将单映射碱基因子对应的比特值转换为对应的碱基包括:将单映射碱基因子对应的比特值转换为腺嘌呤和胸腺嘧啶;当单映射碱基因子后面相邻的碱基是腺嘌呤或胸腺嘧啶,将单映射碱基因子对应比特值转换为胞嘧啶或鸟嘌呤。通过这种方法,可以在连续出现的相同碱基的个数不超过预设值的情况下,尽可能的减少胞嘧啶和鸟嘌呤,有利于控制CG比例,提高所生成的有效碱基序列的比例。在本申请的第一方面,另一种可能的实现方式是,根据每个单映射碱基因子对应的比特值,将单映射碱基因子对应的比特值转换为对应的碱基包括:在按照从前往后的顺序对二进制数据进行编码时,当单映射碱基因子的前面与该单映射碱基因子相邻连续出现N个双映射碱基因子时,将单映射碱基因子对应的比特值根据单比特碱基中枢映射关系进行转换,其中,在单比特碱基中枢映射关系中,单映射碱基因子对应的碱基根据单映射碱基因子对应的比特值及单映射碱基因子对应的碱基的前一个碱基和后一个碱基确定,且单映射碱基因子对应的碱基与前一个碱基和后一个碱基是不同的碱基。通过这种方法,可以进一步确保连续出现的相同碱基的个数不超过预设值,进而提高所生成的有效碱基序列的比例。在本申请的第一方面,另一种可能的实现方式是,获取编码块包括:调整至多N种编码因子中每种编码因子的数量以构成编码因子组合;计算编码因子组合中双映射碱基因子的个数与所有碱基因子个数的比例;当编码因子组合中双映射碱基因子的个数与所有碱基因子的个数的比例不超过预设值时,将该编码因子组合作为编码块;当编码因子组合中双映射碱基因子的个数与所有碱基因子的个数的比例超过预设值时,重新调整至多N种编码因子中每种编码因子的数量。通过这种做法,可以使得编码块中最大可能的CG比例小于预设的最大CG比例,进而提高所生成的有效碱基序列的比例。在本申请的第一方面,另一种可能的实现方式是,编码块对应的比特位的数量为8的倍数;将二进制数据根据编码块中的单映射碱基与双映射碱基的顺序以及单映射碱基对应的比特值与双映射碱基对应的比特值进行编码,包括:将二进制数据分成多个比特段,每个比特段所包含的比特位的数量是8的倍数。通过这种方法,可以使得同一字节的数据对应同一个编码块和比特段,从而提供编码的稳定性。在本申请的第一方面,另一种可能的实现方式是,将二进制数据根据编码块中的单映射碱基因子与双映射碱基因子的顺序以及单映射碱基因子对应的比特值与双映射碱基因子对应的比特值进行编码,还包括:将比特段根据编码块中的单映射碱基因子与双映射碱基因子的顺序以及单映射碱基因子对应的比特值与双映射碱基因子对应的比特值进行编码;当比特段未编码部分包含的比特位的数量小于编码块对应的比特位的数量时,将比特段未编码部分根据单映射碱基因子对应的比特值以及至多M种编码因子组成的编码因子组合编码成碱基序列,其中,至多M种编码因子中每一种编码因子包含的双映射碱基因子的个数与所有碱基因子的个数的比例不超过预设值。通过这种方法,使得本申请所提供的编码方法可以适应任何长度的待编码数据。第二方面,本申请提本文档来自技高网
...

【技术保护点】
1.一种脱氧核糖核酸DNA数据编码方法,其特征在于,所述方法用于计算机装置,用于将二进制数据编码为DNA碱基序列,包括:/n获取待编码的二进制数据;/n获取编码块,所述编码块包括至多N种编码因子,其中,所述N种编码因子中的第n种编码因子包括1个单映射碱基因子和n个双映射碱基因子,所述单映射碱基因子表示1个碱基对应1个比特位,其中,腺嘌呤和胸腺嘧啶对应不同的比特值,所述双映射碱基因子表示1个碱基对应两个比特位,其中每个碱基对应不同的比特值,所述编码块中双映射碱基因子的个数与所有碱基因子的个数的比值不超过预设的值,n为小于等于N的正整数;/n将所述二进制数据根据所述编码块中的单映射碱基因子与双映射碱基因子的顺序以及单映射碱基因子对应的比特值与双映射碱基因子对应的比特值进行编码。/n

【技术特征摘要】
1.一种脱氧核糖核酸DNA数据编码方法,其特征在于,所述方法用于计算机装置,用于将二进制数据编码为DNA碱基序列,包括:
获取待编码的二进制数据;
获取编码块,所述编码块包括至多N种编码因子,其中,所述N种编码因子中的第n种编码因子包括1个单映射碱基因子和n个双映射碱基因子,所述单映射碱基因子表示1个碱基对应1个比特位,其中,腺嘌呤和胸腺嘧啶对应不同的比特值,所述双映射碱基因子表示1个碱基对应两个比特位,其中每个碱基对应不同的比特值,所述编码块中双映射碱基因子的个数与所有碱基因子的个数的比值不超过预设的值,n为小于等于N的正整数;
将所述二进制数据根据所述编码块中的单映射碱基因子与双映射碱基因子的顺序以及单映射碱基因子对应的比特值与双映射碱基因子对应的比特值进行编码。


2.根据权利要求1所述的方法,其特征在于,所述将所述二进制数据根据所述编码块中的单映射碱基因子与双映射碱基因子的顺序以及单映射碱基因子对应的比特值与双映射碱基因子对应的比特值进行编码,包括:
根据所述编码块中的单映射碱基因子及双映射碱基因子顺序找到每个单映射碱基因子及每个双映射碱基因子在所述二进制数据中对应的比特值;
根据每个双映射碱基因子对应的比特值,将所述双映射碱基因子对应的比特值转换为对应的碱基;
根据每个单映射碱基因子对应的比特值,将所述单映射碱基因子对应的比特值转换为对应的碱基。


3.根据权利要求2所述的方法,其特征在于,所述单映射碱基因子表示的胞嘧啶和鸟嘌呤对应不同的比特值,所述根据每个单映射碱基因子对应的比特值,将所述单映射碱基因子对应的比特值转换为对应的碱基包括:
将所述单映射碱基因子对应的比特值转换为腺嘌呤和胸腺嘧啶;
当所述单映射碱基因子后面相邻的碱基是腺嘌呤或胸腺嘧啶,将所述单映射碱基因子对应比特值转换为胞嘧啶或鸟嘌呤。


4.根据权利要求2所述的方法,其特征在于,所述根据每个单映射碱基因子对应的比特值,将所述单映射碱基因子对应的比特值转换为对应的碱基包括:
在按照从前往后的顺序对所述二进制数据进行编码时,当所述单映射碱基因子的前面与所述单映射碱基因子相邻连续出现N个双映射碱基因子时,将所述单映射碱基因子对应的比特值根据单比特碱基中枢映射关系进行转换,其中,在所述单比特碱基中枢映射关系中,单映射碱基因子对应的碱基根据所述单映射碱基因子对应的比特值及所述单映射碱基因子对应的碱基的前一个碱基和后一个碱基确定,且所述单映射碱基因子对应的碱基与所述前一个碱基和后一个碱基是不同的碱基。


5.根据权利要求1-4任一项所述的方法,其特征在于,所述获取编码块包括:
调整所述至多N种编码因子中每种编码因子的数量以构成编码因子组合;
计算所述编码因子组合中双映射碱基因子的个数与所有碱基因子个数的比例;
当所述编码因子组合中双映射碱基因子的个数与所有碱基因子的个数的比例不超过预设值时,将所述编码因子组合作为所述编码块;
当所述编码因子组合中双映射碱基因子的个数与所有碱基因子的个数的比例超过预设值时,重新调整所述至多N种编码因子中每种编码因子的数量。


6.根据权利要求1-5任一项所述的方法,其特征在于,所述将所述二进制数据根据所述编码块中的单映射碱基因子与双映射碱基因子的顺序以及单映射碱基因子对应的比特值与双映射碱基因子对应的比特值进行编码,还包括:
将所述比特段根据所述编码块中的单映射碱基因子与双映射碱基因子的顺序以及单映射碱基因子对应的比特值与双映射碱基因子对应的比特值进行编码;
当所述比特段未编码部分包含的比特位的数量小于所述编码块对应的比特位的数量时,将所述比特段未编码部分根据单映射碱基因子对应的比特值以及至多M种编码因子组成的编码因子组合编码成碱基序列,其中,所述至多M种编码因子中每一种编码因子包含的双映射碱基因子的个数与所有碱基因子的个数的比例不超过预设值。


7.一种脱氧核糖核酸DNA数据解码方法,其特征在于,所述方法用于计算机装置,用于将DNA碱基序列解码为二进制数据,包括:
获取待解码的DNA碱基序列;
获取解码块,所述解码块包括至多N种解码因子,其中,所述N种解码因子中的第n种解码因子包括1个单映射碱基因子和n个双映射碱基因子,所述单映射碱基因子表示1个碱基对应1个比特位,其中,腺嘌呤和胸腺嘧啶对应不同的比特值,所述双映射碱基因子表示1个碱基对应两个比特位,其中每个碱基对应不同的比特值,所述解码块中双映射碱基因子的个数与所有碱基因子的个数不超过预设值,n为小于等于N的正整数;
将所述DNA碱基序列根据所述解码块中的单映射碱基因子与双映射碱基因子的顺序以及单映射碱基因子对应的比特值与双映射碱基因子对应的比特值进行解码。


8.根据权利要求7所述的方法,其特征在于,所述将所述DNA碱基序列根据所述解码块中的单映射碱基因子与双映射碱基因子的顺序以及单映射碱基因子对应的比特值与双映射碱基因子对应的比特值进行解码,包括:
根据所述解码块中的单映射碱基因子及双映射碱基因子顺序找到每个单映射碱基因子及每个双映射碱基因子在所述DNA碱基序列中对应的碱基;
根据每个双映射碱基因子对应的比特值,将所述双映射碱基因子对应的碱基转换为二进制数据;
根据每个单映射碱基因子对应的比特值,将所述单映射碱基因子对应的碱基转换成二进制数据。


9.根据权利要求8所述的方法,其特征在于,所述根据每个单映射碱基因子对应的比特值,将所述单映射碱基因子对应的碱基转换成二进制数据,包括:
在按照从前往后的顺序对所述DNA碱基序列进行解码时,当所述单映射碱基因子的前面与所述单映射碱基因子相邻连续出现N个双映射碱基因子时,将所述单映射碱基因子根据单比特碱基中枢映射关系进行转换,其中,在所述单比特碱基中枢映射关系中,单映射碱基因子对应的碱基对应的比特值根据所述单映射碱基因子对应的碱基的前一个碱基和后一个碱基确定,且所述单映射碱基因子对应的碱基与所述前一个碱基和后一个碱基是不同的碱基。


10.根据权利要求7-9任一项所述的方法,其特征在于,所述将所述DNA碱基序列根据所述解码块中的单映射碱基因子与双映射碱基因子的顺序以及单映射碱基因子对应的比特值与双映射碱基因子对应的比特值进行解码,还包括:
将所述DNA碱基序列根据所述解码块中的单映射碱基因子与双映射碱基因子的顺序以及单映射碱基因子对应的比特值与双映射碱基因子对应的比特值进行解码;
当所述DNA碱基序列未解码部分包含的碱基数量小于所述解码块对应的碱基因子数量时,获取解码信息,并根据所述解码信息进行解码,其中,所述解码信息包含所述未解码部分在编码时所使用的编码因子组合,所述编码因子组合包括单映射碱基因子以及至多M种编码因子,其中,所述至多M种编码因子中每一种编码因子包含的双映射碱基因子的个数与所有碱基因子...

【专利技术属性】
技术研发人员:余松平林芃徐君
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1