本发明涉及一种基于深度学习的crispr脱靶效应预测方法,属于生物信息学领域。
背景技术:
crispr/cas9系统介导的基因编辑技术是继锌指核酸酶、类转录激活因子效应物核酸酶后出现的第三代“基因组定点编辑技术”,可对特定位置上的dna序列进行编辑与修改。近年来,crispr/cas9技术主要应用于基因敲除、基因敲入、dna大片段删除、转录调控、基因检测、基因标记。但是,该技术还存在许多科学问题有待研究。比如,crispr/cas9是一种单链酶,其自身具有不稳定性,容易引起突变导致脱靶效应。因此,克服脱靶效应和提高基因组编辑效率成为研究人员亟待解决的问题。然而目前对于crispr的脱靶效应预测主要采用生物信息和实验经验等人工方式,效率十分低下。另一方面,目前的自动化方法并不能有效地利用基因组的先验信息,也不能很好的处理当下实验数据标签不平衡的问题。有鉴于此,有必要发明一种方法,该方法既能有效利用基因组的先验信息,也对实验数据进行增强,以解决数据少的问题,进而能有效地对crispr/cas9的脱靶效应进行预测。
技术实现要素:
针对上述问题,本发明提供一种基于深度学习的crispr脱靶效应预测方法。
为了实现上述目的,本发明的解决方案是:
一种基于深度学习的crispr脱靶效应预测方法,包括如下步骤:
第一步、开始对人类基因组hg19所有的基因过滤:为避免预训练的数据过于庞大造成后续预测精度的降低,需要首先过滤掉与任务无关的数据,并且针对性地找出所有pam序列为ngg的基因片段,进而对pam序列为ngg的序列对进行预测;
第二步、对原始语料进行预处理,具体分为如下四个步骤:
1.首先将序列以空格为间隔进行切分;
2.构建序列样本对,随机地将两个序列进行组合,正例样本对为两个序列有上下文关系,负例样本对为两个序列无上下文关系;
3.连接序列对,用[sep]标签进行分割序列,并在序列对的最开头置[cls]标签;
4.把原始基因语料中15%的碱基字符进行遮盖:80%的概率使用[mask]标签来进行替换,10%的概率使用随机采样的一个碱基来进行替换,10%的概率不进行替换;
第三步、对模型进行预训练:根据上一步预处理后的训练语料数据训练bert(bidirectionalencoderrepresentationsfromtransformers)序列模型,bert序列模型包括词嵌入层,多头attention编码器层,残差网络层,前馈神经网络层;
进一步使用两个步骤去对模型进行训练:第一个步骤是让模型的上下文全向地预测被遮盖的词,模型的任务是正确地预测出这15%的被遮盖的词汇,通过全向预测被遮盖住的词汇,来初步训练模型的参数;然后,用第二个步骤继续训练模型的参数,即让模型来识别这些序列对,哪些是连续的,哪些不连续;
第四步、获取由bert提取的词向量,由于bert是一个多层attention的组合,每个碱基tk在每一层都会有一个特征表示,将一个l层的bert表达如下:
rk为第k个碱基所得到的所有特征表示,其中xkat为该碱基的词嵌入层的输出,hatk,j是第j层的多头attention层的输出;
最后确定通用表达式如下:
第五步、将获取到的bert碱基向量
第六步、将训练集输入到lightgbm中进行训练,最后得到模型,模型的最后输出为一个概率值,这个值即为判断是否出现脱靶效应的依据。
优选的,所述第三步中的词嵌入层在序列的one-hot向量的基础上增加了位置嵌入的信息,对序列长度为n的序列,词嵌入层将id为pos的碱基映射为dmodel维的位置向量,pe(pos,2i)和pe(pos,2i 1)分别为向量中偶数位和奇数位的位置编码值,其中位置向量的计算方式如下:
优选的,所述第三步中的多头attention编码器层首先计算序列中每个碱基与其他碱基之间的相关性,其中碱基与碱基之间的相关性反映了其他碱基对该碱基的影响和关联程度;接下来利用这些相关信息调节其他碱基的输出向量并组合成该碱基新的表达,新的表征不仅蕴含了该词本身的信息,并且还蕴含了其他词与该词的关系,attention由以下形式表示:
其中q,k,v分别为三个矩阵,它们分别由词嵌入层的输出经过三个可训练的全连接层而得来,dk是q矩阵第二个维度的大小,它起到调节作用,使得內积不至于太大,attention_output为单层attention的输出;
多头attention即把q,k,v通过参数矩阵先进行映射,再重复h次attention,最后把结果拼接起来,具体如下:
其中i为(1,2,...,h)中任意一个值,
multihead(q,k,v)=concat(head1,...,headh)
concat的操作为将每一个headi第一个维度上进行拼接。
优选的,所述第三步中的残差网络层解决训练过程中随着网络的深入而导致梯度消失,浅层的参数无法更新的问题,具体如下:
layer_output=layernorm(x sublayer(x))
x为当前多头attention层的输出,sublayer(x)为上一多头attention层的输出,layer_output为残差网络层的输出,layernorm的操作为将当前层和上一层的输出做简单的加和后,进行归一化处理。
优选的,所述第三步中的前馈神经网络层中的每一个节点都与上一层所有节点相连,用来把上个残差网络层提取到的特征综合起来,具体如下:
fc_output=wx bias
w为一个可学习的参数矩阵,x为上个残差网络层的输出,bias一个可学习的偏置向量,fc_output为前馈神经网络层的输出。
优选的,所述第五步包括如下步骤:
1.使用knn方法进行采样,计算出每个少数类样本的k个近邻;
2.从k个近邻中随机挑选n个样本进行随机线性插值;
3.构造新的少数类样本;
4.将新样本与原始数据合成,产生新的训练集。
相比于现有技术,本发明的有益效果是:
本发明提供了一种基于深度学习的crispr脱靶效应预测方法,有效地利用基因组的先验信息,并且利用smote方法有效地解决了当下实验数据标签不平衡的问题,提高了目前脱靶效应预测工具的准确率。
附图说明
图1为本发明整体基本步骤;
图2为本发明bert模型的模块图。
具体实施方式
下面结合附图和实施例对本发明进一步说明。
如图1所示,下面结合实例具体介绍该方法的步骤:
一种基于深度学习的crispr脱靶效应预测方法,包括如下步骤:
第一步、开始对人类基因组hg19所有的基因过滤:为避免预训练的数据过于庞大造成后续预测精度的降低,需要首先过滤掉与任务无关的数据,并且针对性地找出所有pam序列为ngg的基因片段,进而对pam序列为ngg的序列对进行预测;
第二步、对原始语料进行预处理,具体分为如下四个步骤:
1.首先将序列以空格为间隔进行切分;
2.构建序列样本对,随机地将两个序列进行组合,正例样本对为两个序列有上下文关系,负例样本对为两个序列无上下文关系;
3.连接序列对,用[sep]标签进行分割序列,并在序列对的最开头置[cls]标签;
4.把原始基因语料中15%的碱基字符进行遮盖:80%的概率使用[mask]标签来进行替换,10%的概率使用随机采样的一个碱基来进行替换,10%的概率不进行替换;
第三步、对模型进行预训练:根据上一步预处理后的训练语料数据训练bert(bidirectionalencoderrepresentationsfromtransformers)序列模型,bert序列模型包括词嵌入层,多头attention编码器层,残差网络层,前馈神经网络层;bert模型的各层如图2所示;
进一步使用两个步骤去对模型进行训练:第一个步骤是让模型的上下文全向地预测被遮盖的词,模型的任务是正确地预测出这15%的被遮盖的词汇,通过全向预测被遮盖住的词汇,来初步训练模型的参数;然后,用第二个步骤继续训练模型的参数,即让模型来识别这些序列对,哪些是连续的,哪些不连续;
第四步、获取由bert提取的词向量,由于bert是一个多层attention的组合,每个碱基tk在每一层都会有一个特征表示,将一个l层的bert表达如下:
rk为第k个碱基所得到的所有特征表示,其中xkat为该碱基的词嵌入层的输出,hatk,j是第j层的多头attention层的输出;
最后确定通用表达式如下:
第五步、开始图1中训练模块的流程,将获取到的bert碱基向量
第六步、将训练集输入到lightgbm中进行训练,最后得到模型,模型的最后输出为一个概率值,这个值即为判断是否出现脱靶效应的依据。
优选的,所述第三步中的词嵌入层在序列的one-hot向量的基础上增加了位置嵌入的信息,对序列长度为n的序列,词嵌入层将id为pos的碱基映射为dmodel维的位置向量,pe(pos,2i)和pe(pos,2i 1)分别为向量中偶数位和奇数位的位置编码值,其中位置向量的计算方式如下:
优选的,所述第三步中的多头attention编码器层首先计算序列中每个碱基与其他碱基之间的相关性,其中碱基与碱基之间的相关性反映了其他碱基对该碱基的影响和关联程度;接下来利用这些相关信息调节其他碱基的输出向量并组合成该碱基新的表达,新的表征不仅蕴含了该词本身的信息,并且还蕴含了其他词与该词的关系,attention由以下形式表示:
其中q,k,v分别为三个矩阵,它们分别由词嵌入层的输出经过三个可训练的全连接层而得来,dk是q矩阵第二个维度的大小,它起到调节作用,使得內积不至于太大,attention_output为单层attention的输出;
多头attention即把q,k,v通过参数矩阵先进行映射,再重复h次attention,最后把结果拼接起来,具体如下:
其中i为(1,2,...,h)中任意一个值,
multihead(q,k,v)=concat(head1,...,headh)
concat的操作为将每一个headi第一个维度上进行拼接。
优选的,所述第三步中的残差网络层解决训练过程中随着网络的深入而导致梯度消失,浅层的参数无法更新的问题,具体如下:
layer_output=layernorm(x sublayer(x))
x为当前多头attention层的输出,sublayer(x)为上一多头attention层的输出,layer_output为残差网络层的输出,layernorm的操作为将当前层和上一层的输出做简单的加和后,进行归一化处理。
优选的,所述第三步中的前馈神经网络层中的每一个节点都与上一层所有节点相连,用来把上个残差网络层提取到的特征综合起来,具体如下:
fc_output=wx bias
w为一个可学习的参数矩阵,x为上个残差网络层的输出,bias一个可学习的偏置向量,fc_output为前馈神经网络层的输出。
优选的,所述第五步包括如下步骤:
1.使用knn方法进行采样,计算出每个少数类样本的k个近邻;
2.从k个近邻中随机挑选n个样本进行随机线性插值;
3.构造新的少数类样本;
4.将新样本与原始数据合成,产生新的训练集。
本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。
1.一种基于深度学习的crispr脱靶效应预测方法,其特征在于,包括如下步骤:
第一步、开始对人类基因组hg19所有的基因过滤:为避免预训练的数据过于庞大造成后续预测精度的降低,需要首先过滤掉与任务无关的数据,并且针对性地找出所有pam序列为ngg的基因片段,进而对pam序列为ngg的序列对进行预测;
第二步、对原始语料进行预处理,具体分为如下四个步骤:
1.首先将序列以空格为间隔进行切分;
2.构建序列样本对,随机地将两个序列进行组合,正例样本对为两个序列有上下文关系,负例样本对为两个序列无上下文关系;
3.连接序列对,用[sep]标签进行分割序列,并在序列对的最开头置[cls]标签;
4.把原始基因语料中15%的碱基字符进行遮盖:80%的概率使用[mask]标签来进行替换,10%的概率使用随机采样的一个碱基来进行替换,10%的概率不进行替换;
第三步、对模型进行预训练:根据上一步预处理后的训练语料数据训练bert序列模型,bert序列模型包括词嵌入层,多头attention编码器层,残差网络层,前馈神经网络层;
进一步使用两个步骤去对模型进行训练:第一个步骤是让模型的上下文全向地预测被遮盖的词,模型的任务是正确地预测出这15%的被遮盖的词汇,通过全向预测被遮盖住的词汇,来初步训练模型的参数;然后,用第二个步骤继续训练模型的参数,即让模型来识别这些序列对,哪些是连续的,哪些不连续;
第四步、获取由bert提取的词向量,由于bert是一个多层attention的组合,每个碱基tk在每一层都会有一个特征表示,将一个l层的bert表达如下:
rk为第k个碱基所得到的所有特征表示,其中xkat为该碱基的词嵌入层的输出,hatk,j是第j层的多头attention层的输出;
最后确定通用表达式如下:
第五步、将获取到的bert碱基向量
第六步、将训练集输入到lightgbm中进行训练,最后得到模型,模型的最后输出为一个概率值,这个值即为判断是否出现脱靶效应的依据。
2.如权利要求1所述的一种基于深度学习的crispr脱靶效应预测方法,其特征在于,所述第三步中的词嵌入层在序列的one-hot向量的基础上增加了位置嵌入的信息,对序列长度为n的序列,词嵌入层将id为pos的碱基映射为dmodel维的位置向量,pe(pos,2i)和pe(pos,2i 1)分别为向量中偶数位和奇数位的位置编码值,其中位置向量的计算方式如下:
3.如权利要求1所述的一种基于深度学习的crispr脱靶效应预测方法,其特征在于,所述第三步中的多头attention编码器层首先计算序列中每个碱基与其他碱基之间的相关性,其中碱基与碱基之间的相关性反映了其他碱基对该碱基的影响和关联程度;接下来利用这些相关信息调节其他碱基的输出向量并组合成该碱基新的表达,新的表征不仅蕴含了该词本身的信息,并且还蕴含了其他词与该词的关系,attention由以下形式表示:
其中q,k,v分别为三个矩阵,它们分别由词嵌入层的输出经过三个可训练的全连接层而得来,dk是q矩阵第二个维度的大小,它起到调节作用,使得內积不至于太大,attention_output为单层attention的输出;
多头attention即把q,k,v通过参数矩阵先进行映射,再重复h次attention,最后把结果拼接起来,具体如下:
headi=attention(qwiq,kwik,vwiv)
其中i为(1,2,...,h)中任意一个值,wiq,wik,wiv分别为三个可学习的参数矩阵,headi为单头的attention输出;
multihead(q,k,v)=concat(head1,...,headh)
concat的操作为将每一个headi第一个维度上进行拼接。
4.如权利要求1所述的一种基于深度学习的crispr脱靶效应预测方法,其特征在于,所述第三步中的残差网络层解决训练过程中随着网络的深入而导致梯度消失,浅层的参数无法更新的问题,具体如下:
layer_output=layernorm(x sublayer(x))
x为当前多头attention层的输出,sublayer(x)为上一多头attention层的输出,layer_output为残差网络层的输出,layernorm的操作为将当前层和上一层的输出做简单的加和后,进行归一化处理。
5.如权利要求1所述的一种基于深度学习的crispr脱靶效应预测方法,其特征在于,所述第三步中的前馈神经网络层中的每一个节点都与上一层所有节点相连,用来把上个残差网络层提取到的特征综合起来,具体如下:
fc_output=wx bias
w为一个可学习的参数矩阵,x为上个残差网络层的输出,bias一个可学习的偏置向量,fc_output为前馈神经网络层的输出。
6.如权利要求1所述的一种基于深度学习的crispr脱靶效应预测方法,其特征在于,所述第五步包括如下步骤:
1.使用knn方法进行采样,计算出每个少数类样本的k个近邻;
2.从k个近邻中随机挑选n个样本进行随机线性插值;
3.构造新的少数类样本;
4.将新样本与原始数据合成,产生新的训练集。
技术总结