BALL 1.5.0
CHPI.h
Go to the documentation of this file.
1// ----------------------------------------------------
2// $Maintainer: Marcel Schumann $
3// $Authors: Slick-development Team, Marcel Schumann $
4// ----------------------------------------------------
5
6#ifndef BALL_SCORING_COMPONENTS_CHPI_H
7#define BALL_SCORING_COMPONENTS_CHPI_H
8
14
15namespace BALL
16{
21 {
22 public:
26 {
27 public:
30
32 AromaticRing(const AromaticRing& aromatic_ring);
33
35 AromaticRing(const std::vector<Atom*>& atoms);
36
38 const Vector3& getCentre() const;
39
41 const Vector3& getNormalVector() const;
42
44 void setRing(const std::vector<Atom*>& atoms);
45
46 // accessors for the private data members
47 const std::vector<Atom*>& getRing() const;
48
50 void dump(std::ostream& s = std::cout) const;
51
53 void update();
54
55 private:
56 //_ A hash set containing pointers to all ring atoms:
57 std::vector<Atom*> ring_atoms_;
58
59 //_ The centre of the aromatic ring.
60 Vector3 centre_;
61
62 //_ The normal vector of the ring plane.
63 Vector3 normal_vector_;
64
65 //_
66 void computeCentre_();
67
68 //_
69 void computeNormalVector_();
70 };
71
74 class CHGroup
75 {
76 public:
79
82
84 CHGroup(const CHGroup& CH_groups);
85
87 CHGroup (const Atom* C_atom, const Atom* H_atom);
88
90 void setCAtom(const Atom* C_atom);
91
93 void setHAtom(const Atom* H_atom);
94
96 void setAtoms(const Atom* C_atom, const Atom* H_atom);
97
99 const Atom* getHAtom() const
100 {
101 return(H_atom_);
102 }
103
105 const Atom* getCAtom() const
106 {
107 return(C_atom_);
108 }
109
110 void dump(std::ostream& s = std::cout) const;
111
112 private :
113 //_
114 const Atom* H_atom_;
115
116 //_
117 const Atom* C_atom_;
118 };
119
120 struct Option
121 {
123 static const String VERBOSITY;
124
127
130
133
136
139
142
144 static const String LIMIT;
145
148 };
149
150 struct Default
151 {
153 static const Size VERBOSITY;
154
156 static const float CX_DISTANCE_UPPER;
157
159 static const float CHX_ANGLE_LOWER;
160
162 static const float HX_PROJECTED_DISTANCE_LOWER;
163
165 static const float HX_PROJECTED_DISTANCE_UPPER;
166
168 static const float DISTANCE_TOLERANCE;
169
171 static const float ANGLE_TOLERANCE;
172
174 static const float LIMIT;
175
177 static const bool CREATE_INTERACTION_FILE;
178 };
179
183
187
191
194 CHPI(const CHPI& chpi);
195
198 virtual ~CHPI();
199
201
204
207 const CHPI& operator = (const CHPI& chpi);
208
211 virtual void clear();
212
214
217
218 bool operator == (const CHPI& chpi) const;
219
221
224
227 virtual bool setup();
228
230
231 void update(const vector<std::pair<Atom*, Atom*> >&);
232
236 virtual double updateScore();
237
240
241 private:
245 void calculatePossibleInteractions();
246
251 TimeStamp update_time_stamp_;
252
253 //_ A vector containing all possible interactions between aliphatic C-H groups and aromatic rings
254 std::vector<std::pair<const AromaticRing*, const CHGroup*> > possible_interactions_;
255
256 // A vector containing all aliphatic C-H groups of the ligand.
257 std::vector<CHGroup*> ligand_CH_groups_;
258
259 // A vector containing all aromatic rings of the receptor.
260 std::vector<AromaticRing*> receptor_aromatic_rings_;
261
262 // A vector containing all aliphatic C-H groups of the ligand.
263 std::vector<CHGroup*> receptor_CH_groups_;
264
265 // A vector containing all aromatic rings of the receptor.
266 std::vector<AromaticRing*> ligand_aromatic_rings_;
267
268 //_
269 float CX_distance_upper_;
270
271 //_
272 float CHX_angle_lower_;
273
274 //_
275 float HX_projected_distance_lower_;
276
277 //_
278 float HX_projected_distance_upper_;
279
280 //_ The tolerance area for creating scores instead of simply counted
281 //_ interactions.
282 float distance_tolerance_;
283 float angle_tolerance_;
284
285 //_ A limit for ignoring interactions that have only very small
286 //_ scores
287 float limit_;
288
289 //_ Verbosity of the code
290 Size verbosity_;
291
292 //_ Flag for writing HIN file containing pseudomolecules for the CHPI
293 //_ interactions found in the system
294 bool write_interactions_file_;
295
298
299 float distance_cutoff_;
300 };
301} // namespace BALL
302
303#endif // BALL_SCORING_COMPONENTS_CHPI_H
BALL_EXPORT AtomList atoms(const AtomContainer &fragment, const String &expression=String())
Definition: constants.h:13
BALL_EXPORT bool operator==(const String &s1, const String &s2)
This processor provides methods for detection and assignment of aromaticity.
virtual bool setup()
virtual double updateScore()
void update(const vector< std::pair< Atom *, Atom * > > &)
virtual ~CHPI()
CHPI(ScoringFunction &sf)
Options options
Definition: CHPI.h:239
virtual void clear()
void setupLigand()
CHPI(const CHPI &chpi)
void dump(std::ostream &s=std::cout) const
const Vector3 & getCentre() const
void setRing(const std::vector< Atom * > &atoms)
AromaticRing(const std::vector< Atom * > &atoms)
const Vector3 & getNormalVector() const
AromaticRing(const AromaticRing &aromatic_ring)
const std::vector< Atom * > & getRing() const
void setHAtom(const Atom *H_atom)
CHGroup(const CHGroup &CH_groups)
void setAtoms(const Atom *C_atom, const Atom *H_atom)
const Atom * getHAtom() const
Definition: CHPI.h:99
CHGroup(const Atom *C_atom, const Atom *H_atom)
void setCAtom(const Atom *C_atom)
const Atom * getCAtom() const
Definition: CHPI.h:105
void dump(std::ostream &s=std::cout) const
static const String ANGLE_TOLERANCE
Definition: CHPI.h:141
static const String LIMIT
Definition: CHPI.h:144
static const String CREATE_INTERACTION_FILE
Definition: CHPI.h:147
static const String HX_PROJECTED_DISTANCE_LOWER
Definition: CHPI.h:132
static const String CX_DISTANCE_UPPER
Definition: CHPI.h:126
static const String HX_PROJECTED_DISTANCE_UPPER
Definition: CHPI.h:135
static const String VERBOSITY
Definition: CHPI.h:123
static const String DISTANCE_TOLERANCE
Definition: CHPI.h:138
static const String CHX_ANGLE_LOWER
Definition: CHPI.h:129
static const float ANGLE_TOLERANCE
Definition: CHPI.h:171
static const float HX_PROJECTED_DISTANCE_UPPER
Definition: CHPI.h:165
static const Size VERBOSITY
Definition: CHPI.h:153
static const bool CREATE_INTERACTION_FILE
Definition: CHPI.h:177
static const float DISTANCE_TOLERANCE
Definition: CHPI.h:168
static const float CHX_ANGLE_LOWER
Definition: CHPI.h:159
static const float LIMIT
Definition: CHPI.h:174
static const float CX_DISTANCE_UPPER
Definition: CHPI.h:156
static const float HX_PROJECTED_DISTANCE_LOWER
Definition: CHPI.h:162
#define BALL_EXPORT
Definition: COMMON/global.h:50