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

[modeller_usage] Restrain Uses in MODELLER v.91.6



Hi,
I am trying to model a protein with certain distance restraints and
disulphide bonds. I wonder why restraint does not work when I set
disulphide bonds. My script looks like.

---------------------------------------------
from modeller import *
from modeller.automodel import *    # Load the automodel class
import sys


log.verbose()
env = environ()
env.io.hetatm = True
env.schedule_scale = physical.values(default=1.0, soft_sphere=0.7)

# directories for input atom files
env.io.atom_files_directory = ['.', '../atom_files']

class MyModel(automodel):
    def special_restraints(self, aln):
        rsr = self.restraints
        at = self.atoms

#      Residues to be an alpha helix:
        rsr.add(secondary_structure.alpha(self.residue_range('1:', '22:')))
        rsr.add(secondary_structure.alpha(self.residue_range('26:',
'32:')))

        rsr.add(forms.gaussian(group=physical.xy_distance,
                               feature=features.distance(at['CA:1'],
                                                         at['CA:269']),
                               mean=4.0, stdev=4.0))

    def special_patches(self, aln):
        # A disulfide between residues X and Y:
        self.patch(residue_type='DISU', residues=(self.residues['113'],
                                                  self.residues['117']))
        self.patch(residue_type='DISU', residues=(self.residues['125'],
                                                  self.residues['175']))
        self.patch(residue_type='DISU', residues=(self.residues['313'],
                                                  self.residues['337']))
        self.patch(residue_type='DISU', residues=(self.residues['24'],

self.residues['314']))a = MyModel(env,
            alnfile  = 'seq.ali',  # alignment filename
            knowns   = ('XYZ','ABC'),     # codes of the templates
            sequence = 'prot',
            assess_methods=(assess.DOPE, assess.GA341)) # code of the target
a.starting_model= 1                     # index of the first model
a.ending_model  = 20                     # index of the last model
                                        # (determines how many models
to calculate)

a.library_schedule = autosched.fast     # Very thorough VTFM optimization
a.max_var_iterations = 100
a.md_level = refine.fast                # Thorough MD optimization
a.repeat_optimization = 1               # Repeat the whole cycle 2 times and..
a.max_molpdf = 1e6                      # do not stop unless obj.func. > 1E6

#a.use_parallel_job(j)               # Use the job for model building
a.make()
-------------------------------------------------------

If I comment distance restraint seems to work okay. What can be the
reason that it does not work with S-S restraints. Moreover, Is there a
way to control force constant for harmonic restraints in such cases ?

Best,
SM