一种基于神经网络的DNA存储中恶意篡改检测方法

阅读: 评论:0


一种基于神经网络的dna存储中恶意篡改检测方法
技术领域
1.本发明涉及dna存储的技术领域,尤其涉及一种基于神经网络的dna存储中恶意篡改检测方法。


背景技术:



2.信息存储是人类文明发展的必然需求,在这个信息爆炸的时代,高效快速的信息给人们的生活带来了许多便捷,同时由此也产生了海量的数据。数据的价值日益凸显,成为了宝贵的财富,对人类文明的发展有着重要的作用。但是磁带、硬盘、闪存等存储介质在存储密度、使用寿命、能源损耗等方面存在一定的局限。与此同时,dna作为一种在人类历史上一直存在的超高密度和超稳定的数据存储介质,逐渐走入人们的视野中。
3.随着科学研究的不断推进,特别是人类基因组计划等科学项目的进行,人们已经从原来的仅仅认识dna发展到能够人工合成dna、读取dna信息等,这对dna存储而言是至关重要的。曾经的遗传信息的组成部分,现在可以用来记录人们日常产生的信息,这已经不再是遥不可及的事情。
4.dna存储是将基于二进制01的信息映射到四种碱基(a、g、c、t)上并通过信息编码来进行存储。利用合成生物学的方式进行实现,这是一个由数字信号到化学信号的过程。随着人工dna合成技术的不断发展进步,dna存储具有存储密度高、存储时间长、占地面积小、维护成本低等优点,因此成为解决未来数据存储危机的介质。dna存储主要由5个步骤构成,包括:信息编码、合成dna、保存、dna测序和解码信息。
5.dna编码的方法众多,包括固定规则的简单映射编码、goldman编码、grass编码、dna喷泉(dna fountain)编码、阴阳(yin-yang)编码等。
6.不同的生化操作在处理某些类型的dn序列时可能会发生反应低效或失效的情况,进而丢失原始存储信息。因此保证所生成的dna序列对现有合成与测序生化技术流程的相互兼容是十分重要的,常见的生化约束要求有:(1)均聚物约束,均聚物即指在一条dna序列中相同碱基连续出现的次数,如果设定长度为3,那么出现连续碱基大于3的序列被称为不满足均聚物约束的;(2)特殊片段约束,即生化过程中的某些片段会使整条序列在dna合成或pcr扩增中显示异常,因此在合成中要求dna链中不能存在这种片段;(3)保持序列gc含量适中,gc含量指在一条dna序列中,g和c碱基所占的比重。
7.在dna测序中使用最广泛的是二代测序技术,illuminal测序即二代测序的基本原理是边合成边测序。在第一代测序方法的基础上,通过技术创新,用不同颜的荧光标记四种不同的dntp(脱氧核糖核苷三磷酸),当dna聚合酶合成互补链时,每添加一种dntp就会释放出不同的荧光,根据捕捉的荧光信号并经过特定的计算机软件处理,从而获得待测dna的序列信息。
8.dna序列存储不是完美的,在这个过程中可能会遇到恶意篡改问题,比如将设计好的dna序列交给合成公司之前,dna序列被修改,从而使设计的dna序列不满足生化约束;dna数据在容器中存储时被使用其他编码方式编码的数据污染等。我们希望对数据进行恶意篡
改检测,这在一定程度上减少了生化成本,而且提高了正确解码原始信息的能力。


技术实现要素:



