1.一种基于多阶段子群协同进化策略的差分进化蛋白质结构从头预测方法,其特征在于:所述预测方法包括以下步骤:
1)给定输入序列信息;
2)设置系统参数:种群大小popSize,算法的迭代次数T,第一阶段迭代次数T1,第二阶段迭代次数T2,第三阶段迭代次数T3,变异因子MU,交叉因子CR,子种群个数NSub,片段的长度L,其中T1+T2+T3=T;
3)种群初始化:由输入序列产生popSize个种群个体Pinit;
4)子种群划分:将种群平均划分为NSub个子种群;
5)开始迭代,执行种群进化过程:
5.1)第一阶段:迭代次数为T1,对初始种群中的每个个体做如下操作:
5.1.1)令Ptarget=Pij,其中i,j为序号,i∈{1,2,3,…,Nsub},j∈{1,2,3,…,NsubpopSize};
NsubpopSize表示子种群中个体的数目,Ptarget表示目标个体,Pij表示第i个子群中的第j个个体;
5.1.2)针对个体Ptarget做变异操作:从L=9的片段库中随机选择片段进行片段组装,得到中间个体Ptrial′;
5.1.3)随机生成正整数rand1,rand2,rand3,其中rand1∈{1,2,3,...,NsubpopSize},rand1≠j,rand2≠rand3,rand2和rand3∈{1,2,…,Length},生成随机数rand4∈(0,1),其中Length为序列长度;
5.1.4)若随机数rand4<=CR,针对Ptrial′做交叉操作:令l=rand1;令a=min(rand2,rand3),b=max(rand2,rand3),k∈[a,b];
5.1.4.1:令Ptrial′.phi(k)=Pl.phi(k);
5.1.4.2:令Ptrial′.psi(k)=Pl.psi(k);
5.1.4.3:令Ptrial′.omega(k)=Pl.omega(k);
步骤5.1.4.1,5.1.4.2,5.1.4.2分别为:将Ptrial′的氨基酸k所对应的二面角phi、psi、omega替换为Pl的相同位置所对应的二面角phi、psi、omega;令Ptrial=Ptrial′;
5.1.5)通过交叉操作得到测试个体Ptrial;
5.1.6)执行更新操作:根据Rosetta Score3能量函数计算Ptarget和Ptrial的能量:E(Ptarget)和E(Ptrial);若E(Ptarget)>E(Ptrial)则用Ptrial替换Ptarget,否则保持种群不变;
5.1.7)得到更新后的种群Pupdate;
5.1.8)迭代运行步骤5.1.1)~5.1.7)至第一阶段结束;
5.2)第二阶段:迭代次数为T2,对步骤5.1)得到的种群中的每个个体做如下操作:
5.2.1)令P2target=P2ij,其中i,j为序号,i∈{1,2,3,…,Nsub},j∈{1,2,3,…,
2 2
NsubpopSize};NsubpopSize表示子种群中个体的数目,P target表示目标个体,Pij表示第i个子群中的第j个个体;
5.2.2)针对个体P2target做变异操作:从L=3的片段库中随机选择片段进行片段组装,得到中间个体P2trial′;
2 2 2 2 2 2
5.2.3)随机生成正整数rand 2,rand 3,其中,rand 2≠rand 3,rand2和rand3∈{1,
2,…,Length},生成随机数rand24∈(0,1),其中Length为序列长度;
5.2.4)找到当前子种群中能量最低的个体Plocal;
5.2.5)若随机数rand24<=CR,针对P2trial′做交叉操作:令a2=min(rand22,rand23),b2=max(rand22,rand23),k2∈[a2,b2];
5.2.5.1:令P2trial′.phi(k2)=Plocal.phi(k2);
5.2.5.2:令P2trial′.psi(k2)=Plocal.psi(k2);
5.2.5.2:令P2trial′.omega(k2)=Plocal.omega(k2);
步骤5.2.5.1,5.2.5.2,5.2.5.2分别为:将P2trial′的氨基酸k2所对应的二面角phi、psi、omega替换为Plocal中相同位置所对应的二面角phi、psi、omega;令P2trial=P2trial′;
2
5.2.6)通过交叉操作得到测试个体Ptrial;
5.2.7)执行更新操作:根据Rosetta Score3能量函数计算P2target和P2trial的能量:E(P2target)和E(P2trial);若E(P2target)>E(P2trial)则用P2trial替换P2target,否则保持种群不变;
5.2.8)得到更新后的种群P2update;
5.2.9)迭代运行步骤5.2.1)~5.2.7)至第二阶段结束;
5.3)第三阶段:迭代次数为T3,对步骤5.2)得到的种群中的每个个体做如下操作:
5.3.1)令P3target=P3ij,其中i,j为序号,其中i∈{1,2,3,…,Nsub},j∈{1,2,3,…,NsubpopSize};NsubpopSize表示子种群中个体的数目,P3target表示目标个体,P3ij表示第i个子群中的第j个个体;
5.3.2)针对个体P3target做变异操作:从L=3的片段库中随机选择片段进行片段组装,得到中间个体P3trial′;
5.3.3)随机生成正整数rand32,rand33,其中,rand32≠rand33,rand32和rand33∈{1,
2,…,Length},生成随机数rand34∈(0,1),其中Length为序列长度;
5.3.4)找到种群中能量最低的个体Pglobal;
5.3.5)若随机数rand34<=CR,针对P3trial′做交叉操作:令a3=min(rand32,rand33),b3=max(rand32,rand33),k3∈[a3,b3];
5.3.5.1:令P3trial′.phi(k3)=Pglobal.phi(k3);
5.3.5.2:令P3trial′.psi(k3)=Pglobal.psi(k3);
5.3.5.3:令P3trial′.omega(k3)=Pglobal.omega(k3);
步骤5.3.5.1,5.3.5.2,5.3.5.3分别为:将P3trial′的氨基酸k3所对应的二面角phi、psi、omega替换为Pglobal中相同位置所对应的二面角phi、psi、omega;令P3trial=P3trial′;
5.3.6)通过交叉操作得到测试个体P3trial;
5.3.7)执行更新操作:根据Rosetta Score3能量函数计算P3target和P3trial的能量:E(P3target)和E(P3trial);若E(P3target)>E(P3trial)则用P3trial替换P3target,否则保持种群不变;
5.3.8)得到更新后的种群P3update;
5.3.9)迭代运行步骤5.3.1)~5.3.7)至第三阶段结束。