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))