Scattered homology model based on multiple temlpates
Hi all,
Last week, based on my Query regarding '*Modelling with Side Chain Restraints*', I have prepared my script (see attachment) and built a homology model of a heterotrimer. Eventhough, I restrained the movement of side chains of those copied residues, I failed in keeping my model intact. I mean, my model has got gaps equal to the number of templates. I can say that the templates are not superposed (default by MODELLER) and therefore residues copied from each template have fallen apart with out getting joined to each other. Hope so I have gave a clear idea about the situation. Please let me know if anything more to be provided from my side.
Thanks in Advance
Regards, Lalith
On 10/21/13 3:57 AM, Lalith Kumar wrote: > Last week, based on my Query regarding '*Modelling with Side Chain > Restraints*', I have prepared my script (see attachment) and built a > homology model of a heterotrimer. Eventhough, I restrained the movement > of side chains of those copied residues, I failed in keeping my model > intact. I mean, my model has got gaps equal to the number of templates. > I can say that the templates are not superposed (default by MODELLER) > and therefore residues copied from each template have fallen apart with > out getting joined to each other. Hope so I have gave a clear idea about > the situation. Please let me know if anything more to be provided from > my side.
There are two obvious problems with your script. The first is here:
class MyModel(automodel): def select_atoms(self): return selection(self.residue_range('1:A', '17:A')) return selection(self.residue_range('481:A', '534:A')) return selection(self.residue_range('560:B', '634:B')) return selection(self.residue_range('716:B', '754:B')) return selection(self.residue_range('830:C', '852:C'))
Obviously the first 'return' statement will make the function return, so all subsequent selections will be ignored. Assuming the residues above are the only residues you want to move, the following should work:
class MyModel(automodel): def select_atoms(self): return selection(self.residue_range('1:A', '17:A'), self.residue_range('481:A', '534:A'), self.residue_range('560:B', '634:B'), self.residue_range('716:B', '754:B'), self.residue_range('830:C', '852:C'))
The second is your use of multiple templates. When you have multiple templates, the initial model is the average of all templates. That's probably not what you want in this case. Two options here would be to modify your alignment so in the regions that aren't moving the model is only ever aligned with a single template, or use the inifile argument to automodel to specify your own initial model.
Ben Webb, Modeller Caretaker
participants (2)
-
Lalith Kumar
-
Modeller Caretaker