发明名称 一种用一维细胞神经网络检测DNA序列相似度的方法
摘要 本发明公开了一种用一维细胞神经网络检测DNA序列相似度的方法,首先设计出一维细胞神经网络基本模型,然后利用这种模型建构一个一维的对偶细胞神经网络;再用两个待检测的DNA序列信息对该网络进行初始化,网络运行过程中,记录各时刻网络中的细胞状态和输出,据此形成最优输出矩阵;再对最优输出矩阵中的元素进行遍历,从而确定最佳的对齐路径;最后根据对齐路径对两个序列进行空格插入操作以便将两个序列全局对齐;序列对齐后,再根据对齐的碱基数量和总的碱基数量来计算其全局相似度。经过测试对比表明,本发明在保证检测准确的基础上,对于长度较长的DNA序列,所需的计算时间比现有方法明显有较大幅度地减少。
申请公布号 CN103544406A 申请公布日期 2014.01.29
申请号 CN201310552472.3 申请日期 2013.11.08
申请人 电子科技大学 发明人 纪禄平;郝德水;周龙;黄青君;尹力;杨洁
分类号 G06F19/22(2011.01)I;G06N3/02(2006.01)I 主分类号 G06F19/22(2011.01)I
代理机构 成都行之专利代理事务所(普通合伙) 51220 代理人 温利平
主权项 1.一种用一维细胞神经网络检测DNA序列相似度的方法,包括以下步骤:(1)、设计一维细胞神经网络基本模型将单细胞进行链状排列,各细胞序号依次用“…、i-1、i、i+1、…”来表示,其中的字母i表示细胞的排列序号;该基本模型中细胞状态用微分方程组来表示:<maths num="0001"><![CDATA[<math><mrow><mfenced open='{' close=''><mtable><mtr><mtd><mi>C</mi><mfrac><mrow><msub><mrow><mo>&PartialD;</mo><mi>x</mi></mrow><mi>i</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow><mrow><mo>&PartialD;</mo><mi>t</mi></mrow></mfrac><mo>=</mo><mo>-</mo><mfrac><mrow><msub><mi>x</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow><msub><mi>R</mi><mi>x</mi></msub></mfrac><mo>+</mo><mi>A</mi><mo>&CircleTimes;</mo><msub><mi>Y</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><mi>B</mi><mo>&CircleTimes;</mo><msub><mi>U</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><msub><mi>I</mi><mi>i</mi></msub></mtd></mtr><mtr><mtd><msub><mi>y</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mi>f</mi><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>)</mo></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow></math>]]></maths>其中,方程组(1)中,t表示时间,x<sub>i</sub>表示细胞i的状态,A是反馈模板,B是控制模板,I<sub>i</sub>、R<sub>x</sub>和C分别是三个常量,f(x<sub>i</sub>(t))是细胞状态的输出调制函数;Y<sub>i</sub>(t)表示细胞i包括自己的邻域输出矩阵,U<sub>i</sub>(t)表示细胞i包括自己的邻域输入,分别表示为:<maths num="0002"><![CDATA[<math><mrow><mfenced open='' close='' separators=''><mtable><mtr><mtd><msub><mi>Y</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><msub><mi>y</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mtd></mtr><mtr><mtd><msub><mi>y</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mtd></mtr><mtr><mtd><msub><mi>y</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mtd></mtr></mtable></mfenced></mtd><mtd></mtd></mtr></mtable><mrow><msub><mi>U</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><msub><mi>u</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mtd></mtr><mtr><mtd><msub><mi>u</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mtd></mtr><mtr><mtd><msub><mi>u</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mtd></mtr></mtable></mfenced></mrow></mfenced><mo>;</mo></mrow></math>]]></maths>细胞输出调制函数f(x<sub>i</sub>(t))的具体形态为:<maths num="0003"><![CDATA[<math><mrow><msub><mi>y</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mi>f</mi><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>)</mo></mrow><mo>=</mo><mfrac><mn>1</mn><mn>2</mn></mfrac><mrow><mo>(</mo><mo>|</mo><msub><mi>x</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><mn>1</mn><mo>|</mo><mo>-</mo><mo>|</mo><msub><mi>x</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>-</mo><mn>1</mn><mo>|</mo><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow></math>]]></maths>(2)、构建一维对称细胞神经网络用步骤(1)设计的一维细胞神经网络模型,先分别生成主子网CNN1和从子网CNN2,再由二者构建一个一维对偶细胞神经网络:在一维对偶细胞神经网络中,主子网CNN1是固定不动的,而从子网CNN2则是可以沿主子网CNN1平行移动,时间t每增加1,从子网CNN2移动一步,且从子网CNN2每次移动的距离等于主子网CNN1中两个相连细胞之间的距离;主子网CNN1由细胞0、1、2、…、m-1组成,从子网CNN2由细胞0、1、2、…、n组成;在一维对偶细胞神经网络中,令C=1、R<sub>x</sub>=1,则用以表示细胞状态的微分方程简化为:<maths num="0004"><![CDATA[<math><mrow><msub><mi>x</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>=</mo><munder><mi>&Sigma;</mi><mrow><mi>l</mi><mo>&Element;</mo><mi>L</mi><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow></mrow></munder><mi>A</mi><mo>&CircleTimes;</mo><msub><mi>Y</mi><mi>l</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><munder><mi>&Sigma;</mi><mrow><mi>l</mi><mo>&Element;</mo><mi>L</mi><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow></mrow></munder><mi>B</mi><mo>&CircleTimes;</mo><msub><mi>U</mi><mi>l</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><msub><mi>I</mi><mi>i</mi></msub><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow><mo>;</mo></mrow></math>]]></maths>时间T=t+1时,细胞i的输出y<sub>i</sub>(t+1)相应被重新定义为:<maths num="0005"><![CDATA[<math><mrow><mfenced open='' close=''><mtable><mtr><mtd><msub><mi>y</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>=</mo><mi>f</mi><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mo>=</mo><mfrac><mn>1</mn><mn>2</mn></mfrac><mrow><mo>(</mo><mo>|</mo><msub><mi>x</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>+</mo><mn>1</mn><mo>|</mo><mo>-</mo><mo>|</mo><msub><mi>x</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>-</mo><mn>1</mn><mo>|</mo><mo>)</mo></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow></math>]]></maths>(3)、利用步骤(2)构建的一维对偶细胞神经网络,对两个待检测相似度的DNA序列进行全局的碱基对齐;3.1)、对偶细胞网络的初始化待匹配的两个DNA碱基序列S<sub>1</sub>和S<sub>2</sub>的碱基数量分别为K<sub>1</sub>和K<sub>2</sub>,碱基序列的碱基代码分别表示为S<sub>1</sub>(k<sub>1</sub>)和S<sub>2</sub>(k<sub>2</sub>),且0≤k<sub>1</sub>≤K<sub>1</sub>-1和0≤k<sub>2</sub>≤K<sub>2</sub>-1,则主子网CNN1和从子网CNN2的细胞数量分别被初始化为K<sub>1</sub>+1和K<sub>2</sub>+1,即细胞数量m=K<sub>1</sub>+1和n=K<sub>2</sub>+1;用u<sup>1</sup>(i)和u<sup>2</sup>(j)表示主子网CNN1的第i个细胞输入和从子网CNN2的第j个细胞输入,则满足0≤i≤K<sub>1</sub>且0≤j≤K<sub>2</sub>,主子网CNN1和从子网CNN2中各细胞的细胞输入分别按公式(5)和公式(6)进行赋值:<img file="FDA0000410349210000023.GIF" wi="1636" he="176" /><img file="FDA0000410349210000024.GIF" wi="1632" he="181" />其中,符号“*”表示细胞的输入u设置为空值;主子网CNN1中的另一个常量参数初始化赋值为I<sub>i</sub>=2;主子网CNN1中使用到的反馈模板Α和控制模板B分别初始化为下列两个常数矩阵:A=[0 1 0]和B=[0 1 -1];此外,还要将主子网CNN1中细胞i,i=0,1,..,K<sub>1</sub>,的初始状态即t=0时均分别设置为x<sub>i</sub>(0)=0、y<sub>i</sub>(0)=0;主子网CNN1的第0个细胞和从子网CNN2第K<sub>2</sub>个细胞对齐;3.2)、迭代地计算主子网CNN1中细胞在各时刻的状态和输出时间t每增加1,从子网CNN2沿主子网CNN1的排列需要增加方向移动一步;对主子网CNN1,如果细胞i的正下方的那个细胞j<sub>L</sub>存在,则选取其3个邻域细胞即细胞i-1,i以及从子网CNN2中正处于i正下方的那个细胞j<sub>L</sub>;在时间t,t=1,2,…,m+n-1时,当时间t和细胞序号i同时满足条件1≤t≤m+n-1和1≤i≤m+1时,分别计算各细胞的最优状态<img file="FDA0000410349210000031.GIF" wi="110" he="92" />和最优输出<img file="FDA0000410349210000032.GIF" wi="152" he="91" />而如果细胞i的正下方的那个细胞j<sub>L</sub>不存在,则不计算细胞最优状态的<img file="FDA0000410349210000033.GIF" wi="114" he="93" />和最优输出<img file="FDA0000410349210000034.GIF" wi="119" he="93" />值;所述的最优状态<img file="FDA0000410349210000035.GIF" wi="117" he="93" />和最优输出<img file="FDA0000410349210000036.GIF" wi="118" he="91" />分别按下列公式计算:<maths num="0006"><![CDATA[<math><mrow><mover><msub><mi>x</mi><mi>i</mi></msub><mo>&OverBar;</mo></mover><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mi>max</mi><mo>{</mo><msub><mi>x</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub><mrow><mo>(</mo><mi>t</mi><mo>-</mo><mn>2</mn><mo>)</mo></mrow><mo>+</mo><msub><mrow><mn>2</mn><mi>I</mi></mrow><mi>i</mi></msub><mo>,</mo><msub><mi>x</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub><mrow><mo>(</mo><mi>t</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>-</mo><msub><mi>I</mi><mi>i</mi></msub><mo>,</mo><msub><mi>x</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>-</mo><msub><mi>I</mi><mi>i</mi></msub><mo>}</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>7</mn><mo>)</mo></mrow></mrow></math>]]></maths><img file="FDA0000410349210000038.GIF" wi="1810" he="271" />其中,函数max(...)表示求取输入参数中的最大值,x<sub>i-1</sub>(t-2)、x<sub>i-1</sub>(t-1)和x<sub>i</sub>(t-1)均按公式(3)进行计算;3.3)、形成细胞的最优输出矩阵根据步骤3.2)计算得到主子网CNN1的所有细胞在各时刻的最优状态和最优输出,然后按照第1列为细胞1从t=1到n时刻最优输出、第2列为细胞2从t=2到1+n时刻最优输出、…、第m列为细胞m从t=m到m+n时刻最优输出得到主网络CNN1的最终的细胞最优输出矩阵S<sub>y</sub>;3.4)、对两个DNA序列的碱基进行全局对齐根据步骤3.3)得到的最优输出矩阵S<sub>y</sub>,从矩阵左上角的元素开始,从左至右、从上至下遍历矩阵,确定最优输出矩阵S<sub>y</sub>中值为1的矩阵元素位置,并将确定好的各元素按顺序连接以形成碱基的对齐路径P;根据已确定好的碱基对齐路径P,分三种情况对DNA碱基序列S<sub>1</sub>和S<sub>2</sub>进行操作:从第一个元素1开始,如果下一个1位于其下,则在序列S<sub>1</sub>的当前位置插入符号“*”;如果下一个元素1位于其右侧,则在序列S<sub>2</sub>的当前位置插入符号“*”;如果下一个1刚好位于其右下位置,则不对S<sub>2</sub>和S<sub>2</sub>的当前位置做任何操作。处理完成S<sub>y</sub>的第一个元素后,按前述的三种情况继续处理第二个元素,直到输出矩阵S<sub>y</sub>的全部值为1的元素全部都已经被处理完毕,此时S<sub>2</sub>和S<sub>2</sub>已按碱基的排列顺序完成了全局对齐;(4)、计算两个DNA碱基序列序列S<sub>2</sub>和S<sub>2</sub>的全局相似度定义序列S<sub>2</sub>和S<sub>2</sub>的全局相似度为SC(S<sub>1</sub>,S<sub>2</sub>),则这两个DNA碱基序列的全局相似度按如下公式进行计算:<maths num="0007"><![CDATA[<math><mrow><mi>SC</mi><mrow><mo>(</mo><msub><mi>S</mi><mn>1</mn></msub><mo>,</mo><msub><mi>S</mi><mn>2</mn></msub><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><mn>2</mn><mo>&times;</mo><msub><mi>N</mi><mi>match</mi></msub></mrow><mrow><mi>Len</mi><mrow><mo>(</mo><msub><mi>S</mi><mn>1</mn></msub><mo>)</mo></mrow><mo>+</mo><mi>Len</mi><mrow><mo>(</mo><msub><mi>S</mi><mn>2</mn></msub><mo>)</mo></mrow></mrow></mfrac><mo>&times;</mo><mn>100</mn><mo>%</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>9</mn><mo>)</mo></mrow></mrow></math>]]></maths>其中,符号N<sub>match</sub>表示两个DNA碱基序列S<sub>2</sub>和S<sub>2</sub>经全局序列对齐以后,匹配成功的碱基对数量,Len(S<sub>1</sub>)和Len(S<sub>2</sub>)分别表示序列S<sub>1</sub>和S<sub>2</sub>的实际长度。
地址 611731 四川省成都市高新区(西区)西源大道2006号