|Rosetta 3.2.1 Release Manual|
The hydrogen bond energy term identifies and scores hydrogen bonds.
Each hydrogen bond has an HBEvalType that identifies what type it is. All hydrogen bonds of a given type are treated in the same way. If one wanted to break out a class of hydrogen bonds to have different behavior, a new HBEvalType should be created.
The goal of the identification step is to create an HBondSet object that contains exactly the hydrogen bonds of interest. If it containst two many, then they will need to be filtered more later, if they contain not enough then more will need to be found later, when all that should happen in this step.
Hydrogen bonds are classified by hbond_evaluation_type() in hbonds_geom.cc
Kortemme, T., A. V. Morozov and D. Baker (2003). "An orientation-dependent hydrogen bonding potential improves prediction of specificity and structure for proteins and protein-protein complexes." J Mol Biol 326(4): 1239-59.
Jack Snoeyink has re-implemented it as a efficient polynomial evaulation.
The derivative evaulation follows what is described in,
Wedemeyer, W., Baker, D., "Efficient minimization of angle-dependent potentials for polypeptides in internal coordinates", Proteins: Structure, Function, and Bioinformatics Volume 53 Issue 2, Pages 262-272
Note: If there is a backbone-backbone hydrogen bond then neither the donor nor the acceptor residues are allowed to participate in a backbone-sidechain hydrogen bond. According to Brian Kuhlman, this was put in the early days of Rosetta because the hydrogen bond energy term at the time put overly favored serines on helixes because they would form backbone-backbone hbonds for the helix and backbone-sidechain bonds away from the helix.
2) Use emap to assign energies from hbonds
3) Only put hbonds in HBondSets that are actually relevent (rather than filtering when they are used)
4) Merge non-protein/non-dna hbond code with rest of hbond code.
5) Make new HBEvalTypes so evaluation and energy assignment can be handled uniformally
6) Clean up header files
7) Add a hbond unit test for energy evaluation over geometric parameter range
8) Add doxygen documentation for hbond code
1) Create new HBEvalTypes based off of functional group of donor and acceptor and secondary structure for protein backbone backbone bonds.
2) Implement improved 1d polynomials for new types.
3) Add "chi" out-of-plane dependence as a 4th geometric dimension
5) Implement evaluation functions for distributions with coupled parameters.