Dear All, I have a problem with restraints after loop refeinement, in particular the distances between some atoms do not respect the restraint values set up. These values are respected after model building (without a slow MD) but not after loop refinements. I didn't use any refinement of imput model.
I show the used scripts: This is for automodel: from modeller import * from modeller.automodel import * # Load the automodel class
log.verbose() env = environ()
env.io.atom_files_directory = ['.', '../atom_files']
class MyModel(automodel): def special_restraints(self, aln): rsr = self.restraints at = self.atoms
rsr.add(forms.gaussian(group=physical.xy_distance, feature=features.distance(at['NZ:114'], at['OD1:288']), mean=2.6, stdev=0.1))
rsr.add(forms.gaussian(group=physical.xy_distance, feature=features.distance(at['NE:136'], at['OD1:260']), mean=2.6, stdev=0.3))
a = MyModel (env, alnfile='allinea.pir', knowns='AB, BC', sequence='CD') a.starting_model = 1 a.ending_model = 1
a.md_level = refine.very_fast
a.make()
This is for loop refinement:
log.verbose() env = environ()
a = loopmodel(env, alnfile = 'allinea.pir', # alignment filename knowns = ''AB, BC', # codes of the templates sequence = 'CD') # code of the target) a.starting_model = 1 # index of the first model a.ending_model = 1 # index of the last model # (determines how many models to calculate)a. md_level = None # No refinement of model
a.loop.starting_model = 1 # First loop model a.loop.ending_model = 1 # Last loop model
a.loop.md_level = refine.fast # Loop model refinement level
a.make()
Thank you very much in advance
Mario
mario ciappy wrote: > I have a problem with restraints after loop refeinement, in particular > the distances between some atoms do not respect the restraint values set > up. These values are respected after model building (without a slow MD) > but not after loop refinements. > I didn't use any refinement of imput model. > > I show the used scripts:
For your automodel script, you create a MyModel class which adds your custom restraints. But for some reason you do not do the same thing when you use loopmodel. Thus, Modeller will know nothing about those restraints and will not honor them.
Something like the following will probably work for your loop refinement; the "special_restraints" method is used both for comparative modeling and for refinement:
log.verbose() env = environ()
class MyLoopModel(loopmodel): def special_restraints(self, aln): rsr = self.restraints at = self.atoms
rsr.add(forms.gaussian(group=physical.xy_distance, feature=features.distance(at['NZ:114'], at['OD1:288']), mean=2.6, stdev=0.1))
rsr.add(forms.gaussian(group=physical.xy_distance, feature=features.distance(at['NE:136'], at['OD1:260']), mean=2.6, stdev=0.3))
a = MyLoopModel(env, alnfile = 'allinea.pir', knowns = ('AB', 'BC'), sequence = 'CD') a.starting_model = a.ending_model = 1 a.md_level = None a.loop.starting_model = a.loop.ending_model = 1 a.loop.md_level = refine.fast a.make()
Ben Webb, Modeller Caretaker
participants (2)
-
mario ciappy
-
Modeller Caretaker