[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[modeller_usage] Why there is a DOPE score decreases when I optimize the selected atoms of automodel?



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