BALL::HBondProcessor Class Reference
[Miscellaneous]

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

#include <BALL/STRUCTURE/HBondProcessor.h>

Inheritance diagram for BALL::HBondProcessor:
Inheritance graph
[legend]

List of all members.

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< HBondgetHBonds ()
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< 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

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 ()

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


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


Member Data Documentation

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.

Definition at line 279 of file HBondProcessor.h.

Definition at line 173 of file HBondProcessor.h.

options

Definition at line 258 of file HBondProcessor.h.

Definition at line 282 of file HBondProcessor.h.

Definition at line 302 of file HBondProcessor.h.

Definition at line 277 of file HBondProcessor.h.

Generated by  doxygen 1.6.3