Hi,
Actually, the modelling works, but the result is not what I hoped for.
Despite having restraints everywhere except for on the loop, Modeller
alters the C-terminus, and it fails to close the loop.
Hm... Have you seen this before?
Cheers,
Matthias
On Tue, May 24, 2011 at 11:18 AM, Matthias Schmidt
<">> wrote:
> Hi Thomas,
>
> Thank you very much for the hint on the rigid_bodies constraints and
> for your scripts.
>
> It works well.
>
> Best,
>
> Matthias
>
> On Tue, May 24, 2011 at 10:07 AM, Thomas Evangelidis <">> wrote:
>> 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 <">>
>>> wrote:
>>>>
>>>> Hi,
>>>>
>>>> how can I model a loop without changing the rest of the structure?
>>>>
>>>> Best,
>>>>
>>>> Matthias
>>>> _______________________________________________
>>>> modeller_usage mailing list
>>>> ">
>>>> 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: ">
>>
>> ">
>>
>> website: https://sites.google.com/site/thomasevangelidishomepage/
>>
>>
>
======================================================================
Thomas Evangelidis
PhD student
Biomedical Research Foundation, Academy of Athens
4 Soranou Ephessiou , 115 27
Athens, Greece
email: " target="_blank">
website:
https://sites.google.com/site/thomasevangelidishomepage/