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

Re: [modeller_usage] A single type of rotamer



On 10/8/10 9:38 PM, Omar Piña wrote:
I need to model a protein with the lysine all straight (stuck-up?). How
can I say to modeller that only create models with the lysine in that
form?? This Lysine is known to be like that. Thanks!!

For any modeling in Modeller, you need to think about the set of spatial restraints that correspond to your desired geometry. By "stuck-up" I presume you mean a specific rotamer for which you know chi1, chi2 etc. So you just create a few restraints on those dihedrals. If you're doing this during a comparative modeling run with automodel, you'd build those restraints in the special_restraints() routine. The only complication is that Modeller already builds homology-derived sidechain restraints, so you'd have to remove those first using Restraints.unpick() and Restraints.condense().

I've attached a simple modification of the basic automodel example from http://salilab.org/modeller/9v8/manual/node16.html which modifies it to restrain the first Lys residue (residue 15) to have both chi1 and chi2 be 0 +/ 0.1 radians.

	Ben Webb, Modeller Caretaker
--
             http://www.salilab.org/modeller/
Modeller mail list: http://salilab.org/mailman/listinfo/modeller_usage
from modeller import *
from modeller.automodel import *

log.verbose()
env = environ()

env.io.atom_files_directory = ['.', '../atom_files']

class MyModel(automodel):
    def special_restraints(self, aln):
        rsr = self.restraints
        lys = self.residues['15']
        for d in lys.chi1, lys.chi2:
            rsr.unpick(*d.atoms)
        rsr.condense()
        rsr.add(forms.gaussian(group=physical.chi1_dihedral,
                               feature=features.dihedral(*lys.chi1.atoms),
                               mean=0.0, stdev=0.1))
        rsr.add(forms.gaussian(group=physical.chi2_dihedral,
                               feature=features.dihedral(*lys.chi2.atoms),
                               mean=0.0, stdev=0.1))

a = MyModel(env, alnfile='alignment.ali', knowns='5fd1', sequence='1fdx')
a.starting_model = a.ending_model = 1
a.make()