Loading...
Searching...
No Matches
BALL::HBondShiftProcessor Class Reference
Molecular Modeling » Nuclear Magnetic Resonance Spectroscopy » Shift modules

`#include <BALL/NMR/HBondShiftProcessor.h>`

Inheritance diagram for BALL::HBondShiftProcessor:

## Public Member Functions

Constructors and Destructors
| HBondShiftProcessor ()
| HBondShiftProcessor (const HBondShiftProcessor &processor)
virtual | ~HBondShiftProcessor ()
Accessors
virtual void | init ()
Public Member Functions inherited from BALL::ShiftModule
| ShiftModule ()
| ShiftModule (Parameters &parameters, const String &name="")
| ShiftModule (const ShiftModule &module)
virtual | ~ShiftModule ()
virtual void | clear ()
const ShiftModule & | operator= (const ShiftModule &module)
void | setName (const String &name)
const String & | getName () const
void | setParameters (Parameters &parameters)
const Parameters * | getParameters () const
bool | isValid () const
Public Member Functions inherited from BALL::UnaryProcessor< Composite >
| UnaryProcessor ()
| UnaryProcessor (const UnaryProcessor &)
virtual | ~UnaryProcessor ()

## Static Public Attributes

Enums and Constants
static const char * | PROPERTY__HBOND_SHIFT
Static Public Attributes inherited from BALL::ShiftModule
static const char * | PROPERTY__SHIFT
static const char * | PROPERTY__EXPERIMENTAL__SHIFT

## Processor specific funtions.

std::vector< String > | acceptor_types_
std::vector< Atom * > | donors_
std::vector< Atom * > | acceptors_
bool | amide_protons_are_targets_
float | amide_proton_factor_
float | amide_proton_subtrahend_
float | amide_proton_oxygen_hydrogen_separation_distance_
float | alpha_proton_oxygen_hydrogen_separation_distance_
bool | exclude_selfinteraction_
bool | ShiftXwise_hydrogen_bonds_computation_
virtual bool | start ()
virtual Processor::Result | operator() (Composite &composite)
virtual bool | finish ()

## 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
String | module_name_
Parameters * | parameters_
bool | valid_

## Detailed Description

Shift assignment processor implementing the effect of hydrogen bonds.

Definition at line 37 of file HBondShiftProcessor.h.

## Constructor & Destructor Documentation

## HBondShiftProcessor() [1/2]

BALL::HBondShiftProcessor::HBondShiftProcessor | ( |  | ) |

Default constructor.

## HBondShiftProcessor() [2/2]

BALL::HBondShiftProcessor::HBondShiftProcessor | ( | const HBondShiftProcessor & | processor | ) |

Copy constructor.

## ~HBondShiftProcessor()

virtual BALL::HBondShiftProcessor::~HBondShiftProcessor | ( |  | ) |

virtual

Destructor.

## Member Function Documentation

## finish()

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

virtual

Finish method. This method performs the chemical shift calculation as specified in the SHIFTX.ini - file read in the init() method. According to $var ShiftXwise_hydrogen_bonds_computation_ $ we temporarily compute hydrogenbonds in an ShiftX like manner or we assume the hydrogen bonds already be set.

The ShiftX definition of hydrogen bonds is:

- Donors are: H and HA
- Acceptors are: O, OD_n, OE_n, OG_n, OH_n or water in the solvent! By now we do not consider water (as ShiftX does not consider too)!
- Donors and Acceptors have to be on different residues.
- HA even does not form hydrogen bonds with neighbours.
- If the acceptor is a solvent oxygen, the donor must not be a HA (not yet implemented!)
- The oxygen–hydrogen separation must be less than 3.5 A for H(N) and 2.77 A for HA.
- For all hydrogens must hold: ~the angle between the N_H donor bond vector and the C=O acceptor bond vector must be 90 degrees or more, and ~the hydrogen-oxygen distance must be less than 2.5 + cos of the angle, and ~hydrogen-oxygen distance must be less than the nitrogen - oxygen distance

    Having applied these rules to each donor--acceptor pair, we
    sort the list of possible bonds by the O_H separation distance, shortest to
    longest. The list is then processed so that only the single strongest hydrogen
    bond is identified for each donor--acceptor pair. Up to that point
    any bond involving the same donor or acceptor is preculded!

