BALL
1.4.2
|
#include <BALL/NMR/HBondShiftProcessor.h>
Public Member Functions | |
Constructors and Destructors | |
HBondShiftProcessor () | |
HBondShiftProcessor (const HBondShiftProcessor &processor) | |
virtual | ~HBondShiftProcessor () |
Accessors | |
virtual void | init () |
Processor specific funtions. | |
virtual bool | start () |
virtual Processor::Result | operator() (Composite &composite) |
virtual bool | finish () |
Public Member Functions inherited from BALL::ShiftModule | |
ShiftModule () | |
ShiftModule (Parameters ¶meters, 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 ¶meters) |
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 |
Protected Attributes | |
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_ |
Protected Attributes inherited from BALL::ShiftModule | |
String | module_name_ |
Parameters * | parameters_ |
bool | valid_ |
Private Member Functions | |
void | printParameters_ () |
void | printEffectors_ () |
void | printTargets_ () |
Atom * | getDonor_ (Atom *a) |
void | postprocessing_ () |
Private Attributes | |
std::multimap< float, std::pair< Atom *, Atom * > > | hbonds_ |
std::map< Atom *, bool > | donor_occupied_ |
std::map< Atom *, bool > | acceptor_occupied_ |
Additional Inherited Members | |
Public Types inherited from BALL::UnaryFunctor< Composite, Processor::Result > | |
typedef Processor::Result | result_type |
typedef Composite | argument_type |
typedef Composite & | argument_reference |
typedef const Composite & | const_argument_reference |
typedef Composite * | argument_pointer |
typedef const Composite * | const_argument_pointer |
Shift assignment processor implementing the effect of hydrogen bonds.
Definition at line 37 of file HBondShiftProcessor.h.
BALL::HBondShiftProcessor::HBondShiftProcessor | ( | ) |
Default constructor.
BALL::HBondShiftProcessor::HBondShiftProcessor | ( | const HBondShiftProcessor & | processor | ) |
Copy constructor.
|
virtual |
Destructor.
|
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:
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 {acceptor} atom using the named property ShiftModule::PROPERTY__SHIFT and stored in the named property PROPERTY__HBOND_SHIFT .
invalid
Reimplemented from BALL::ShiftModule.
|
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:
Right now, it is assumed that the hydrogen bonds were already set via for example the HBondProcessor
.
Reimplemented from BALL::ShiftModule.
|
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 >.
|
private |
|
private |
|
private |
|
private |
|
virtual |
Processor start method. Clears the donor and acceptor lists.
Reimplemented from BALL::ShiftModule.
Definition at line 231 of file HBondShiftProcessor.h.
|
protected |
Definition at line 173 of file HBondShiftProcessor.h.
|
protected |
Definition at line 181 of file HBondShiftProcessor.h.
|
protected |
Definition at line 201 of file HBondShiftProcessor.h.
|
protected |
Definition at line 189 of file HBondShiftProcessor.h.
|
protected |
Definition at line 197 of file HBondShiftProcessor.h.
|
protected |
Definition at line 193 of file HBondShiftProcessor.h.
|
protected |
Definition at line 185 of file HBondShiftProcessor.h.
Definition at line 230 of file HBondShiftProcessor.h.
|
protected |
Definition at line 177 of file HBondShiftProcessor.h.
|
protected |
Definition at line 206 of file HBondShiftProcessor.h.
Definition at line 229 of file HBondShiftProcessor.h.
|
static |
Definition at line 47 of file HBondShiftProcessor.h.
|
protected |
Definition at line 218 of file HBondShiftProcessor.h.