[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [modeller_usage] Loop modelling without changing structure



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 <" target="_blank">> wrote:
Hi,

how can I model a loop without changing the rest of the structure?

Best,

Matthias
_______________________________________________
modeller_usage mailing list
" target="_blank">
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: " target="_blank">

          " target="_blank">


website: https://sites.google.com/site/thomasevangelidishomepage/