Subject: [modeller_usage] Restrain Uses in MODELLER v.91.6
From: Sushil Mishra <>
Date: Mon, 3 Oct 2016 17:47:58 +0900
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