[modeller_usage] Why there is a DOPE score decreases when I optimize the selected atoms of automodel?
To: , ,
Subject: [modeller_usage] Why there is a DOPE score decreases when I optimize the selected atoms of automodel?
From: "Mahesh Velusamy" <>
Date: Wed, 13 Jul 2016 18:32:48 +0530 (IST)
Dear All,
I have tried generate a models for single point mutation along with
optimization and refinement on the selected region of atoms but I am
getting bad DOPE score(lesser negative value -11k) for optimized models
compared to unoptimized automodels DOPE score(-36K).
Also, I observed that DOPE score get increase when I increase the number
of atoms for optimization but at same time this leads to bad models.
May I know what is the reason for this issue? because when I do the same
thing with mutate_model.py I got the same DOPE score as automodels.
Here, I am giving the MyModel class where I define my own
optimization,refinement and restraints criteria (same as mutate_model.py):
class MyModel(automodel):
def select_atoms(self):
# a non-bonded pair has to have at least as many selected atoms
self.env.edat.nonbonded_sel_atoms = 1
sched = autosched.loop.make_for_model(self)
s=selection(
self.atoms['CA:'+'102'+':'+'A'].select_sphere(20)).by_residue()
self.restraints.unpick_all()
self.restraints.pick(s)
s.energy()
#s.randomize_xyz(deviation=-4)
s.energy()
return s
def optimize(s, sched):
# conjugate gradient
for step in sched:
step.optimize(s, max_iterations=200, min_atom_shift=0.001)
# md
refine(s)
cg = conjugate_gradients()
cg.optimize(s, max_iterations=200, min_atom_shift=0.001)
def refine(self,atmsel,actions):
# at T=1000, max_atom_shift for 4fs is cca 0.15 A.
md = molecular_dynamics(cap_atom_shift=0.39, md_time_step=4.0,
md_return='FINAL')
init_vel = True
for (its, equil, temps) in ((200, 20, (150.0, 250.0, 400.0, 700.0,
1000.0)),
(200, 600,
(1000.0, 800.0, 600.0, 500.0, 400.0,
300.0))):
for temp in temps:
md.optimize(atmsel, init_velocities=init_vel,
temperature=temp,
max_iterations=its, equilibrate=equil)
init_vel = False
def special_restraints(self, aln):
rsr = self.restraints
rsr.clear()
s = selection(self)
for typ in ('stereo', 'phi-psi_binormal'):
rsr.make(s, restraint_type=typ, aln=aln, spline_on_site=True)
for typ in ('omega', 'chi1', 'chi2', 'chi3', 'chi4'):
rsr.make(s, restraint_type=typ + '_dihedral', spline_range=4.0,
spline_dx=0.3, spline_min_points=5, aln=aln,
spline_on_site=True)
Thanking you in advance
With Regards
Mahesh V