The read-only container OEPlaceHydrogensDetails holds information about the results of applying the function OEPlaceHydrogens to a particular molecule. Details objects can provide insight into the conformational states and how they were chosen.
Information is broken down into clusters (including singletons) of “movers” or moving functional groups and their associated “background” of non-moving groups. Information about each mover is collected in a corresponding OEPlaceHydrogensMoverNote.
OEPlaceHydrogensDetails() OEPlaceHydrogensDetails(const OEPlaceHydrogensDetails &rhs)
Default and copy constructor.
OEPlaceHydrogensDetails &operator=(const OEPlaceHydrogensDetails &rhs)
bool ClusterHasBadClash(unsigned clusterIdx) const
Returns true if the cluster referred to by clusterIdx is in a conformation that generates a “bad” atom-atom clash.
std::string Describe(bool showBackground=false) const
Returns a multi-line description of the conformation and score of movers in each cluster processed by the OEPlaceHydrogens function.
OEBio 2.1.1: score system MMFF-NIE: flip bias 2.000 87 clusters : 5 flips cluster 0 : score -53.935! CG ASN44(A) : amide: -6.084 (o=-53.93!,f=-8.42!) NZ LYS47(A) : NH3 150deg: -14.865 CG HIS80(A) : +bothHN: -5.628 (o=-53.93!,f=-15.89!) OG1 THR81(A) : OH 65deg: 1.255 CD GLN87(A) :FLIP amide: -4.976 (o=-26.48!,f=-53.93!) CG ASN126(A) : amide: -5.193 (o=-53.93!,f=-35.33!) CG ASN169(A) : amide: -2.230 (o=-53.93!,f=-33.02!) CD GLN203(A) : amide: -1.400 (o=-53.93!,f=-15.53!) CG HIS205(A) : +bothHN: -8.693! (o=-53.93!,f=-6.89!) OG1 THR232(A) : OH 179deg: 9.120 O3B XYP601(A) : OH 280deg: -5.020 O2B XYP601(A) : OH 173deg: 3.917 O4B XYP601(A) : OH 50deg: 1.236 O3 XIF602(A) : OH 29deg: -3.688 cluster 1 : score -85.724! CG HIS85(A) : +bothHN: -7.737! (o=-85.72!,f=-84.85!) OG SER86(A) : OH 241deg: 2.116 OG SER139(A) : OH 185deg: 3.367! OH TYR171(A) : OH 25deg: -3.384 CG ASN172(A) : amide: 1.153 (o=-85.72!,f=-68.75!) NZ LYS179(A) : NH3 188deg: -39.497 ... single 13 : OG1 THR2(A) : OH 151deg: 1.545 single 14 : OG SER25(A) : OH 292deg: 2.046 single 15 : OH TYR29(A) : OH 199deg: -1.262 single 16 : OG SER35(A) : OH 254deg: 1.935 ...
Key elements in the description output:
- The score system is MMFF-NIE which stands for “MMFF Neighbor Interaction Energies”. This is is a physics based score where the Coulombic and Van der Waals terms are from MMFF94 (including MMFF partial charges), with a weighting factor of 1:3 Coulomb to VDW. There are biases against ionization and “flipping” a group. Interactions are scored between movers and between movers and non-moving background atoms. Background atoms are neighboring atoms that form a “dipole cluster”, the sum of the partial charges of these clusters are the same as the sum of the formal charges.
- The count 87 clusters includes both groups of interacting movers and singletons, movers that interact only with non-moving atoms or waters.
- 5 flips indicates that five movers were “flipped” by 180 degrees to improve hydrogen bonding or avoid clashes. Groups such as the asparagine sidechain CD GLN87(A) :FLIP amide: are occasionally modeled with certain heavy atoms in the wrong orientation. Any free amide or imidazole group will be considered for flipping.
- The score in OG SER139(A) : OH 185deg: 3.367! is from score system MMFF-NIE for this mover in the specified conformation. Lower numbers represent better scores. The exclamation point (!) indicates a clash between this group and another group or non-moving background atom.
- The score in cluster 0 : score -53.935! is the sum of both the mover scores, and the background scores (not shown here, but displayable if the showBackground parameter is set to true). The exclamation point (!) indicates that at least one mover had a clash.
- The pair of scores for flippable groups (o=-53.93!,f=-8.42!) are the best cluster scores for both the original (o) and the flipped (f) state. After the basic optimization, each flippable mover in a cluster is fixed in the opposite flip state and the optimization is re-run. A group is flipped only if the flipped cluster score is lower than the original score by more than flip bias 2.000.
- Imidazoles have both flipped states and three protonation states for each flip state. The description indicates whether the group is flipped and where protons are with respect to the two ring nitrogens: : no HE2: neutral with HD1 but no HE2 or :FLIP no HD1: flipped neutral with HE2 but no HD1 or : +bothHN: + charged with two NH protons.
- Other groups have descriptions of their state. O3B XYP601(A) : OH 280deg: shows the orientation of one of the hydroxyl rotors in the residue XYP.
- Waters (not shown above) are processed after other movers, progressively in shells away from the protein.
double GetClusterScore(unsigned clusterIdx) const
Returns the combined score of all the movers (plus non-moving background) of the cluster referred to by clusterIdx.
- GetNumClusters method
double GetFlipBias() const
Returns the score bias against flipping functional groups (e.g. imidazole, amide) used by OEPlaceHydrogens when this details object was produced.
OESystem::OEIterBase<OEPlaceHydrogensMoverNote> * GetMoverNotes(unsigned clusterIdx) const
Returns an iterator of all the mover notes describing the state of movers in the cluster referred to by clusterIdx.
unsigned GetNumClusters() const
Returns the number of mover clusters processed by OEPlaceHydrogens when this details object was produced.
unsigned GetNumFlips() const
Returns the number movers OEPlaceHydrogens decided to flip when this details object was produced.
unsigned GetNumHydrogensStandardized() const
Returns the number of bonds between a hydrogen and a heavy atom whose length was adjusted by OEPlaceHydrogens when this details object was produced.
unsigned GetNumMovers(unsigned clusterIdx) const
Returns the number of movers in the cluster referred to by clusterIdx (including all non-moving background “movers”).
bool IsSingleton(unsigned clusterIdx) const
Returns true if the cluster referred to by clusterIdx only contains a single mover (not counting the corresponding non-moving background).
- GetNumMovers method