Computation of hydrogen bonds from topology information. More...
#include <BALL/STRUCTURE/HBondProcessor.h>
Classes | |
struct | Default |
Default values for options. More... | |
class | HBond |
struct | Option |
Option names. More... | |
struct | PredictionMethod |
Default values for options. More... | |
struct | ResidueData |
Public Member Functions | |
Processor-related methods | |
virtual void | init () |
virtual bool | start () |
virtual Processor::Result | operator() (Composite &composite) |
in case of Kabsch Sander: determines per residue the N, O, C , | |
virtual bool | finish () |
Finish computes all hbonds of the composite according. | |
Access methods | |
const std::vector< HBond > & | getHBonds () const |
std::vector< HBond > | getHBonds () |
const std::vector< std::vector < Position > > & | getBackboneHBondPairs () const |
const std::vector< ResidueData > & | getResidueData () const |
Protected Member Functions | |
void | preComputeBonds_ (ResidueIterator &data) |
bool | finishKabschSander_ () |
bool | finishWishartEtAl_ () |
Protected Attributes | |
Kabsch Sander related objects | |
Vector3 | upper_ |
Vector3 | lower_ |
std::vector< ResidueData > | residue_data_ |
std::vector< std::vector < Position > > | backbone_h_bond_pairs_ |
Wishart et al related objects | |
std::vector< Atom * > | donors_ |
std::vector< Atom * > | acceptors_ |
std::map< Residue *, Position > | residue_ptr_to_position_ |
objects for both prediciton methods | |
std::vector< HBond > | h_bonds_ |
store HBond | |
Constant Definitions | |
| |
static float | MAX_LENGTH |
static float | BOND_LENGTH_N_H |
static float | BOND_LENGTH_C_O |
static float | AMIDE_PROTON_OXYGEN_SEPARATION_DISTANCE |
static float | ALPHA_PROTON_OXYGEN_SEPARATION_DISTANCE |
BALL_CREATE (HBondProcessor) | |
HBondProcessor () | |
Default constructor. | |
HBondProcessor (Options &new_options) | |
Detailed constructor. | |
virtual | ~HBondProcessor () |
Public Attributes | |
| |
Options | options |
options | |
void | setDefaultOptions () |
Computation of hydrogen bonds from topology information.
Hydrogen Bond Processor This processor computes hydrogen bonds and introduces for all hydrogen bonds found a BALL::Bond of type BALL::Bond::TYPE__HYDROGEN, if the property ADD_BONDS is set. In all cases, the detected HBonds can be returned by calling getHBonds().
Please note that the properties of the bond are not recomputed automatically if the System changes! Thus, bonds and their properties (angle, length) might become obsolete!
Example code:
Protein* protein = ..; HBondProcessor hbp; hbp.options.set(HBondProcessor::Option::PREDICTION_METHOD, HBondProcessor::PredictionMethod::KABSCH_SANDER); protein->apply(hbp); std::vector<std::vector<Position> > h_bond_indices = hbp.getBackboneHBondPairs(); 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; }
The artifical indices of method getBackboneHBondPairs() are created by iterating with the ResidueIterator and assigning ascending numbers starting with zero. NOTE: After finishing the processor, the ResidueIterator may change the arrangement of the sequence thus the return value gets disrupted!!
The HBondProcessor offers two prediction methods: BALL::HBondProcessor::PredictionMethod::KABSCH_SANDER and BALL::HBondProcessor::PredictionMethod::WISHART_ET_AL Default prediction method is BALL::HBondProcessor::PredictionMethod::KABSCH_SANDER.
The BALL::HBondProcessor::PredictionMethod::KABSCH_SANDER computes all __backbone__ hydrogen bonds occuring between amino acids in the composite it is applied to. Here, a hydrogen bond is created between donor and acceptor, e.g., between N and O.
The computation of the bonds follows the criterion given in "Kabsch W & Sander C (1983). Dictionary of protein secondary structure: pattern recognition of hydrogen-bonded and geometrical features. Biopolymers, 22, 2577-2637".
Please note that in the Kabsch Sander approach water is excluded from the computations.
The BALL::HBondProcessor::PredictionMethod::WISHART_ET_AL computes all hydrogen bonds occuring between amid and alpha hydrogens (H/HA) and carbonyl oxygens on the backbone (O) or sidechain oxygens (OD, OE, OG, OH) in the composite it is applied to. Here, a hydrogen bond is created between the hydrogen atom of the donor and the acceptor, e.g., between HA and O.
The computation of the bonds follows the criterion given in " 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.".
Definition at line 98 of file HBondProcessor.h.
BALL::HBondProcessor::HBondProcessor | ( | ) |
Default constructor.
Constructors and Descructor
BALL::HBondProcessor::HBondProcessor | ( | Options & | new_options | ) |
Detailed constructor.
virtual BALL::HBondProcessor::~HBondProcessor | ( | ) | [virtual] |
BALL::HBondProcessor::BALL_CREATE | ( | HBondProcessor | ) |
virtual bool BALL::HBondProcessor::finish | ( | ) | [virtual] |
Finish computes all hbonds of the composite according.
Reimplemented from BALL::UnaryProcessor< Composite >.
bool BALL::HBondProcessor::finishKabschSander_ | ( | ) | [protected] |
bool BALL::HBondProcessor::finishWishartEtAl_ | ( | ) | [protected] |
const std::vector< std::vector<Position> >& BALL::HBondProcessor::getBackboneHBondPairs | ( | ) | const |
std::vector< HBond> BALL::HBondProcessor::getHBonds | ( | ) | [inline] |
Definition at line 244 of file HBondProcessor.h.
const std::vector< HBond>& BALL::HBondProcessor::getHBonds | ( | ) | const [inline] |
Definition at line 241 of file HBondProcessor.h.
const std::vector<ResidueData>& BALL::HBondProcessor::getResidueData | ( | ) | const |
virtual void BALL::HBondProcessor::init | ( | ) | [virtual] |
Initialization method.
virtual Processor::Result BALL::HBondProcessor::operator() | ( | Composite & | composite | ) | [virtual] |
in case of Kabsch Sander: determines per residue the N, O, C ,
in case of Wishart et Al: collects the donors (H, HA) and acceptors all kinds of O
Reimplemented from BALL::UnaryProcessor< Composite >.
void BALL::HBondProcessor::preComputeBonds_ | ( | ResidueIterator & | data | ) | [protected] |
void BALL::HBondProcessor::setDefaultOptions | ( | ) |
reset the options to default values
virtual bool BALL::HBondProcessor::start | ( | ) | [virtual] |
Processor start method.
Reimplemented from BALL::UnaryProcessor< Composite >.
std::vector<Atom*> BALL::HBondProcessor::acceptors_ [protected] |
Definition at line 300 of file HBondProcessor.h.
Definition at line 179 of file HBondProcessor.h.
Definition at line 178 of file HBondProcessor.h.
std::vector<std::vector<Position> > BALL::HBondProcessor::backbone_h_bond_pairs_ [protected] |
Definition at line 285 of file HBondProcessor.h.
Definition at line 175 of file HBondProcessor.h.
Definition at line 174 of file HBondProcessor.h.
std::vector<Atom*> BALL::HBondProcessor::donors_ [protected] |
Definition at line 296 of file HBondProcessor.h.
std::vector<HBond> BALL::HBondProcessor::h_bonds_ [protected] |
store HBond
Definition at line 310 of file HBondProcessor.h.
Vector3 BALL::HBondProcessor::lower_ [protected] |
Definition at line 279 of file HBondProcessor.h.
float BALL::HBondProcessor::MAX_LENGTH [static] |
Definition at line 173 of file HBondProcessor.h.
options
Definition at line 258 of file HBondProcessor.h.
std::vector<ResidueData> BALL::HBondProcessor::residue_data_ [protected] |
Definition at line 282 of file HBondProcessor.h.
std::map< Residue*, Position> BALL::HBondProcessor::residue_ptr_to_position_ [protected] |
Definition at line 302 of file HBondProcessor.h.
Vector3 BALL::HBondProcessor::upper_ [protected] |
Definition at line 277 of file HBondProcessor.h.