> > class MyModel(automodel): > # This routine picks the residues to be refined by loop modeling > def select_loop_atoms(self): > return selection(self.residue_range('310:', '320:'), > self.residue_range('517:', '523:')) > > def special_restraints(self, aln): > rsr = self.restraints > # Keep whole model but loop atoms rigid > wholeSel = selection(self) - self.select_loop_atoms() > r = rigid_body(wholeSel) > rsr.rigid_bodies.append(r) >
And then instead of automodel use MyModel in the following way:
nv = environ() > env.io.hetatm = False > # directories for input atom files > env.io.atom_files_directory = ["../"] > a = MyModel(env, > alnfile = ALIGNMENT, # alignment filename > knowns = (template1, template2), # codes of the templates > assess_methods=(assess.DOPEHR,assess.normalized_dope), # > optionally assess the models on th fly > sequence=OUTPUT_MODEL_NAME) # code of the target > a.starting_model = 1 # First loop model > a.ending_model = 10 # Last loop model > > a.library_schedule = autosched.slow > a.max_var_iterations = 300 > # Very thorough MD optimization: > a.md_level = refine.very_slow > > a.make() >
Of course you should tweak the parameters until you find what works best for your case.
HTH, Thomas
On 24 May 2011 10:25, Matthias Schmidt matthias.rene.schmidt@gmail.comwrote:
> Hi, > > how can I model a loop without changing the rest of the structure? > > Best, > > Matthias > _______________________________________________ > modeller_usage mailing list > modeller_usage@salilab.org > https://salilab.org/mailman/listinfo/modeller_usage >