一种基于深度学习算法进行基因关联分析的方法与流程

文档序号:11590865阅读:3022来源:国知局

本发明具体涉及一种基于lstm(longshort-termmemory)网络进行的基因关联分析方法,所述方法基于深度卷积神经网络和递归神经网络模型,属于生物信息学技术领域。



背景技术:

针对基因染色体碱基对与致病的关联研究一直是生物信息学的核心研究内容之一。在庞大的数据库中进行数据挖掘,深入了解生物的复杂性,利用现有知识与数据尽最大可能分析,但是由于基因存在多态性,在生物群体中,经常存在两种或多种不连续的变异型或基因型或等位基因,因此选用具有有效性、智能化等特点的机器学习方法来对基因多态性进行研究,可以为临床医学、遗传病学和预防医学的发展研究开拓新的领域。

传统的研究方法利用gwas(全基因组关联分析)进行病例控制分析,该方法需要对每一个个体的snp和致病风险进行测定和评估,然后用于鉴定与疾病易感性相关的snp(单核苷酸的多态性)。该方法需要数量巨大的患病病例以及健康病例的snp基因分型,且局限于需要检测multi-snp和上位效应,尽管在多种疾病分析检验中有所成就,但是对于全基因组的分析仍然处于劣势。

改进方法则是利用机器学习的一些模型,例如支持向量机(svm)、遗传算法(ga)、马尔科夫统计模型(mm)、贝叶斯推理等方法,单独使用或者结合各自优点使用能够提高生物信息学中解决问题的能力。但是传统方法的劣势在于无法处理变长序列,只能使用固定长度的序列片段作为输入,虽然获得了较高的预测效果,但是在随后的研究中发现,序列中距离间隔较大的区域中的残基之间会有相互影响的关系,研究人员不得不考虑这些误差。



技术实现要素:

本发明的目的在于克服现有技术的不足,提供一种基于深度学习算法处理全基因组分析中对于基因表现型与易感相关性分析的方法,利用深度卷积网络结合lstm模型对snp集进行分析,从而提高分析的准确率。

本发明采用了另一种分析策略,结合现有的生物学知识对snp进行分组,在基因层面基于snp集的分析需要借鉴来自不同但是相关的snp信息,利用lstm网络进行分析研究。如图2所示,该网络具有input门、forget门、output门,可以在学习过程中选择性的进行记忆和遗忘,具有对序列强大的处理和预测能力,系统的输出将会保留在内部网络中,与系统下一阶段的输入一起相互作用,决定下一时间的输出。该循环网络彰显了动力学系统的反馈概念,用来刻画复杂的相互依存和依赖问题。因此该方法对可重复性、可解释性以及分析结果的可能性有显著的提高。

本发明的技术方案如下:

基于snp集分析的方法需要借鉴来自同一个体不同位置但是相关的snp信息,根据现有生物学知识将个体的snp分成多个单元。首先在整个染色体层面,根据生物学相关知识,如接近基因组特征的原则,将全体snp划分成多个snp集。划分结束后,每一个snp集输入到搭建的双向lstm网络中,该网络是一个循环神经网络,它的状态包含上一时刻的陈旧信息,同时又是下一时刻权值变化的依据。lstm网络学习完成后,可以通过网络的计算,输出对输入数据所需关注程度。

为实现上述目的,本发明包括以下步骤:

(一)获得snp集数据

根据生物学知识处理基因数据,形成snp集可以通过movingwindow(移动窗口方法)、通过haplotypeblocks(单倍型域分析),例如,可以将染色体按具体确定的数值分成固定长度的snp集,或者可以利用基于单倍型域分析的方法,通过haploview(一款单倍体分析软件)切分。但是这些方法均会造成完整性的缺失,对距离相关性的处理依赖于所选取的固定窗口大小,若该窗口过大则会造成训练时间很长或产生过拟合现象,为了改善这个问题,在染色体层面按照基因分布进行区分可以改善这个问题,具体的:

使用基因位置有效区间信息将snp切分成多块,从而获得snp集数据,对于任意一个给定的snp集,它包含有k个个体,每个个体有p个snp,令第i个个体的snp为zi1,zi2,zi3,……zip,i≤k;忽略基因的一般性原则,将每个snp编码成trinaryfashion形式,根据等位基因的影响,对序列中的纯合子、杂合子zij进行赋值,其中zij=0,1,2。病例控制状态设为y,第i个个体记作yi,其中yi=1为case,yi=0为control。使用snp集作为x输入,病例控制状态设为y输入。

(二)搭建双向lstm模型

使用lstm的结构的目的是为了增加一个记忆存储单元,用于存储信息,记忆存储单元的状态包含上一时刻的陈旧信息,同时又是下一时刻权值变化的依据,能够更好地挖掘数据中更深层面的内容,由以下的函数复合得到:

it=σ(wxixt+whiht-1+wcict-1+bi)

ft=σ(wxfxt+whfht-1+wcfct-1+bf)

ct=ftct-1+ittanh(wxcxt+whcht-1+bc)

ot=σ(wxoxt+whoht-1+wcoct+bo)

ht=ottanh(ct)

上述式子中σ是逻辑sigmoid函数,i,f,o,c分别为输入门(inputgate)、遗忘门(forgetgate)、输出门(outputgate)和激活载体(cell),其中i,f,o,c与h具有相同的维度,便于后续的矩阵计算,因此需要与隐藏向量h具有相同的大小。

