lrf1980 发表于 2014-12-7 09:21:07

单模板建模进阶探讨

本帖最后由 lrf1980 于 2014-12-7 11:24 编辑

单模板建模可以说是我们通常建模时,用到频率最高的一种建模方式。相对其它的建模方法也最容易学会和掌握。这几天在modeller的网站上看manual,发现单模板建模包含的东西可真是不少。我们通常用到的模块只是其中的一个,称为automodel。 一般在我们的脚本里通常这么出现的:
a = automodel(env, alnfile=‘*****’
但其实可以有很多其它的模块可以在做单模板建模的过程去应用。简单看看modeller manual的描述,基本上但模板建模至少可以有以下这些方式和方法,分别来实现不同的目的。在我们建模时,我们可以充分的利用它们来实现我们建一个不错的模型:
1. 快速建模 (目的是为了大概了解建出来的模型大概长什么样,让自己对自己的模型有个基本的了解, 基本的介绍和脚本可以到下面的链接找到)
http://salilab.org/modeller/manual/node20.html, 当然该方法不仅仅限于单模板建模,你也可以应用于其它的建模过程。个人理解,如果我们在建模初期,能够迅速的建立一个大概的模型,会方便我们在后续的工作中确定我们建模需要重点处理的方向。
2. 单模板的自动建模,这个功能可能是大家应用的最多的一个。我们通过序列比对,得到我们的模板,然后我们就直接用脚本把模型建立出来。下面链接是该脚本的最简单的形式
http://salilab.org/modeller/manual/node16.html, 内容如下:

# Comparative modeling by the automodel class
from modeller import *            # Load standard Modeller classes
from modeller.automodel import *    # Load the automodel class
log.verbose()    # request verbose output
env = environ()# create a new MODELLER environment to build this model in
# directories for input atom files
env.io.atom_files_directory = ['.', '../atom_files']
a = automodel(env,            alnfile= 'alignment.ali',   # alignment filename            
knowns   = '5fd1',            # codes of the templates            
sequence = '1fdx')            # code of the target
a.starting_model= 1               # index of the first model
a.ending_model= 1               # index of the last model                                    
# (determines how many models to calculate)
a.make()                            # do the actual comparative modeling
从这个脚本中,我们可以看到,用到的模块就是automodel,这个模块我们是可以变化的,后面会具体提到有哪些变化可以做。
同时对这个简单的脚本我们还可以做一些修改,比如添加打分函数。
a = automodel(env,            
alnfile= 'alignment.ali',   # alignment filename            
            knowns   = '5fd1',            # codes of the templates            
            sequence = '1fdx', assess_methods=(assess.DOPE,
                              soap_protein_od.Scorer(),
                              assess.GA341))
在这里我们添加了DOPE, SOAP及GA341打分函数,值得注意的是,SOAP打分是需要在脚本的最开始添加 from modeller import soap_protein_od
并且我们已经下载过这个文件(1.5G)到指定的位置的。基本上有了这些我们就可以进行我们基本的单模板建模了。
为了提高建模的精度,或者说进一步的假设,如果我们的模板的口袋里有配体,那么我们的目标蛋白的口袋是否也会受改配体的影响呢?带着这个问题,就有了modeller的包含配体及水分子的同源建模的概念。
3. 包含水分子,配体,hetatm,及H原子的建模, 该功能的基本介绍脚本可以从下面的链接了解具体内容
http://salilab.org/modeller/manual/node18.html
对于具体的内容,不再复述,仅仅想补充几个小的注意事项:
3.1. 如果只想包含单个配体,为了让建模成功,尽量在模板做一下处理,去掉其它的溶剂,水,及多余的链,仅留下建模需要的链和要包含的配体,然后在ali文件的最后用.*来表示。 . 就是告诉程序要在建好的模型里包含配体。
3.2. env.io.hetatm = True 这段的位置有讲究,有的时候在不同的脚本里切换或者copy and paste,经常会放错位置。该段内容一定需要在env = environ()这段后面。 对于懂python的同志可能很容易理解,对于我这种没有程序语言基础的,这个是我在好多错误提示里发现出来的。
3.3. 如果要包含水和配体,那么就要添加关于水分子的相关表达。可以写成如下:
env.io.hetatm = env.io.data.water = True
到这步,基本上我们还是一直读在用automodel这个模块来实现这些功能。那么我们可以用其它的方式来实现上面提到的在个方式的建模么?
答案是肯定的,modeller还提供了一个调整参数的方法。
4. Changing the default optimization and refinement protocol,该功能的详细介绍可以从下面的链接了解
http://salilab.org/modeller/manual/node19.html, 脚本详细内容如下:
# Example of changing the default optmization schedule
from 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. > 1E6
a.repeat_optimization = 2a.max_molpdf = 1e6a.make()
这个脚本可以进一步的帮助我们理解,建模的过程是如何进行的,然后我们可以根据自己的实际情况来进行调整。基本上我们可以看到
这个建模的过程包含两步,一步称为VTFM optimization的过程,另外一步是MD optimization的过程。通过修改相关的参数,我们就能
够对建模的过程做更多的调控了。需要提醒一点,这个脚本的建模过程相对比较慢,如果设置的建模数目较多,需要很长的时间。不过
为了模型的准确性,是值得的。
5. 最后一个可以使用的就是我前一篇帖子提到的,如果我们对建好模型的某几个或者某区域的残基需要做进一步的考察,我们就可以用
refine only part of the model这个功能来实现了。该功能的详细介绍可以看下面的链接:
http://salilab.org/modeller/manual/node23.html

通过上面的介绍,我们基本上了解单模板建模我们能够用的工具,顺便提一下,它们之间其实是可以融合在一起,成为一个脚本的,我们
可以在做包含配体建模的时候把优化参数调整放在一起,这个就靠大家的想象力和创造力去尝试和实现了。最后简单总结一下,做单模板
建模我们可以:
1. 利用快速建模来看一下我们的目标蛋白在特定模板下建出来的模型大概什么样子,确定后面的重点
2. 或者说我们通常经常用的,通过序列比对后确定模板就直接自动的建模,然后在通过对模板的分析来确定后面工作重点
3. 如果想将模板配体及水分子包含到模板,我们就用包含配体及水分子的脚本来建模
4. 其实建模过程的参数我们是可以通过修改参数来调控的
5. 当模型建好后,我们还可以在对局部的某些甚至某几个残基来进行优化
6. 功能模块是有限的,我们的创造力是无穷的,如何利用这些功能,实现自己的建模就完全掌握在自己的手里了。

有问题站内联系。


页: [1]
查看完整版本: 单模板建模进阶探讨