Loading...
Searching...
No Matches
HBondShiftProcessor.h
Go to the documentation of this file.
// -*- Mode: C++; tab-width: 2; -*-
// vi: set ts=2:
//
// $Id: HBondShiftProcessor.h,v 1.14.10.5 2007-04-12 13:53:53 anne Exp $
//
#ifndef BALL_NMR_HBONDSHIFTPROCESSOR_H
#define BALL_NMR_HBONDSHIFTPROCESSOR_H
#ifndef BALL_KERNEL_PTE_H
# include <BALL/KERNEL/PTE.h>
#endif
#ifndef BALL_KERNEL_BOND_H
# include <BALL/KERNEL/bond.h>
#endif
#ifndef BALL_KERNEL_ATOM_H
# include <BALL/KERNEL/atom.h>
#endif
#ifndef BALL_NMR_SHIFT_MODULE_H
# include <BALL/NMR/shiftModule.h>
#endif
#ifndef BALL_FORMAT_PARAMETERSECTION_H
# include <BALL/FORMAT/parameterSection.h>
#endif
#include <map>
namespace BALL
{
class BALL_EXPORT HBondShiftProcessor
: public ShiftModule
{
public:
BALL_CREATE(HBondShiftProcessor)
static const char* PROPERTY__HBOND_SHIFT;
HBondShiftProcessor()
;
HBondShiftProcessor(const HBondShiftProcessor& processor)
;
virtual ~HBondShiftProcessor()
;
virtual void init();
virtual bool start();
virtual Processor::Result operator () (Composite& composite);
virtual bool finish();
protected:
/*_ Vector of hydrogen bond acceptor types collected from the <tt>ShiftX.ini-file</tt> by <tt>init ()</tt>.
*/
std::vector<String> acceptor_types_;
/*_ Vector of hydrogen bond donors collected by <tt>operator ()</tt>.
*/
std::vector<Atom*> donors_;
/*_ Vector of hydrogen bond acceptors collected by <tt>operator ()</tt> as defined in <tt>acceptor_types_</tt>.
*/
std::vector<Atom*> acceptors_;
/*_ A flag indicating whether the HBond effect affects amide protons too.
*/
bool amide_protons_are_targets_;
/*_ The default factor for computing the amide protons shift.
*/
float amide_proton_factor_ ;
/*_ The default subtrahend for computing the amide protons shift.
*/
float amide_proton_subtrahend_;
/*_ The default distance between oxygen and hydrogen for amide hydrogens.
*/
float amide_proton_oxygen_hydrogen_separation_distance_;
/*_ The default distance between oxygen and hydrogen for alpha hydrogens.
*/
float alpha_proton_oxygen_hydrogen_separation_distance_;
/*_ A flag indicating whether the HBond-donar and acceptor must be on different residues.
* The default value is true.
*/
bool exclude_selfinteraction_;
/*_ A flag indicating whether the HBonds should be computed ShiftX-wise.
* NOTE: This will just compute __temporarily__ hydrogen bonds
* found with the ShiftX - algorithm, whose definition of a
* hydrogen bond differ substantially from a BALL definition.
* 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!
* The default value is false!
*/
bool ShiftXwise_hydrogen_bonds_computation_;
private:
void printParameters_();
void printEffectors_();
void printTargets_();
Atom* getDonor_(Atom* a);
void postprocessing_();
/* Distance, donor, acceptor for the ShiftXwise hydrogenbond determination.*/
std::multimap<float, std::pair<Atom*, Atom*> > hbonds_;
std::map<Atom*, bool> donor_occupied_;
std::map<Atom*, bool> acceptor_occupied_;
};
} // namespace BALL
#endif
BALL_EXPORT
#define BALL_EXPORT
Definition COMMON/global.h:50
PTE.h
atom.h
bond.h
BALL::Atom
Definition atom.h:90
BALL::Composite
Definition composite.h:74
BALL::HBondShiftProcessor::amide_proton_subtrahend_
float amide_proton_subtrahend_
Definition HBondShiftProcessor.h:193
BALL::HBondShiftProcessor::ShiftXwise_hydrogen_bonds_computation_
bool ShiftXwise_hydrogen_bonds_computation_
Definition HBondShiftProcessor.h:218
BALL::HBondShiftProcessor::amide_protons_are_targets_
bool amide_protons_are_targets_
Definition HBondShiftProcessor.h:185
BALL::HBondShiftProcessor::amide_proton_factor_
float amide_proton_factor_
Definition HBondShiftProcessor.h:189
BALL::HBondShiftProcessor::finish
virtual bool finish()
BALL::HBondShiftProcessor::start
virtual bool start()
BALL::HBondShiftProcessor::alpha_proton_oxygen_hydrogen_separation_distance_
float alpha_proton_oxygen_hydrogen_separation_distance_
Definition HBondShiftProcessor.h:201
BALL::HBondShiftProcessor::init
virtual void init()
BALL::HBondShiftProcessor::exclude_selfinteraction_
bool exclude_selfinteraction_
Definition HBondShiftProcessor.h:206
BALL::HBondShiftProcessor::donors_
std::vector< Atom * > donors_
Definition HBondShiftProcessor.h:177
BALL::HBondShiftProcessor::acceptor_types_
std::vector< String > acceptor_types_
Definition HBondShiftProcessor.h:173
BALL::HBondShiftProcessor::PROPERTY__HBOND_SHIFT
static const char * PROPERTY__HBOND_SHIFT
Definition HBondShiftProcessor.h:47
BALL::HBondShiftProcessor::HBondShiftProcessor
HBondShiftProcessor()
BALL::HBondShiftProcessor::acceptors_
std::vector< Atom * > acceptors_
Definition HBondShiftProcessor.h:181
BALL::HBondShiftProcessor::amide_proton_oxygen_hydrogen_separation_distance_
float amide_proton_oxygen_hydrogen_separation_distance_
Definition HBondShiftProcessor.h:197
BALL::Processor
Definition processor.h:32
BALL::Result
Definition result.h:22
BALL::ShiftModule::ShiftModule
ShiftModule()
BALL::String
Definition string.h:57
BALL_CREATE
#define BALL_CREATE(name)
Definition create.h:62
BALL
Definition constants.h:13
std
STL namespace.
parameterSection.h
shiftModule.h