CN115312128A - Dna编码方法、解码方法、装置、终端设备及介质 - Google Patents
Dna编码方法、解码方法、装置、终端设备及介质 Download PDFInfo
- Publication number
- CN115312128A CN115312128A CN202210879914.4A CN202210879914A CN115312128A CN 115312128 A CN115312128 A CN 115312128A CN 202210879914 A CN202210879914 A CN 202210879914A CN 115312128 A CN115312128 A CN 115312128A
- Authority
- CN
- China
- Prior art keywords
- sequence
- quaternary
- base
- dna
- bases
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16B—BIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
- G16B50/00—ICT programming tools or database systems specially adapted for bioinformatics
- G16B50/30—Data warehousing; Computing architectures
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16B—BIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
- G16B30/00—ICT specially adapted for sequence analysis involving nucleotides or amino acids
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16B—BIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
- G16B50/00—ICT programming tools or database systems specially adapted for bioinformatics
- G16B50/50—Compression of genetic data
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Theoretical Computer Science (AREA)
- Biophysics (AREA)
- Medical Informatics (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Biotechnology (AREA)
- Evolutionary Biology (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Databases & Information Systems (AREA)
- Genetics & Genomics (AREA)
- Chemical & Material Sciences (AREA)
- Analytical Chemistry (AREA)
- Proteomics, Peptides & Aminoacids (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)
Abstract
本申请适用于数据存储技术领域,提供了一种DNA编码方法、解码方法、装置、终端设备及介质,其中DNA编码方法包括:将待存储的原始数据转换为第一四进制序列;根据预设的四进制字符与碱基的映射关系,对第一四进制序列进行编码转换得到碱基序列;根据碱基序列得到存储有原始数据的DNA序列。本申请能提升编码速度。
Description
本申请要求于2022年03月14日提交国家知识产权局、申请号为202210248376.9、申请名称为“DNA编码方法、解码方法、装置、终端设备及介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请属于数据存储技术领域,尤其涉及一种DNA编码方法、解码方法、装置、终端设备及介质。
背景技术
互联网的发展使得人类社会的信息呈现爆炸式增长,然而现有的存储介质已经快被消耗殆尽。基于此,相关研究人员将目标转向了脱氧核糖核酸(DNA,DeoxyriboNucleicAcid)存储。现有的DNA编码方法是以硅基存储的01二进制作为基础,将待存储的信息转换为01二进制数,再进一步编码为DNA序列。其中由于在编码过程中需要顾及单碱基重复的问题,因此二进制数需经过一系列复杂运算处理(如异或运算、随机函数映射、条件过滤等)才能编码为DNA序列。而由于复杂运算的耗时较长,造成编码速度不理想。
发明内容
本申请实施例提供了一种DNA编码方法、解码方法、装置、终端设备及介质,可以解决DNA编码速度不理想的问题。
第一方面,本申请实施例提供了一种DNA编码方法,包括:
将待存储的原始数据转换为第一四进制序列;
根据预设的四进制字符与碱基的映射关系,对所述第一四进制序列进行编码转换得到第一碱基序列;
根据所述第一碱基序列得到存储有所述原始数据的DNA序列。
可选的,将待存储的原始数据转换为第一四进制序列,包括:
当待存储的原始数据为文字时,按照预设字符编码表对文字进行编码,得到编码序列;
根据预设字符编码表中的编码字符与四进制字符之间的映射关系,将编码序列转换为第一四进制序列。
可选的,将待存储的原始数据转换为第一四进制序列,包括:
当待存储的原始数据为图片时,获取图片中各像素点的RGB值;
按照预设的像素点排列顺序对各像素点的RGB值进行排序,得到十进制序列;
根据十进制字符与四进制字符之间的映射关系,将十进制序列转换为第一四进制序列。
可选的,将待存储的原始数据转换为第一四进制序列,包括:
当待存储的原始数据为音频时,根据预设采样率对音频进行采样处理,得到多个采样数据;
获取每个采样数据的振幅值;
根据多个采样数据的采样顺序对获取到的振幅值进行排序,得到十进制序列;
根据十进制字符与四进制字符之间的映射关系,将十进制序列转换为第一四进制序列。
可选的,第一四进制序列包括音频对应的第二四进制序列和画面对应的第三四进制序列;将待存储的原始数据转换为第一四进制序列,包括:
当待存储的原始数据为视频时,提取视频的音频以及视频的每帧图片;
对提取到的音频进行处理,得到音频对应的第二四进制序列;
对提取到的每帧图片进行处理,得到提取到的每帧图片对应的第四四进制序列;
按照提取到的各帧图片在视频中的播放顺序,对各帧图片对应的第四四进制序列进行排序,得到画面对应的第三四进制序列。
可选地,所述根据预设的四进制字符与碱基的映射关系,对所述第一四进制序列进行编码转换得到第一碱基序列,包括:
依照设定分割长度,对所述第一四进制序列进行分割,得到多个短序列;
根据预设的四进制字符与碱基的映射关系,对每一所述短序列进行转码,得到多个第二碱基序列;
根据多个所述第二碱基序列确定所述第一碱基序列。
可选地,所述根据预设的四进制字符与碱基的映射关系,对每一所述短序列进行转码,得到多个第二碱基序列,包括:
统计每一所述短序列中各个四进制字符的出现频次;
根据所述出现频次和预设的理想碱基占比,分别确定每个所述短序列对应的四进制字符与碱基的目标映射关系;
根据每个所述短序列各自的所述目标映射关系,分别对所述短序列进行转换,得到多个所述第二碱基序列;所述第二碱基序列中包含用于表示所述目标映射关系的关系序列。
可选地,所述根据所述出现频次和预设的理想碱基占比,分别确定每个所述短序列对应的四进制字符与碱基的目标映射关系,包括:
根据所述出现频次,统计不同的所述四进制字符在每一所述短序列中的数量占比;
将所述数量占比与不同碱基在碱基序列中的所述理想碱基占比进行匹配,建立每一所述短序列中所述四进制字符与所述碱基间的配对组合;
将每一所述配对组合关联的四进制字符与碱基之间建立所述目标映射关系。
可选地,所述统计每一所述短序列中各个四进制字符的出现频次,包括:
依照所述短序列的分割顺序,对每一所述短序列添加相同位数长度的四进制数索引序列;
对添加四进制数索引序列后的每一所述短序列,分别统计各个所述四进制字符的所述出现频次。
可选的,根据第一碱基序列得到存储有原始数据的DNA序列,包括:
在第一碱基序列中每间隔M个碱基的位置,插入N个碱基,得到存储有原始数据的DNA序列;
其中,第一碱基序列中与N个碱基中的第一个碱基相邻的碱基不同;第一碱基序列中与N个碱基中的第N个碱基相邻的碱基不同,且N个碱基中相邻位置的碱基不同,M和N均为大于0的整数。
即,其中,所述第一碱基序列中包含与所述N个碱基中的第一个碱基相邻的第一碱基,所述第一碱基与所述第一个碱基不同;所述第一碱基序列中包含与所述N个碱基中的第N个碱基相邻的第二碱基,所述第二碱基与所述第N个碱基不同;且所述N个碱基中相邻位置的碱基不同,M和N均为大于0的整数。
可选地,所述在所述第一碱基序列中每间隔M个碱基的位置,插入N个碱基,得到存储有所述原始数据的DNA序列,包括:
在所述第一碱基序列中每间隔M个碱基的位置,插入N个碱基,并统计得到在插入N个碱基后的所述第一碱基序列中目标碱基的占比;
若统计得到的所述目标碱基的占比不满足理想碱基占比,则返回执行所述在所述第一碱基序列中每间隔M个碱基的位置,插入N个碱基的步骤,直至统计得到的所述目标碱基的占比满足所述理想碱基占比,得到存储有所述原始数据的DNA序列。
第二方面,本申请实施例提供了一种DNA解码方法,包括:
确定需解码的DNA序列;
根据所述DNA序列得到第一碱基序列;
根据预设的四进制字符与碱基的映射关系,对所述第一碱基序列进行解码得到第一四进制序列;
对第一四进制序列进行转换,得到DNA序列对应的原始数据。
可选的,对第一四进制序列进行转换,得到DNA序列对应的原始数据,包括:
当DNA序列所存储的原始数据为文字时,根据预设字符编码表中的编码字符与四进制字符之间的映射关系,将第一四进制序列进行转换为编码序列;
根据预设字符编码表将编码序列转换为文字。
可选的,对第一四进制序列进行转换,得到DNA序列对应的原始数据,包括:
当DNA序列所存储的原始数据为图片时,根据四进制字符与十进制字符之间的映射关系,将第一四进制序列转换为十进制序列;
根据十进制序列,确定多个像素点的RGB值;
根据多个像素点的RGB值以及预设的像素点排列顺序,生成图片。
可选的,对第一四进制序列进行转换,得到DNA序列对应的原始数据,包括:
当DNA序列所存储的原始数据为音频时,根据四进制字符与十进制字符之间的映射关系,将第一四进制序列转换为十进制序列;
根据十进制序列,确定多个采样数据的振幅值;
根据预设采样率和采样数据的数量,确定DNA序列所存储的音频的总时长;
将确定出的振幅值平均分布于总时长中,得到音频。
可选的,需解码的DNA序列包括音频的DNA序列和画面的DNA序列,第一四进制序列包括音频的DNA序列对应的第二四进制序列和画面的DNA序列对应的第三四进制序列,音频的DNA序列所存储的原始数据为音频,画面的DNA序列所存储的原始数据为多帧图片;
对第一四进制序列进行转换,得到DNA序列对应的原始数据,包括:
对音频的DNA序列对应的第二四进制序列进行转换,得到音频;
对画面的DNA序列对应的第三四进制序列进行转换,得到多帧图片;
在对第一四进制序列进行转换,得到DNA序列对应的原始数据之后,方法还包括:
对多帧图片和音频进行合成,得到视频。
可选的,所述DNA序列中包括多个DNA短序列,所述第一碱基序列中包含与每一所述DNA短序列对应的第二碱基序列;所述根据预设的四进制字符与碱基的映射关系,对所述第一碱基序列进行解码得到第一四进制序列,包括:
基于所述第一碱基序列中每一所述第二碱基序列各自对应的四进制字符与碱基的目标映射关系,对各个所述第二碱基序列进行解码得到对应的四进制短序列;
将所述四进制短序列进行拼接,得到所述第一四进制序列。
可选的,所述基于所述第一碱基序列中每一所述第二碱基序列各自对应的四进制字符与碱基的目标映射关系,对各个所述第二碱基序列进行解码得到对应的四进制短序列,包括:
识别所述第一碱基序列中各个所述第二碱基序列中包含的关系序列;
基于所述关系序列,确定每一所述第二碱基序列各自对应的四进制字符与碱基的目标映射关系;
基于所述目标映射关系,对各个所述第二碱基序列进行解码得到对应的四进制短序列。
可选的,所述将所述四进制短序列进行拼接,得到所述第一四进制序列,包括:
从每一所述四进制短序列中提取索引序列,所述索引序列对应于所述四进制短序列的分割顺序;
基于所述索引序列,将所述四进制短序列依照所述分割顺序进行拼接,得到所述第一四进制序列。
可选的,所述根据所述DNA序列得到第一碱基序列,包括:
在DNA序列中,每间隔M个碱基的位置,去除N个碱基,得到第一碱基序列;
其中,M和N均为大于0的整数。
可选地,所述在所述DNA序列中,每间隔M个碱基的位置,去除N个碱基,得到第一碱基序列,包括:
在所述DNA序列中,每间隔M个碱基的位置,去除N个碱基,并统计得到在去除N个碱基后的所述DNA序列的长度;
若所述DNA序列的长度大于设定碱基序列长度,则返回执行所述在所述DNA序列中,每间隔M个碱基的位置,去除N个碱基的步骤,直至所述DNA序列的长度等于所述设定碱基序列长度,得到所述第一碱基序列。
第三方面,本申请实施例提供了一种DNA编码装置,包括:
第一转换模块,用于将待存储的原始数据转换为第一四进制序列;
编码模块,用于根据预设的四进制字符与碱基的映射关系,对第一四进制序列进行编码转换得到第一碱基序列;
生成模块,用于根据第一碱基序列得到存储有原始数据的DNA序列。
可选的,第一转换模块包括:
编码单元,用于当待存储的原始数据为文字时,按照预设字符编码表对文字进行编码,得到编码序列;
第一转换单元,用于根据预设字符编码表中的编码字符与四进制字符之间的映射关系,将编码序列转换为第一四进制序列。
可选的,第一转换模块包括:
第一获取单元,用于当待存储的原始数据为图片时,获取图片中各像素点的RGB值;
第一排序单元,用于按照预设的像素点排列顺序对各像素点的RGB值进行排序,得到十进制序列;
第二转换单元,用于根据十进制字符与四进制字符之间的映射关系,将十进制序列转换为第一四进制序列。
可选的,第一转换模块包括:
采样单元,用于当待存储的原始数据为音频时,根据预设采样率对音频进行采样处理,得到多个采样数据;
第二获取单元,用于获取每个采样数据的振幅值;
第二排序单元,用于根据多个采样数据的采样顺序对获取到的振幅值进行排序,得到十进制序列;
第三转换单元,用于根据十进制字符与四进制字符之间的映射关系,将十进制序列转换为第一四进制序列。
可选的,第一四进制序列包括音频对应的第二四进制序列和画面对应的第三四进制序列;第一转换模块包括:
提取单元,用于当待存储的原始数据为视频时,提取视频的音频以及视频的每帧图片;
第一处理单元,用于对提取到的音频进行处理,得到音频对应的第二四进制序列;
第二处理单元,用于对提取到的每帧图片进行处理,得到提取到的每帧图片对应的第四四进制序列;
第三排序单元,用于按照提取到的各帧图片在视频中的播放顺序,对各帧图片对应的第四四进制序列进行排序,得到画面对应的第三四进制序列。
可选的,生成模块包括:
生成单元,用于在第一碱基序列中每间隔M个碱基的位置,插入N个碱基,得到存储有原始数据的DNA序列。
其中,第一碱基序列中与N个碱基中的第一个碱基相邻的碱基不同;第一碱基序列中与N个碱基中的第N个碱基相邻的碱基不同,且N个碱基中相邻位置的碱基不同,M和N均为大于0的整数。
即,其中,所述第一碱基序列中包含与所述N个碱基中的第一个碱基相邻的第一碱基,所述第一碱基与所述第一个碱基不同;所述第一碱基序列中包含与所述N个碱基中的第N个碱基相邻的第二碱基,所述第二碱基与所述第N个碱基不同。
第四方面,本申请实施例提供了一种DNA解码装置,包括:
确定模块,用于确定需解码的DNA序列;
处理模块,用于根据DNA序列得到第一碱基序列;
解码模块,用于根据预设的四进制字符与碱基的映射关系,对第一碱基序列进行解码得到第一四进制序列;
第二转换模块,用于对第一四进制序列进行转换,得到DNA序列对应的原始数据。
可选的,第二转换模块包括:
第四转换单元,用于当DNA序列所存储的原始数据为文字时,根据预设字符编码表中的编码字符与四进制字符之间的映射关系,将第一四进制序列进行转换为编码序列;
第五转换单元,用于根据预设字符编码表将编码序列转换为文字。
可选的,第二转换模块包括:
第六转换单元,用于当DNA序列所存储的原始数据为图片时,根据四进制字符与十进制字符之间的映射关系,将第一四进制序列转换为十进制序列;
第一确定单元,用于根据十进制序列,确定多个像素点的RGB值;
生成单元,用于根据多个像素点的RGB值以及预设的像素点排列顺序,生成图片。
可选的,第二转换模块包括:
第七转换单元,用于当DNA序列所存储的原始数据为音频时,根据四进制字符与十进制字符之间的映射关系,将第一四进制序列转换为十进制序列;
第二确定单元,用于根据十进制序列,确定多个采样数据的振幅值;
第三确定单元,用于根据预设采样率和采样数据的数量,确定DNA序列所存储的音频的总时长;
分布单元,用于将确定出的振幅值平均分布于总时长中,得到音频。
可选的,需解码的DNA序列包括音频的DNA序列和画面的DNA序列,第一四进制序列包括音频的DNA序列对应的第二四进制序列和画面的DNA序列对应的第三四进制序列,音频的DNA序列所存储的原始数据为音频,画面的DNA序列所存储的原始数据为多帧图片;
第二转换模块包括:
第八转换单元,用于对音频的DNA序列对应的第二四进制序列进行转换,得到音频;
第九转换单元,用于对画面的DNA序列对应的第三四进制序列进行转换,得到多帧图片;
DNA解码装置还包括:
合成模块,用于对多帧图片和音频进行合成,得到视频。
可选的,处理模块,具体用于在DNA序列中,每间隔M个碱基的位置,去除N个碱基,得到第一碱基序列;其中,M和N均为大于0的整数。
第五方面,本申请实施例提供了一种终端设备,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述的DNA编码方法或者DNA解码方法。
第六方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述的DNA编码方法或者DNA解码方法。
第七方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述的DNA编码方法或者DNA解码方法。
本申请实施例与现有技术相比存在的有益效果是:
在本申请的实施例中,通过将待存储的原始数据转换为第一四进制序列,然后根据四进制字符与碱基的映射关系,将第一四进制序列编码为碱基序列,最终根据该碱基序列得到存储有原始数据的DNA序列。其中由于在将第一四进制序列编码为碱基序列的过程中,不需要经过复杂运算处理,而是根据四进制字符与碱基的映射关系,将第一四进制序列直接编码为碱基序列,从而降低了算法复杂度,提升了编码速度。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提供的DNA编码方法的流程图;
图2是本申请一实施例提供的将文字转换为第一四进制序列的步骤流程图;
图3是本申请一实施例提供的将图片转换为第一四进制序列的步骤流程图;
图4是本申请一实施例提供的将音频转换为第一四进制序列的步骤流程图;
图5是本申请一实施例提供的将视频转换为第一四进制序列的步骤流程图;
图6是本申请一实施例提供的根据映射关系将第一四进制序列编码得到第一碱基序列的步骤流程图;
图7是本申请一实施例提供的DNA解码方法的流程图;
图8是本申请一实施例提供的根据映射关系对第一碱基序列解码得到第一四进制序列的步骤流程图;
图9是本申请一实施例提供的DNA编码装置的结构示意图;
图10是本申请一实施例提供的DNA解码装置的结构示意图;
图11是本申请一实施例提供的终端设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
目前在进行DNA编码时,需将待存储的信息转换为01二进制数,再进一步编码为DNA序列。其中由于二进制数需要经过一系列耗时较长的复杂运算处理才能编码为DNA序列,从而造成DNA编码速度不理想。
针对上述问题,本申请实施例通过将待存储的信息转换为第一四进制序列,然后利用四进制字符与碱基的映射关系将第一四进制序列直接编码为碱基序列,并根据碱基序列得到DNA序列。其中由于在将第一四进制序列编码为碱基序列的过程中,不需要经过复杂运算处理,而是根据四进制字符与碱基的映射关系,将第一四进制序列直接编码为碱基序列,从而降低了算法复杂度,提升了编码速度。
下面结合具体实施例对本申请提供的DNA编码方法进行示例性的说明。
如图1所示,本申请的实施例提供了一种DNA编码方法,包括如下步骤:
步骤11,将待存储的原始数据转换为第一四进制序列。
上述原始数据的格式可以为文字、图片、音频、视频等格式。且在将原始数据转换为第一四进制序列时,不同格式的原始数据的具体转换方式不同,具体转换过程将在后文详细阐述。
步骤12,根据预设的四进制字符与碱基的映射关系,对第一四进制序列进行编码转换得到第一碱基序列。
上述四进制字符包括0、1、2、3,上述碱基包括腺膘呤(A)、尿嘧啶(T)、胞嘧啶(C)、鸟膘呤(G)四种天然碱基。可见,若ATCG四种碱基与0123一一对应的映射,四进制字符与碱基共存在24种映射关系,而上述预设的四进制字符与碱基的映射关系可以是这24种映射关系中的任一种。
步骤13,根据第一碱基序列得到存储有原始数据的DNA序列。
在一个示例中,获取到原始数据对应的碱基序列后,可以直接将碱基序列作为存储有原始数据的DNA序列,进行后续的DNA合成过程,得到存储有原始数据的DNA,进行储存。需要说明的是,合成DNA的具体实现过程可参照目前通用的方式实现,此处不再赘述。
可见,在本申请的一些实施例中,通过将待存储的原始数据转换为第一四进制序列,然后根据四进制字符与碱基的一一对应的映射关系,将第一四进制序列直接编码为碱基序列,并根据该碱基序列得到DNA序列。其中由于在将第一四进制序列编码为碱基序列的过程中,不需要经过复杂运算处理,而是根据四进制字符与碱基的映射关系,将第一四进制序列直接编码为碱基序列,从而降低了算法复杂度,提升了编码速度。
当需要从上述DNA中获取原始数据时,需先对上述DNA进行测序,读取出DNA序列,然后对DNA序列进行解码得到原始数据。在DNA解码的相关技术中,在对DNA进行测序时,由于A或T的连续,聚合酶难以识别完整的每个A或T,造成在某个A或T的后面便开始进行A或T连续结构以后序列的聚合反应,造成测序结果紊乱,出现套峰。
为此,在本申请的另一个实施例中,对于上述步骤13,为避免测序结果紊乱,可通过在碱基序列中插入碱基的方式,得到DNA序列,以控制DNA序列中的单碱基重复数。
具体的,可通过在碱基序列中每间隔M个碱基的位置,插入N个碱基的方式,得到存储有原始数据的DNA序列。
其中,第一碱基序列中与N个碱基中的第一个碱基相邻的碱基不同;第一碱基序列中与N个碱基中的第N个碱基相邻的碱基不同,且N个碱基中相邻位置的碱基不同。
即,第一碱基序列中包含与N个碱基中的第一个碱基相邻的第一碱基,第一碱基与N个碱基中的第一个碱基不同;第一碱基序列中包含与N个碱基中的第N个碱基相邻的第二碱基,第二碱基与N个碱基中的第N个碱基不同。
上述M和N均为大于0的整数,M和N的具体数值均可根据实际情况进行设定。示例性的,将M的值可设置为6。
在本申请的一个可能的实施例中,上述DNA序列中G、C在DNA序列中数量百分含量为40%至60%,以使测序效率最高。
在本申请的一些实施例中,通过每间隔M个碱基插入N个碱基得到的DNA序列中单碱基的重复个数不超过M,从而有效控制了单碱基重复数,避免测序结果紊乱。
值得一提的是,本申请实施例的DNA编码方法在控制单碱基重复数时,不需要经过复杂运算处理(如条件过滤等),而是通过间隔插入碱基的方式控制单碱基重复数,从而降低了算法复杂度,进一步提升了编码速度。
在本申请的一个不同的实施例中,需要结合目标碱基在碱基序列中的占比是否满足理想碱基占比,去判断碱基插入数量是否达到理想效果,实现对碱基插入量的有效控制。
具体地,在第一碱基序列中每间隔M个碱基的位置,插入N个碱基,得到存储有原始数据的DNA序列时,包括如下处理操作:
在第一碱基序列中每间隔M个碱基的位置,插入N个碱基,并统计得到在插入N个碱基后的第一碱基序列中目标碱基的占比;
若统计得到的目标碱基的占比不满足理想碱基占比,则返回执行在第一碱基序列中每间隔M个碱基的位置,插入N个碱基的步骤,直至统计得到的目标碱基的占比满足理想碱基占比,得到存储有原始数据的DNA序列。
目标碱基可以为一个或者为多个。每一目标碱基均可以对应一个理想碱基占比。其中,目标碱基例如为鸟膘呤G,其对应的理想碱基占比例如为30%至40%。目标碱基与理想碱基占比可以根据具体要求进行确定,并不以此为限。
其中,以理想碱基占比为判断条件,每执行一次在碱基序列中每间隔M个碱基的位置,插入N个碱基的处理动作,则需要统计得到一次在插入N个碱基后的碱基序列中目标碱基的占比,直至统计得到的目标碱基的占比满足理想碱基占比,将此时的碱基序列作为满足要求的存储有原始数据的DNA序列。
确保最终存储有原始数据的DNA序列中碱基数量及碱基比例处于较佳状态。
下面结合具体实施例对将待存储的原始数据转换为四进制序列的过程进行示例性的说明。
在本申请的一些实施例中,可根据待存储的原始数据的格式,将该原始数据转换为四进制序列。
当待存储的原始数据为文字时,如图2所示,上述步骤11,将待存储的原始数据转换为第一四进制序列的具体实现方式包括如下步骤:
步骤21,按照预设字符编码表对文字进行编码,得到编码序列。
上述预设字符编码表为对文字进行编码的编码表,如Unicode编码表、UTF-8编码表、ASCII编码表、ISO8859-1编码表、GB2312编码表、GBK编码表等编码表。可以理解的是,在本申请的一些实施例中并不限定上述预设字符编码表的具体形式。
步骤22,根据预设字符编码表中的编码字符与四进制字符之间的映射关系,将编码序列转换为第一四进制序列。
上述编码字符是编码序列对应的进制数的字符。在本申请的一些实施例中,为便于快速将编码序列转换为第一四进制序列,上述编码序列可以为十六进制表示的信息序列,相应的,上述编码字符为十六进制字符。
举例说明,假设上述作为原始数据的文字为:hello world!,预设字符编码表为Unicode编码表,M的取值为5,N的取值为1,四进制字符与碱基的映射关系为:0-A,1-T,2-C,3-G,利用Unicode编码表进行编码得到的编码序列为:00680065006c006c006f00200077006f0072006c00640021,然后根据Unicode编码表的编码字符与四进制字符之间的映射关系,得到的第一四进制序列为:
000012200000121100001230000012300000123300000200000013130000123300001302000012300000121000000201,再利用四进制字符与碱基的映射关系,得到的碱基序列为:
AAAATCCAAAAATCTTAAAATCGAAAAATCGAAAAATCGGAAAAACAAAAAATGTGAAAATCGGAAAATGACAAAATCGAAAAATCTAAAAAACAT,最终插入碱基得到的DNA序列为:
AAAATGCCAAATAATCTATAAAAGTCGAATAAATCTGAAAATATCGGTAAAAATCAAAATAATGTAGAAAAGTCGGATAAATGTACAAATATCGATAAAATGCTAAATAAACAGT。
当待存储的原始数据为图片时,如图3所示,上述步骤11,将待存储的原始数据转换为第一四进制序列的具体实现方式包括如下步骤:
步骤31,获取图片中各像素点的RGB值。
在本申请的一些实施例中,可通过目前通用的RGB值提取方式,提取图片中每个像素点的RGB(R代表红色(Red),G代表绿色(Green),B代表蓝色(Blue))值。
步骤32,按照预设的像素点排列顺序对各像素点的RGB值进行排序,得到十进制序列。
在本申请的一些实施例中,上述预设的像素点排列顺序可以是预先根据各像素点在图片中的相对位置关系设定的。例如当图片由4个像素点组成时,可以按照这4个像素点在图片中的位置依次编号为0、1、2、3,并确定各像素点的排列顺序为0、1、2、3,然后在对这4个像素点的RGB值进行排序时,可按照编号顺序(即上述的顺序0、1、2、3)对各像素点的RGB值进行排序。
步骤33,根据十进制字符与四进制字符之间的映射关系,将十进制序列转换为第一四进制序列。
举例说明,假设图片由4个像素点组成,4个像素点的RGB值分别为:(45,254,78),(2,100,23),(99,65,109),(68,126,94),按照这4个像素点在图片中的相对位置关系,对这4个RGB值进行排序,得到的十进制序列可以表达为2 100 23 45 254 78 99 65 109 68126 94,根据十进制字符与四进制字符之间的映射关系,转换后的第一四进制序列为21210 113 231 3332 1032 1203 1001 1231 1010 1332 1132。需要说明的是,由于RGB模式最大值为255,转换为四进制后是3333,为了保证每个数字所占的位数相等,将不足4位的数用0进行补位,保持原有相对顺序,得到最终的第一四进制序列为:000212100113023133321032120310011231101013321132。在得到的第一四进制序列后,假设M取值为5,N的取值为1,四进制字符与碱基的映射关系为:0-A,1-T,2-C,3-G,则利用四进制字符与碱基的映射关系,得到的碱基序列为:
AAACTCTAATTGACGTGGGCTAGCTCAGTAATTCGTTATATGGCTTGC,最终插入碱基得到的DNA序列为:
AAACTACTAATATGACGATGGGCATAGCTACAGTACATTCGATTATACTGGCTATGC。
当待存储的原始数据为音频时,如图4所示,上述步骤11,将待存储的原始数据转换为第一四进制序列的具体实现方式包括如下步骤:
步骤41,根据预设采样率对音频进行采样处理,得到多个采样数据。
上述预设采样率可根据实际情况进行设定,例如设定为8kHz、11.025kHz、22.05kHz、16kHz、37.8kHz、44.1kHz、48kHz、96kHz、192kHz等。
步骤42,获取每个采样数据的振幅值。
上述采样数据的振幅值可以是该采样数据的音频振幅,具体可通过目前通用的音频振幅提取方式获得。
步骤43,根据多个采样数据的采样顺序对获取到的振幅值进行排序,得到十进制序列。
在本申请的一些实施例中,在获取到采样数据的振幅值后,可用十进制数表示该振幅值。相应的,可根据获取到各采样数据的先后顺序,对各采样数据的振幅值进行排序得到十进制序列。
步骤44,根据十进制字符与四进制字符之间的映射关系,将十进制序列转换为第一四进制序列。
在本申请的一些实施例中,为便于编解码,在将十进制序列转换为第一四进制序列的过程中,每个采样数据的振幅值均采用相同位数的四进制数表示。例如假设采用4位四进制数表示一个振幅值,那么当某个采样数据的振幅值用十进制表示为2时,在将十进制序列转换为第一四进制序列时,该十进制数2转换为四进制数0002。
举例说明,假设利用8kHz的采样率对音频进行采样处理,按照采样顺序得到的16个采样数据的振幅值依次为:25,76,127,255,127,76,178,204,127,153,76,51,127,153,51,153,进而得到十进制序列为25 76 127 255 127 76 178 204 127 153 76 51 127 15351 153,然后按照每个十进制数用4位四进制数表示的要求,并根据十进制字符与四进制字符之间的映射关系,得到的第一四进制序列为:
0121103013333333133310302302303013332121103003031333212103032121。在得到的第一四进制序列后,假设M取值为5,N的取值为1,四进制字符与碱基的映射关系为:0-A,1-T,2-C,3-G,则利用四进制字符与碱基的映射关系,得到的碱基序列为:
ATCTTAGATGGGGGGGTGGGTAGACGACGAGATGGGCTCTTAGAAGAGTGGGCTCTAGAGCTCT,最终插入碱基得到的DNA序列为:
ATCTTCAGATGAGGGGGAGTGGGATAGACAGACGACGATGGAGCTCTATAGAACGAGTGAGGCTCATAGAGACTCT。
在本申请的一个可能的实施例中,在获取到各采样数据的振幅值后,不采用十进制数对振幅值进行表示,而是直接利用几位四进制数对振幅值进行表示,然后根据各采样数据的采样顺序,对对应的四进制数进行排序得到第一四进制序列。示例性的,若采用四位四进制数对振幅值进行表示,则可以将最大振幅值赋值为3333,其他采样数据的振幅值可按比例计算出其数字化的四进制数,得到第一四进制序列。
当待存储的原始数据为视频时,如图5所示,上述第一四进制序列包括音频对应的第二四进制序列和画面对应的第三四进制序列,上述步骤11,将待存储的原始数据转换为第一四进制序列的具体实现方式包括如下步骤:
步骤51,提取视频的音频以及视频的每帧图片。
在本申请的一些实施例中,具体可采用目前通用的视频和图片提取方式,提取到视频的音频和每帧图片。
步骤52,对提取到的音频进行处理,得到音频对应的第二四进制序列。
在本申请的一些实施例中,对音频进行处理得到对应的第二四进制序列的具体实现方式(如图4所示的实现方式)在前文已详细阐述,在此不再赘述。
步骤53,对提取到的每帧图片进行处理,得到提取到的每帧图片对应的第四四进制序列。
在本申请的一些实施例中,对图片进行处理得到对应的第四四进制序列的具体实现方式(如图3所示的实现方式)在前文已详细阐述,在此不再赘述。需要说明的是,此处可通过分别对每帧图片进行处理,得到每帧图片对应的第四四进制序列。
步骤54,按照提取到的各帧图片在视频中的播放顺序,对各帧图片对应的第四四进制序列进行排序,得到画面对应的第三四进制序列。
需要说明的是,当原始数据为视频时,需要提取视频的音频和每帧图片,然后分别对音频和图片进行处理,得到音频对应的第二四进制序列以及画面对应的第三四进制序列。
即,在对视频进行DNA编码时,视频将转换为音频对应的第二四进制序列和画面对应的第四四进制序列,然后分别将这两个四进制序列编码为碱基序列,最终得到音频的DNA序列(即通过音频对应的第二四进制序列得到的)和画面的DNA序列(即通过画面对应的第三四进制序列得到的)。
举例说明,假设在提取到视频的音频后,利用8kHz的采样率对音频进行采样处理,按照采样顺序得到的5个采样数据的振幅值依次为:25,76,127,255,127,进而得到十进制序列为25 76 127 255 127,然后按照每个十进制数用4位四进制数表示的要求,并根据十进制字符与四进制字符之间的映射关系,得到音频对应的第二四进制序列为:
01211030133333331333。在得到的第二四进制序列后,假设M取值为5,N的取值为1,四进制字符与碱基的映射关系为:0-A,1-T,2-C,3-G,则利用四进制字符与碱基的映射关系,得到的碱基序列为:
ATCTTAGATGGGGGGGTGGG,最终插入碱基得到音频的DNA序列为:
ATCTTCAGATGAGGGGGAGTGGG。
在该举例中,视频包括3帧图片,每帧图片由4个像素点组成,在提取到这3帧图片后,分别对这3帧图片进行处理,得到每帧图片对应的第四四进制序列。对于第一帧图片,假设4个像素点的RGB值分别为:(2,100,23),(45,254,78),(99,65,109),(68,126,94),按照这4个像素点在图片中的相对位置关系,对这4个像素点的RGB值进行排序,得到的十进制序列可以表达为2 100 23 45 254 78 99 65 109 68 126 94,根据十进制字符与四进制字符之间的映射关系,转换后的第四四进制序列为2 1210 113 231 3332 1032 1203 10011231 1010 1332 1132。需要说明的是,由于RGB模式最大值为255,转换为四进制后是3333,为了保证每个数字所占的位数相等,将不足4位的数用0进行补位,保持原有相对顺序,得到最终的第四四进制序列为:
000212100113023133321032120310011231101013321132。同理,假设第二帧图片的4个像素点的RGB值分别为:(34,54,122),(56,89,90),(211,168,88),(80,250,255),按照这4个像素点在图片中的相对位置关系,对这4个像素点的RGB值进行排序,得到的十进制序列可以表达为34 54 122 56 89 90 211 168 88 80 250 255,根据十进制字符与四进制字符之间的映射关系,转换后的第四四进制序列为:
020203121322032011211122310322201120110033223333;同理,假设第三帧图片的4个像素点的RGB值分别为:(120,70,92),(126,21,24),(127,75,66),(185,5,221),按照这4个像素点在图片中的相对位置关系,对这4个像素点的RGB值进行排序,得到的十进制序列可以表达为12070 92 126 21 24 127 75 66 185 5 221,根据十进制字符与四进制字符之间的映射关系,转换后的第四四进制序列:
132010121130133201110120133310231002232100113131。在得到3帧图片
对应的第四四进制序列后,按照3帧图片在视频中的播放顺序,对3帧图片对应的第四四进制序列进行排序,得到画面对应的第三四进制序列为:000212100113023133321032120310011231101013321132020203121322032011211122310322201120110033223333132010121130133201110120133310231002232100113131。在得到的第三四进制序列后,假设M取值为5,N的取值为1,四进制字符与碱基的映射关系为:0-A,1-T,2-C,3-G,则利用四进制字符与碱基的映射关系,得到的碱基序列为:
AAACTCTAATTGACGTGGGCTAGCTCAGTAATTCGTTATATGGCTTGCACACAGTCTGCCAGCATTCTTTCCGTAGCCCATTCATTAAGGCCGGGGTGCATATCTTGATGGCATTTATCATGGGTACGTAACCGCTAATTGTGT,最终插入碱基得到画面的DNA序列为:
AAACTACTAATATGACGATGGGCATAGCTACAGTACATTCGATTATACTGGCTATGCACACACGTCTGACCAGCTATTCTATTCCGATAGCCACATTCTATTAACGGCCGAGGGTGCATCATCTTAGATGGACATTTCATCATAGGGTATCGTAATCCGCTCAATTGATGT。
下面结合具体实施例对步骤12根据预设的四进制字符与碱基的映射关系,对四进制序列进行编码转换得到第一碱基序列的过程进行示例性的说明。
在本申请的一些实施例中,可采用序列分割的方式,展开对各个短序列的编码转换处理操作,提升序列过长时的处理效率,降低数据处理难度。
如图6所示,上述步骤12,根据预设的四进制字符与碱基的映射关系,对第一四进制序列进行编码转换得到第一碱基序列的具体实现方式,包括如下步骤:
步骤61,依照设定分割长度,对第一四进制序列进行分割,得到多个短序列。
在得到第一四进制序列后,根据提前设定的分割长度l,将序列切分为X个度为l的短序列。该设定分割长度可以根据实际处理需求进行设定。X为大于1的整数。
步骤62,根据预设的四进制字符与碱基的映射关系,对每一短序列进行转码,得到多个第二碱基序列。
其中,该预设的四进制字符与碱基的映射关系中可以包括不同情况下四进制字符与碱基的映射关系。
在对每一短序列进行转码,得到多个第二碱基序列时,可以从预设的四进制字符与碱基的映射关系中确定出与每一短序列相匹配的映射关系,实施对每一短序列的转码操作。
例如与第一短序列对应的四进制字符与碱基的映射关系可以为0-A,1-T,2-C,3-G。与第二短序列对应的四进制字符与碱基的映射关系可以为0-G,1-T,2-C,3-A。
在一个具体的实施方式中,在根据预设的四进制字符与碱基的映射关系,对每一短序列进行转码,得到多个第二碱基序列时,具体实现过程包括:
统计每一短序列中各个四进制字符的出现频次;
根据出现频次和预设的理想碱基占比,分别确定每个短序列对应的四进制字符与碱基的目标映射关系;
根据每个短序列各自的目标映射关系,分别对短序列进行转换,得到多个第二碱基序列。
其中,第二碱基序列中包含用于表示目标映射关系的关系序列。
上述预设的理想碱基占比具体包括不同碱基在碱基序列中的理想占比。
每个短序列对应的四进制字符与碱基的目标映射关系具体可以是从预设的四进制字符与碱基的映射关系中选取得到。
其中,预设的理想碱基占比例如为理想的GC含量。GC含量又称为G+C比值或GC比值,在序列中,鸟嘌呤(G)和胞嘧啶(C)所占的比率称为GC含量。
以理想的GC含量,与每一短序列中各个四进制字符的出现频次进行比照,将频次与GC含量最接近的四进制字符,确定为与碱基G、C分别对应的四进制字符,剩余四进制字符则与剩余碱基A、T建立映射关系。
例如,0,1,2,3分别出现的频次为:31,28,29,19,理想GC含量为0.5,则此时需要选择碱基G、C对应的字符,能够使碱基GC占序列总体的比例最接近0.5,而此时0和3的频次相加后占序列中体的比例为0.5,最终可以得到一个可选的映射关系为{0:G;1:T;2:A;3:C}。
可以在确定出映射关系后,将映射关系中的包含的碱基信息依照一定的位置排序规则写入至第二碱基序列中,以使第二碱基序列中包含用于表示目标映射关系的关系序列。例如,上述映射关系{0:G;1:T;2:A;3:C},可以以GTAC的排布方式,用来指示该四个碱基GTAC分别对应于0、1、2、3四进制字符,指示出目标映射关系为{0:G;1:T;2:A;3:C}。
其中,在一个可选的实施方式中,各个四进制字符的出现频次与不同碱基在碱基序列中预设的理想碱基占比之间为正相关。基于该正相关的关系,将各个四进制字符的出现频次与预设的理想碱基占比映射起来,进而确定每个短序列对应的四进制字符与碱基的目标映射关系。
例如:预设的理想碱基占比中,腺膘呤(A)对应的理想碱基占比为20%、尿嘧啶(T)对应的理想碱基占比为30%、胞嘧啶(C)对应的理想碱基占比为40%、鸟膘呤(G)对应的理想碱基占比为10%。
统计每一短序列中0、1、2、3这四个四进制字符的出现频次,当统计出0、1、2、3字符的出现频次分别为50、20、40、30时,则可以依照各个四进制字符的出现频次与不同碱基在碱基序列中预设的理想碱基占比之间为正相关的关系,确定字符0对应于胞嘧啶(C),字符1对应于鸟膘呤(G),字符2对应于胞嘧啶(C),字符3对应于腺膘呤(A)。
当前,各个四进制字符的出现频次与不同碱基在碱基序列中预设的理想碱基占比之间也可以为负相关,或者是其他预设的对应关系,可以根据实际需要进行设定。并不以此为限。
其中,在一个具体的实施方式中,根据出现频次和预设的理想碱基占比,分别确定每个短序列对应的四进制字符与碱基的目标映射关系,包括:
根据出现频次,统计不同的四进制字符在每一短序列中的数量占比;
将数量占比与不同碱基在碱基序列中的理想碱基占比进行匹配,建立每一短序列中所述四进制字符与所述碱基间的配对组合;
将每一配对组合关联的四进制字符与碱基之间建立目标映射关系。
这里,在将数量占比与不同碱基在碱基序列中的理想碱基占比进行匹配时,可以依照前述的正相关的关系进行匹配,或者以负相关的关系进行匹配,或者以其他预设的对应关系进行匹配,根据实际需要进行设定。并不以此为限。
其中,在一个实施方式中,当统计每一短序列中各个四进制字符的出现频次时,具体包括:
依照短序列的分割顺序,对每一短序列添加相同位数长度的四进制数索引序列;对添加四进制数索引序列后的每一短序列,分别统计各个四进制字符的出现频次。
该过程中,对每一个长度为l的短序列添加对应的索引系列,按短序列的分割顺序对短序列添加索引,索引具体可以为将0,1,2,3,…Z,转换得到的四进制数,转换后的四进制数若位数小于Z对应的四进制位数,则在前面以0补位,使其位数等于Z的位数,使每一短序列中添加的四进制数索引序列的位数长度相同,便于后续编码及解码过程中的数据处理。
步骤63,根据多个第二碱基序列确定第一碱基序列。
该第一碱基序列可以是一个碱基序列集合,该碱基序列集合中包含多个第二碱基序列。或者,将多个第二碱基序列以设定方式进行排布后得到第一碱基序列。
上述各步骤,采用序列分割的方式得到多个四进制短序列,并依照各个短序列对应的四进制字符与碱基的映射关系,分别进行编码转换得到碱基序列,提升序列过长时的处理效率,降低数据处理难度。
进一步地,在确定第一碱基序列后,需要根据第一碱基序列得到存储有原始数据的DNA序列,在本实施例的一个可选的实施方式中,该过程结合上述分割得到的四进制短序列,可以在第一碱基序列中包含的各个第二碱基序列中每间隔M个碱基的位置,插入N个碱基,得到存储有原始数据的DNA序列;
其中,第二碱基序列中包含与N个碱基中的第一个碱基相邻的第一碱基,第一碱基与第一个碱基不同;第二碱基序列中包含与N个碱基中的第N个碱基相邻的第二碱基,第二碱基与第N个碱基不同;且N个碱基中相邻位置的碱基不同,M和N均为大于0的整数。
且可以进一步地,结合理想碱基占比进行碱基插入效果判断。
具体为:在第一碱基序列中包含的各个第二碱基序列中每间隔M个碱基的位置,插入N个碱基,并统计得到在插入N个碱基后的所述第二碱基序列中目标碱基的占比;
若统计得到的所述目标碱基的占比不满足理想碱基占比,则返回执行所述在第一碱基序列中包含的各个第二碱基序列中每间隔M个碱基的位置,插入N个碱基的步骤,直至统计得到的目标碱基的占比满足所述理想碱基占比,得到存储有原始数据的DNA序列。
确保每一短序列对应的第二碱基序列中的不同碱基满足理想占比,也确保最终生成的DNA序列各个碱基的分布均衡性。
下面结合具体实施例对本申请提供的DNA解码方法进行示例性的说明。
如图7所示,本申请实施例提供了一种DNA解码方法,包括如下步骤:
步骤71,确定需解码的DNA序列。
当需要从存储有原始数据的DNA中获取原始数据时,需先对上述DNA进行测序,读取出DNA序列,从而确定需解码的DNA序列。需要说明的是,DNA测序的具体实现过程可参照目前通用的方式实现,此处不再赘述。如前文所述,若存储的原始数据为视频,则需要利用两个DNA序列进行存储,而若存储的原始数据为文字、图片或者音频,则只需要利用一个DNA序列进行存储。因此在解码时,上述需解码的DNA序列的数量可以是一个,也可以是多个。
步骤72,根据DNA序列得到第一碱基序列。
在一个示例中,在确定需解码的DNA序列后,可以直接将DNA序列作为碱基序列。
在本申请的另一个实施例中,在DNA编码时为避免测序结果紊乱,碱基序列中插入了碱基,因此在解码时,需要去除DNA序列中插入的碱基,得到碱基序列。
与插入碱基相对应的,在本申请的一些实施例中,可通过在DNA序列中,每间隔M个碱基的位置,去除N个碱基的方式,得到碱基序列。
上述M和N均为大于0的整数,M和N的具体数值均可根据实际情况进行设定。
进一步地,与插入碱基相对应的,在本申请的另一些实施例中,可通过在DNA序列中,每间隔M个碱基的位置,去除N个碱基,并统计得到在去除N个碱基后的DNA序列的长度;
若DNA序列的长度大于设定碱基序列长度,则返回执行在DNA序列中,每间隔M个碱基的位置,去除N个碱基的步骤,直至DNA序列的长度等于设定碱基序列长度,得到第一碱基序列。
以设定碱基序列长度为判断条件,确保对去除的碱基数量的有效控制,并确保去除碱基后得到的第一碱基序列为准确的碱基序列,提升数据解码的准确性及可靠性。
步骤73,根据预设的四进制字符与碱基的映射关系,对第一碱基序列进行解码得到第一四进制序列。
上述四进制字符包括0、1、2、3,上述碱基包括A、T、C、G四种天然碱基。在本申请的一些实施例中,ATCG四种碱基与0123一一对应的映射,四进制字符与碱基共存在24种映射关系,上述预设的四进制字符与碱基的映射关系可以是这24种映射关系中的任一种。
在本申请的一些实施例中,在将碱基序列解码为第一四进制序列的过程中,不需要经过复杂的运算处理,而是通过四进制字符与碱基的一一对应的映射关系,将碱基序列解码为第一四进制序列,从而大大降低了算法复杂度,提升了解码速度。
步骤74,对第一四进制序列进行转换,得到DNA序列对应的原始数据。
在本申请的一些实施例中,在将第一四进制序列转换为原始数据时,不同格式的原始数据的具体转换方式不同,具体转换过程将在后文详细阐述。
需要说明的是,当需解码的DNA序列的数量为多个时,需分别针对每个需解码的DNA序列执行步骤72至步骤74,得到每个需解码的DNA序列对应的原始数据。
值得一提的是,与提升编码速度相对应的,由于在将碱基序列解码为第一四进制序列的过程中,不需要经过复杂运算处理,而是根据四进制字符与碱基的一一映射关系,将碱基序列解码为第一四进制序列,从而降低了算法复杂度,提升了解码速度。
下面结合具体实施例对上述步骤74的具体实现方式进行示例性的说明。
当DNA序列所存储的原始数据为文字时,上述步骤74,对第一四进制序列进行转换,得到DNA序列对应的原始数据的具体实现方式包括如下步骤:根据预设字符编码表中的编码字符与四进制字符之间的映射关系,将第一四进制序列进行转换为编码序列,并根据预设字符编码表将编码序列转换为文字。
上述预设字符编码表为对文字进行编码的编码表,如Unicode编码表、UTF-8编码表、ASCII编码表、ISO8859-1编码表、GB2312编码表、GBK编码表等编码表。可以理解的是,在本申请的一些实施例中并不限定上述预设字符编码表的具体形式。
上述编码字符是:在对文字进行DNA编码时利用预设字符编码表得到的编码序列对应的进制数的字符,因此在解码时,可利用该编码字符与四进制字符之间的映射关系,将第一四进制序列转换为编码序列,并进一步利用预设字符编码表转换为文字。
与DNA编码相对应的,在本申请的一些实施例中,上述编码序列可以为十六进制表示的信息序列,相应的,上述编码字符为十六进制字符。
当DNA序列所存储的原始数据为图片时,上述步骤74,对第一四进制序列进行转换,得到DNA序列对应的原始数据的具体实现方式包括如下步骤:首先根据四进制字符与十进制字符之间的映射关系,将第一四进制序列转换为十进制序列;然后根据十进制序列,确定多个像素点的RGB值;最终根据多个像素点的RGB值以及预设的像素点排列顺序,生成图片。
与DNA编码相对应的,在本申请的一些实施例中,在将第一四进制序列转换为十进制序列的过程中,可将每四位四进制数作为一个十进制数,例如若第一四进制序列为00021210 0113 0231 3332 1032 1203 1001 1231 1010 1332 1132,则得到的十进制序列为2100 23 45 254 78 99 65 109 68 126 94。在确定多个像素点的RGB值的过程中,可将十进制序列中的每三个十进制数作为一个像素点的RGB值,例如若十进制序列为2 100 23 45254 78 99 65 109 68 126 94,则得到的多个像素点的RGB值分别为(2,100,23),(45,254,78),(99,65,109),(68,126,94)。在生成图片的过程中,可根据各像素点在图片中的相对位置关系,对各像素点的RGB值进行处理得到图片。
当DNA序列所存储的原始数据为音频时,上述步骤74,对第一四进制序列进行转换,得到DNA序列对应的原始数据的具体实现方式包括如下步骤:首先根据四进制字符与十进制字符之间的映射关系,将第一四进制序列转换为十进制序列;然后根据十进制序列,确定多个采样数据的振幅值;再根据预设采样率和采样数据的数量,确定DNA序列所存储的音频的总时长;最终将确定出的振幅值平均分布于总时长中,得到音频。
与DNA编码相对应的,在将第一四进制序列转换为十进制序列的过程中,可将每T(T值为:DNA编码时将十进制序列转换为第一四进制序列时每个十进制数对应的四进制数的位数)位四进制数转换为一个十进制数。在确定多个采样数据的振幅值的过程中,可将十进制序列中每个十进制数分别作为一个采样数据的振幅值,且各振幅值按照对应的十进制数在十进制序列中的顺序排序。在确定音频的总时长的过程中,可将振幅值的数量(即采样数据的数量)与预存在采样率的比值作为音频的总时长。在最终获得音频的过程中,可将排序后的振幅值平均分布于总时长中,得到音频。
当需解码的DNA序列包括音频的DNA序列和画面的DNA序列时,表明当前要解码的DNA序列为视频对应的DNA序列,具体的,此时音频的DNA序列所存储的原始数据为视频的音频,画面的DNA序列所存储的原始数据为视频的多帧图片。需要说明的是,在针对音频的DNA序列执行步骤72至步骤73时,得到的第一四进制序列为音频的DNA序列对应的第二四进制序列,在针对音画面的DNA序列执行步骤72至步骤73时,得到的第一四进制序列为画面的DNA序列对应的第三四进制序列。相应的,上述步骤74,对第一四进制序列进行转换,得到DNA序列对应的原始数据的具体实现方式包括如下步骤:
对音频的DNA序列对应的第二四进制序列进行转换,得到音频,并对画面的DNA序列对应的第三四进制序列进行转换,得到多帧图片。
在本申请的一些实施例中,对音频的DNA序列(即存储的原始数据为音频的DNA序列)对应的第二四进制序列进行转换得到音频的具体实现方式在前文已详细阐述,在此不再赘述。
对画面的DNA序列对应的第三四进制序列进行转换得到多帧图片的具体实现方式与,前文对存储的原始数据为图片的DNA序列对应的第一四进制序列进行转换得到图片的具体实现方式类似,不同之处在于:在生成图片的过程中,此时根据各像素点在图片中的相对位置关系,对各像素点的RGB值进行处理,能得到多帧图片。需要说明的是,在生成多帧图片时,由于在DNA编码时记录了每帧图片对应的像素点,以及每帧图片中各像素点的相对位置关系,因此此时能解码出多帧图片。
在当前要解码的DNA序列为视频对应的DNA序列时,在对第一四进制序列进行转换,得到DNA序列对应的原始数据之后,方法还包括:对多帧图片和音频进行合成,得到视频。具体的,可先确定音频的DNA序列对应的的音频的总时长,然后根据解码得到的多帧图片的像素点的RGB值在十进制序列中的顺序,对解码得到的多帧图片进行排序,再将排序后的多帧图片平均分布在该总时长中,并对音频与图片进行结合便能得到视频。
综上,本申请实施例提供的DNA编解码方法具备如下效果:
第一,在将四进制序列编码为碱基序列的过程中,不需要经过复杂运算处理,而是根据四进制字符与碱基的映射关系,将四进制序列直接编码为碱基序列,从而降低了算法复杂度,提升了编码速度;
第二,在控制单碱基重复数时,不需要经过复杂运算处理(如条件过滤等),而是通过间隔插入碱基的方式控制单碱基重复数,从而降低了算法复杂度,进一步提升了编码速度;
第三,可实现对文字、图片、音频、视频的DNA存储。
进一步地,在一个可选的实施方式中,DNA序列为一个序列集合,该序列集合中包括多个DNA短序列,第一碱基序列中包含与每一DNA短序列对应的第二碱基序列。
则,在与之对应的一个实施方式中,结合图8所示,步骤73根据预设的四进制字符与碱基的映射关系,对第一碱基序列进行解码得到第一四进制序列的具体实施过程,包括如下步骤:
步骤81,基于第一碱基序列中每一第二碱基序列各自对应的四进制字符与碱基的目标映射关系,对各个第二碱基序列进行解码得到对应的四进制短序列。
即,与每一DNA短序列对应的第二碱基序列均有自身对应的四进制字符与碱基的目标映射关系。本实施例中,以短序列作为对象分别进行解码处理。
其中,在一个具体的实施方式中,步骤81基于第一碱基序列中每一第二碱基序列各自对应的四进制字符与碱基的目标映射关系,对各个第二碱基序列进行解码得到对应的四进制短序列,包括:
识别第一碱基序列中各个第二碱基序列中包含的关系序列;
基于该关系序列,确定每一第二碱基序列各自对应的四进制字符与碱基的目标映射关系;
基于该目标映射关系,对各个所述第二碱基序列进行解码得到对应的四进制短序列。
这里,由于在根据预设的四进制字符与碱基的映射关系,对每一短序列进行转码,得到多个第二碱基序列时,在第二碱基序列中写入有用于表示自身所对应的四进制字符与碱基的目标映射关系的关系序列,则在解码时,可以基于各个第二碱基序列中包含的关系序列,确定出每一第二碱基序列各自对应的四进制字符与碱基的目标映射关系,进而借助于该目标映射关系,实现将各个第二碱基序列进行解码得到对应的四进制短序列。
步骤82,将四进制短序列进行拼接,得到第一四进制序列。
在对各个第二碱基序列进行解码得到对应的四进制短序列后,即可对多个四进制短序列进行拼接,得到与第一碱基序列整体对应的第一四进制序列。
其中,该步骤在具体实施时,具体包括:
从每一四进制短序列中提取索引序列;该索引序列对应于四进制短序列的分割顺序;
基于索引序列,将四进制短序列依照分割顺序进行拼接,得到第一四进制序列。
其中,由于四进制短序列是在编码时对四进制序列进行分割得到的,且每一四进制短序列中加入有四进制索引序列。因此,每一四进制短序列中的索引序列与四进制短序列的分割顺序相对应,且能够基于索引序列得知每一四进制短序列的排列次序,以实现对四进制短序列的正确拼接,确保解码还原的准确性。
上述处理方式,采用对短序列分别做解码处理的方式,展开对各个短序列的编码转换处理操作,降低数据处理难度,确保解码还原的准确性。
进一步地,由于在一个实施例中,DNA序列为一个序列集合,该序列集合中包括多个DNA短序列,因此,与之对应地,在根据DNA序列得到第一碱基序列时,具体可以是:
可通过在DNA序列包括的每一DNA短序列中,每间隔M个碱基的位置,去除N个碱基的方式,得到多个第二碱基序列。
基于多个第二碱基序列,得到第一碱基序列。
第一碱基序列中包含与每一DNA短序列对应的第二碱基序列。
上述M和N均为大于0的整数,M和N的具体数值均可根据实际情况进行设定。
在本申请的另一些实施例中,可通过在DNA序列包括的每一DNA短序列中,每间隔M个碱基的位置,去除N个碱基,并统计得到在去除N个碱基后的DNA短序列的长度;
若DNA短序列的长度大于设定碱基序列长度,则返回执行在DNA序列包括的每一DNA短序列中,每间隔M个碱基的位置,去除N个碱基的步骤,直至DNA短序列的长度等于设定碱基序列长度,得到多个第二碱基序列。
基于多个第二碱基序列,得到第一碱基序列。
其中,在一个具体的实施方式中,该设定碱基序列长度中包含碱基序列原始长度l、索引序列长度Z、关系序列长度4之和。
以设定碱基序列长度为判断条件,确保对去除的碱基数量的有效控制,并确保去除碱基后得到的第一碱基序列为准确的碱基序列,提升数据解码的准确性及可靠性。
下面结合具体实施例对本申请提供的DNA编码装置、DNA解码装置、终端设备、存储介质及产品进行示例性的说明。
如图9所示,本申请的实施例提供了一种DNA编码装置,该DNA编码装置900包括:
第一转换模块901,用于将待存储的原始数据转换为第一四进制序列;
编码模块902,用于根据预设的四进制字符与碱基的映射关系,对所述第一四进制序列进行编码转换得到第一碱基序列;
生成模块903,用于根据所述第一碱基序列得到存储有所述原始数据的DNA序列。
可选的,第一转换模块901包括:
编码单元,用于当待存储的原始数据为文字时,按照预设字符编码表对文字进行编码,得到编码序列;
第一转换单元,用于根据预设字符编码表中的编码字符与四进制字符之间的映射关系,将编码序列转换为第一四进制序列。
可选的,第一转换模块901包括:
第一获取单元,用于当待存储的原始数据为图片时,获取图片中各像素点的RGB值;
第一排序单元,用于按照预设的像素点排列顺序对各像素点的RGB值进行排序,得到十进制序列;
第二转换单元,用于根据十进制字符与四进制字符之间的映射关系,将十进制序列转换为第一四进制序列。
可选的,第一转换模块901包括:
采样单元,用于当待存储的原始数据为音频时,根据预设采样率对音频进行采样处理,得到多个采样数据;
第二获取单元,用于获取每个采样数据的振幅值;
第二排序单元,用于根据多个采样数据的采样顺序对获取到的振幅值进行排序,得到十进制序列;
第三转换单元,用于根据十进制字符与四进制字符之间的映射关系,将十进制序列转换为第一四进制序列。
可选的,第一四进制序列包括音频对应的第二四进制序列和画面对应的第三四进制序列;第一转换模块901包括:
提取单元,用于当待存储的原始数据为视频时,提取视频的音频以及视频的每帧图片;
第一处理单元,用于对提取到的音频进行处理,得到音频对应的第二四进制序列;
第二处理单元,用于对提取到的每帧图片进行处理,得到提取到的每帧图片对应的第四四进制序列;
第三排序单元,用于按照提取到的各帧图片在视频中的播放顺序,对各帧图片对应的第四四进制序列进行排序,得到画面对应的第三四进制序列。
可选地,编码模块902,具体用于:
依照设定分割长度,对所述第一四进制序列进行分割,得到多个短序列;
根据预设的四进制字符与碱基的映射关系,对每一所述短序列进行转码,得到多个第二碱基序列;
根据多个所述第二碱基序列确定所述第一碱基序列。
其中,编码模块902,更具体用于:
统计每一所述短序列中各个四进制字符的出现频次;
根据所述出现频次和预设的理想碱基占比,分别确定每个所述短序列对应的四进制字符与碱基的目标映射关系;
根据每个所述短序列各自的所述目标映射关系,分别对所述短序列进行转换,得到多个所述第二碱基序列;所述第二碱基序列中包含用于表示所述目标映射关系的关系序列。
其中,编码模块902,进一步具体用于:
根据所述出现频次,统计不同的所述四进制字符在每一所述短序列中的数量占比;
将所述数量占比与不同碱基在碱基序列中的所述理想碱基占比进行匹配,建立每一所述短序列中所述四进制字符与所述碱基间的配对组合;
将每一所述配对组合关联的四进制字符与碱基之间建立所述目标映射关系。
其中,编码模块902,进一步具体用于:
依照所述短序列的分割顺序,对每一所述短序列添加相同位数长度的四进制数索引序列;
对添加四进制数索引序列后的每一所述短序列,分别统计各个所述四进制字符的所述出现频次。
可选的,生成模块903包括:
生成单元,用于在第一碱基序列中每间隔M个碱基的位置,插入N个碱基,得到存储有原始数据的DNA序列。
其中,第一碱基序列中与N个碱基中的第一个碱基相邻的碱基不同;第一碱基序列中与N个碱基中的第N个碱基相邻的碱基不同,且N个碱基中相邻位置的碱基不同,M和N均为大于0的整数。
即,其中,所述第一碱基序列中包含与所述N个碱基中的第一个碱基相邻的第一碱基,所述第一碱基与所述第一个碱基不同;所述第一碱基序列中包含与所述N个碱基中的第N个碱基相邻的第二碱基,所述第二碱基与所述第N个碱基不同。
其中,生成单元,具体用于:
在所述第一碱基序列中每间隔M个碱基的位置,插入N个碱基,并统计得到在插入N个碱基后的所述第一碱基序列中目标碱基的占比;
若统计得到的所述目标碱基的占比不满足理想碱基占比,则返回执行所述在所述第一碱基序列中每间隔M个碱基的位置,插入N个碱基的步骤,直至统计得到的所述目标碱基的占比满足所述理想碱基占比,得到存储有所述原始数据的DNA序列。
需要说明的是,上述DNA编码装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例的DNA编码方法基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
如图10所示,本申请的实施例提供了一种DNA解码装置,该DNA解码装置100包括:
确定模块101,用于确定需解码的DNA序列;
处理模块102,用于根据DNA序列得到第一碱基序列;
解码模块103,用于根据预设的四进制字符与碱基的映射关系,对第一碱基序列进行解码得到第一四进制序列;
第二转换模块104,用于对第一四进制序列进行转换,得到DNA序列对应的原始数据。
可选的,第二转换模块104包括:
第四转换单元,用于当DNA序列所存储的原始数据为文字时,根据预设字符编码表中的编码字符与四进制字符之间的映射关系,将第一四进制序列进行转换为编码序列;
第五转换单元,用于根据预设字符编码表将编码序列转换为文字。
可选的,第二转换模块104包括:
第六转换单元,用于当DNA序列所存储的原始数据为图片时,根据四进制字符与十进制字符之间的映射关系,将第一四进制序列转换为十进制序列;
第一确定单元,用于根据十进制序列,确定多个像素点的RGB值;
生成单元,用于根据多个像素点的RGB值以及预设的像素点排列顺序,生成图片。
可选的,第二转换模块104包括:
第七转换单元,用于当DNA序列所存储的原始数据为音频时,根据四进制字符与十进制字符之间的映射关系,将第一四进制序列转换为十进制序列;
第二确定单元,用于根据十进制序列,确定多个采样数据的振幅值;
第三确定单元,用于根据预设采样率和采样数据的数量,确定DNA序列所存储的音频的总时长;
分布单元,用于将确定出的振幅值平均分布于总时长中,得到音频。
可选的,需解码的DNA序列包括音频的DNA序列和画面的DNA序列,第一四进制序列包括音频的DNA序列对应的第二四进制序列和画面的DNA序列对应的第三四进制序列,音频的DNA序列所存储的原始数据为音频,画面的DNA序列所存储的原始数据为多帧图片;
第二转换模块104包括:
第八转换单元,用于对音频的DNA序列对应的第二四进制序列进行转换,得到音频;
第九转换单元,用于对画面的DNA序列对应的第三四进制序列进行转换,得到多帧图片;
DNA解码装置100还包括:
合成模块,用于对多帧图片和音频进行合成,得到视频。
可选地,所述DNA序列中包括多个DNA短序列,所述第一碱基序列中包含与每一所述DNA短序列对应的第二碱基序列;解码模块103,用于:
基于所述第一碱基序列中每一所述第二碱基序列各自对应的四进制字符与碱基的目标映射关系,对各个所述第二碱基序列进行解码得到对应的四进制短序列;
将所述四进制短序列进行拼接,得到所述第一四进制序列。
其中,解码模块103,具体用于:
识别所述第一碱基序列中各个所述第二碱基序列中包含的关系序列;
基于所述关系序列,确定每一所述第二碱基序列各自对应的四进制字符与碱基的目标映射关系;
基于所述目标映射关系,对各个所述第二碱基序列进行解码得到对应的四进制短序列。
其中,解码模块103,具体用于:
从每一所述四进制短序列中提取索引序列,所述索引序列对应于所述四进制短序列的分割顺序;
基于所述索引序列,将所述四进制短序列依照所述分割顺序进行拼接,得到所述第一四进制序列。
可选的,处理模块102,具体用于在DNA序列中,每间隔M个碱基的位置,去除N个碱基,得到第一碱基序列;其中,M和N均为大于0的整数。
其中,处理模块102,更具体用于:
在所述DNA序列中,每间隔M个碱基的位置,去除N个碱基,并统计得到在去除N个碱基后的所述DNA序列的长度;
若所述DNA序列的长度大于设定碱基序列长度,则返回执行所述在所述DNA序列中,每间隔M个碱基的位置,去除N个碱基的步骤,直至所述DNA序列的长度等于所述设定碱基序列长度,得到所述第一碱基序列。
需要说明的是,上述DNA解码装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例的DNA解码方法基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
如图11所示,本申请的实施例提供了一种终端设备,如图11所示,该实施例的终端设备D11包括:至少一个处理器D110(图11中仅示出一个处理器)、存储器D111以及存储在所述存储器D111中并可在所述至少一个处理器D110上运行的计算机程序D112,所述处理器D110执行所述计算机程序D112时实现上述任意各个方法实施例中的步骤。
所称处理器D110可以是中央处理单元(CPU,Central Processing Unit),该处理器D110还可以是其他通用处理器、数字信号处理器(DSP,Digital Signal Processor)、专用集成电路(ASIC,Application Specific Integrated Circuit)、现成可编程门阵列(FPGA,Field-Programmable Gate Array)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器D111在一些实施例中可以是所述终端设备D11的内部存储单元,例如终端设备D11的硬盘或内存。所述存储器D111在另一些实施例中也可以是所述终端设备D11的外部存储设备,例如所述终端设备D11上配备的插接式硬盘,智能存储卡(SMC,SmartMedia Card),安全数字(SD,Secure Digital)卡,闪存卡(Flash Card)等。进一步地,所述存储器D111还可以既包括所述终端设备D11的内部存储单元也包括外部存储设备。所述存储器D111用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器D111还可以用于暂时地存储已经输出或者将要输出的数据。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行时实现可实现上述各个方法实施例中的步骤。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到DNA编码装置/DNA解码装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/网络设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/网络设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (25)
1.一种DNA编码方法,其特征在于,包括:
将待存储的原始数据转换为第一四进制序列;
根据预设的四进制字符与碱基的映射关系,对所述第一四进制序列进行编码转换得到第一碱基序列;
根据所述第一碱基序列得到存储有所述原始数据的DNA序列。
2.根据权利要求1所述的方法,其特征在于,所述将待存储的原始数据转换为第一四进制序列,包括:
当待存储的原始数据为文字时,按照预设字符编码表对所述文字进行编码,得到编码序列;
根据所述预设字符编码表中的编码字符与四进制字符之间的映射关系,将所述编码序列转换为第一四进制序列。
3.根据权利要求1所述的方法,其特征在于,所述将待存储的原始数据转换为第一四进制序列,包括:
当待存储的原始数据为图片时,获取所述图片中各像素点的RGB值;
按照预设的像素点排列顺序对所述各像素点的RGB值进行排序,得到十进制序列;
根据十进制字符与四进制字符之间的映射关系,将所述十进制序列转换为第一四进制序列。
4.根据权利要求1所述的方法,其特征在于,所述将待存储的原始数据转换为第一四进制序列,包括:
当待存储的原始数据为音频时,根据预设采样率对所述音频进行采样处理,得到多个采样数据;
获取每个所述采样数据的振幅值;
根据所述多个采样数据的采样顺序对获取到的振幅值进行排序,得到十进制序列;
根据十进制字符与四进制字符之间的映射关系,将所述十进制序列转换为第一四进制序列。
5.根据权利要求1所述的方法,其特征在于,所述第一四进制序列包括音频对应的第二四进制序列和画面对应的第三四进制序列;所述将待存储的原始数据转换为第一四进制序列,包括:
当待存储的原始数据为视频时,提取所述视频的音频以及所述视频的每帧图片;
对提取到的所述音频进行处理,得到所述音频对应的第二四进制序列;
对提取到的每帧图片进行处理,得到提取到的每帧图片对应的第四四进制序列;
按照提取到的各帧图片在所述视频中的播放顺序,对所述各帧图片对应的第四四进制序列进行排序,得到画面对应的第三四进制序列。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述根据预设的四进制字符与碱基的映射关系,对所述第一四进制序列进行编码转换得到第一碱基序列,包括:
依照设定分割长度,对所述第一四进制序列进行分割,得到多个短序列;
根据预设的四进制字符与碱基的映射关系,对每一所述短序列进行转码,得到多个第二碱基序列;
根据多个所述第二碱基序列确定所述第一碱基序列。
7.根据权利要求6所述的方法,其特征在于,所述根据预设的四进制字符与碱基的映射关系,对每一所述短序列进行转码,得到多个第二碱基序列,包括:
统计每一所述短序列中各个四进制字符的出现频次;
根据所述出现频次和预设的理想碱基占比,分别确定每个所述短序列对应的四进制字符与碱基的目标映射关系;
根据每个所述短序列各自的所述目标映射关系,分别对所述短序列进行转换,得到多个所述第二碱基序列;所述第二碱基序列中包含用于表示所述目标映射关系的关系序列。
8.根据权利要求7所述的方法,其特征在于,所述根据所述出现频次和预设的理想碱基占比,分别确定每个所述短序列对应的四进制字符与碱基的目标映射关系,包括:
根据所述出现频次,统计不同的所述四进制字符在每一所述短序列中的数量占比;
将所述数量占比与不同碱基在碱基序列中的所述理想碱基占比进行匹配,建立每一所述短序列中所述四进制字符与所述碱基间的配对组合;
将每一所述配对组合关联的四进制字符与碱基之间建立所述目标映射关系。
9.根据权利要求7所述的方法,其特征在于,所述统计每一所述短序列中各个四进制字符的出现频次,包括:
依照所述短序列的分割顺序,对每一所述短序列添加相同位数长度的四进制数索引序列;
对添加四进制数索引序列后的每一所述短序列,分别统计各个所述四进制字符的所述出现频次。
10.根据权利要求1所述的方法,其特征在于,所述根据所述第一碱基序列得到存储有所述原始数据的DNA序列,包括:
在所述第一碱基序列中每间隔M个碱基的位置,插入N个碱基,得到存储有所述原始数据的DNA序列;
其中,所述第一碱基序列中包含与所述N个碱基中的第一个碱基相邻的第一碱基,所述第一碱基与所述第一个碱基不同;所述第一碱基序列中包含与所述N个碱基中的第N个碱基相邻的第二碱基,所述第二碱基与所述第N个碱基不同;且所述N个碱基中相邻位置的碱基不同,M和N均为大于0的整数。
11.根据权利要求10所述的方法,其特征在于,所述在所述第一碱基序列中每间隔M个碱基的位置,插入N个碱基,得到存储有所述原始数据的DNA序列,包括:
在所述第一碱基序列中每间隔M个碱基的位置,插入N个碱基,并统计得到在插入N个碱基后的所述第一碱基序列中目标碱基的占比;
若统计得到的所述目标碱基的占比不满足理想碱基占比,则返回执行所述在所述第一碱基序列中每间隔M个碱基的位置,插入N个碱基的步骤,直至统计得到的所述目标碱基的占比满足所述理想碱基占比,得到存储有所述原始数据的DNA序列。
12.一种DNA解码方法,其特征在于,包括:
确定需解码的DNA序列;
根据所述DNA序列得到第一碱基序列;
根据预设的四进制字符与碱基的映射关系,对所述第一碱基序列进行解码得到第一四进制序列;
对所述第一四进制序列进行转换,得到所述DNA序列对应的原始数据。
13.根据权利要求12所述的方法,其特征在于,所述对所述第一四进制序列进行转换,得到所述DNA序列对应的原始数据,包括:
当所述DNA序列所存储的原始数据为文字时,根据预设字符编码表中的编码字符与四进制字符之间的映射关系,将所述第一四进制序列进行转换为编码序列;
根据所述预设字符编码表将所述编码序列转换为文字。
14.根据权利要求12所述的方法,其特征在于,所述对所述第一四进制序列进行转换,得到所述DNA序列对应的原始数据,包括:
当所述DNA序列所存储的原始数据为图片时,根据四进制字符与十进制字符之间的映射关系,将所述第一四进制序列转换为十进制序列;
根据所述十进制序列,确定多个像素点的RGB值;
根据所述多个像素点的RGB值以及预设的像素点排列顺序,生成图片。
15.根据权利要求12所述的方法,其特征在于,所述对所述第一四进制序列进行转换,得到所述DNA序列对应的原始数据,包括:
当所述DNA序列所存储的原始数据为音频时,根据四进制字符与十进制字符之间的映射关系,将所述第一四进制序列转换为十进制序列;
根据所述十进制序列,确定多个采样数据的振幅值;
根据预设采样率和采样数据的数量,确定所述DNA序列所存储的音频的总时长;
将确定出的振幅值平均分布于所述总时长中,得到音频。
16.根据权利要求12所述的方法,其特征在于,所述需解码的DNA序列包括音频的DNA序列和画面的DNA序列,所述第一四进制序列包括音频的DNA序列对应的第二四进制序列和画面的DNA序列对应的第三四进制序列,所述音频的DNA序列所存储的原始数据为音频,所述画面的DNA序列所存储的原始数据为多帧图片;
所述对所述第一四进制序列进行转换,得到所述DNA序列对应的原始数据,包括:
对所述音频的DNA序列对应的第二四进制序列进行转换,得到音频;
对所述画面的DNA序列对应的第三四进制序列进行转换,得到多帧图片;
在所述对所述第一四进制序列进行转换,得到所述DNA序列对应的原始数据之后,所述方法还包括:
对所述多帧图片和所述音频进行合成,得到视频。
17.根据权利要求12至16任一项所述的方法,其特征在于,所述DNA序列中包括多个DNA短序列,所述第一碱基序列中包含与每一所述DNA短序列对应的第二碱基序列;所述根据预设的四进制字符与碱基的映射关系,对所述第一碱基序列进行解码得到第一四进制序列,包括:
基于所述第一碱基序列中每一所述第二碱基序列各自对应的四进制字符与碱基的目标映射关系,对各个所述第二碱基序列进行解码得到对应的四进制短序列;
将所述四进制短序列进行拼接,得到所述第一四进制序列。
18.根据权利要求17所述的方法,其特征在于,所述基于所述第一碱基序列中每一所述第二碱基序列各自对应的四进制字符与碱基的目标映射关系,对各个所述第二碱基序列进行解码得到对应的四进制短序列,包括:
识别所述第一碱基序列中各个所述第二碱基序列中包含的关系序列;
基于所述关系序列,确定每一所述第二碱基序列各自对应的四进制字符与碱基的目标映射关系;
基于所述目标映射关系,对各个所述第二碱基序列进行解码得到对应的四进制短序列。
19.根据权利要求17所述的方法,其特征在于,所述将所述四进制短序列进行拼接,得到所述第一四进制序列,包括:
从每一所述四进制短序列中提取索引序列,所述索引序列对应于所述四进制短序列的分割顺序;
基于所述索引序列,将所述四进制短序列依照所述分割顺序进行拼接,得到所述第一四进制序列。
20.根据权利要求12所述的方法,其特征在于,所述根据所述DNA序列得到第一碱基序列,包括:
在所述DNA序列中,每间隔M个碱基的位置,去除N个碱基,得到第一碱基序列;
其中,M和N均为大于0的整数。
21.根据权利要求20所述的方法,其特征在于,所述在所述DNA序列中,每间隔M个碱基的位置,去除N个碱基,得到第一碱基序列,包括:
在所述DNA序列中,每间隔M个碱基的位置,去除N个碱基,并统计得到在去除N个碱基后的所述DNA序列的长度;
若所述DNA序列的长度大于设定碱基序列长度,则返回执行所述在所述DNA序列中,每间隔M个碱基的位置,去除N个碱基的步骤,直至所述DNA序列的长度等于所述设定碱基序列长度,得到所述第一碱基序列。
22.一种DNA编码装置,其特征在于,包括:
第一转换模块,用于将待存储的原始数据转换为第一四进制序列;
编码模块,用于根据预设的四进制字符与碱基的映射关系,对所述第一四进制序列进行编码转换得到第一碱基序列;
生成模块,用于根据所述第一碱基序列得到存储有所述原始数据的DNA序列。
23.一种DNA解码装置,其特征在于,包括:
确定模块,用于确定需解码的DNA序列;
处理模块,用于根据所述DNA序列得到第一碱基序列;
解码模块,用于根据预设的四进制字符与碱基的映射关系,对所述第一碱基序列进行解码得到第一四进制序列;
第二转换模块,用于对所述第一四进制序列进行转换,得到所述DNA序列对应的原始数据。
24.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至11任一项所述的DNA编码方法,或者所述处理器执行所述计算机程序时实现如权利要求12至21任一项所述的DNA解码方法。
25.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至11任一项所述的DNA编码方法,或者所述计算机程序被处理器执行时实现如权利要求12至21任一项所述的DNA解码方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2022/137698 WO2023173837A1 (zh) | 2022-03-14 | 2022-12-08 | Dna编码方法、解码方法、装置、终端设备及介质 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2022102483769 | 2022-03-14 | ||
CN202210248376 | 2022-03-14 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115312128A true CN115312128A (zh) | 2022-11-08 |
Family
ID=83859084
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210879914.4A Pending CN115312128A (zh) | 2022-03-14 | 2022-07-25 | Dna编码方法、解码方法、装置、终端设备及介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115312128A (zh) |
WO (2) | WO2023173837A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023173837A1 (zh) * | 2022-03-14 | 2023-09-21 | 深圳先进技术研究院 | Dna编码方法、解码方法、装置、终端设备及介质 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050053968A1 (en) * | 2003-03-31 | 2005-03-10 | Council Of Scientific And Industrial Research | Method for storing information in DNA |
WO2016059610A1 (en) * | 2014-10-18 | 2016-04-21 | Malik Girik | A biomolecule based data storage system |
CN106845158A (zh) * | 2017-02-17 | 2017-06-13 | 苏州泓迅生物科技股份有限公司 | 一种利用dna进行信息存储的方法 |
CN108183712B (zh) * | 2017-12-28 | 2019-04-16 | 北京华生恒业科技有限公司 | 一种汉字基因编、解码方法及系统 |
CN111368132B (zh) * | 2020-02-28 | 2023-04-14 | 元码基因科技(北京)股份有限公司 | 基于dna序列存储音频或视频文件的方法及存储介质 |
CN112527736B (zh) * | 2020-12-09 | 2024-03-29 | 中国科学院深圳先进技术研究院 | 基于dna的数据存储方法、数据恢复方法及终端设备 |
CN113066534A (zh) * | 2021-03-08 | 2021-07-02 | 山东骥图生物科技有限公司 | 一种利用dna序列进行信息写入和读取的方法 |
CN115312128A (zh) * | 2022-03-14 | 2022-11-08 | 深圳先进技术研究院 | Dna编码方法、解码方法、装置、终端设备及介质 |
-
2022
- 2022-07-25 CN CN202210879914.4A patent/CN115312128A/zh active Pending
- 2022-12-08 WO PCT/CN2022/137698 patent/WO2023173837A1/zh unknown
- 2022-12-09 WO PCT/CN2022/138143 patent/WO2023173842A1/zh unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023173837A1 (zh) * | 2022-03-14 | 2023-09-21 | 深圳先进技术研究院 | Dna编码方法、解码方法、装置、终端设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2023173837A1 (zh) | 2023-09-21 |
WO2023173842A1 (zh) | 2023-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3896986A1 (en) | Method and device for segmenting video | |
KR101922129B1 (ko) | 차세대 시퀀싱을 이용하여 획득된 유전 정보를 압축 및 압축해제하는 방법 및 장치 | |
US10902937B2 (en) | Lossless compression of DNA sequences | |
US7652595B2 (en) | Generating a data stream and identifying positions within a data stream | |
CN115312128A (zh) | Dna编码方法、解码方法、装置、终端设备及介质 | |
KR20120137235A (ko) | 유전자 데이터를 압축하는 방법 및 장치 | |
CN111949798B (zh) | 图谱的构建方法、装置、计算机设备和存储介质 | |
CN106911939A (zh) | 一种视频转码方法、装置及系统 | |
CN110662080B (zh) | 面向机器的通用编码方法 | |
CN104966109A (zh) | 医疗化验单图像分类方法及装置 | |
AU2017398951A1 (en) | Method and systems for the efficient compression of genomic sequence reads | |
CN110838298A (zh) | 多声道音频数据的处理方法、装置、设备和存储介质 | |
CN111862343B (zh) | 一种三维重建方法、装置、设备及计算机可读存储介质 | |
RU2008112226A (ru) | Способ кодирования и декодирования аудиосигнала и устройство для его осуществления | |
CN110377591B (zh) | 训练数据清洗方法、装置、计算机设备及存储介质 | |
CN111078821B (zh) | 字典设置方法、装置、介质及电子设备 | |
CN111143554B (zh) | 基于大数据平台的数据采样方法及装置 | |
CN106874979B (zh) | 一种条形码处理、显示、读取方法和装置 | |
CN109800433B (zh) | 基于邮件二分类模型的建档方法、装置、电子设备及介质 | |
CN113111230B (zh) | 基于正则表达式的接处警文本户籍地地址提取方法和装置 | |
CN113111350A (zh) | 一种恶意pdf文件的检测方法、装置及电子设备 | |
CN113111229A (zh) | 基于正则表达式的接处警文本轨迹地地址提取方法和装置 | |
CN111104484B (zh) | 文本相似度检测方法、装置及电子设备 | |
EP3583250A1 (en) | Method and systems for the efficient compression of genomic sequence reads | |
KR20010067778A (ko) | 영상/비디오 처리 방법 및 영상/비디오 객체 분할 방법 |
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 |