I am writing this mail again. Not sure, if my earlier mail was received by the group. I am trying to model a protein using a template that is 85% similar to it, but also wants to transfer ligand from another protein that is 10% similar. In doing so, I am introducing restraints while creating the final model with ligand. But the final output as .pdb, the ligand seems to miss all the restraints that is being introduced.
Please find herein the code:
from modeller import * # Load standard Modeller classes from modeller.automodel import * # Load the automodel class
class MyModel(automodel): def special_restraints(self, aln): rsr = self.restraints for ids in (('O:234:', 'N4:286:'), ('O:242:', 'N4:286:'), ('N:234:', 'O2:286:')): atoms = [self.atoms[i] for i in ids] rsr.add(forms.gaussian(group=physical.xy_distance, feature=features.distance(*atoms), mean=3.0, stdev=0.2))
log.verbose() # request verbose output env = environ() # create a new MODELLER environment to build this model in
# directories for input atom files # env.io.atom_files_directory = './:../atom_files/'
# Read in HETATM records from template PDBs env.io.hetatm = True
a = MyModel(env, alnfile = 'alignment.ali', # alignment filename knowns = ('2ebd_model','1ro7'), # codes of the templates sequence = '2ebd') # assess_methods=(assess.DOPE, assess.GA341)) # code of the target a.starting_model= 1 # index of the first model a.ending_model = 5 # index of the last model # (determines how many models to calculate) a.make()
This code runs fine but the ligand doesn't have any of the above mentioned restraints. How could one instruct modeller to consider these restraints? I understand that modeller would by default consider the non-bonded interaction between ligand and the catalytic site amino acids. In such case, is there a way to override those interactions? If so, which files should be edited? It will be really helpful to receive suggestions on these lines.
Thanking you in anticipation, Rohitesh
On 7/16/13 12:15 PM, Rohitesh Gupta wrote: > I am trying to model a protein using a template that is 85% similar to > it, but also wants to transfer ligand from another protein that is 10% > similar.
That should be fine - just give an alignment of the three sequences, looking something like
templ1 AAAAAAAA---* templ2 ------BBBB.* target xxxxxxxxxx.*
Ideally you want to take some of the protein from the second template (rather than just the ligand) so you get the ligand-protein interactions correct. And ideally you want a bit of overlap between the two templates.
> This code runs fine but the ligand doesn't have any of the above > mentioned restraints. > How could one instruct modeller to consider these restraints?
Your script looks fine. What makes you think the ligand "doesn't have" any of the restraints? Modeller tries to satisfy *all* restraints (user-added restraints aren't treated specially) so if there's a conflict, you may end up with them not being satisfied.
> I understand that modeller would by default consider the non-bonded > interaction between ligand and the catalytic site amino acids. In such > case, is there a way to override those interactions?
Sure, you can add one or more excluded pairs. See http://salilab.org/modeller/9.12/manual/node108.html You can just add these in the same special_restraints method.
Ben Webb, Modeller Caretaker