发明名称 一种基于阶段性多策略的群体构象空间采样方法
摘要 一种基于阶段性多策略的群体构象空间采样方法,包括以下步骤:在差分进化算法框架下,将整个算法过程分为多个阶段,对每个阶段设置一组策略池,当算法达到某个阶段时,从其对应的策略池中,随机选取一个策略,基于片段组装技术,生成新的测试构象个体,从而提高构象采样能力和算法的收敛速度;同时在构象选择环节引入距离谱约束,当测试构象的能量高于目标构象时,则比较两者的距离差,若测试个体的距离差较小,则以一定的概率接受测试构象,从而引导算法采样得到能量更低且结构更合理的构象,提高算法的预测精度。
申请公布号 CN105808973A 申请公布日期 2016.07.27
申请号 CN201610121504.8 申请日期 2016.03.03
申请人 浙江工业大学 发明人 张贵军;周晓根;俞旭锋;郝小虎;王柳静;徐东伟;李章维
分类号 G06F19/18(2011.01)I 主分类号 G06F19/18(2011.01)I
代理机构 杭州斯可睿专利事务所有限公司 33241 代理人 王利强
主权项 一种基于阶段性多策略的群体构象空间采样方法,其特征在于:所述构象空间采样方法包括以下步骤:1)给定输入序列信息;2)根据序列信息从QUARK服务器上得到距离谱文件profile,rp<sub>i</sub>为距离谱中记录下的残基对,D<sub>i</sub>为该残基对之间的距离,其中i∈(1,N),N为距离谱中残基对数量;3)设置参数:种群大小NP,算法的迭代次数G,交叉因子CR,阶段因子s,置迭代代数g=0;4)种群初始化:由输入序列产生NP个初始构象C<sub>i</sub>,i={1,…,NP},对每个构象个体全部位置片段组装;5)针对种群中的每个构象个体C<sub>i</sub>,i∈{1,2,3,…,NP},令C<sub>target</sub>=C<sub>i</sub>,C<sub>target</sub>表示目标构象个体,执行以下操作得到变异构象C<sub>mutant</sub>:5.1)随机生成正整数rand1,rand2,rand3∈{1,2,3,......NP},且rand1≠rand2≠rand3≠i;再生成4个随机整数randrange1,randrange2,randrange3,randrange4;其中randrange1≠randrange2,randrange3≠randrange4∈{1,2,…,L},L为序列长度;5.2)令a=min(randrange1,randrange2),b=max(randrange1,randrange2),k∈[a,b];令c=min(randrange3,randrange4),d=max(randrange3,randrange4),p∈[c,d];其中min表示取两个数的最小值,max表示取两个数的最大值5.3)如果g<s·G,则执行如下操作:5.3.1)如果randn(1,3)=1,则用C<sub>rand2</sub>上位置a到位置b的片段的氨基酸k所对应的二面角phi、psi、omega替换C<sub>rand1</sub>的相同位置所对应的二面角phi、psi、omega,然后将所得C<sub>rand1</sub>进行片段组装得到变异构象C<sub>mutant</sub>,其中randn(1,3)表示随机生成[1,3]之间的整数;5.3.2)如果randn(1,3)=2,则用C<sub>rand2</sub>上位置a到位置b的片段的氨基酸k所对应的二面角phi、psi、omega替换C<sub>rand1</sub>的相同位置所对应的二面角phi、psi、omega;再使用C<sub>rand3</sub>上位置c到位置d的片段的氨基酸p所对应的二面角phi、psi、omega替换C<sub>rand1</sub>上相同位置所对应的二面角phi、psi、omega,然后将所得C<sub>rand1</sub>进行片段组装得到测试个体C<sub>mutant</sub>;5.3.3)如果randn(1,3)=3,则用C<sub>rand1</sub>上位置a到位置b的片段的氨基酸k所对应的二面角phi、psi、omega替换C<sub>target</sub>的相同位置所对应的二面角phi、psi、omega;再使用C<sub>rand2</sub>上位置c到位置d的片段的氨基酸p所对应的二面角phi、psi、omega替换C<sub>target</sub>上相同位置所对应的二面角phi、psi、omega,然后将所得C<sub>target</sub>进行片段组装得到测试个体C<sub>mutant</sub>;5.4)如果s·G≤g<2s·G,则执行如下操作:5.4.1)根据能量对整个种群中的构象进行升序排列,然后从前0.5NP个构象个体中随机选出一个构象记为C<sub>pbest</sub>;5.4.2)如果randn(1,3)=1,则用C<sub>rand1</sub>上位置a到位置b的片段的氨基酸k所对应的二面角phi、psi、omega替换C<sub>pbest</sub>的相同位置所对应的二面角phi、psi、omega,然后将所得C<sub>pbest</sub>进行片段组装得到变异构象C<sub>mutant</sub>;5.4.3)如果randn(1,3)=2,则用C<sub>pbest</sub>上位置a到位置b的片段的氨基酸k所对应的二面角phi、psi、omega替换C<sub>rand1</sub>的相同位置所对应的二面角phi、psi、omega;再使用C<sub>rand2</sub>上位置c到位置d的片段的氨基酸p所对应的二面角phi、psi、omega替换C<sub>rand1</sub>上相同位置所对应的二面角phi、psi、omega,然后将所得C<sub>rand1</sub>进行片段组装得到测试个体C<sub>mutant</sub>;5.4.4)如果randn(1,3)=3,则用C<sub>pbest</sub>上位置a到位置b的片段的氨基酸k所对应的二面角phi、psi、omega替换C<sub>target</sub>的相同位置所对应的二面角phi、psi、omega;再使用C<sub>rand1</sub>上位置c到位置d的片段的氨基酸p所对应的二面角phi、psi、omega替换C<sub>target</sub>上相同位置所对应的二面角phi、psi、omega,然后将所得C<sub>target</sub>进行片段组装得到测试个体C<sub>mutant</sub>;5.5)如果g≥2s·G,则执行如下操作:5.5.1)将整个种群随机平均分为三组,判断当前目标构象C<sub>target</sub>所在的组,然后从对应的组中选出能量最低的构象C<sub>lbest</sub>;5.5.2)如果randn(1,3)=1,则用C<sub>rand1</sub>上位置a到位置b的片段的氨基酸k所对应的二面角phi、psi、omega替换C<sub>pbest</sub>的相同位置所对应的二面角phi、psi、omega,然后将所得C<sub>pbest</sub>进行片段组装得到变异构象C<sub>mutant</sub>;5.5.3)如果randn(1,3)=2,则用C<sub>lbest</sub>上位置a到位置b的片段的氨基酸k所对应的二面角phi、psi、omega替换C<sub>rand1</sub>的相同位置所对应的二面角phi、psi、omega;再使用C<sub>rand2</sub>上位置c到位置d的片段的氨基酸p所对应的二面角phi、psi、omega替换C<sub>rand1</sub>上相同位置所对应的二面角phi、psi、omega,然后将所得C<sub>rand1</sub>进行片段组装得到测试个体C<sub>mutant</sub>;5.5.4)如果randn(1,3)=3,则用C<sub>lbest</sub>上位置a到位置b的片段的氨基酸k所对应的二面角phi、psi、omega替换C<sub>target</sub>的相同位置所对应的二面角phi、psi、omega;再使用C<sub>rand1</sub>上位置c到位置d的片段的氨基酸p所对应的二面角phi、psi、omega替换C<sub>target</sub>上相同位置所对应的二面角phi、psi、omega,然后将所得C<sub>target</sub>进行片段组装得到测试个体C<sub>mutant</sub>;6)对变异构象C<sub>mutant</sub>执行交叉操作:6.1)生成随机数rand4,rand5,其中rand4∈(0,1),rand5∈(1,L);6.2)根据<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>C</mi><mrow><mi>t</mi><mi>r</mi><mi>a</mi><mi>i</mi><mi>l</mi></mrow></msub><mo>=</mo><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><msub><mi>C</mi><mrow><mi>m</mi><mi>u</mi><mi>tan</mi><mi>t</mi><mo>,</mo><mi>r</mi><mi>a</mi><mi>n</mi><mi>d</mi><mn>5</mn></mrow></msub><mo>&LeftArrow;</mo><msub><mi>C</mi><mrow><mi>t</mi><mi>arg</mi><mi>e</mi><mi>t</mi><mo>,</mo><mi>r</mi><mi>a</mi><mi>n</mi><mi>d</mi><mn>5</mn></mrow></msub><mo>,</mo></mrow></mtd><mtd><mrow><mi>i</mi><mi>f</mi><mrow><mo>(</mo><mi>r</mi><mi>a</mi><mi>n</mi><mi>d</mi><mn>4</mn><mo>&le;</mo><mi>C</mi><mi>R</mi><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>C</mi><mrow><mi>m</mi><mi>u</mi><mi>tan</mi><mi>t</mi><mo>,</mo><mi>r</mi><mi>a</mi><mi>n</mi><mi>d</mi><mn>5</mn></mrow></msub><mo>,</mo></mrow></mtd><mtd><mrow><mi>o</mi><mi>t</mi><mi>h</mi><mi>e</mi><mi>r</mi><mi>w</mi><mi>i</mi><mi>s</mi><mi>e</mi></mrow></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0000933816540000031.GIF" wi="955" he="143" /></maths>执行交叉过程:若随机数rand4≤CR,变异构象C<sub>mutant</sub>的片段rand5替换为目标构象C<sub>target</sub>中对应的片段,否则直接等于变异构象C<sub>mutant</sub>;7)对目标构象C<sub>target</sub>和测试构象C<sub>trail</sub>进行选择操作;7.1)计算C<sub>target</sub>和C<sub>trail</sub>的能量:E(C<sub>target</sub>)和E(C<sub>trail</sub>);7.2)若E(C<sub>target</sub>)&gt;E(C<sub>trail</sub>),则C<sub>trail</sub>替换C<sub>target</sub>,且转到步骤8),否则继续执行步骤7.3);7.3)分别计算目标构象C<sub>target</sub>和测试构象C<sub>trail</sub>中残基对rp<sub>i</sub>之间的距离与距离谱中对应的距离之间的距离差<img file="FDA0000933816540000041.GIF" wi="147" he="63" />和<img file="FDA0000933816540000042.GIF" wi="154" he="68" />7.4)判断<img file="FDA0000933816540000043.GIF" wi="153" he="62" />和<img file="FDA0000933816540000044.GIF" wi="125" he="70" />的值是否大于6,若大于6,则令其等于6,去除一些距离差值较大的异常数值;7.5)分别计算目标构象和测试构象中所有残基对之间的距离与距离谱中距离之差的平均值,<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mo>&dtri;</mo><msub><mi>D</mi><mrow><mi>t</mi><mi>arg</mi><mi>e</mi><mi>t</mi></mrow></msub><mo>=</mo><mfrac><mn>1</mn><mi>N</mi></mfrac><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><mo>&dtri;</mo><msubsup><mi>D</mi><mi>i</mi><mrow><mi>t</mi><mi>arg</mi><mi>e</mi><mi>t</mi></mrow></msubsup><mo>,</mo><mo>&dtri;</mo><msub><mi>D</mi><mrow><mi>t</mi><mi>r</mi><mi>a</mi><mi>i</mi><mi>l</mi></mrow></msub><mo>=</mo><mfrac><mn>1</mn><mi>N</mi></mfrac><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><mo>&dtri;</mo><msubsup><mi>D</mi><mi>i</mi><mrow><mi>t</mi><mi>r</mi><mi>i</mi><mi>a</mi><mi>l</mi></mrow></msubsup><mo>;</mo></mrow>]]></math><img file="FDA0000933816540000045.GIF" wi="965" he="133" /></maths>7.6)若▽D<sub>trail</sub>>▽D<sub>target</sub>,则转到步骤8);7.7)若▽D<sub>trail</sub><▽D<sub>target</sub>,则产生一个(0,1)之间的随机数rand6,若rand6小于0.2,则用C<sub>trail</sub>替换C<sub>target</sub>,否则进入步骤8);8)i=i+1;判断i是否大于等于NP,如果是则g=g+1,否则进入步骤9);9)迭代的运行步骤5)~7),至满足终止条件。
地址 310014 浙江省杭州市下城区朝晖六区潮王路18号浙江工业大学