Loop modelling without changing structure
Hi,
how can I model a loop without changing the rest of the structure?
Best,
Matthias
> > 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 >
I'm sorry, I picked the wrong script. Please use the following corrected version:
class MyModel(loopmodel): >> # 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) >> > > Then 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 homology model >> a.ending_model = 1 # Last homology model >> > a.loop.starting_model = 1 # First loop model a.loop.ending_model = 10 # Last loop model a.loop.md_level = refine.very_slow # Loop model refinement level
> >> a.library_schedule = autosched.slow >> a.max_var_iterations = 300 >> # Very thorough MD optimization: >> a.md_level = refine.very_slow >> >> a.make() >> > > > In this way you will create a model from your template (if you already have a model then use it as the template), and then 10 loop decoys by keeping the rest of the structure rigid. Instead of loopmodel you could use the more accurate dope_loopmodel or even dopehr_loopmodel. You could also start from an initial structure instead of building one, by using the inimodel argument within MyModel, i.e.
a = MyLoopModel(env, inimodel=initial_structure, loop_assess_methods=assess.DOPEHR, sequence=output_model_name) # code of the target a.loop.starting_model = 1 # First loop model a.loop.ending_model = 10 # Last loop model a.loop.md_level = refine.very_slow # Loop model refinement level a.make()
Whatever way you chose, the key is to define as rigid_body the part of the structure that you want to be fixed.
good luck, 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 >> > >
Thomas Evangelidis
PhD student
Biomedical Research Foundation, Academy of Athens
4 Soranou Ephessiou , 115 27 Athens, Greece
email: tevang@bioacademy.gr
tevang3@gmail.com
website: https://sites.google.com/site/thomasevangelidishomepage/
participants (2)
-
Matthias Schmidt
-
Thomas Evangelidis