The chemical shift is added to the \emph{acceptor} atom using the named property ShiftModule::PROPERTY__SHIFT and stored in the named property PROPERTY__HBOND_SHIFT .

Returns
  bool, false if invalid

Reimplemented from BALL::ShiftModule.

## init()

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

virtual

Initialization method. This method reads the parameter section "HBondEffect" and parses its content. This section contains the parameters used to calculate the contribution of a hydrogen bond to the chemical shift of alpha protons and amide protons.

In addition, this section contains the definition of the Hbond effector types, which are stored in the vector { /tt acceptor_types_}.

The formular for amid protons is given as

            amide_proton_factor_

shift = -------------------— - amide_proton_subtrahend_, r^3

the formular for alpha protons is given as

          0.147521    (1.65458E-05)    0.000134668        0.0598561      15.6855

shift = ----— - ----------— - ----------— + --------— + -----— - 0.673905 . r r^1.5 r*r r^2.5 r^3

The section contains the following flags:

- amide_protons_are_targets denotes, whether amid protons are targets of the HydrogenBond shift effect. Default is false.
- $var amide_proton_factor$ denotes the factor of the amid term, default is zero.
- $var amide_proton_subtrahend$ denotes the subtrahend of the amid term, default is zero.
- $var amide_proton_oxygen_hydrogen_separation_distance $ denotes the maximal possible HN–O distance, default is zero.
- $var alpha_proton_oxygen_hydrogen_separation_distance $ denotes the denotes the maximal possible H_alpha–O distance, default is zero.
- $var exclude_selfinteraction$ denotes if effectors (O) influence hydrogens of the same residue, default is true.
- $var ShiftXwise_hydrogen_bonds_computation $ denotes if the hydrogenbonds are computed as in the ShiftX approach, default is false.

Right now, it is assumed that the hydrogen bonds were already set via for example the HBondProcessor.

Reimplemented from BALL::ShiftModule.

## operator()()

virtual Processor::Result BALL::HBondShiftProcessor::operator() | ( | Composite & | composite | ) |

virtual

operator (). This method adds all acceptors () specified in the vector acceptor_types_ to acceptors_ and all donors to donors_ vector.

Reimplemented from BALL::UnaryProcessor< Composite >.

## start()

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

virtual

Processor start method. Clears the donor and acceptor lists.

Reimplemented from BALL::ShiftModule.

## Member Data Documentation

## acceptor_types_

std::vector<String> BALL::HBondShiftProcessor::acceptor_types_

protected

Definition at line 173 of file HBondShiftProcessor.h.

## acceptors_

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

protected

Definition at line 181 of file HBondShiftProcessor.h.

## alpha_proton_oxygen_hydrogen_separation_distance_

float BALL::HBondShiftProcessor::alpha_proton_oxygen_hydrogen_separation_distance_

protected

Definition at line 201 of file HBondShiftProcessor.h.

## amide_proton_factor_

float BALL::HBondShiftProcessor::amide_proton_factor_

protected

Definition at line 189 of file HBondShiftProcessor.h.

## amide_proton_oxygen_hydrogen_separation_distance_

float BALL::HBondShiftProcessor::amide_proton_oxygen_hydrogen_separation_distance_

protected

Definition at line 197 of file HBondShiftProcessor.h.

## amide_proton_subtrahend_

float BALL::HBondShiftProcessor::amide_proton_subtrahend_

protected

Definition at line 193 of file HBondShiftProcessor.h.

## amide_protons_are_targets_

bool BALL::HBondShiftProcessor::amide_protons_are_targets_

protected

Definition at line 185 of file HBondShiftProcessor.h.

## donors_

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

protected

Definition at line 177 of file HBondShiftProcessor.h.

## exclude_selfinteraction_

bool BALL::HBondShiftProcessor::exclude_selfinteraction_

protected

Definition at line 206 of file HBondShiftProcessor.h.

## PROPERTY__HBOND_SHIFT

const char* BALL::HBondShiftProcessor::PROPERTY__HBOND_SHIFT

static

Definition at line 47 of file HBondShiftProcessor.h.

## ShiftXwise_hydrogen_bonds_computation_

bool BALL::HBondShiftProcessor::ShiftXwise_hydrogen_bonds_computation_

protected

Definition at line 218 of file HBondShiftProcessor.h.