#分子模擬#同源建模從入門到精通(四)

??上一期剛剛講了一種處理部分模板結(jié)構(gòu)質(zhì)量差的解決方法,不知道各位看官有沒有看過癮。今天我們要將兩個(gè)相對比較簡單的方法進(jìn)行模型質(zhì)量的優(yōu)化提升。

loop環(huán)精煉

loop環(huán)優(yōu)化依賴于評(píng)分功能,并且優(yōu)化算法僅適用于loop環(huán),可以發(fā)現(xiàn)上期處理完以后蛋白273-283附近結(jié)果相對不理想,檢查是否能夠再次進(jìn)行優(yōu)化。(chimera顯示的二級(jí)結(jié)構(gòu)有一些不準(zhǔn)確,我們在這里不做探討,實(shí)際上273-283是完整的loop環(huán))

在這里我們使用loopmodel,而不是automodel,具體如下:
<font color="red" >相信這么多天的推文,大家對同源建模已經(jīng)有了一定的基礎(chǔ),所以后面我們就僅進(jìn)行例子查看,并講解主要要注意的地方,不再寫一個(gè)偽代碼,一個(gè)示例代碼</font>

# Loop refinement of an existing model
from modeller import *
from modeller.automodel import *

log.verbose()
env = environ()

# directories for input atom files
env.io.atom_files_directory = './:../atom_files'

# Create a new class based on 'loopmodel' so that we can redefine
# select_loop_atoms (necessary)
class MyLoop(loopmodel):
    # This routine picks the residues to be refined by loop modeling
    def select_loop_atoms(self):
        # 10 residue insertion 
        return selection(self.residue_range('273', '283'))

m = MyLoop(env,
           inimodel='TvLDH-mult.pdb', # initial model of the target
           sequence='TvLDH')          # code of the target

m.loop.starting_model= 1           # index of the first loop model 
m.loop.ending_model  = 10          # index of the last loop model
m.loop.md_level = refine.very_fast # loop refinement method; this yields
                                   # models quickly but of low quality;
                                   # use refine.slow for better models

m.make()

File: loop_modeling/loop_refine.py

這個(gè)例子我們創(chuàng)建了一個(gè)Myloop的子類,用來繼承l(wèi)oopmodel類,并返回要精煉的loop環(huán)范圍,上面的示例為273至283的區(qū)域. refine.very_fast使得建模更快,但是相對質(zhì)量不佳,建議使用注釋后面的refine.slow。最后再進(jìn)行DOPE打分。

基于配體建模

個(gè)人理解基于配體建模最佳的方式是目標(biāo)蛋白與模板蛋白有相似或者相同的小分子配體,這樣建出來的模型效果相對較好。如果我的理解不對,歡迎指出問題:
首先我們按照同源建模入門到精通(二)的方法對loop環(huán)優(yōu)化后的配體進(jìn)行模板比對,將帶有配體的1emd比對上去,或者手動(dòng)比對上去也可以。結(jié)果如下:

 _aln.pos            10        20        30        40        50        60
TvLDH        MSEAAHVLITGAAGQIGYILSHWIASGELYGDRQVYLHLLDIPPAMNRLTALTMELEDCAFPHLA 
TvLDH_model  MSEAAHVLITGAAGQIGYILSHWIASGELYGDRQVYLHLLDIPPAMNRLTALTMELEDCAFPHLA 
1emd         ----------------------------------------------------------------- 
 _consrvd


 _aln.pos       70        80        90       100       110       120       130
TvLDH        GFVATTDPKAAFKDIDCAFLVASMPLKPGQVRADLISSNSVIFKNTGEYLSKWAKPSVKVLVIGN 
TvLDH_model  GFVATTDPKAAFKDIDCAFLVASMPLKPGQVRADLISSNSVIFKNTGEYLSKWAKPSVKVLVIGN 
1emd         ----------------------GVRRKPGMDRSDLFNVN-------------------------- 
 _consrvd                              ***  * **   *


 _aln.pos           140       150       160       170       180       190
TvLDH        PDNTNCEIAMLHAKNLKPENFSSLSMLDQNRAYYEVASKLGVDVKDVHDIIVWGNHGESMVADLT 
TvLDH_model  PDNTNCEIAMLHAKNLKPENFSSLSMLDQNRAYYEVASKLGVDVKDVHDIIVWGNHGESMVADLT 
1emd         ----------------------------------------------------------------- 
 _consrvd


 _aln.pos      200       210       220       230       240       250       260
TvLDH        QATFTKEGKTQKVVDVLDHDYVFDTFFKKIGHRAWDILEHRGFTSAASPTKAAIQHMKAWLFGTA 
TvLDH_model  QATFTKEGKTQKVVDVLDHDYVFDTFFKKIGHRAWDILEHRGFTSAASPTKAAIQHMKAWLFGTA 
1emd         ----------------------------------------------------------------- 
 _consrvd


 _aln.pos           270       280       290       300       310       320
