Back to Mover page.
Generates constraints to attempt to enforce hydrogen bonding between atoms in residues defined by the two residue selectors. Constraints are generated by default for all pairs of residues (r1, r2), where r1 is a residue selected by residue_selector1 and r2 is a residue selected by residue_selector2, A1 is the hydrogen bond-capable heavy atom in r1, P_A1 is the parent atom of A1, PP_A1 is the parent of P_A1, A2 is the hydrogen-bond-capable heavy atom in r2, P_A2 is the parent atom of A2, and PP_A2 is the parent of P_A2 (see below for parent definitions). The following constraints are generated for each (A1, A2) pair:
The following dihedral constraints will be generated only if a planar chemical group is involved:
The functions to be used for these constraints are user-configurable. By default, harmonic functions are used for atom pair constraints and circular harmonic functions are used for angle/dihedral constraints. See the constraint documentation for more information about functions.
It is possible for each residue selector to select multiple residues. If this occurs, Ambiguous constraints will be generated for each (r1, r2) pair, where r1 is selected by residue_selector1 and r2 is selected by residue_selector2. The result is that only the constraints from the best-scoring residue pair will be used.
If you want to constrain multiple hydrogen bonds simulataneously, you should use a seperate HydrogenBondConstraintGenerator for each.
It is also possible to select multiple atoms in each residue. If this occurs, Ambiguous constraints are generated for each (A1, A2) pair in each (r1, r2) pair, where r1 is a residue selected by residue_selector1, r2 is a residue selected by residue_selector2, A1 is a hydrogen-bond-capable atom in r1, and A2 is a hydrogen-bond-capable atom in r2. The resulting score will only include the best-scoring hydrogen bonding atom pair. If you want to constrain multiple hydrogen bonds simulataneously, you should use a seperate HydrogenBondConstraintGenerator for each.
The atoms involved in the angle and dihedral constraints are given below:
Residue Name | A1 | P_A1 | PP_A1 | Distance (1/2) | Angle | Dihedrals |
ARG | NE | CZ | NH1 | 1.4 | 120.0 | 0.0,180.0 |
ARG | NH1 | CZ | NE | 1.4 | 120.0 | 0.0,180.0 |
ARG | NH2 | CZ | NE | 1.4 | 120.0 | 0.0,180.0 |
ASP | OD1 | CG | OD2 | 1.4 | 120.0 | 0.0,180.0 |
ASP | OD2 | CG | OD1 | 1.4 | 120.0 | 0.0,180.0 |
CYS | SG | CB | CA | 2.0 | 109.5 | Any |
GLU | OE1 | CD | OE2 | 1.4 | 120.0 | 0.0,180.0 |
GLU | OE2 | CD | OE1 | 1.4 | 120.0 | 0.0,180.0 |
HIS | ND1 | CE1 | NE2 | 1.4 | 120.0 | 180.0 |
HIS | NE2 | CE1 | ND1 | 1.4 | 120.0 | 180.0 |
LYS | NZ | CE | CD | 1.4 | 109.5 | Any |
SER | OG | CB | CA | 1.4 | 109.5 | Any |
THR | OG1 | CB | CA | 1.4 | 109.5 | Any |
TRP | NE1 | CD1 | CG | 1.4 | 120.0 | 180.0 |
TYR | OH | CZ | CE1 | 1.4 | 109.5 | Any |
To have effect, the atom_pair_constraint, angle_constraint, and dihedral_constraint scoreterms must be on in the scorefunction.
This ConstraintGenerator currently only works with canonical amino acids.
<HydrogenBondConstraintGenerator name="(&string)"
residue_selector1="(&string TrueSelector)"
residue_selector2="(&string TrueSelector)"
atoms1="(&string '')"
atoms2="(&string '')"
atom_pair_func="(&string 'HARMONIC 2.8 0.5')"
angle1_func="(&string 'CIRCULARHARMONIC 2.0 0.5')"
angle2_func="(&string 'CIRCULARHARMONIC 2.0 0.5')"
atom_definitions="(&string '' )" />
"ASP,OD1,CG,OD2,1.4,120.0,0.0,180.0"
Note the 'ideal' dihedrals of 0.0 and 180.0 which indicates that hydrogen bonds to ASP should be in-plane. For hydrogen bonding to OG of SER, this line might read:
"SER,OG,CB,CA,1.4,109.5"
This example creates constraints to enforce a hydrogen bond between atom NE2 on residue 6 and atom OE1 on residue 50. The atom pair constraint between these atoms uses a custom function -- a flat-bottom function with width 0.4 and sd 0.5.
<RESIDUE_SELECTORS>
<Index name="his6" resnums="6" />
<Index name="glu50" resnums="50" />
</RESIDUE_SELECTORS>
<MOVERS>
<AddConstraints name="add_csts" >
<HydrogenBondConstraintGenerator name="gen_my_csts"
residue_selector1="his6"
residue_selector2="glu50"
atoms1="NE2"
atoms2="OE1"
atom_pair_func="FLAT_HARMONIC 2.8 0.5 0.4" />
</AddConstraints>
<RemoveConstraints name="rm_csts" constraint_generators="gen_my_csts" />
</MOVERS>
<PROTOCOLS>
<Add mover="add_csts" />
<!-- do things with constraints -->
<Add mover="rm_csts" />
</PROTOCOLS>