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