TvLDH        PGEVLSMGIPVPEGNPYGIKPGVVFSFPCNVDKEGKIHVVEGFKVNDWLREKLDFTEKDLFHEKE 
TvLDH_model  PGEVLSMGIPVPEGNPYGIKPGVVFSFPCNVDKEGKIHVVEGFKVNDWLREKLDFTEKDLFHEKE 
1emd         ----------------------------------------------------------------- 
 _consrvd


 _aln.pos      330
TvLDH        IALNHLAQGG/.. 
TvLDH_model  IALNHLAQGG/-- 
1emd         ----------/.. 
 _consrvd

比對好后我們在目標(biāo)序列與帶有配體的序列后加"/",表示序列結(jié)束,然后加"."表示匹配配體,該示例后面加了兩個(gè)"."表示匹配兩個(gè)配體。

最后進(jìn)行建模:

from modeller import *
from modeller.automodel import *

class MyModel(automodel):
    def special_restraints(self, aln):
        rsr = self.restraints
        for ids in (('NH1:161:A', 'O1A:336:B'),
                    ('NH2:161:A', 'O1B:336:B'),
                    ('NE2:186:A', 'O2:336:B')):
            atoms = [self.atoms[i] for i in ids]
            rsr.add(forms.upper_bound(group=physical.upper_distance,
                                      feature=features.distance(*atoms),
                                      mean=3.5, stdev=0.1))

env = environ()
env.io.hetatm = True
a = MyModel(env, alnfile='TvLDH-1emd_bs.ali',
              knowns=('TvLDH_model','1emd'), sequence='TvLDH')
a.starting_model = 1
a.ending_model = 5
a.make()

File: ligand/model-multiple-hetero.py

