发明名称 基于平均场退火技术的蛋白质的立体结构比对方法
摘要 基于平均场退火技术的蛋白质的立体结构比对方法属于生物信息技术领域,其特征在于:它把蛋白质的立体比对精确地归结为一非线性整数规划问题。再基于平均场理论,把问题等价为非线性连续型的最优化问题,然后利用工程上的退火技术,高效率地找出相应问题的最优结构比对解。它不需要附加的或人为的“软限制”条件,而得到了精确的最优解,不需要事后处理。它还可用于蛋白质的结构分类,功能预测,主次结构的识别,多基因树的重构以及制药工程等领域。
申请公布号 CN1670754A 申请公布日期 2005.09.21
申请号 CN200410068843.1 申请日期 2004.07.09
申请人 清华大学;陈洛南 发明人 陈洛南;周天寿;唐云
分类号 G06F19/00 主分类号 G06F19/00
代理机构 代理人
主权项 1.基于平均场退火技术的蛋白质的立体结构比对方法,其特征在于,它依次含有以下步骤:(1)对计算机进行初始化●设定以下各种初始值:退火温度T,退火温度递降系数ε,惩罚函数λ,取正的实数值,0<λ≤100,平移向量A为3阶零向量,旋转矩阵R为3×3单位矩阵,实数值相配变量       v<sub>ij</sub>(0)=1/max(n<sub>x</sub>+1,n<sub>y</sub>+1),0≤v<sub>ij</sub>≤1,0≤i≤n<sub>x</sub>,0≤j≤n<sub>y</sub>,其中:n<sub>x</sub>、n<sub>y</sub>分别为只计主链时,两列待比对的蛋白质X、Y长度,n<sub>x</sub>、n<sub>y</sub>均为正整数,i、j分别为X中的第i个原子和Y中的第j个原子,n<sub>x</sub>、n<sub>y</sub>也分别是X、Y中蛋白质原子的数目;v<sub>ij</sub>的收敛阈值0.001;l是迭代次数,初始值为0;●规范化数据:从通用的Protein Data Bank数据库中导入待排蛋白质链{X<sub>i</sub><sup>0</sup>}<sub>j=1</sub><sup>nx</sup>、{Y<sub>j</sub><sup>0</sup>}<sub>j=1</sub><sup>ny</sup>,则得到蛋白质X中的第i个原子与蛋白质Y中的第j个原子在三维空间中的相应坐标为:          X<sub>i</sub>=(x<sub>i,1</sub>,x<sub>i,2</sub>,x<sub>i,3</sub>),Y<sub>j</sub>=(y<sub>j,1</sub>,y<sub>j,2</sub>,y<sub>j,3</sub>),把上述两个蛋白质X、Y平移到几何中心后:<maths num="001"><![CDATA[ <math><mrow><msup><msub><mi>X</mi><mi>i</mi></msub><mn>1</mn></msup><mo>=</mo><msup><msub><mi>X</mi><mi>i</mi></msub><mn>0</mn></msup><mo>-</mo><mi>cc</mi><mo>,</mo><msup><msub><mi>Y</mi><mi>j</mi></msub><mn>1</mn></msup><mo>=</mo><msup><msub><mi>Y</mi><mi>j</mi></msub><mn>0</mn></msup><mo>-</mo><mi>cc</mi><mo>,</mo></mrow></math>]]></maths>其中<maths num="002"><![CDATA[ <math><mrow><mi>cc</mi><mo>=</mo><mrow><mo>(</mo><msubsup><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><msub><mi>n</mi><mi>x</mi></msub></msubsup><msubsup><mi>X</mi><mi>i</mi><mn>0</mn></msubsup><mo>+</mo><msubsup><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><msub><mi>n</mi><mi>y</mi></msub></msubsup><msubsup><mi>Y</mi><mi>j</mi><mn>0</mn></msubsup><mo>)</mo></mrow><mo>/</mo><mrow><mo>(</mo><msub><mi>n</mi><mi>x</mi></msub><mo>+</mo><msub><mi>n</mi><mi>y</mi></msub><mo>)</mo></mrow><mo>,</mo></mrow></math>]]></maths>再把X<sub>i</sub><sup>1</sup>、Y<sub>j</sub><sup>1</sup>单位化,得到<maths num="003"><![CDATA[ <math><mrow><msub><mi>X</mi><mi>i</mi></msub><mo>=</mo><msup><msub><mi>X</mi><mi>i</mi></msub><mn>1</mn></msup><mo>/</mo><mi>fac</mi><mo>,</mo><msub><mi>Y</mi><mi>j</mi></msub><mo>=</mo><msup><msub><mi>Y</mi><mi>j</mi></msub><mn>1</mn></msup><mo>/</mo><mi>fac</mi><mo>,</mo></mrow></math>]]></maths>其中<maths num="004"><![CDATA[ <math><mrow><mi>fac</mi><mo>=</mo><munder><mi>max</mi><mrow><mn>1</mn><mo>&le;</mo><mi>i</mi><mo>&le;</mo><msub><mi>n</mi><mi>x</mi></msub><mo>,</mo><mn>1</mn><mo>&le;</mo><mi>j</mi><mo>&le;</mo><msub><mi>n</mi><mi>y</mi></msub></mrow></munder><mo>|</mo><msup><msub><mi>X</mi><mi>i</mi></msub><mn>1</mn></msup><mo>-</mo><msup><msub><mi>Y</mi><mi>j</mi></msub><mn>1</mn></msup><mo>|</mo><mo>;</mo></mrow></math>]]></maths>(2)把要求解的相配变量v<sub>ij</sub>用辅助变量u<sub>ij</sub>、w<sub>j</sub>表达成代数形式,计算机用下式求解、更新u<sub>ij</sub>:          u<sub>ij</sub>(l)=-|A+RX<sub>i</sub>-Y<sub>j</sub>|<sup>2</sup>/T(l-1),1≤i≤n<sub>x</sub>,1≤j≤n<sub>y</sub>,<maths num="005"><![CDATA[ <math><mrow><msub><mi>u</mi><mrow><mn>0</mn><mi>j</mi></mrow></msub><mrow><mo>(</mo><mi>l</mi><mo>)</mo></mrow><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><mrow><mo>(</mo><mo>-</mo><mi>&lambda;</mi><mo>+</mo><msub><mi>&lambda;v</mi><mn>02</mn></msub><mrow><mo>(</mo><mi>l</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>/</mo><mn>2</mn><mo>)</mo></mrow><mo>/</mo><mi>T</mi><mrow><mo>(</mo><mi>l</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mtd><mtd><mi>j</mi><mo>=</mo><mn>1</mn></mtd></mtr><mtr><mtd><mrow><mo>(</mo><mo>-</mo><mi>&lambda;</mi><mo>+</mo><mi>&lambda;</mi><mrow><mo>(</mo><msub><mi>v</mi><mrow><mn>0</mn><mrow><mo>(</mo><mi>j</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow></msub><mrow><mo>(</mo><mi>l</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>+</mo><msub><mi>v</mi><mrow><mn>0</mn><mrow><mo>(</mo><mi>j</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow></msub><mrow><mo>(</mo><mi>l</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>)</mo></mrow><mo>/</mo><mn>2</mn><mo>)</mo></mrow><mo>/</mo><mi>T</mi><mrow><mo>(</mo><mi>l</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mtd><mtd><mn>2</mn><mo>&le;</mo><mi>j</mi><mo>&lt;</mo><msub><mi>n</mi><mi>y</mi></msub></mtd></mtr><mtr><mtd><mrow><mo>(</mo><mo>-</mo><mi>&lambda;</mi><mo>+</mo><msub><mi>&lambda;v</mi><mrow><mn>0</mn><mrow><mo>(</mo><msub><mi>n</mi><mi>y</mi></msub><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow></msub><mrow><mo>(</mo><mi>l</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>/</mo><mn>2</mn><mo>)</mo></mrow><mo>/</mo><mi>T</mi><mrow><mo>(</mo><mi>l</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mtd><mtd><mi>j</mi><mo>=</mo><msub><mi>n</mi><mi>y</mi></msub></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></math>]]></maths><maths num="006"><![CDATA[ <math><mrow><msub><mi>u</mi><mrow><mi>i</mi><mn>0</mn></mrow></msub><mrow><mo>(</mo><mi>l</mi><mo>)</mo></mrow><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><mrow><mo>(</mo><mo>-</mo><mi>&lambda;</mi><mo>+</mo><msub><mi>&lambda;v</mi><mn>20</mn></msub><mrow><mo>(</mo><mi>l</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>/</mo><mn>2</mn><mo>)</mo></mrow><mo>/</mo><mi>T</mi><mrow><mo>(</mo><mi>l</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mtd><mtd><mi>i</mi><mo>=</mo><mn>1</mn></mtd></mtr><mtr><mtd><mrow><mo>(</mo><mo>-</mo><mi>&lambda;</mi><mo>+</mo><mi>&lambda;</mi><mrow><mo>(</mo><msub><mi>v</mi><mrow><mrow><mo>(</mo><mi>j</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mn>0</mn></mrow></msub><mrow><mo>(</mo><mi>l</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>+</mo><msub><mi>v</mi><mrow><mrow><mo>(</mo><mi>j</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mn>0</mn></mrow></msub><mrow><mo>(</mo><mi>l</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>)</mo></mrow><mo>/</mo><mn>2</mn><mo>)</mo></mrow><mo>/</mo><mi>T</mi><mrow><mo>(</mo><mi>l</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mtd><mtd><mn>2</mn><mo>&le;</mo><mi>i</mi><mo>&lt;</mo><msub><mi>n</mi><mi>x</mi></msub></mtd></mtr><mtr><mtd><mrow><mo>(</mo><mo>-</mo><mi>&lambda;</mi><mo>+</mo><msub><mi>&lambda;v</mi><mrow><mrow><mo>(</mo><msub><mi>n</mi><mi>x</mi></msub><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mn>0</mn></mrow></msub><mrow><mo>(</mo><mi>l</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>/</mo><mn>2</mn><mo>)</mo></mrow><mo>/</mo><mi>T</mi><mrow><mo>(</mo><mi>l</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mtd><mtd><mi>i</mi><mo>=</mo><msub><mi>n</mi><mi>x</mi></msub></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></math>]]></maths>计算机通过迭代法对下式求解另一变量w<sub>j</sub>:<maths num="007"><![CDATA[ <math><mrow><msub><mi>w</mi><mi>j</mi></msub><mrow><mo>(</mo><mi>l</mi><mo>)</mo></mrow><mo>=</mo><msup><mi>e</mi><mrow><mo>-</mo><mn>1</mn><mo>+</mo><msub><mi>u</mi><mrow><mn>0</mn><mi>j</mi></mrow></msub><mrow><mo>(</mo><mi>l</mi><mo>)</mo></mrow></mrow></msup><mo>+</mo><msubsup><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><msub><mi>n</mi><mi>x</mi></msub></msubsup><mrow><mo>(</mo><msup><mi>e</mi><mrow><msub><mi>u</mi><mi>ij</mi></msub><mrow><mo>(</mo><mi>l</mi><mo>)</mo></mrow></mrow></msup><mo>/</mo><msubsup><mi>&Sigma;</mi><mrow><mover><mi>j</mi><mo>^</mo></mover><mo>=</mo><mn>1</mn></mrow><msub><mi>n</mi><mi>y</mi></msub></msubsup><mrow><mo>(</mo><msup><mi>e</mi><mrow><msub><mi>u</mi><mrow><mi>i</mi><mover><mi>j</mi><mo>^</mo></mover></mrow></msub><mrow><mo>(</mo><mi>l</mi><mo>)</mo></mrow></mrow></msup><mo>/</mo><msub><mi>w</mi><mover><mi>j</mi><mo>^</mo></mover></msub><mrow><mo>(</mo><mi>l</mi><mo>)</mo></mrow><mo>)</mo></mrow><mo>)</mo></mrow></mrow></math>]]></maths>其中,l为迭代到第l次的序号,<img file="A2004100688430003C3.GIF" wi="21" he="53" />表示从1到n<sub>y</sub>的整数;(3)计算机用下式求解相配变量:<maths num="008"><![CDATA[ <math><mrow><msub><mi>v</mi><mi>ij</mi></msub><mrow><mo>(</mo><mi>l</mi><mo>)</mo></mrow><mo>=</mo><mrow><mo>(</mo><msup><mi>e</mi><mrow><msub><mi>u</mi><mi>ij</mi></msub><mrow><mo>(</mo><mi>l</mi><mo>)</mo></mrow></mrow></msup><mo>/</mo><msub><mi>w</mi><mi>j</mi></msub><mrow><mo>(</mo><mi>l</mi><mo>)</mo></mrow><mo>)</mo></mrow><mo>/</mo><msubsup><mi>&Sigma;</mi><mrow><mover><mi>j</mi><mo>^</mo></mover><mo>=</mo><mn>0</mn></mrow><msub><mi>n</mi><mi>y</mi></msub></msubsup><mrow><mo>(</mo><msup><mi>e</mi><mrow><msub><mi>u</mi><mrow><mi>i</mi><mover><mi>j</mi><mo>^</mo></mover></mrow></msub><mrow><mo>(</mo><mi>l</mi><mo>)</mo></mrow></mrow></msup><mo>/</mo><msub><mi>w</mi><mover><mi>j</mi><mo>^</mo></mover></msub><mrow><mo>(</mo><mi>l</mi><mo>)</mo></mrow><mo>)</mo></mrow></mrow></math>]]></maths><maths num="009"><![CDATA[ <math><mrow><msub><mi>v</mi><mrow><mn>0</mn><mi>j</mi></mrow></msub><mrow><mo>(</mo><mi>l</mi><mo>)</mo></mrow><mo>=</mo><msup><mi>e</mi><mrow><mo>-</mo><mn>1</mn><mo>+</mo><msub><mi>u</mi><mrow><mn>0</mn><mi>j</mi></mrow></msub><mrow><mo>(</mo><mi>l</mi><mo>)</mo></mrow></mrow></msup><mo>/</mo><msub><mi>w</mi><mi>j</mi></msub><mrow><mo>(</mo><mi>l</mi><mo>)</mo></mrow></mrow></math>]]></maths>(4)根据下述收敛判断准则判别v<sub>ij</sub>是否收敛:<maths num="010"><![CDATA[ <math><mrow><mrow><mo>(</mo><mn>1</mn><mo>/</mo><msub><mi>n</mi><mi>x</mi></msub><msub><mi>n</mi><mi>y</mi></msub><mo>)</mo></mrow><msubsup><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><msub><mi>n</mi><mi>x</mi></msub></msubsup><msubsup><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><msub><mi>n</mi><mi>y</mi></msub></msubsup><mo>|</mo><msub><mi>v</mi><mi>ij</mi></msub><mrow><mo>(</mo><mi>l</mi><mo>)</mo></mrow><mo>-</mo><msub><mi>v</mi><mi>ij</mi></msub><mrow><mo>(</mo><mi>l</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>|</mo><mo>&le;</mo><mn>0.001</mn></mrow></math>]]></maths>(5)若不收敛,回到步骤(2),进行下一次迭代,若收敛,则执行下一步骤;(6)计算机根据奇异值分解法用下面式子计算旋转矩阵R和平移向量A:<maths num="011"><![CDATA[ <math><mrow><mi>R</mi><mo>=</mo><msub><mi>V</mi><mn>0</mn></msub><msubsup><mi>U</mi><mn>0</mn><mi>T</mi></msubsup></mrow></math>]]></maths><maths num="012"><![CDATA[ <math><mrow><mi>A</mi><mo>=</mo><msubsup><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><msub><mi>n</mi><mi>y</mi></msub></msubsup><mrow><mo>(</mo><msubsup><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><msub><mi>n</mi><mi>x</mi></msub></msubsup><msub><mi>v</mi><mi>ij</mi></msub><mo>/</mo><mi>vtot</mi><mo>)</mo></mrow><msub><mi>Y</mi><mi>j</mi></msub><mo>-</mo><mi>R</mi><msubsup><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><msub><mi>n</mi><mi>x</mi></msub></msubsup><mrow><mo>(</mo><msubsup><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><msub><mi>n</mi><mi>y</mi></msub></msubsup><msub><mi>v</mi><mi>ij</mi></msub><mo>/</mo><mi>vtot</mi><mo>)</mo></mrow><msub><mi>X</mi><mi>i</mi></msub></mrow></math>]]></maths>其中<maths num="013"><![CDATA[ <math><mrow><mi>vtot</mi><mo>=</mo><msubsup><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><msub><mi>n</mi><mi>x</mi></msub></msubsup><msubsup><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><msub><mi>n</mi><mi>y</mi></msub></msubsup><msub><mi>v</mi><mi>ij</mi></msub><mo>,</mo></mrow></math>]]></maths>且矩阵V<sub>0</sub>、U<sub>0</sub>满足下式:<img file="A2004100688430003C10.GIF" wi="1062" he="134" />即以上等式的右边是左边的SVD分解,p表示从1到n<sub>x</sub>的整数,q表示从1到n<sub>y</sub>的整数;(7)计算机根据下式计算新的坐标:<maths num="014"><![CDATA[ <math><mrow><msub><mover><mi>X</mi><mo>^</mo></mover><mi>i</mi></msub><mo>=</mo><mi>A</mi><mo>+</mo><msub><mi>RX</mi><mi>i</mi></msub></mrow></math>]]></maths>(8)降低退火温度:T(l)=T(l-1)×ε(9)判断相配变量v<sub>ij</sub>是否趋近于整数:即<maths num="015"><![CDATA[ <math><mrow><msubsup><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><msub><mi>n</mi><mi>x</mi></msub></msubsup><msubsup><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><msub><mi>n</mi><mi>y</mi></msub></msubsup><msubsup><mi>v</mi><mi>ij</mi><mn>2</mn></msubsup><mo>/</mo><msub><mi>n</mi><mi>x</mi></msub><mo>&Element;</mo><mo>[</mo><mn>0.99,1</mn><mo>]</mo></mrow></math>]]></maths>(10)若相配变量不趋近于整数,则返回步骤(2),进行再次迭代;若相配变量趋近于整数,则进行下一步;(11)对v<sub>ij</sub>四舍五入,并令s<sub>ij</sub>=v<sub>ij</sub>,按下式计算蛋白质的相配数m和平均距离rms:<maths num="016"><![CDATA[ <math><mrow><mi>m</mi><mo>=</mo><mover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><msub><mi>n</mi><mi>x</mi></msub></mover><munderover><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><msub><mi>n</mi><mi>y</mi></msub></munderover><msub><mi>s</mi><mi>ij</mi></msub><mo>,</mo><mi>rms</mi><mo>=</mo><mi>fac</mi><msqrt><mfrac><mn>1</mn><mi>m</mi></mfrac><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><msub><mi>n</mi><mi>x</mi></msub></munderover><munderover><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><msub><mi>n</mi><mi>y</mi></msub></munderover><msub><mi>s</mi><mi>ij</mi></msub><msup><mrow><mo>|</mo><msub><mi>X</mi><mi>i</mi></msub><mo>-</mo><msub><mi>Y</mi><mi>j</mi></msub><mo>|</mo></mrow><mn>2</mn></msup></msqrt><mo>.</mo></mrow></math>]]></maths>
地址 100084北京市100084-82信箱