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