建模腳本需要注意的是``env.io.hetatm = True`表示非標(biāo)準(zhǔn)”殘基"也可以被讀取,這樣才能讀取到配體。

分享到這里其實(shí)同源建模用的最普遍的內(nèi)容已經(jīng)講完,接下來準(zhǔn)備和大家一起學(xué)習(xí)迭代建模和建模更深的一些常用函數(shù)。這一系列就將先告一段落,等到時(shí)候研究rosetta的時(shí)候或者看到關(guān)于建模的一些好文章再繼續(xù)撰寫該類型。
在這里我們使用loopmodel,而不是automodel,具體如下:
<font color="red" >相信這么多天的推文,大家對同源建模已經(jīng)有了一定的基礎(chǔ),所以后面我們就僅進(jìn)行例子查看,并講解主要要注意的地方,不再寫一個(gè)偽代碼,一個(gè)示例代碼</font>

# Loop refinement of an existing model
from modeller import *
from modeller.automodel import *

log.verbose()
env = environ()

# directories for input atom files
env.io.atom_files_directory = './:../atom_files'

# Create a new class based on 'loopmodel' so that we can redefine
# select_loop_atoms (necessary)
class MyLoop(loopmodel):
    # This routine picks the residues to be refined by loop modeling
    def select_loop_atoms(self):
        # 10 residue insertion 
        return selection(self.residue_range('273', '283'))

m = MyLoop(env,
           inimodel='TvLDH-mult.pdb', # initial model of the target
           sequence='TvLDH')          # code of the target

m.loop.starting_model= 1           # index of the first loop model 
m.loop.ending_model  = 10          # index of the last loop model
m.loop.md_level = refine.very_fast # loop refinement method; this yields
                                   # models quickly but of low quality;
                                   # use refine.slow for better models

m.make()

File: loop_modeling/loop_refine.py

這個(gè)例子我們創(chuàng)建了一個(gè)Myloop的子類,用來繼承l(wèi)oopmodel類,并返回要精煉的loop環(huán)范圍,上面的示例為273至283的區(qū)域. refine.very_fast使得建模更快,但是相對質(zhì)量不佳,建議使用注釋后面的refine.slow。最后再進(jìn)行DOPE打分。

基于配體建模

個(gè)人理解基于配體建模最佳的方式是目標(biāo)蛋白與模板蛋白有相似或者相同的小分子配體,這樣建出來的模型效果相對較好。如果我的理解不對,歡迎指出問題:
首先我們按照同源建模入門到精通(二)的方法對loop環(huán)優(yōu)化后的配體進(jìn)行模板比對,將帶有配體的1emd比對上去,或者手動(dòng)比對上去也可以。結(jié)果如下:

 _aln.pos            10        20        30        40        50        60
TvLDH        MSEAAHVLITGAAGQIGYILSHWIASGELYGDRQVYLHLLDIPPAMNRLTALTMELEDCAFPHLA 
TvLDH_model  MSEAAHVLITGAAGQIGYILSHWIASGELYGDRQVYLHLLDIPPAMNRLTALTMELEDCAFPHLA 
1emd         ----------------------------------------------------------------- 
 _consrvd


 _aln.pos       70        80        90       100       110       120       130
TvLDH        GFVATTDPKAAFKDIDCAFLVASMPLKPGQVRADLISSNSVIFKNTGEYLSKWAKPSVKVLVIGN 
TvLDH_model  GFVATTDPKAAFKDIDCAFLVASMPLKPGQVRADLISSNSVIFKNTGEYLSKWAKPSVKVLVIGN 
1emd         ----------------------GVRRKPGMDRSDLFNVN-------------------------- 
 _consrvd                              ***  * **   *


 _aln.pos           140       150       160       170       180       190
TvLDH        PDNTNCEIAMLHAKNLKPENFSSLSMLDQNRAYYEVASKLGVDVKDVHDIIVWGNHGESMVADLT 
TvLDH_model  PDNTNCEIAMLHAKNLKPENFSSLSMLDQNRAYYEVASKLGVDVKDVHDIIVWGNHGESMVADLT 
1emd         ----------------------------------------------------------------- 
 _consrvd


 _aln.pos      200       210       220       230       240       250       260
TvLDH        QATFTKEGKTQKVVDVLDHDYVFDTFFKKIGHRAWDILEHRGFTSAASPTKAAIQHMKAWLFGTA 
TvLDH_model  QATFTKEGKTQKVVDVLDHDYVFDTFFKKIGHRAWDILEHRGFTSAASPTKAAIQHMKAWLFGTA 
1emd         ----------------------------------------------------------------- 
 _consrvd


 _aln.pos           270       280       290       300       310       320
TvLDH        PGEVLSMGIPVPEGNPYGIKPGVVFSFPCNVDKEGKIHVVEGFKVNDWLREKLDFTEKDLFHEKE 
TvLDH_model  PGEVLSMGIPVPEGNPYGIKPGVVFSFPCNVDKEGKIHVVEGFKVNDWLREKLDFTEKDLFHEKE 
1emd         ----------------------------------------------------------------- 
 _consrvd


 _aln.pos      330
TvLDH        IALNHLAQGG/.. 
TvLDH_model  IALNHLAQGG/-- 
1emd         ----------/.. 
 _consrvd

比對好后我們在目標(biāo)序列與帶有配體的序列后加"/",表示序列結(jié)束,然后加"."表示匹配配體,該示例后面加了兩個(gè)"."表示匹配兩個(gè)配體。

最后進(jìn)行建模:

from modeller import *
from modeller.automodel import *

class MyModel(automodel):
    def special_restraints(self, aln):
        rsr = self.restraints
        for ids in (('NH1:161:A', 'O1A:336:B'),
                    ('NH2:161:A', 'O1B:336:B'),
                    ('NE2:186:A', 'O2:336:B')):
            atoms = [self.atoms[i] for i in ids]
            rsr.add(forms.upper_bound(group=physical.upper_distance,
                                      feature=features.distance(*atoms),
                                      mean=3.5, stdev=0.1))

env = environ()
env.io.hetatm = True
a = MyModel(env, alnfile='TvLDH-1emd_bs.ali',
              knowns=('TvLDH_model','1emd'), sequence='TvLDH')
a.starting_model = 1
a.ending_model = 5
a.make()

File: ligand/model-multiple-hetero.py

建模腳本需要注意的是``env.io.hetatm = True`表示非標(biāo)準(zhǔn)”殘基"也可以被讀取,這樣才能讀取到配體。
分享到這里其實(shí)同源建模用的最普遍的內(nèi)容已經(jīng)講完,接下來準(zhǔn)備和大家一起學(xué)習(xí)迭代建模和建模更深的一些常用函數(shù)。這一系列就將先告一段落,等到時(shí)候研究rosetta的時(shí)候或者看到關(guān)于建模的一些好文章再繼續(xù)撰寫該類型。
往期教程:
#分子模擬#同源建模從入門到精通(一)
#分子模擬#同源建模從入門到精通(二)
#分子模擬#同源建模從入門到精通(三)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 更正:上一期所講的蛋白選擇應(yīng)該修改為分辨率越高(數(shù)值越低),結(jié)構(gòu)越清晰。感謝怡然Rosy同學(xué)指出上一期文章的問題當(dāng)...
    生信雜談閱讀 2,954評(píng)論 0 1
  • 不管是藥物設(shè)計(jì)還是分子模擬,蛋白的結(jié)構(gòu)是必須的,結(jié)構(gòu)的好壞直接影響后期實(shí)驗(yàn)的可信程度。雖然許多蛋白晶體結(jié)構(gòu)已被解析...
    生信雜談閱讀 11,941評(píng)論 0 10
  • 其實(shí)同源建模教程到上一篇教程就應(yīng)該結(jié)束了,但是如果作為一個(gè)計(jì)算機(jī)輔助藥物設(shè)計(jì)或者說是一個(gè)分子模擬人,同源建模關(guān)系到...
    生信雜談閱讀 1,206評(píng)論 0 2
  • 最近很多人的朋友圈都被紀(jì)錄片《地球脈動(dòng)Ⅱ》刷爆了。 BBC出品、榮獲艾美獎(jiǎng)、豆瓣9.9高分,諸多光環(huán)加身,讓它一早...
    攝影師June閱讀 3,302評(píng)論 0 3
  • 170406@D92.感恩冥想 佩詩 。深深的感恩慈悲偉大的佛陀,感謝感謝感謝! 。感恩格西老師用現(xiàn)代化的語言教授...
    佩詩閱讀 167評(píng)論 0 0

友情鏈接更多精彩內(nèi)容