Hello!
I am trying to force a helical segment (that was built from the non-aligned part of the sequence) to be roughly between two other helical segments rather than sticking outside as automodel/loopmodel puts it by default. I have tried to create an angle restraint between the segment centroids but it seems to be ignored (apart from reporting its violation in the log). Is it possible to achieve in Modeller or should I actually specify restraints during further optimization/dynamics so that the segment rotates into desired place?
Thank you in advance Eugene
The simplified code snippet is like this (trying to achieve “linear” arrangement of A2, A3, and B2 centroids)
def special_restraints(self, aln): rsr = self.restraints helixA2 = self.residue_range('42:A', '60:A') helixA3 = self.residue_range('65:A', '83:A') helixB2 = self.residue_range('42:B', '60:B') rsr.add(secondary_structure.alpha(helixA2)) rsr.add(secondary_structure.alpha(helixA3)) rsr.add(secondary_structure.alpha(helixB2))
helixA2c = pseudo_atom.gravity_center(selection(helixA2).only_atom_types('CA')) rsr.pseudo_atoms.append(helixA2c) helixA3c = pseudo_atom.gravity_center(selection(helixA3).only_atom_types('CA')) rsr.pseudo_atoms.append(helixA3c) helixB2c = pseudo_atom.gravity_center(selection(helixB2).only_atom_types('CA')) rsr.pseudo_atoms.append(helixB2c)
rsr.add(forms.gaussian(group=physical.nmr_distance, feature=features.angle(helixA2c, helixA3c, helixB2c), mean=pi, stdev=0.1))
On 12/19/19 3:49 PM, Eugene Radchenko wrote: > I am trying to force a helical segment (that was built from the > non-aligned part of the sequence) to be roughly between two other > helical segments rather than sticking outside as automodel/loopmodel > puts it by default. I have tried to create an angle restraint between > the segment centroids but it seems to be ignored (apart from reporting > its violation in the log).
If it's in the log, it's in the scoring function, so it's not being ignored. And your code looks fine to me. But you probably still have conflicting restraints, derived from the alignment. The usual way to resolve that is to tweak the alignment some more (one option would be to use multiple templates, one for each domain, to allow them to move relative to each other). You already said your helix is in a non-aligned region, but likely it's being affected by other aligned parts of the sequence.
Ben Webb, Modeller Caretaker
participants (2)
-
Eugene Radchenko
-
Modeller Caretaker