双向lstm在水平的上具有相反的方向,因此能够获得较远距离的内容,通过堆叠放置中间的隐藏层,能根据一个隐藏层的输出,形成下一个隐藏层的输入。

假设其中用于隐藏层的层数为n,则隐藏层代表的向量hn通过n=1~n,t=1~t进行迭代计算获得,其中前馈网络隐藏序列为反馈网络隐藏序列为

定义h0=x,输出为y

本发明的特点及有益效果

本发明实现了一种使用深度lstm神经网络,结合snp分组分析技术的方法,用于提高对全基因组分析中基因表现型与易感相关性的预测程度的方法。在庞大的数据库中进行数据挖掘,深入了解生物的复杂性,选用具有有效性、智能化等特点的机器学习方法,来对基因多态性进行研究,对于易感基因存在的形式及对基因位点的分析研究具有重要的意义。相比传统gwas单snp的分析方法,利用lstm深度神经网络的搭建,可以利用现有的关系进行学习,从而使未知序列的预测具有较高的准确性,减轻了基因研究者的负担,节约时间,提高分析基因的效率,该方法具有比传统方法更好的敏感度和特异度,为临床医学、遗传病学和预防医学的发展研究开拓了新的领域。

附图说明

图1为本发明的方法流程图;

图2为lstm网络结构图;

图3为双向lstm的结构模型;

图4为根据有效位置区间信息对snp进行分组示意图;

图5为snp集示意图。

具体实施方式

参考说明书附图1,下面通过实施来具体说明本发明的技术方案,但本发明并不局限于以下实施例子。

步骤1:根据现有生物学知识,在染色体层面按照基因分布进行分割,根据基因存在位置获得snp的有效位置区间信息,以待后续分割snp。这里使用了ceu(northerneuropeansfromutah)的样本基因作为模拟。

步骤2:假设基于以人群的病例病情对照,采用n个独立个体的基因序列,在染色体层面上对snp进行翻译,获得所需输入数据。

步骤3:如说明书附图4所示,根据步骤1中获得的位置信息,将步骤2中获得的snp序列根据有效位置区间信息对snp进行分组,分成多个snp集;

步骤4:如说明书附图5所示,对于任意一个给定的snp集,它包含有k个个体,每个个体有p个snp,令第i个个体的snp为zi1,zi2,zi3,……zip,i≤k;忽略基因的一般性原则,将每个snp编码成trinaryfashion形式,根据等位基因的影响,对序列中的纯合子、杂合子zij进行赋值,其中zij=0,1,2。病例控制状态设为y,第i个个体记作yi,其中yi=1为case,yi=0为control。使用snp集作为x输入,病例控制状态设为y输入。

步骤5:如说明书附图3所示,搭建双向lstm模型;

使用lstm的结构的目的是为了增加一个记忆存储单元,用于存储信息,它的状态包含上一时刻的陈旧信息,同时又是下一时刻权值变化的依据,可以更好地挖掘数据中更深层面的内容,由以下的函数复合得到:

it=σ(wxixt+whiht-1+wcict-1+bi)

ft=σ(wxfxt+whfht-1+wcfct-1+bf)

ct=ftct-1+ittanh(wxcxt+whcht-1+bc)

ot=σ(wxoxt+whoht-1+wcoct+bo)

ht=ottanh(ct)

公式中,wxi为输入序列x与输入门之间的权值,whi为隐藏层与输入门之间的权值;wci为激活载体与输入门之间的权值,bi为输入门为t时的偏差值;

wxf为输入序列x与遗忘门之间的权值,whf为隐藏层与遗忘门之间的权值,wcf为激活载体与遗忘门之间的权值,bf为遗忘门为t时的偏差值;

wxc为输入序列x与激活载体之间的权值,whc为隐藏层与激活载体之间的权值,bc为激活载体为t时的偏差值;

wxo为输入序列x与输出门之间的权值,who为隐藏层与输出门之间的权值;wco为激活载体与输出门之间的权值,bo为输出门为t时的偏差值;

ht为t时刻的隐藏层;

上述式子中σ是逻辑sigmoid函数,sigmoid(x)函数为:i,f,o,c分别为输入门(inputgate)、遗忘门(forgetgate)、输出门(outputgate)和激活载体,其中i,f,o,c与h具有相同的维度,便于后续的矩阵计算,因此需要与隐藏向量h具有相同的大小。

双向lstm在水平的上具有相反的方向,故可以获得较远距离的内容,通过堆叠放置中间的隐藏层,这些隐藏层归属于递归神经网络,可以根据上一个隐藏层的输出,形成下一个隐藏层的输入。

定义h0=x,输出为y

假设其中用于隐藏层的层数为n,则隐藏层代表的向量hn通过n=1~n,t=1~t进行迭代计算获得。

其中前馈网络隐藏序列为反馈网络隐藏序列为

使用上述步骤中的snp集作为x输入,病例控制状态设为y输入,由于本例采用模拟数据,因此此处病例控制状态根据随机选定的某个snp的tranaryfashion形式,数值为2则设定为1,数值为0、1则设定为0,将两者输入到搭建的双向lstm模型中,开始训练双向lstm模型,并保存训练好的双向lstm模型。

步骤6:按照步骤1中处理序列的方法,对待预测的基因序列进行处理,并将处理完的基因序列输入训练好的双向lstm模型,从而得出该待预测的基因序列获病的概率。

以上所述仅为本发明的一个实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1