|
马上注册,结交更多好友,下载更多分子模拟资源。
您需要 登录 才可以下载或查看,没有帐号?我想注册
x
本帖最后由 lrf1980 于 2014-11-15 22:07 编辑
接上面的内容,这里将涉及多模版建模,单模版包含配体建模,及多模版包含配体建模。
如果对前面四篇都能够完全走下来,现在就可以开始来着手做多模版建模了,多模版建模跟单模版建模差不多,只是用到的align脚本不一样。
对多模版建模,当我们选定了需要的模版,我们就可以用salign.py这个脚本。advanced example里的salign.py脚本内容:
# Illustrates the SALIGN multiple structure/sequence alignment
from modeller import *
log.verbose()
env = environ()
env.io.atom_files_directory = './:../atom_files/'
aln = alignment(env)
for (code, chain) in (('2mdh', 'A'), ('1bdm', 'A'), ('1b8p', 'A')):
mdl = model(env, file=code, model_segment=('FIRST:'+chain, 'LAST:'+chain))
aln.append_model(mdl, atom_files=code, align_codes=code+chain)
---------------------------------------
基本上需要做的也就是将2mdh,1bdm,1b8p等替换成选定的模版code及相应的chain code就好
---------------------------------------
for (weights, write_fit, whole) in (((1., 0., 0., 0., 1., 0.), False, True),
((1., 0.5, 1., 1., 1., 0.), False, True),
((1., 1., 1., 1., 1., 0.), True, False)):
aln.salign(rms_cutoff=3.5, normalize_pp_scores=False,
rr_file='$(LIB)/as1.sim.mat', overhang=30,
gap_penalties_1d=(-450, -50),
gap_penalties_3d=(0, 3), gap_gap_score=0, gap_residue_score=0,
dendrogram_file='fm00495.tree',
alignment_type='tree', # If 'progresive', the tree is not
# computed and all structues will be
# aligned sequentially to the first
feature_weights=weights, # For a multiple sequence alignment only
# the first feature needs to be non-zero
improve_alignment=True, fit=True, write_fit=write_fit,
write_whole_pdb=whole, output='ALIGNMENT QUALITY')
--------------------------------------
对于这设置,我一直想搞懂都代表什么,无奈能力有限,还没搞清楚,有谁了解的,分享一下吧
--------------------------------------
aln.write(file='fm00495.pap', alignment_format='PAP')
aln.write(file='fm00495.ali', alignment_format='PIR')
aln.salign(rms_cutoff=1.0, normalize_pp_scores=False,
rr_file='$(LIB)/as1.sim.mat', overhang=30,
gap_penalties_1d=(-450, -50), gap_penalties_3d=(0, 3),
gap_gap_score=0, gap_residue_score=0, dendrogram_file='1is3A.tree',
alignment_type='progressive', feature_weights=[0]*6,
improve_alignment=False, fit=False, write_fit=True,
write_whole_pdb=False, output='QUALITY')
这个salig.py运行完成,就可以来用下一个脚本align2d_mult.py来生成align的ali文件。
from modeller import *
log.verbose()
env = environ()
env.libs.topology.read(file='$(LIB)/top_heav.lib')
# Read aligned structure(s):
aln = alignment(env)
aln.append(file='fm00495.ali', align_codes='all')
aln_block = len(aln)
# Read aligned sequence(s):
aln.append(file='TvLDH.ali', align_codes='TvLDH')
# Structure sensitive variable gap penalty sequence-sequence alignment:
aln.salign(output='', max_gap_length=20,
gap_function=True, # to use structure-dependent gap penalty
alignment_type='PAIRWISE', align_block=aln_block,
feature_weights=(1., 0., 0., 0., 0., 0.), overhang=0,
gap_penalties_1d=(-450, 0),
gap_penalties_2d=(0.35, 1.2, 0.9, 1.2, 0.6, 8.6, 1.2, 0., 0.),
similarity_flag=True)
------------------------------------
上面这段设置,也不不明白具体含义,有了解的同志来帮忙解读一下吧
------------------------------------
aln.write(file='TvLDH-mult.ali', alignment_format='PIR')
最后运行model_mult.py就可以建模了。
from modeller import *
from modeller.automodel import *
env = environ()
a = automodel(env, alnfile='TvLDH-mult.ali',
knowns=('1bdmA','2mdhA','1b8pA'), sequence='TvLDH')
a.starting_model = 1
a.ending_model = 5
a.make()
在这里补充一点,可以在这个脚本里添加计算DOPE的语句,这样,生成的log文件里可以直接看到所有建好的模型的DOPE分数。就不用再去用evaluate_model.py去跑一遍
将下面这段代码夹在a.starting_model=1 与knowns=('1bdmA',........)之间就可以
assess_methods=(assess.DOPE,
#soap_protein_od.Scorer(),
assess.GA341))
对于单模版包含配体的建模,基本上步骤跟单模版建模一样。当我们选好模版运行好align2d.py这个脚本后,我们会得到一个目标蛋白和模版蛋白序列align文件,结尾为.ali, 在simple example里就是TvLDH_1bmdA.ali. 1bmd就是我们的模版。
为了说明问题,我摘录部分该文件的内容如下:
>1;1bdmA
structureX:1bdm.pdb: 0 :A:+318 :A:undefined:undefined:-1.00:-1.00
VEGLEINEFARKRMEITAQELLDEMEQVKAL--GLI*
>1;TvLDH
sequence:TvLDH: : : : ::: 0.00: 0.00
VEGFKVNDWLREKLDFTEKDLFHEKEIALNHLAQGG*
假设我们的模版1bdmA中包含一个配体,我们需要在建模的时候把这个配体包含到我们建的模型中,那么就在1bmdA序列的结尾将序列由
VEGLEINEFARKRMEITAQELLDEMEQVKAL--GLI* ->改成 VEGLEINEFARKRMEITAQELLDEMEQVKAL--GLI.*
目标蛋白序列也做相应的更改
VEGFKVNDWLREKLDFTEKDLFHEKEIALNHLAQGG* -> 改成 VEGFKVNDWLREKLDFTEKDLFHEKEIALNHLAQGG.*
这里可能还需要把318改成319。 因为我们添加了“.”到序列里。这个是否需要改,运行一下model_single.py就知道了。另外model_single.py里面需要添加下面的代码:
env = environ()
env.io.hetatm = True #这部分是添加进来的,告诉程序将模版里面的hetatm复制到模型中去
a = automodel(env, alnfile='HAhR-3H82.ali',
基本上,包含配体的单模版建模就是这么一个过程。最后当模型建好后,成功的标准就是你是否能够在你建的模型里面找到改配体。有该配体,就说明成功实现包含配体的建模,如果没有,那就是说明有地方没有弄好,需要仔细检查。
为了保险起见,个人感觉,需要稍微对模版蛋白质文件做简单的处理,比如说,去掉结构中的溶剂分子,将不需要的chain remove掉。尽量做到蛋白质文件里只包含用到的序列及配体,这样成功的机会会大很多。所以包含配体建模的语法就是:
1. 添加env.io.hetatm = True
2. 在align的序列末尾加".“,并以*作为结尾
多模版包含配体的做法,这里只针对多模版中只有一个模版包含配体的情况。操作步骤基本一致。先做完salign.py 及align2d_mult.py,然后对生成的ali文件修改。在包含配体的模版序列及目标蛋白序列后添加".",其它模版的序列结尾用"-"替代"."。基本上就可以了。
按照modeller的说明,如果是包含配体及水分子应该用"/.."放在序列结尾,目前还没有尝试过这个,所以没有实际应用的经验,在这里不做说明。大家可以试试。
基本上这就可以完成建模了。
PS.有任何问题及建议,请站内信件,勿在群中qq联系,qq被盗。自己已经上不了了。
|
评分
-
查看全部评分
|