9.针对dna序列潜在存在恶意篡改的技术问题,本发明提出一种基于神经网络的dna存储中恶意篡改检测方法,利用dnabert网络学习不同编码方式的内在特征,实现对恶意篡改的检测。
10.为了达到上述目的,本发明的技术方案是这样实现的:一种基于神经网络的dna存储中恶意篡改检测方法,包括如下步骤:
11.s1:将原始数据生成数据集,利用dna编码规则将数据集中的原始数据生成dna序列,并将数据集分成训练序列和测试序列;
12.s2:使用k-mers对训练序列进行分割生成对应的词表,将分割后序列输入dnabert网络进行训练得到dnabert检测模型;
13.s3:使用k-mers对测试序列分割并输入训练好的dnabert检测模型对dna序列进行分类,以判别其是否发生恶意篡改。
14.优选地,所述dna编码规则为固定规则的简单映射编码、goldman编码、grass编码、dna喷泉编码、阴阳编码或spider-web编码中的一种。
15.优选地,所述步骤s1中的dna序列满足生化约束,生化约束为均聚物长度约束、序列gc含量约束或特异片段约束中的至少一种。
16.优选地,所述k-mers的实现方法是将一个长度为l的dna序列,按照窗口长度为k进行滑动,将每个长度为k的片段视为一个词,总共得到l-k+1个词;通过自然语言处理在l-k+1个词的最前面增加分类头[cls]、在最后面增加句子分隔符[sep]。
[0017]
优选地,所述dnabert网络中设有12个特征提取单元,特征提取单元内设有多头注意力机制模块,多头注意力机制模块由多个独立的自注意力模块并联组成,用于学习上下文表示的dna特征;
[0018]
所述dnabert网络通过嵌入层将k-mers分割后的词表投影到特定的维度,得到嵌入向量,然后通过位置计算生成dna序列对应的位置嵌入向量。
[0019]
优选地,所述位置计算的实现方法为:设输入的dna序列包含一个序列中n个词元的d维嵌入表示,位置编码使用相同形状的位置嵌入矩阵输出矩阵x+p,矩阵p第i行、第2j列和2j+1列上的元素为:
[0020][0021][0022]
优选地,所述多头注意力机制模块的多头注意力计算的方法为:
[0023]
multihead(q,k,v)=concat(head1,...,headh)wo[0024]
其中,headi=f(q,k,v),wo为线性变换矩阵,将多头注意力输出维度映射到特征维度;concat表示拼接;h表示注意力计算的个数;
[0025]
自注意力模块的注意力计算的方法为:
[0026][0027][0028]
其中,f表示注意力函数,x为经过k-mers分割后的dna序列,q、k、v分别表示查询矩阵、键矩阵和值矩阵,wq、wk和wv表示不同参数的线性变换矩阵。
[0029]
与现有技术相比,本发明的有益效果:通过对在某种约束条件下的数据集的学习,例如生化约束为均聚物长度为4,gc含量为[0.4,0.6],能够有效的识别满足和违背此生化约束的dna序列;通过利用dnabert网络在具有不同编码方式的数据集上进行判别实验,从而学习不同编码方式的内在特征,实现恶意篡改检测。本发明通过利用dnabert网络学习不同dna序列的内在特征,利用神经网络实现了对dna存储中存在的恶意篡改问题的检测,且该方法适用于多种判别任务,具体体现为对生化约束的判别和对不同编码方式的判别,即识别dna序列是否满足生化约束,识别dna序列是否为特定的编码方式。
附图说明
[0030]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0031]
图1为本发明的流程示意图。
[0032]
图2为本发明dnabert网络的示意图。
[0033]
图3为本发明第一种恶意篡改检测的实验示意图。
[0034]
图4为本发明图3的实验结果图。
[0035]
图5为本发明使用不同编码方式对同一图片编码得到的部分dna片段示意图。
[0036]
图6为本发明第二种恶意篡改检测的实验结果图,其中,(a)为精确率p,(b)为召回率r,(c)为mcc,(d)为f1分数。
具体实施方式
[0037]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0038]
如图1所示,一种基于神经网络的dna存储中恶意篡改检测方法,包括如下步骤:
[0039]
s1:将原始数据生成数据集,利用dna编码规则将数据集中的原始数据生成dna序列,并将数据集分成训练序列和测试序列。
[0040]
本发明基于dna存储过程中可能存在的恶意篡改问题,利用神经网络实现恶意篡改检测。dna存储过程主要包括:编码、合成、存储、测序和解码,在这些过程中除了生化过程
带来的未知错误,如增删替等错误,我们还需要考虑在存储过程中是否发生意外,如在设计的dna序列交付给合成公司前,序列被他人修改,从而产生了不满足生化约束的序列,如图1中在合成阶段出现的第一次箭头,将其称为第一种恶意篡改;或者在dna被存储在容器中时,假设篡改者不知道编码方式,但是他可以使用其他编码方式编码的dna序列放在同一存储容器中,从而实现数据篡改的目的,如图1中在测试准备阶段第二次出现的箭头,将这种情况称为第二种恶意篡改。
[0041]
dna序列是通过某种dna编码规则生成的,包括固定规则的简单映射编码、goldman编码、grass编码、dna喷泉(dna fountain)编码、阴阳(yin-yang)编码等。dna序列满足约束:均聚物长度约束、序列gc含量约束或特异片段约束。不同的生化操作在处理某些类型的dna序列时可能会发生反应低效或失效的情况,进而丢失原始存储信息。因此,保证所生成的dna序列对现有合成与测序生化技术流程的相互兼容是十分重要的。
[0042]
s2:使用k-mers对训练序列进行分割生成对应的词表,将对应的词表输入dnabert网络进行训练得到dnabert检测模型。
[0043]
为了利用神经网络处理dna序列内在特征,需要利用k-mers对dna序列进行处理实现分词并建立对应的词表,从而使用神经网络进行训练。k-mers是将一个长度为l的dna序列,按照窗口长度为k进行滑动,将每个长度为k的片段视为一个词。通过实验结果好坏,k太长太短效果都不太好,本实验使用k=6。
[0044]
如果设定k为3,一条长度为152nt的dna序列将产生150个长度为3的片段,且词表大小为4^3,再结合自然与语言处理中常见的五种符号,即[cls]、[sep]、[mask]、[pad]、[unk],词表大小是69。因此建立词表是利用神经网络处理dna序列的关键技术。
[0045]
构建了词表之后,开始训练神经网络,dnabert网络是一个针对dna序列的深度学习的模型,只需要通过修改特定的下游任务,可以更快速、更高效地得到一个表现良好的神经网络。
[0046]
具体地,dnabert网络是基于自注意力机制的神经网络,是在bert模型基础上,使用自然语言处理工具在dna序列上预训练。在预训练中,dnabert网络对从人类基因组中提取10到510个长度的dna序列进行截断和采样,并自监督学习dna序列的基本语法和语义。对于每个序列序列,随机屏蔽k个(随机取15%的词进行屏蔽)连续标记的区域,这些标记构成序列的15%,并让dnabert网络基于剩余的部分预测屏蔽的序列,也就是bert模型中的mask任务。
[0047]
自然语言处理作为一个成熟的深度学习方向,在很多任务上都取得了非常好的效果。alphafold是比较知名的生物学和计算机相结合的工作,在蛋白质结构预测上取得了非常好的效果,彰显了深度学习的强大能力。蛋白质的基础是氨基酸,dna的基础是脱氧核糖核苷酸,它们都由各自的基础元素通过排列组合得到,所以可以将这种思想移植到分析dna序列上。
[0048]
本发明提出在dna序列存储过程中使用深度学习来实现可能发生的恶意篡改检测问题,恶意篡改的形式和发生时间多样,以两种可能发生的篡改为例。(1)在交给合成公司前数据发生篡改,数据不满足生化约束,使用dnabert网络进行训练,通过训练使模型具备判别序列是否满足特定生化约束的能力。(2)使用不同编码方式进行篡改。不同于传统的基于纠错码等方法,本发明将运用深度学习的强大能力挖掘数据内在的特征从而实现检测。
[0049]
相较于从头开始训练神经网络,近几年预训练网络收到了越来越多的关注,本发明在dnabert预训练网络的基础上进行微调,降低了训练成本,提高了收敛速度。
[0050]
在使用k-mers处理序列之后,需要将序列投影到特定维度,称之为嵌入即embedding,将dna序列输入dnabert网络的embedding函数得到嵌入向量,即得到相应的投影到特定维度的信息。由dnabert网络的嵌入层得到嵌入向量;由下述位置计算生成dna序列对应的位置的嵌入向量。
[0051]
除了将dna序列进行投影,还需要考虑位置信息,因为注意力计算和位置无关只与数值有关,位置计算如下:
[0052]
假设输入dna序列包含一个序列中n个词元的d维嵌入表示,位置编码使用相同形状的位置嵌入矩阵输出x+p,矩阵第i行、第2j列和2j+1列上的元素为:
[0053][0054][0055]
dnabert网络对dna序列内在特征的学习通过常用的注意力方法学习,注意力机制在自然语言处理领域使用甚广,注意力计算方法采用的公式如下:
[0056][0057][0058]
其中,f表示注意力函数,x为经过k-mers分割后的dna序列,q、k、v分别表示查询矩阵、键矩阵和值矩阵,通过使用线性变换矩阵wq、wk和wv对dna序列x进行线性变换得到。wq、wk和wv表示线性变换矩阵,通过网络学习其中参数。
[0059]
与其只使用单独一个注意力汇聚,可以用独立学习得到的h组不同的线性投影来变换查询矩阵、键矩阵和值矩阵,多头注意力机制是注意力机制的改进版本,在实际使用中更为广泛。为了计算高效以及更多样表示,多头注意力机制的计算方法为:
[0060]
multihead(q,k,v)=concat(head1,...,headh)wo[0061]
其中,headi=f(q,k,v),wo为线性变换矩阵,可以将多头注意力输出维度映射到特征维度。concat表示拼接。
[0062]
多头注意力机制模块由多个独立的自注意力模块并联组成,用于学习上下文表示的dna特征。如图2所示,dnabert网络中设有12个特征提取单元,特征提取单元中设有多头自注意力层、层归一化和前馈网络,多头自注意力层上设有多头注意力机制模块,实现多头注意力机制的计算。层归一化有利于模型更好的收敛,获得更好的效果;前馈网络的作用是用来更好地提取输入dna序列的特征的表示,同时降低维度并输出最后的dna序列的预测结果。
[0063]
s3:将经过k-mers分割后的测试dna序列输入训练好的dnabert检测模型对dna序
列进行分类,以判别其是否发生恶意篡改。
[0064]
通过对序列开始位置添加特殊分类头[cls],可以判断dna序列是否发生篡改。
[0065]
使用训练好的dnabert检测模型对测试序列的dna序列进行分类,具体为将dna序列利用训练好的dnabert模型转化为嵌入向量的形式,进而提取特征,以判别其是否满足生化约束,生化约束和训练序列采用的生化约束一致。满足约束的为正例,反之为反例;如果设定特定编码规则为喷泉码,那么使用其他编码方式的数据如阴阳码为反例,反例即为发生篡改。
[0066]
本发明使用的评价指标如下:
[0067][0068]
其中,tp表示样本的真实类别与模型识别的结果都是正类;fp样本的真实类别是负类,但是模型将其识别为正类;fn表示样本的真实类别是正类,但是模型将其识别为负类;tn表示样本的真实类别与模型识别结果都是负类。
[0069]
精确率p=tp/(tp+fp);召回率r=tp/(tp+fn)。
[0070]
mcc(马修斯相关系数)用以测量二分类的分类性能的指标,该指标考虑了真阳性、真阴性、假阳性和假阴性,且
[0071][0072]
f1分数是统计学中用来衡量二分类模型精确度的一种指标,可以看作是模型精确率和召回率的一种调和平均。f1分数越接近1,预测效果越好,且
[0073][0074]
下面给出具体应用中本发明的恶意篡改检测方法的实现方法:
[0075]
step1.输入dna序列;
[0076]
step2.使用k-mers进行分割并建立对应词表;
[0077]
step3.将处理后的数据输入到dnabert检测模型;
[0078]
step4.如果dnabert检测模型预测为0,即为正样本,预测为1,即为负样本。负样本表示发生了篡改,如果发生篡改则该数据可直接丢弃。
[0079]
图3和图4的实验中使用spider-web进行dna编码,生化约束由三个子约束和观测长度l组成:均聚物长度n,即在每个长度为l的片段中要求连续相同的碱基不能超过n个;gc含量[a,b],即要求在每个长度为l的片段中g和c所占的比例应满足在[a,b]区间内;禁止片段,即要求在每个长度为l的片段中,不能出现这些片段。若满足以上三条子约束则成为满足生化约束,反之称为则不满足生化约束。序列条数为总数,其中满足生化约束和不满足生化约束的序列各占一半,模型对每个dna序列进行判断,准确率为识别正确的比例。
[0080]
图6中横坐标为迭代次数,纵坐标为各类评价指标:p,r,mcc,f1分数。从测试数据的结果来看,在过拟合之前,dnabert检测模型得到了很好的判别结果。
[0081]
本发明利用dnabert网络实现了dna存储中的恶意篡改检测,dnabert网络使用简
单,利用预训练好的dnabert检测模型,在设定好的恶意篡改检测任务微调,具体是将生成的具有特定特征的数据集(是否特定生化约束的数据集或两种不同编码方式的数据集)输入到dnabert检测模型进行判别,从而获取特征表示,可以获得较高的检测精度。
[0082]
本发明是在dnabert模型预训练的基础上,根据dna存储中可能遇到的恶意篡改问题,学习dna序列中潜在的特征,实现恶意篡改检测。本发明使用基于神经网络的dnabert网络,可学习dna序列需要满足的生化约束以及不同编码方式的内在特征,避免传统编码方式无法检测多个连续片段修改甚至全部替换的缺点。
[0083]
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

