本發(fā)明涉及生物信息學(xué)、計(jì)算機(jī)應(yīng)用領(lǐng)域,尤其涉及的是一種基于多階段子群協(xié)同進(jìn)化策略的差分進(jìn)化蛋白質(zhì)結(jié)構(gòu)從頭預(yù)測(cè)方法。
背景技術(shù):
蛋白質(zhì)分子在生物細(xì)胞化學(xué)反應(yīng)過(guò)程中起著至關(guān)重要的作用。它們的結(jié)構(gòu)模型和生物活性狀態(tài)對(duì)我們理解和治愈多種疾病有重要的意義。蛋白質(zhì)只有折疊成特定的三維結(jié)構(gòu)才能產(chǎn)生其特有的生物學(xué)功能。因此,要了解蛋白質(zhì)的功能,就必須獲得其三維空間結(jié)構(gòu)。
蛋白質(zhì)結(jié)構(gòu)預(yù)測(cè)問(wèn)題自上世紀(jì)50年代以來(lái)就一直備受關(guān)注,尤其是從頭預(yù)測(cè)構(gòu)象空間優(yōu)化方法,是生物信息學(xué)和計(jì)算生物學(xué)領(lǐng)域的熱點(diǎn)研究課題,因?yàn)榈鞍踪|(zhì)的三維空間結(jié)構(gòu)決定了它所承載的生物功能,想要了解其功能進(jìn)而對(duì)許多由蛋白質(zhì)結(jié)構(gòu)改變而引起的疾病進(jìn)行有效的控制和預(yù)防,就必須獲得其三維結(jié)構(gòu)。從頭預(yù)測(cè)方法直接從蛋白質(zhì)的氨基酸序列出發(fā),根據(jù)Anfinsen原則,以計(jì)算機(jī)為工具,運(yùn)用適當(dāng)算法,通過(guò)計(jì)算得到蛋白質(zhì)的天然構(gòu)象,適用于同源性小于25%的大多數(shù)蛋白質(zhì)。而制約從頭預(yù)測(cè)方法預(yù)測(cè)精度的瓶頸因素主要有兩個(gè)方面:第一,蛋白質(zhì)構(gòu)象空間的高維復(fù)雜性以及能量表面的粗糙性,使其成為一個(gè)難解的NP-Hard問(wèn)題;第二,力場(chǎng)模型的不精確性也使得預(yù)測(cè)結(jié)果難以達(dá)到較高的精度。設(shè)計(jì)有效的算法增強(qiáng)對(duì)構(gòu)象空間的采樣是解決蛋白質(zhì)結(jié)構(gòu)從頭預(yù)測(cè)瓶頸問(wèn)題的有效途徑。但是到目前還沒(méi)有一種十分完善的方法來(lái)預(yù)測(cè)蛋白質(zhì)的三維結(jié)構(gòu),即使獲得了很好的預(yù)測(cè)結(jié)果,但也只是針對(duì)某些蛋白質(zhì)而言的,目前主要的技術(shù)瓶頸在于兩個(gè)方面,第一方面在于采樣方法,現(xiàn)有技術(shù)對(duì)構(gòu)象空間采樣能力不強(qiáng),另一方面在于構(gòu)象更新方法,現(xiàn)有技術(shù)對(duì)構(gòu)象的更新精度仍然不足。
因此,現(xiàn)有的蛋白質(zhì)結(jié)構(gòu)從頭預(yù)測(cè)方法存在不足,需要改進(jìn)。
技術(shù)實(shí)現(xiàn)要素:
為了克服現(xiàn)有蛋白質(zhì)結(jié)構(gòu)預(yù)測(cè)方法的構(gòu)象空間搜索維數(shù)較高、收斂速度較慢、預(yù)測(cè)精度較低的不足,本發(fā)明基于差分進(jìn)化算法,提出一種構(gòu)象空間搜索維數(shù)較低、收斂速度較快、預(yù)測(cè)精度較高的基于多階段子群協(xié)同進(jìn)化策略的差分進(jìn)化蛋白質(zhì)結(jié)構(gòu)從頭預(yù)測(cè)方法,在差分進(jìn)化算法框架下,采用Rosetta Score3粗粒度知識(shí)能量模型來(lái)降低構(gòu)象空間維數(shù);將進(jìn)化種群依相似度劃分為多個(gè)子種群,子種群之間協(xié)同進(jìn)化,可以提高種群個(gè)體多樣性;進(jìn)化過(guò)程被劃分為三個(gè)階段,在不同的階段采用不同的變異交叉策略,可以避免早熟收斂問(wèn)題;結(jié)合差分進(jìn)化算法較強(qiáng)的全局搜索能力,可以對(duì)構(gòu)象空間進(jìn)行有效的采樣。
本發(fā)明解決其技術(shù)問(wèn)題所采用的技術(shù)方案是:
一種基于多階段子群協(xié)同進(jìn)化策略的差分進(jìn)化蛋白質(zhì)結(jié)構(gòu)從頭預(yù)測(cè)方法,包括以下步驟:
1)給定輸入序列信息;
2)設(shè)置系統(tǒng)參數(shù):種群大小popSize,算法的迭代次數(shù)T,第一階段迭代次數(shù)T1,第二階段迭代次數(shù)T2,第三階段迭代次數(shù)T3,變異因子MU,交叉因子CR,子種群個(gè)數(shù)NSub,片段的長(zhǎng)度L,其中T1+T2+T3=T;
3)種群初始化:由輸入序列產(chǎn)生popSize個(gè)種群個(gè)體Pinit;
4)子種群劃分:將種群平均劃分為NSub個(gè)子種群;
5)開(kāi)始迭代,執(zhí)行種群進(jìn)化過(guò)程:
5.1)第一階段:迭代次數(shù)為T1,對(duì)初始種群中的每個(gè)個(gè)體做如下操作:
5.1.1)設(shè)i=1,j=1,其中i∈{1,2,3,…,Nsub},j∈{1,2,3,…,NsubpopSize};令Ptarget=Pij,其中i,j為序號(hào),NsubpopSize表示子種群中個(gè)體的數(shù)目,Ptarget表示目標(biāo)個(gè)體;
5.1.2)針對(duì)個(gè)體Ptarget做變異操作:從L=9的片段庫(kù)中隨機(jī)選擇片段進(jìn)行片段組裝,得到中間個(gè)體Ptrial′;
5.1.3)隨機(jī)生成正整數(shù)rand1,rand2,rand3,其中rand1∈{1,2,3,...,NsubpopSize},rand1≠j,rand2≠rand3,∈{1,2,…,Length},生成隨機(jī)數(shù)rand4∈(0,1),其中Length為序列長(zhǎng)度;
5.1.4)若隨機(jī)數(shù)rand4<=CR,針對(duì)Ptrial′做交叉操作:令l=rand1;令a=min(rand2,rand3),b=max(rand2,rand3),k∈[a,b];
a:令Ptrial′.phi(k)=Pl.phi(k);
b:令Ptrial′.psi(k)=Pl.psi(k);
c:令Ptrial′.omega(k)=Pl.omega(k);
步驟a,b,c分別為:將Ptrial′的氨基酸k所對(duì)應(yīng)的二面角phi、psi、omega替換為Pl的相同位置所對(duì)應(yīng)的二面角phi、psi、omega;令Ptrial=Ptrial′;
5.1.5)通過(guò)交叉操作得到測(cè)試個(gè)體Ptrial;
5.1.6)執(zhí)行更新操作:根據(jù)Rosetta Score3能量函數(shù)計(jì)算Ptarget和Ptrial的能量:E(Ptarget)和E(Ptrial);若E(Ptarget)>E(Ptrial)則用Ptrial替換Ptarget,否則保持種群不變;
5.1.7)得到更新后的種群Pupdate;
5.1.8)迭代運(yùn)行步驟5.1.1)~5.1.7)至第一階段結(jié)束;
5.2)第二階段:迭代次數(shù)為T2,對(duì)步驟5.1)得到的種群中的每個(gè)個(gè)體做如下操作:
5.2.1)設(shè)i=1,j=1,其中i∈{1,2,3,…,Nsub},j∈{1,2,3,…,NsubpopSize};令Ptarget=Pij,其中i,j為序號(hào),NsubpopSize表示子種群中個(gè)體的數(shù)目,Ptarget表示目標(biāo)個(gè)體;
5.2.2)針對(duì)個(gè)體Ptarget做變異操作:從L=3的片段庫(kù)中隨機(jī)選擇片段進(jìn)行片段組裝,得到中間個(gè)體Ptrial′;
5.2.3)隨機(jī)生成正整數(shù)rand2,rand3,其中,rand2≠rand3,∈{1,2,…,Length},生成隨機(jī)數(shù)rand4∈(0,1),其中Length為序列長(zhǎng)度;
5.2.4)找到當(dāng)前子種群中能量最低的個(gè)體Plocal;
5.2.5)若隨機(jī)數(shù)rand4<=CR,針對(duì)Ptrial′做交叉操作:令a=min(rand2,rand3),b=max(rand2,rand3),k∈[a,b];
a:令Ptrial′.phi(k)=Plocal.phi(k);
b:令Ptrial′.psi(k)=Plocal.psi(k);
c:令Ptrial′.omega(k)=Plocal.omega(k);
步驟a,b,c分別為:將Ptrial′的氨基酸k所對(duì)應(yīng)的二面角phi、psi、omega替換為Plocal中相同位置所對(duì)應(yīng)的二面角phi、psi、omega;令Ptrial=Ptrial′;
5.2.6)通過(guò)交叉操作得到測(cè)試個(gè)體Ptrial;
5.2.7)執(zhí)行更新操作:根據(jù)Rosetta Score3能量函數(shù)計(jì)算Ptarget和Ptrial的能量:E(Ptarget)和E(Ptrial);若E(Ptarget)>E(Ptrial)則用Ptrial替換Ptarget,否則保持種群不變;
5.2.8)得到更新后的種群Pupdate;
5.2.9)迭代運(yùn)行步驟5.2.1)~5.2.7)至第二階段結(jié)束;
5.3)第三階段:迭代次數(shù)為T3,對(duì)步驟5.2)得到的種群中的每個(gè)個(gè)體做如下操作:
5.3.1)設(shè)i=1,j=1,其中i∈{1,2,3,…,Nsub},j∈{1,2,3,…,NsubpopSize};令Ptarget=Pij,其中i,j為序號(hào),NsubpopSize表示子種群中個(gè)體的數(shù)目,Ptarget表示目標(biāo)個(gè)體;
5.3.2)針對(duì)個(gè)體Ptarget做變異操作:從L=3的片段庫(kù)中隨機(jī)選擇片段進(jìn)行片段組裝,得到中間個(gè)體Ptrial′;
5.3.3)隨機(jī)生成正整數(shù)rand2,rand3,其中,rand2≠rand3,∈{1,2,…,Length},生成隨機(jī)數(shù)rand4∈(0,1),其中Length為序列長(zhǎng)度;
5.3.4)找到種群中能量最低的個(gè)體Pglobal;
5.3.5)若隨機(jī)數(shù)rand4<=CR,針對(duì)Ptrial′做交叉操作:令a=min(rand2,rand3),b=max(rand2,rand3),k∈[a,b];
a:令Ptrial′.phi(k)=Pglobal.phi(k);
b:令Ptrial′.psi(k)=Pglobal.psi(k);
c:令Ptrial′.omega(k)=Pglobal.omega(k);
步驟a,b,c分別為:將Ptrial′的氨基酸k所對(duì)應(yīng)的二面角phi、psi、omega替換為Pglobal中相同位置所對(duì)應(yīng)的二面角phi、psi、omega;令Ptrial=Ptrial′;
5.3.6)通過(guò)交叉操作得到測(cè)試個(gè)體Ptrial;
5.3.7)執(zhí)行更新操作:根據(jù)Rosetta Score3能量函數(shù)計(jì)算Ptarget和Ptrial的能量:E(Ptarget)和E(Ptrial);若E(Ptarget)>E(Ptrial)則用Ptrial替換Ptarget,否則保持種群不變;
5.3.8)得到更新后的種群Pupdate;
5.3.9)迭代運(yùn)行步驟5.3.1)~5.3.7)至第三階段結(jié)束;
本發(fā)明的有益效果為:在差分進(jìn)化算法框架下,采用Rosetta Score3粗粒度知識(shí)能量模型來(lái)降低構(gòu)象空間維數(shù);將進(jìn)化種群依相似度劃分為多個(gè)子種群,子種群之間協(xié)同進(jìn)化,可以提高種群個(gè)體多樣性;進(jìn)化過(guò)程被劃分為三個(gè)階段,在不同的階段采用不同的變異交叉策略,可以避免早熟收斂問(wèn)題;結(jié)合差分進(jìn)化算法較強(qiáng)的全局搜索能力,可以對(duì)構(gòu)象空間進(jìn)行有效的采樣,搜索得到較高精度的近天然態(tài)構(gòu)象。
附圖說(shuō)明
圖1是采用基于多階段子群協(xié)同進(jìn)化策略的差分進(jìn)化蛋白質(zhì)結(jié)構(gòu)從頭預(yù)測(cè)方法的搜索過(guò)程示意圖。
具體實(shí)施方式
下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步描述。
參照?qǐng)D1,一種基于多階段子群協(xié)同進(jìn)化策略的差分進(jìn)化蛋白質(zhì)結(jié)構(gòu)從頭預(yù)測(cè)方法,包括以下步驟:
1)給定輸入序列信息;
2)設(shè)置系統(tǒng)參數(shù):種群大小popSize,算法的迭代次數(shù)T,第一階段迭代次數(shù)T1,第二階段迭代次數(shù)T2,第三階段迭代次數(shù)T3,變異因子MU,交叉因子CR,子種群個(gè)數(shù)NSub,片段的長(zhǎng)度L,其中T1+T2+T3=T;
3)種群初始化:由輸入序列產(chǎn)生popSize個(gè)種群個(gè)體Pinit;
4)子種群劃分:將種群平均劃分為NSub個(gè)子種群;
5)開(kāi)始迭代,執(zhí)行種群進(jìn)化過(guò)程:
5.1)第一階段:迭代次數(shù)為T1,對(duì)初始種群中的每個(gè)個(gè)體做如下操作:
5.1.1)設(shè)i=1,j=1,其中i∈{1,2,3,…,Nsub},j∈{1,2,3,…,NsubpopSize};令Ptarget=Pij,其中i,j為序號(hào),NsubpopSize表示子種群中個(gè)體的數(shù)目,Ptarget表示目標(biāo)個(gè)體;
5.1.2)針對(duì)個(gè)體Ptarget做變異操作:從L=9的片段庫(kù)中隨機(jī)選擇片段進(jìn)行片段組裝,得到中間個(gè)體Ptrial′;
5.1.3)隨機(jī)生成正整數(shù)rand1,rand2,rand3,其中rand1∈{1,2,3,...,NsubpopSize},rand1≠j,rand2≠rand3,∈{1,2,…,Length},生成隨機(jī)數(shù)rand4∈(0,1),其中Length為序列長(zhǎng)度;
5.1.4)若隨機(jī)數(shù)rand4<=CR,針對(duì)Ptrial′做交叉操作:令l=rand1;令a=min(rand2,rand3),b=max(rand2,rand3),k∈[a,b];
a:令Ptrial′.phi(k)=Pl.phi(k);
b:令Ptrial′.psi(k)=Pl.psi(k);
c:令Ptrial′.omega(k)=Pl.omega(k);
步驟a,b,c分別為:將Ptrial′的氨基酸k所對(duì)應(yīng)的二面角phi、psi、omega替換為Pl的相同位置所對(duì)應(yīng)的二面角phi、psi、omega;令Ptrial=Ptrial′;
5.1.5)通過(guò)交叉操作得到測(cè)試個(gè)體Ptrial;
5.1.6)執(zhí)行更新操作:根據(jù)Rosetta Score3能量函數(shù)計(jì)算Ptarget和Ptrial的能量:E(Ptarget)和E(Ptrial);若E(Ptarget)>E(Ptrial)則用Ptrial替換Ptarget,否則保持種群不變;
5.1.7)得到更新后的種群Pupdate;
5.1.8)迭代運(yùn)行步驟5.1.1)~5.1.7)至第一階段結(jié)束;
5.2)第二階段:迭代次數(shù)為T2,對(duì)步驟5.1)得到的種群中的每個(gè)個(gè)體做如下操作:
5.2.1)設(shè)i=1,j=1,其中i∈{1,2,3,…,Nsub},j∈{1,2,3,…,NsubpopSize};令Ptarget=Pij,其中i,j為序號(hào),NsubpopSize表示子種群中個(gè)體的數(shù)目,Ptarget表示目標(biāo)個(gè)體;
5.2.2)針對(duì)個(gè)體Ptarget做變異操作:從L=3的片段庫(kù)中隨機(jī)選擇片段進(jìn)行片段組裝,得到中間個(gè)體Ptrial′;
5.2.3)隨機(jī)生成正整數(shù)rand2,rand3,其中,rand2≠rand3,∈{1,2,…,Length},生成隨機(jī)數(shù)rand4∈(0,1),其中Length為序列長(zhǎng)度;
5.2.4)找到當(dāng)前子種群中能量最低的個(gè)體Plocal;
5.2.5)若隨機(jī)數(shù)rand4<=CR,針對(duì)Ptrial′做交叉操作:令a=min(rand2,rand3),b=max(rand2,rand3),k∈[a,b];
a:令Ptrial′.phi(k)=Plocal.phi(k);
b:令Ptrial′.psi(k)=Plocal.psi(k);
c:令Ptrial′.omega(k)=Plocal.omega(k);
步驟a,b,c分別為:將Ptrial′的氨基酸k所對(duì)應(yīng)的二面角phi、psi、omega替換為Plocal中相同位置所對(duì)應(yīng)的二面角phi、psi、omega;令Ptrial=Ptrial′;
5.2.6)通過(guò)交叉操作得到測(cè)試個(gè)體Ptrial;
5.2.7)執(zhí)行更新操作:根據(jù)Rosetta Score3能量函數(shù)計(jì)算Ptarget和Ptrial的能量:E(Ptarget)和E(Ptrial);若E(Ptarget)>E(Ptrial)則用Ptrial替換Ptarget,否則保持種群不變;
5.2.8)得到更新后的種群Pupdate;
5.2.9)迭代運(yùn)行步驟5.2.1)~5.2.7)至第二階段結(jié)束;
5.3)第三階段:迭代次數(shù)為T3,對(duì)步驟5.2)得到的種群中的每個(gè)個(gè)體做如下操作:
5.3.1)設(shè)i=1,j=1,其中i∈{1,2,3,…,Nsub},j∈{1,2,3,…,NsubpopSize};令Ptarget=Pij,其中i,j為序號(hào),NsubpopSize表示子種群中個(gè)體的數(shù)目,Ptarget表示目標(biāo)個(gè)體;
5.3.2)針對(duì)個(gè)體Ptarget做變異操作:從L=3的片段庫(kù)中隨機(jī)選擇片段進(jìn)行片段組裝,得到中間個(gè)體Ptrial′;
5.3.3)隨機(jī)生成正整數(shù)rand2,rand3,其中,rand2≠rand3,∈{1,2,…,Length},生成隨機(jī)數(shù)rand4∈(0,1),其中Length為序列長(zhǎng)度;
5.3.4)找到種群中能量最低的個(gè)體Pglobal;
5.3.5)若隨機(jī)數(shù)rand4<=CR,針對(duì)Ptrial′做交叉操作:令a=min(rand2,rand3),b=max(rand2,rand3),k∈[a,b];
a:令Ptrial′.phi(k)=Pglobal.phi(k);
b:令Ptrial′.psi(k)=Pglobal.psi(k);
c:令Ptrial′.omega(k)=Pglobal.omega(k);
步驟a,b,c分別為:將Ptrial′的氨基酸k所對(duì)應(yīng)的二面角phi、psi、omega替換為Pglobal中相同位置所對(duì)應(yīng)的二面角phi、psi、omega;令Ptrial=Ptrial′;
5.3.6)通過(guò)交叉操作得到測(cè)試個(gè)體Ptrial;
5.3.7)執(zhí)行更新操作:根據(jù)Rosetta Score3能量函數(shù)計(jì)算Ptarget和Ptrial的能量:E(Ptarget)和E(Ptrial);若E(Ptarget)>E(Ptrial)則用Ptrial替換Ptarget,否則保持種群不變;
5.3.8)得到更新后的種群Pupdate;
5.3.9)迭代運(yùn)行步驟5.3.1)~5.3.7)至第三階段結(jié)束;
本實(shí)施例以序列長(zhǎng)度為54的蛋白質(zhì)1ENH為實(shí)施例,一種基于多階段子群協(xié)同進(jìn)化策略的差分進(jìn)化蛋白質(zhì)結(jié)構(gòu)從頭預(yù)測(cè)方法,其中包含以下步驟:
1)給定輸入序列信息;
2)設(shè)置系統(tǒng)參數(shù):種群大小popSize,算法的迭代次數(shù)T,第一階段迭代次數(shù)T1,第二階段迭代次數(shù)T2,第三階段迭代次數(shù)T3,變異因子MU,交叉因子CR,子種群個(gè)數(shù)NSub,片段的長(zhǎng)度L,其中T1+T2+T3=T;
3)種群初始化:由輸入序列產(chǎn)生popSize個(gè)種群個(gè)體Pinit;
4)子種群劃分:將種群平均劃分為NSub個(gè)子種群;
5)開(kāi)始迭代,執(zhí)行種群進(jìn)化過(guò)程:
5.1)第一階段:迭代次數(shù)為T1,對(duì)初始種群中的每個(gè)個(gè)體做如下操作:
5.1.1)設(shè)i=1,j=1,其中i∈{1,2,3,…,Nsub},j∈{1,2,3,…,NsubpopSize};令Ptarget=Pij,其中i,j為序號(hào),NsubpopSize表示子種群中個(gè)體的數(shù)目,Ptarget表示目標(biāo)個(gè)體;
5.1.2)針對(duì)個(gè)體Ptarget做變異操作:從L=9的片段庫(kù)中隨機(jī)選擇片段進(jìn)行片段組裝,得到中間個(gè)體Ptrial′;
5.1.3)隨機(jī)生成正整數(shù)rand1,rand2,rand3,其中rand1∈{1,2,3,...,NsubpopSize},rand1≠j,rand2≠rand3,∈{1,2,…,Length},生成隨機(jī)數(shù)rand4∈(0,1),其中Length為序列長(zhǎng)度;
5.1.4)若隨機(jī)數(shù)rand4<=CR,針對(duì)Ptrial′做交叉操作:令l=rand1;令a=min(rand2,rand3),b=max(rand2,rand3),k∈[a,b];
a:令Ptrial′.phi(k)=Pl.phi(k);
b:令Ptrial′.psi(k)=Pl.psi(k);
c:令Ptrial′.omega(k)=Pl.omega(k);
步驟a,b,c分別為:將Ptrial′的氨基酸k所對(duì)應(yīng)的二面角phi、psi、omega替換為Pl的相同位置所對(duì)應(yīng)的二面角phi、psi、omega;令Ptrial=Ptrial′;
5.1.5)通過(guò)交叉操作得到測(cè)試個(gè)體Ptrial;
5.1.6)執(zhí)行更新操作:根據(jù)Rosetta Score3能量函數(shù)計(jì)算Ptarget和Ptrial的能量:E(Ptarget)和E(Ptrial);若E(Ptarget)>E(Ptrial)則用Ptrial替換Ptarget,否則保持種群不變;
5.1.7)得到更新后的種群Pupdate;
5.1.8)迭代運(yùn)行步驟5.1.1)~5.1.7)至第一階段結(jié)束;
5.2)第二階段:迭代次數(shù)為T2,對(duì)步驟5.1)得到的種群中的每個(gè)個(gè)體做如下操作:
5.2.1)設(shè)i=1,j=1,其中i∈{1,2,3,…,Nsub},j∈{1,2,3,…,NsubpopSize};令Ptarget=Pij,其中i,j為序號(hào),NsubpopSize表示子種群中個(gè)體的數(shù)目,Ptarget表示目標(biāo)個(gè)體;
5.2.2)針對(duì)個(gè)體Ptarget做變異操作:從L=3的片段庫(kù)中隨機(jī)選擇片段進(jìn)行片段組裝,得到中間個(gè)體Ptrial′;
5.2.3)隨機(jī)生成正整數(shù)rand2,rand3,其中,rand2≠rand3,∈{1,2,…,Length},生成隨機(jī)數(shù)rand4∈(0,1),其中Length為序列長(zhǎng)度;
5.2.4)找到當(dāng)前子種群中能量最低的個(gè)體Plocal;
5.2.5)若隨機(jī)數(shù)rand4<=CR,針對(duì)Ptrial′做交叉操作:令a=min(rand2,rand3),b=max(rand2,rand3),k∈[a,b];
a:令Ptrial′.phi(k)=Plocal.phi(k);
b:令Ptrial′.psi(k)=Plocal.psi(k);
c:令Ptrial′.omega(k)=Plocal.omega(k);
步驟a,b,c分別為:將Ptrial′的氨基酸k所對(duì)應(yīng)的二面角phi、psi、omega替換為Plocal中相同位置所對(duì)應(yīng)的二面角phi、psi、omega;令Ptrial=Ptrial′;
5.2.6)通過(guò)交叉操作得到測(cè)試個(gè)體Ptrial;
5.2.7)執(zhí)行更新操作:根據(jù)Rosetta Score3能量函數(shù)計(jì)算Ptarget和Ptrial的能量:E(Ptarget)和E(Ptrial);若E(Ptarget)>E(Ptrial)則用Ptrial替換Ptarget,否則保持種群不變;
5.2.8)得到更新后的種群Pupdate;
5.2.9)迭代運(yùn)行步驟5.2.1)~5.2.7)至第二階段結(jié)束;
5.3)第三階段:迭代次數(shù)為T3,對(duì)步驟5.2)得到的種群中的每個(gè)個(gè)體做如下操作:
5.3.1)設(shè)i=1,j=1,其中i∈{1,2,3,…,Nsub},j∈{1,2,3,…,NsubpopSize};令Ptarget=Pij,其中i,j為序號(hào),NsubpopSize表示子種群中個(gè)體的數(shù)目,Ptarget表示目標(biāo)個(gè)體;
5.3.2)針對(duì)個(gè)體Ptarget做變異操作:從L=3的片段庫(kù)中隨機(jī)選擇片段進(jìn)行片段組裝,得到中間個(gè)體Ptrial′;
5.3.3)隨機(jī)生成正整數(shù)rand2,rand3,其中,rand2≠rand3,∈{1,2,…,Length},生成隨機(jī)數(shù)rand4∈(0,1),其中Length為序列長(zhǎng)度;
5.3.4)找到種群中能量最低的個(gè)體Pglobal;
5.3.5)若隨機(jī)數(shù)rand4<=CR,針對(duì)Ptrial′做交叉操作:令a=min(rand2,rand3),b=max(rand2,rand3),k∈[a,b];
a:令Ptrial′.phi(k)=Pglobal.phi(k);
b:令Ptrial′.psi(k)=Pglobal.psi(k);
c:令Ptrial′.omega(k)=Pglobal.omega(k);
步驟a,b,c分別為:將Ptrial′的氨基酸k所對(duì)應(yīng)的二面角phi、psi、omega替換為Pglobal中相同位置所對(duì)應(yīng)的二面角phi、psi、omega;令Ptrial=Ptrial′;
5.3.6)通過(guò)交叉操作得到測(cè)試個(gè)體Ptrial;
5.3.7)執(zhí)行更新操作:根據(jù)Rosetta Score3能量函數(shù)計(jì)算Ptarget和Ptrial的能量:E(Ptarget)和E(Ptrial);若E(Ptarget)>E(Ptrial)則用Ptrial替換Ptarget,否則保持種群不變;
5.3.8)得到更新后的種群Pupdate;
5.3.9)迭代運(yùn)行步驟5.3.1)~5.3.7)至第三階段結(jié)束;
以序列長(zhǎng)度為54的蛋白質(zhì)1ENH為實(shí)施例,運(yùn)用以上方法得到了該蛋白質(zhì)的近天然態(tài)構(gòu)象,搜索過(guò)程示意圖如圖1所示。
以上闡述的是本發(fā)明給出的一個(gè)實(shí)施例表現(xiàn)出來(lái)的優(yōu)良效果,顯然本發(fā)明不僅適合上述實(shí)施例,在不偏離本發(fā)明基本精神及不超出本發(fā)明實(shí)質(zhì)內(nèi)容所涉及內(nèi)容的前提下可對(duì)其做種種變化加以實(shí)施。