Loading...
Searching...
No Matches
CHPI.h
Go to the documentation of this file.
// ----------------------------------------------------
// $Maintainer: Marcel Schumann $
// $Authors: Slick-development Team, Marcel Schumann $
// ----------------------------------------------------
#ifndef BALL_SCORING_COMPONENTS_CHPI_H
#define BALL_SCORING_COMPONENTS_CHPI_H
#include <BALL/SCORING/COMMON/scoringComponent.h>
#include <BALL/SCORING/COMMON/scoringFunction.h>
#include <BALL/DATATYPE/options.h>
#include <BALL/QSAR/ringPerceptionProcessor.h>
#include <BALL/QSAR/aromaticityProcessor.h>
namespace BALL
{
class BALL_EXPORT CHPI : public ScoringComponent
{
public:
class AromaticRing
{
public:
AromaticRing();
AromaticRing(const AromaticRing& aromatic_ring);
AromaticRing(const std::vector<Atom*>& atoms);
const Vector3& getCentre() const;
const Vector3& getNormalVector() const;
void setRing(const std::vector<Atom*>& atoms);
// accessors for the private data members
const std::vector<Atom*>& getRing() const;
void dump(std::ostream& s = std::cout) const;
void update();
private:
//_ A hash set containing pointers to all ring atoms:
std::vector<Atom*> ring_atoms_;
//_ The centre of the aromatic ring.
Vector3 centre_;
//_ The normal vector of the ring plane.
Vector3 normal_vector_;
//_
void computeCentre_();
//_
void computeNormalVector_();
};
class CHGroup
{
public:
CHGroup();
~CHGroup();
CHGroup(const CHGroup& CH_groups);
CHGroup (const Atom* C_atom, const Atom* H_atom);
void setCAtom(const Atom* C_atom);
void setHAtom(const Atom* H_atom);
void setAtoms(const Atom* C_atom, const Atom* H_atom);
const Atom* getHAtom() const
{
return(H_atom_);
}
const Atom* getCAtom() const
{
return(C_atom_);
}
void dump(std::ostream& s = std::cout) const;
private :
//_
const Atom* H_atom_;
//_
const Atom* C_atom_;
};
struct Option
{
static const String VERBOSITY;
static const String CX_DISTANCE_UPPER;
static const String CHX_ANGLE_LOWER;
static const String HX_PROJECTED_DISTANCE_LOWER;
static const String HX_PROJECTED_DISTANCE_UPPER;
static const String DISTANCE_TOLERANCE;
static const String ANGLE_TOLERANCE;
static const String LIMIT;
static const String CREATE_INTERACTION_FILE;
};
struct Default
{
static const Size VERBOSITY;
static const float CX_DISTANCE_UPPER;
static const float CHX_ANGLE_LOWER;
static const float HX_PROJECTED_DISTANCE_LOWER;
static const float HX_PROJECTED_DISTANCE_UPPER;
static const float DISTANCE_TOLERANCE;
static const float ANGLE_TOLERANCE;
static const float LIMIT;
static const bool CREATE_INTERACTION_FILE;
};
CHPI();
CHPI(ScoringFunction& sf);
CHPI(const CHPI& chpi);
virtual ~CHPI();
const CHPI& operator = (const CHPI& chpi);
virtual void clear();
bool operator == (const CHPI& chpi) const;
virtual bool setup();
void setupLigand();
void update(const vector<std::pair<Atom*, Atom*> >&);
virtual double updateScore();
Options options;
private:
void calculatePossibleInteractions();
TimeStamp update_time_stamp_;
//_ A vector containing all possible interactions between aliphatic C-H groups and aromatic rings
std::vector<std::pair<const AromaticRing*, const CHGroup*> > possible_interactions_;
// A vector containing all aliphatic C-H groups of the ligand.
std::vector<CHGroup*> ligand_CH_groups_;
// A vector containing all aromatic rings of the receptor.
std::vector<AromaticRing*> receptor_aromatic_rings_;
// A vector containing all aliphatic C-H groups of the ligand.
std::vector<CHGroup*> receptor_CH_groups_;
// A vector containing all aromatic rings of the receptor.
std::vector<AromaticRing*> ligand_aromatic_rings_;
//_
float CX_distance_upper_;
//_
float CHX_angle_lower_;
//_
float HX_projected_distance_lower_;
//_
float HX_projected_distance_upper_;
//_ The tolerance area for creating scores instead of simply counted
//_ interactions.
float distance_tolerance_;
float angle_tolerance_;
//_ A limit for ignoring interactions that have only very small
//_ scores
float limit_;
//_ Verbosity of the code
Size verbosity_;
//_ Flag for writing HIN file containing pseudomolecules for the CHPI
//_ interactions found in the system
bool write_interactions_file_;
RingPerceptionProcessor rp_;
AromaticityProcessor ap_;
float distance_cutoff_;
};
} // namespace BALL
#endif // BALL_SCORING_COMPONENTS_CHPI_H
BALL_EXPORT
#define BALL_EXPORT
Definition COMMON/global.h:50
aromaticityProcessor.h
BALL::AromaticityProcessor
This processor provides methods for detection and assignment of aromaticity.
Definition aromaticityProcessor.h:30
BALL::Atom
Definition atom.h:90
BALL::CHPI::AromaticRing::dump
void dump(std::ostream &s=std::cout) const
BALL::CHPI::AromaticRing::getCentre
const Vector3 & getCentre() const
BALL::CHPI::AromaticRing::AromaticRing
AromaticRing()
BALL::CHPI::AromaticRing::setRing
void setRing(const std::vector< Atom * > &atoms)
BALL::CHPI::AromaticRing::AromaticRing
AromaticRing(const std::vector< Atom * > &atoms)
BALL::CHPI::AromaticRing::update
void update()
BALL::CHPI::AromaticRing::getNormalVector
const Vector3 & getNormalVector() const
BALL::CHPI::AromaticRing::AromaticRing
AromaticRing(const AromaticRing &aromatic_ring)
BALL::CHPI::AromaticRing::getRing
const std::vector< Atom * > & getRing() const
BALL::CHPI::CHGroup::~CHGroup
~CHGroup()
BALL::CHPI::CHGroup::setHAtom
void setHAtom(const Atom *H_atom)
BALL::CHPI::CHGroup::CHGroup
CHGroup(const CHGroup &CH_groups)
BALL::CHPI::CHGroup::CHGroup
CHGroup()
BALL::CHPI::CHGroup::setAtoms
void setAtoms(const Atom *C_atom, const Atom *H_atom)
BALL::CHPI::CHGroup::getHAtom
const Atom * getHAtom() const
Definition CHPI.h:99
BALL::CHPI::CHGroup::CHGroup
CHGroup(const Atom *C_atom, const Atom *H_atom)
BALL::CHPI::CHGroup::setCAtom
void setCAtom(const Atom *C_atom)
BALL::CHPI::CHGroup::getCAtom
const Atom * getCAtom() const
Definition CHPI.h:105
BALL::CHPI::CHGroup::dump
void dump(std::ostream &s=std::cout) const
BALL::CHPI::setup
virtual bool setup()
BALL::CHPI::updateScore
virtual double updateScore()
BALL::CHPI::update
void update(const vector< std::pair< Atom *, Atom * > > &)
BALL::CHPI::~CHPI
virtual ~CHPI()
BALL::CHPI::CHPI
CHPI(ScoringFunction &sf)
BALL::CHPI::options
Options options
Definition CHPI.h:239
BALL::CHPI::clear
virtual void clear()
BALL::CHPI::setupLigand
void setupLigand()
BALL::CHPI::CHPI
CHPI()
BALL::CHPI::CHPI
CHPI(const CHPI &chpi)
BALL::Options
Definition options.h:48
BALL::RingPerceptionProcessor
Definition ringPerceptionProcessor.h:38
BALL::ScoringComponent::ScoringComponent
ScoringComponent()
BALL::ScoringFunction
Definition scoringFunction.h:29
BALL::String
Definition string.h:57
BALL::TimeStamp
Definition timeStamp.h:172
BALL::atoms
BALL_EXPORT AtomList atoms(const AtomContainer &fragment, const String &expression=String())
BALL
Definition constants.h:13
BALL::Size
BALL_SIZE_TYPE Size
Definition COMMON/global.h:114
BALL::Vector3
TVector3< float > Vector3
Definition vector3.h:1084
options.h
ringPerceptionProcessor.h
scoringComponent.h
scoringFunction.h
BALL::CHPI::Default
Definition CHPI.h:151
BALL::CHPI::Default::ANGLE_TOLERANCE
static const float ANGLE_TOLERANCE
Definition CHPI.h:171
BALL::CHPI::Default::HX_PROJECTED_DISTANCE_UPPER
static const float HX_PROJECTED_DISTANCE_UPPER
Definition CHPI.h:165
BALL::CHPI::Default::VERBOSITY
static const Size VERBOSITY
Definition CHPI.h:153
BALL::CHPI::Default::CREATE_INTERACTION_FILE
static const bool CREATE_INTERACTION_FILE
Definition CHPI.h:177
BALL::CHPI::Default::DISTANCE_TOLERANCE
static const float DISTANCE_TOLERANCE
Definition CHPI.h:168
BALL::CHPI::Default::CHX_ANGLE_LOWER
static const float CHX_ANGLE_LOWER
Definition CHPI.h:159
BALL::CHPI::Default::LIMIT
static const float LIMIT
Definition CHPI.h:174
BALL::CHPI::Default::CX_DISTANCE_UPPER
static const float CX_DISTANCE_UPPER
Definition CHPI.h:156
BALL::CHPI::Default::HX_PROJECTED_DISTANCE_LOWER
static const float HX_PROJECTED_DISTANCE_LOWER
Definition CHPI.h:162
BALL::CHPI::Option
Definition CHPI.h:121
BALL::CHPI::Option::ANGLE_TOLERANCE
static const String ANGLE_TOLERANCE
Definition CHPI.h:141
BALL::CHPI::Option::LIMIT
static const String LIMIT
Definition CHPI.h:144
BALL::CHPI::Option::CREATE_INTERACTION_FILE
static const String CREATE_INTERACTION_FILE
Definition CHPI.h:147
BALL::CHPI::Option::HX_PROJECTED_DISTANCE_LOWER
static const String HX_PROJECTED_DISTANCE_LOWER
Definition CHPI.h:132
BALL::CHPI::Option::CX_DISTANCE_UPPER
static const String CX_DISTANCE_UPPER
Definition CHPI.h:126
BALL::CHPI::Option::HX_PROJECTED_DISTANCE_UPPER
static const String HX_PROJECTED_DISTANCE_UPPER
Definition CHPI.h:135
BALL::CHPI::Option::VERBOSITY
static const String VERBOSITY
Definition CHPI.h:123
BALL::CHPI::Option::DISTANCE_TOLERANCE
static const String DISTANCE_TOLERANCE
Definition CHPI.h:138
BALL::CHPI::Option::CHX_ANGLE_LOWER
static const String CHX_ANGLE_LOWER
Definition CHPI.h:129