技术特征:


1.一种基于神经网络的dna存储中恶意篡改检测方法,其特征在于,包括如下步骤:s1:将原始数据生成数据集,利用dna编码规则将数据集中的原始数据生成dna序列,并将数据集分成训练序列和测试序列;s2:使用k-mers对训练序列进行分割生成对应的词表,将分割后序列输入dnabert网络进行训练得到dnabert检测模型;s3:使用k-mers对测试序列分割并输入训练好的dnabert检测模型对dna序列进行分类,以判别其是否发生恶意篡改。2.根据权利要求1所述的基于神经网络的dna存储中恶意篡改检测方法,其特征在于,所述dna编码规则为固定规则的简单映射编码、goldman编码、grass编码、dna喷泉编码、阴阳编码或spider-web编码中的一种。3.根据权利要求1或2所述的基于神经网络的dna存储中恶意篡改检测方法,其特征在于,所述步骤s1中的dna序列满足生化约束,生化约束为均聚物长度约束、序列gc含量约束或特异片段约束中的至少一种。4.根据权利要求3所述的基于神经网络的dna存储中恶意篡改检测方法,其特征在于,所述k-mers的实现方法是将一个长度为l的dna序列,按照窗口长度为k进行滑动,将每个长度为k的片段视为一个词,总共得到l-k+1个词;通过自然语言处理在l-k+1个词的最前面增加分类头[cls]、在最后面增加句子分隔符[sep]。5.根据权利要求4所述的基于神经网络的dna存储中恶意篡改检测方法,其特征在于,所述dnabert网络中设有12个特征提取单元,特征提取单元内设有多头注意力机制模块,多头注意力机制模块由多个独立的自注意力模块并联组成,用于学习上下文表示的dna特征;所述dnabert网络通过嵌入层将k-mers分割后的词表投影到特定的维度,得到嵌入向量,然后通过位置计算生成dna序列对应的位置嵌入向量。6.根据权利要求5所述的基于神经网络的dna存储中恶意篡改检测方法,其特征在于,所述位置计算的实现方法为:设输入的dna序列包含一个序列中n个词元的d维嵌入表示,位置编码使用相同形状的位置嵌入矩阵输出矩阵x+p,矩阵p第i行、第2j列和2j+1列上的元素为:和2j+1列上的元素为:7.根据权利要求4-6中任意一项所述的基于神经网络的dna存储中恶意篡改检测方法,其特征在于,所述多头注意力机制模块的多头注意力计算的方法为:multihead(q,k,v)=concat(head1,...,head
h
)w
o
其中,head
i
=f(q,k,v),w
o
为线性变换矩阵,将多头注意力输出维度映射到特征维度;concat表示拼接;h表示注意力计算的个数;自注意力模块的注意力计算的方法为:
其中,f表示注意力函数,x为经过k-mers分割后的dna序列,q、k、v分别表示查询矩阵、键矩阵和值矩阵,w
q
、w
k
和wv表示不同参数的线性变换矩阵。

技术总结


本发明提出了一种基于神经网络的DNA存储中恶意篡改检测方法,包括如下步骤:将原始数据生成数据集,利用DNA编码规则将数据集中的原始数据生成DNA序列,并将数据集分成训练序列和测试序列;使用k-mers对训练序列进行分割并生成对应的词表,将分割后序列输入DNABERT网络进行训练得到DNABERT检测模型;将测试序列进行k-mers分割后输入训练好的DNABERT检测模型对DNA序列进行分类,以判别其是否发生恶意篡改。本发明通过利用DNABERT网络学习不同DNA序列的内在特征,利用神经网络实现了对DNA存储中存在的恶意篡改问题的检测,且适用于对生化约束的判别和对不同编码方式的判别。生化约束的判别和对不同编码方式的判别。生化约束的判别和对不同编码方式的判别。


技术研发人员:

杨义杰 窦昶 朱斐 段玉萍

受保护的技术使用者:

天津大学

技术研发日:

2022.09.29

技术公布日:

2022/12/19

本文发布于:2022-12-25 21:27:20,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/2/45421.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:序列   神经网络   注意力   生化
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图