BALL  1.4.79
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Classes | Protected Member Functions | List of all members
BALL::HBondProcessor Class Reference

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

#include <BALL/STRUCTURE/HBondProcessor.h>

Inheritance diagram for BALL::HBondProcessor:
BALL::UnaryProcessor< Composite > BALL::UnaryFunctor< Composite, Processor::Result >

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 , More...
 
virtual bool finish ()
 Finish computes all hbonds of the composite according. More...
 
Access methods
const std::vector< HBond > & getHBonds () const
 
std::vector< HBondgetHBonds ()
 
BALL_DEPRECATED const
std::vector< std::vector
< Position > > & 
getBackboneHBondPairs () const
 
const std::vector< std::vector
< Position > > & 
getBackboneHBondPattern () const
 computes the HBond pattern as needed, e.g. by the SecondaryStructureProcessor More...
 
const std::vector< ResidueData > & getResidueData () const
 
- Public Member Functions inherited from BALL::UnaryProcessor< Composite >
 UnaryProcessor ()
 
 UnaryProcessor (const UnaryProcessor &)
 
virtual ~UnaryProcessor ()
 

Protected Member Functions

void preComputeBonds_ (ResidueIterator &data)
 
bool finishKabschSander_ ()
 
bool finishWishartEtAl_ ()
 

Protected Attributes

Kabsch Sander related objects
Vector3 upper_
 
Vector3 lower_
 
std::vector< ResidueDataresidue_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 *, Positionresidue_ptr_to_position_
 
objects for both prediciton methods
std::vector< HBondh_bonds_
 store HBond More...
 

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. More...
 
 HBondProcessor (Options &new_options)
 Detailed constructor. More...
 
virtual ~HBondProcessor ()
 

Public Attributes

Options options
 options More...
 
void setDefaultOptions ()
 

Additional Inherited Members

- Public Types inherited from BALL::UnaryFunctor< Composite, Processor::Result >
typedef Processor::Result result_type
 
typedef Composite argument_type
 
typedef Compositeargument_reference
 
typedef const Compositeconst_argument_reference
 
typedef Compositeargument_pointer
 
typedef const Compositeconst_argument_pointer
 

Detailed Description

Computation of hydrogen bonds from topology information.

Hydrogen Bond ProcessorThis 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 = ..;
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;
}

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

BALL::HBondProcessor::HBondProcessor ( )

Default constructor.

Constructors and Descructor

BALL::HBondProcessor::HBondProcessor ( Options new_options)

Detailed constructor.

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

Member Function Documentation

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
BALL_DEPRECATED const std::vector< std::vector<Position> >& BALL::HBondProcessor::getBackboneHBondPairs ( ) const
const std::vector< std::vector<Position> >& BALL::HBondProcessor::getBackboneHBondPattern ( ) const

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

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

Definition at line 240 of file HBondProcessor.h.

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

Definition at line 243 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 >.

Member Data Documentation

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

Definition at line 302 of file HBondProcessor.h.

float BALL::HBondProcessor::ALPHA_PROTON_OXYGEN_SEPARATION_DISTANCE
static

Definition at line 179 of file HBondProcessor.h.

float BALL::HBondProcessor::AMIDE_PROTON_OXYGEN_SEPARATION_DISTANCE
static

Definition at line 178 of file HBondProcessor.h.

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

Definition at line 287 of file HBondProcessor.h.

float BALL::HBondProcessor::BOND_LENGTH_C_O
static

Definition at line 175 of file HBondProcessor.h.

float BALL::HBondProcessor::BOND_LENGTH_N_H
static

Definition at line 174 of file HBondProcessor.h.

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

Definition at line 298 of file HBondProcessor.h.

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

store HBond

Definition at line 312 of file HBondProcessor.h.

Vector3 BALL::HBondProcessor::lower_
protected

Definition at line 281 of file HBondProcessor.h.

float BALL::HBondProcessor::MAX_LENGTH
static

Definition at line 173 of file HBondProcessor.h.

Options BALL::HBondProcessor::options

options

Definition at line 260 of file HBondProcessor.h.

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

Definition at line 284 of file HBondProcessor.h.

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

Definition at line 304 of file HBondProcessor.h.

Vector3 BALL::HBondProcessor::upper_
protected

Definition at line 279 of file HBondProcessor.h.