同源建模总结(一) automodel类的使用
来源:互联网 发布:返利网淘宝返利比例 编辑:程序博客网 时间:2024/06/05 10:17
一:自动建模的过程中包含水分子,配体残基和氢原子
如果你的模板序列中包含配体或非蛋白残基,你可以在".ali"文件中通过在模板序列和待建序列的末尾加点"."来表示,当然在执行的脚本中还要加上语句env.io.hetatm=True,默认情况下不会处理HETATM的原子。
- Example: examples/automodel/model-ligand.py
# Homology modeling with ligand transfer from the templatefrom modeller import * # Load standard Modeller classesfrom modeller.automodel import * # Load the automodel classlog.verbose() # request verbose outputenv = environ() # create a new MODELLER environment to build this model in# directories for input atom filesenv.io.atom_files_directory = ['.', '../atom_files']# Read in HETATM records from template PDBsenv.io.hetatm = Truea = automodel(env, alnfile = 'align-ligand.ali', # alignment filename knowns = '5fd1', # codes of the templates sequence = '1fdx') # code of the targeta.starting_model= 4 # index of the first modela.ending_model = 4 # index of the last model # (determines how many models to calculate)a.make() # do the actual homology modeling
- Example: examples/automodel/align-ligand.ali
C; Similar to alignment.ali, but with ligands included>P1;5fd1structureX:5fd1:1 :A:108 :A:ferredoxin:Azotobacter vinelandii: 1.90: 0.19AFVVTDNCIKCKYTDCVEVCPVDCFYEGPNFLVIHPDECIDCALCEPECPAQAIFSEDEVPEDMQEFIQLNAELAEVWPNITEKKDPLPDAEDWDGVKGKLQHLER..*>P1;1fdxsequence:1fdx:1 : :56 : :ferredoxin:Peptococcus aerogenes: 2.00:-1.00AYVINDSC--IACGACKPECPVNIIQGS--IYAIDADSCIDCGSCASVCPVGAPNPED------------------------------------------------..*
上面中的每个"."代表一个HETATM的残基,如果你有多个模板的话,只想要其中一个模板的配体作为建模的配体,那么可以将其他模板的对应的配体的残基改为"-".
如果想保留模板中的水分子,则需要在模板序列和待建序列中加入"w"字母,并且需要设置env.io.water=True.
如果想在待建序列中加入H原子,则需要在设置env.io.hydrogen=True.
二:对构建出的模型进行优化(更改默认的优化过程)
# Example of changing the default optmization schedulefrom modeller import *from modeller.automodel import *log.verbose()env = environ()# Give less weight to all soft-sphere restraints:env.schedule_scale = physical.values(default=1.0, soft_sphere=0.7)env.io.atom_files_directory = ['.', '../atom_files']a = automodel(env, alnfile='alignment.ali', knowns='5fd1', sequence='1fdx')a.starting_model = a.ending_model = 1#建好模型后的优化过程
# Very thorough VTFM optimization:a.library_schedule = autosched.slowa.max_var_iterations = 300# Thorough MD optimization:a.md_level = refine.slow# Repeat the whole cycle 2 times and do not stop unless obj.func. > 1E6a.repeat_optimization = 2a.max_molpdf = 1e6a.make()
三:利用多个模板来构建出一个模型
- Example: examples/automodel/model-multiple.py
- # Homology modeling with multiple templatesfrom modeller import * # Load standard Modeller classesfrom modeller.automodel import * # Load the automodel classlog.verbose() # request verbose outputenv = environ() # create a new MODELLER environment to build this model in# directories for input atom filesenv.io.atom_files_directory = ['.', '../atom_files']a = automodel(env, alnfile = 'align-multiple.ali', # alignment filename knowns = ('5fd1', '1bqx'), # codes of the templates sequence = '1fdx') # code of the targeta.starting_model= 1 # index of the first modela.ending_model = 1 # index of the last model # (determines how many models to calculate)a.make() # do the actual homology modeling
- Example: examples/automodel/align-multiple.ali
>P1;5fd1structureX:5fd1:1 :A:106 :A:ferredoxin:Azotobacter vinelandii: 1.90: 0.19AFVVTDNCIKCKYTDCVEVCPVDCFYEGPNFLVIHPDECIDCALCEPECPAQAIFSEDEVPEDMQEFIQLNAELAEVWPNITEKKDPLPDAEDWDGVKGKLQHLER*>P1;1bqxstructureN:1bqx: 1 :A: 77 :A:ferredoxin:Bacillus schlegelii:-1.00:-1.00AYVITEPCIGTKCASCVEVCPVDCIHEGEDQYYIDPDVCIDCGACEAVCPVSAIYHEDFVPEEWKSYIQKNRDFFKK-----------------------------*>P1;1fdxsequence:1fdx:1 : :54 : :ferredoxin:Peptococcus aerogenes: 2.00:-1.00AYVINDSC--IACGACKPECPVNIIQGS--IYAIDADSCIDCGSCASVCPVGAPNPED------------------------------------------------*
四:使用automodel.residue_range()来优化所建模型的部分残基
# Homology modeling by the automodel class## Demonstrates how to refine only a part of the model.## You may want to use the more exhaustive "loop" modeling routines instead.#from modeller import *from modeller.automodel import * # Load the automodel classlog.verbose()# Override the 'select_atoms' routine in the 'automodel' class:# (To build an all-hydrogen model, derive from allhmodel rather than automodel# here.)class MyModel(automodel): def select_atoms(self): # Select residues 1 and 2 (PDB numbering) return selection(self.residue_range('1:', '2:')) # The same thing from chain A (required for multi-chain models): # return selection(self.residue_range('1:A', '2:A')) # Residues 4, 6, 10: # return selection(self.residues['4'], self.residues['6'], # self.residues['10']) # All residues except 1-5: # return selection(self) - selection(self.residue_range('1', '5'))env = environ()# directories for input atom filesenv.io.atom_files_directory = ['.', '../atom_files']# selected atoms do not feel the neighborhoodenv.edat.nonbonded_sel_atoms = 2# Be sure to use 'MyModel' rather than 'automodel' here!a = MyModel(env, alnfile = 'alignment.ali', # alignment filename knowns = '5fd1', # codes of the templates sequence = '1fdx') # code of the targeta.starting_model= 3 # index of the first modela.ending_model = 3 # index of the last model # (determines how many models to calculate)a.make() # do homology modeling
五:模拟过程中包含二硫键
默认情况下automodel会自动的产生适当的二硫键的限制,这通过使用model.patch_ss_templates()函数。
手动的添加二硫键的限制可以通过使用model.patch()函数,这个函数调用CHARMM的拓扑文件“DISU”来修补残基。
# Homology modeling by the automodel classfrom modeller import * # Load standard Modeller classesfrom modeller.automodel import * # Load the automodel class# Redefine the special_patches routine to include the additional disulfides# (this routine is empty by default):class MyModel(automodel): def special_patches(self, aln): # A disulfide between residues 8 and 45: self.patch(residue_type='DISU', residues=(self.residues['8'], self.residues['45']))log.verbose() # request verbose outputenv = environ() # create a new MODELLER environment to build this model in# directories for input atom filesenv.io.atom_files_directory = ['.', '../atom_files']a = MyModel(env, alnfile = 'alignment.ali', # alignment filename knowns = '5fd1', # codes of the templates sequence = '1fdx') # code of the targeta.starting_model= 1 # index of the first modela.ending_model = 1 # index of the last model # (determines how many models to calculate)a.make() # do the actual homology modeling
0 0
- 同源建模总结(一) automodel类的使用
- 同源建模总结(二) 具体命令详解
- UML建模的要点总结(一)
- UML建模的要点总结(一)
- UML建模的要点总结(一)
- UML建模的要点总结(一)
- 利用MODLLER同源建模的基本步骤
- 数学建模总结(一)
- 数学建模算法总结(一)
- UML建模—EA的使用(一) EA基本设置及类的设计
- justep工具使用(数据建模和组织建模一)
- 同源基因查找软件OrthoMCL的使用
- 数学建模----Matlab学习总结一(学习两天的过程)
- http你不得不知道的那些事(一)--同源策略(1)
- http你不得不知道的那些事(一)--同源策略(2)
- (一)UML 数据建模EA的基本使用——《用例图的使用》
- 我的UML建模学习(一)
- UML建模—EA的使用(一)EA基本设置及类的设计
- hdu 1054 Strategic Game
- spring mvc中使用动态数据源
- android 设置Spinner文字标题颜色 字体大小样式
- ava程序员认证
- java jar 图片 打包 引用 路径
- 同源建模总结(一) automodel类的使用
- IOS屏幕旋转详解(自动旋转、手动旋转、兼容IOS6之前系统)
- Cocos2d场景切换效果汇总
- 使用循环数组高效的实现队列类
- jQuery 图片轮播插件
- Unity3D 动态实例化Prefab
- Android APK反编译那点事
- mysql 字符集设置问题
- commons.configuration 读取示例