-
Notifications
You must be signed in to change notification settings - Fork 36
ComputeHydrogenBondsOfMolecule
dstoeckel edited this page Mar 16, 2015
·
2 revisions
BALL offers a class HBondProcessor to compute hydrogen bonds based on topology information.
Currently BALL support two criteria for hydrogen bonds:
- an implementation of DSSP algorithm
Kabsch W & Sander C (1983). Dictionary of protein secondary
structure: pattern recognition of hydrogen-bonded and geometrical features.
Biopolymers, 22, 2577-2637".
- an implementation of the criterion used in SHFITX
Neal, S., Nip, A. M., Zhang, H., and Wishart, D. S. (2003).
Rapid and accurate calculation of protein 1H, 13C and 15N chemical shifts.
J Biomol NMR, 26(3):215-240.".
You can switch between both definitions by setting the option PREDICTION_METHOD to either
- BALL::HBondProcessor::PredictionMethod::KABSCH_SANDER or
- BALL::HBondProcessor::PredictionMethod::WISHART_ET_AL Default prediction method is BALL::HBondProcessor::PredictionMethod::KABSCH_SANDER.
NOTE: the DSSP algorithm computes hydrogen bonds of the backbone only!
Also NOTE: the properties of the bond are not recomputed automatically if the System changes! Thus, bonds and their properties (angle, length) might become obsolete!
#include <BALL/STRUCTURE/HBondProcessor.h>
Protein* protein = ..;
HBondProcessor hbp;
hbp.options.set(HBondProcessor::Option::PREDICTION_METHOD,
HBondProcessor::PredictionMethod::KABSCH_SANDER);
protein->apply(hbp);
std::vector<std::vector<Position> > HBonds = hbp.getBackboneHBondPattern();
std::vector<HBondProcessor::HBond> h_bonds = hbp.getHBonds();
for (Size i=0; i<h_bonds.size(); ++i)
{
cout << h_bonds[i].getDonor()->getFullName() << " bond to "
<< h_bonds[i].getAcceptor()->getFullName() << ":"
cout << h_bonds[i].getLength() << endl;
}import BALL
# get the first system in BALLView
s = getSystem(0)
hbp = BALL.HBondProcessor()
hbp.options.set(BALL.HBondProcessor.Option.PREDICTION_METHOD,
BALL.HBondProcessor.PredictionMethod.KABSCH_SANDER)
print hbp.options.get(BALL.HBondProcessor.Option.PREDICTION_METHOD)
s.apply(hbp)