M. Seigneuret wrote: > A previous case of using restraints or patches in loop refinement > already appeared in the discussion list but there, loopmodel was used > on the fly after automodel so that the redefined patches and restraints > automodel subclasses were active during loop refinement. > What happens when one uses only loopmodel or dope_loopmodel to refine an > existing model ? I suppose it is possible to import patches subclasses > from automodel. I tried to fiddle but got nowhere. Could somebody help me ?
It works in just the same way. loopmodel is a derived class of automodel, so everything you can do in automodel can also be done in loopmodel (it doesn't make any difference whether you build models and refine the loops in one go, or just use loopmodel to refine the loops of an existing model). See the example at http://salilab.org/modeller/9v3/manual/node34.html
It should be straightforward to modify this example to also override the special_patches routine. In your case, your TOP script would translate to something like:
from modeller import * from modeller.automodel import *
env = environ()
class MyLoop(loopmodel): def select_loop_atoms(self): return selection(self.residue_range('59:', '61:')) def special_patches(self): self.patch(residue_type='DISU', residues=(self.residues['41'], self.residues['60']))
m = MyLoop(env, inimodel='mod2f.B99990002.pdb', sequence='mod2134') m.loop.starting_model = 20 m.loop.ending_model = 30 m.loop.md_level = refine.very_fast m.make()
Ben Webb, Modeller Caretaker