Loading...
Searching...
No Matches
BALL::HBondProcessor Class Reference
Molecular Modeling » Molecular Structure » Miscellaneous

Computation of hydrogen bonds from topology information. More...

`#include <BALL/STRUCTURE/HBondProcessor.h>`

Inheritance diagram for BALL::HBondProcessor:

## Classes

class | HBond
struct | Option
| Option names. More...
struct | Default
| Default values for options. 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 > > & | getBackboneHBondPattern () const
| computes the HBond pattern as needed, e.g. by the SecondaryStructureProcessor
const std::vector< ResidueData > & | getResidueData () const
Public Member Functions inherited from BALL::UnaryProcessor< Composite >
| UnaryProcessor ()
| UnaryProcessor (const UnaryProcessor &)
virtual | ~UnaryProcessor ()

## 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 ()
void | preComputeBonds_ (ResidueIterator &data)
bool | finishKabschSander_ ()
bool | finishWishartEtAl_ ()

## Additional Inherited Members

Public Types inherited from BALL::UnaryFunctor< ArgumentType, ResultType >
typedef ResultType | result_type
typedef ArgumentType | argument_type
typedef ArgumentType & | argument_reference
typedef const ArgumentType & | const_argument_reference
typedef ArgumentType * | argument_pointer
typedef const ArgumentType * | const_argument_pointer

## Detailed Description

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.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;
}
BALL::Composite::apply
bool apply(UnaryProcessor< T > &processor)
BALL::HBondProcessor::getBackboneHBondPattern
const std::vector< std::vector< Position > > & getBackboneHBondPattern() const
computes the HBond pattern as needed, e.g. by the SecondaryStructureProcessor
BALL::HBondProcessor::HBondProcessor
HBondProcessor()
Default constructor.
BALL::HBondProcessor::getHBonds
const std::vector< HBond > & getHBonds() const
Definition HBondProcessor.h:240
BALL::HBondProcessor::options
Options options
options
Definition HBondProcessor.h:257
BALL::Options::set
void set(const String &key, const String &value)
BALL::Protein
Definition protein.h:30
BALL::Size
BALL_SIZE_TYPE Size
Definition COMMON/global.h:114
BALL::HBondProcessor::Option::PREDICTION_METHOD
static const String PREDICTION_METHOD
Definition HBondProcessor.h:142
BALL::HBondProcessor::PredictionMethod::KABSCH_SANDER
static const String KABSCH_SANDER
Definition HBondProcessor.h:164

The artifical indices of method getBackboneHBondPattern() 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.

## Constructor & Destructor Documentation

## HBondProcessor() [1/2]

BALL::HBondProcessor::HBondProcessor | ( |  | ) |

Default constructor.

Constructors and Descructor

## HBondProcessor() [2/2]

BALL::HBondProcessor::HBondProcessor | ( | Options & | new_options | ) |

Detailed constructor.

## ~HBondProcessor()

virtual BALL::HBondProcessor::~HBondProcessor | ( |  | ) |

virtual

## Member Function Documentation

## BALL_CREATE()

BALL::HBondProcessor::BALL_CREATE | ( | HBondProcessor |  | ) |

## finish()

virtual bool BALL::HBondProcessor::finish | ( |  | ) |

virtual

Finish computes all hbonds of the composite according.

Reimplemented from BALL::UnaryProcessor< Composite >.

## finishKabschSander_()

bool BALL::HBondProcessor::finishKabschSander_ | ( |  | ) |

protected

## finishWishartEtAl_()

bool BALL::HBondProcessor::finishWishartEtAl_ | ( |  | ) |

protected

## getBackboneHBondPattern()

const std::vector< std::vector< Position > > & BALL::HBondProcessor::getBackboneHBondPattern | ( |  | ) | const

computes the HBond pattern as needed, e.g. by the SecondaryStructureProcessor

## getHBonds() [1/2]

std::vector< HBond > BALL::HBondProcessor::getHBonds | ( |  | ) |

inline

Definition at line 243 of file HBondProcessor.h.

## getHBonds() [2/2]

const std::vector< HBond > & BALL::HBondProcessor::getHBonds | ( |  | ) | const

inline

Definition at line 240 of file HBondProcessor.h.

## getResidueData()

const std::vector< ResidueData > & BALL::HBondProcessor::getResidueData | ( |  | ) | const

## init()

virtual void BALL::HBondProcessor::init | ( |  | ) |

virtual

Initialization method.

## operator()()

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 >.

## preComputeBonds_()

void BALL::HBondProcessor::preComputeBonds_ | ( | ResidueIterator & | data | ) |

protected

## setDefaultOptions()

void BALL::HBondProcessor::setDefaultOptions | ( |  | ) |

reset the options to default values

## start()

virtual bool BALL::HBondProcessor::start | ( |  | ) |

virtual

Processor start method.

Reimplemented from BALL::UnaryProcessor< Composite >.

## Member Data Documentation

## acceptors_

std::vector<Atom*> BALL::HBondProcessor::acceptors_

protected

Definition at line 299 of file HBondProcessor.h.

## ALPHA_PROTON_OXYGEN_SEPARATION_DISTANCE

float BALL::HBondProcessor::ALPHA_PROTON_OXYGEN_SEPARATION_DISTANCE

static

Definition at line 179 of file HBondProcessor.h.

## AMIDE_PROTON_OXYGEN_SEPARATION_DISTANCE

float BALL::HBondProcessor::AMIDE_PROTON_OXYGEN_SEPARATION_DISTANCE

static

Definition at line 178 of file HBondProcessor.h.

## backbone_h_bond_pairs_

std::vector<std::vector<Position> > BALL::HBondProcessor::backbone_h_bond_pairs_

protected

Definition at line 284 of file HBondProcessor.h.

## BOND_LENGTH_C_O

float BALL::HBondProcessor::BOND_LENGTH_C_O

static

Definition at line 175 of file HBondProcessor.h.

## BOND_LENGTH_N_H

float BALL::HBondProcessor::BOND_LENGTH_N_H

static

Definition at line 174 of file HBondProcessor.h.

## donors_

std::vector<Atom*> BALL::HBondProcessor::donors_

protected

Definition at line 295 of file HBondProcessor.h.

## h_bonds_

std::vector<HBond> BALL::HBondProcessor::h_bonds_

protected

store HBond

Definition at line 309 of file HBondProcessor.h.

## lower_

Vector3 BALL::HBondProcessor::lower_

protected

Definition at line 278 of file HBondProcessor.h.

## MAX_LENGTH

float BALL::HBondProcessor::MAX_LENGTH

static

Definition at line 173 of file HBondProcessor.h.

## options

Options BALL::HBondProcessor::options

options

Definition at line 257 of file HBondProcessor.h.

## residue_data_

std::vector<ResidueData> BALL::HBondProcessor::residue_data_

protected

Definition at line 281 of file HBondProcessor.h.

## residue_ptr_to_position_

std::map< Residue*, Position> BALL::HBondProcessor::residue_ptr_to_position_

protected

Definition at line 301 of file HBondProcessor.h.

## upper_

Vector3 BALL::HBondProcessor::upper_

protected

Definition at line 276 of file HBondProcessor.h.