BALL 1.5.0
CHPISlick.h
Go to the documentation of this file.
1// $Id: CHPI.h,v 1.2.10.1 2007/08/07 16:16:15 bertsch Exp $
2// Molecular Mechanics: SLICK force field, CH---pi interaction
3
4#ifndef BALL_SCORING_COMPONENTS_CHPISLICK_H
5#define BALL_SCORING_COMPONENTS_CHPISLICK_H
6
10
11namespace BALL
12{
17 {
18 public:
22 {
23 public:
24
27 ;
28
30 AromaticRing(const AromaticRing& aromatic_ring)
31 ;
32
34 AromaticRing(const std::vector<Atom*>& atoms)
35 ;
36
38 const Vector3& getCentre() const
39 ;
40
42 const Vector3& getNormalVector() const
43 ;
44
46 void setRing(const std::vector<Atom*>& atoms)
47 ;
48
49 // accessors for the private data members
50 const std::vector<Atom*>& getRing() const
51 ;
52
54 void dump(std::ostream& s = std::cout) const
55 ;
56
57 private:
58
59 //_ A hash set containing pointers to all ring atoms:
60 std::vector<Atom*> ring_atoms_;
61
62 //_ The centre of the aromatic ring.
63 Vector3 centre_;
64
65 //_ The normal vector of the ring plane.
66 Vector3 normal_vector_;
67
68 //_
69 void computeCentre_()
70 ;
71
72 //_
73 void computeNormalVector_()
74 ;
75
76 };
77
78
81 class CHGroup
82 {
83 public:
84
87 ;
88
91 ;
92
94 CHGroup(const CHGroup& CH_groups)
95 ;
96
98 CHGroup (const Atom* C_atom, const Atom* H_atom)
99 ;
100
102 void setCAtom(const Atom* C_atom)
103 ;
104
106 void setHAtom(const Atom* H_atom)
107 ;
108
110 void setAtoms(const Atom* C_atom, const Atom* H_atom)
111 ;
112
114 const Atom* getHAtom() const
115
116 {
117 return(H_atom_);
118 }
119
121 const Atom* getCAtom() const
122
123 {
124 return(C_atom_);
125 }
126
127 void dump(std::ostream& s = std::cout) const
128 ;
129
130 private :
131
132 //_
133 const Atom* H_atom_;
134
135 //_
136 const Atom* C_atom_;
137
138 };
139
140
141 struct Option
142 {
143
145 static const String VERBOSITY;
146
149
152
155
158
161
164
166 static const String LIMIT;
167
170
171 };
172
173
174 struct Default
175 {
176
178 static const Size VERBOSITY;
179
181 static const float CX_DISTANCE_UPPER;
182
184 static const float CHX_ANGLE_LOWER;
185
187 static const float HX_PROJECTED_DISTANCE_LOWER;
188
190 static const float HX_PROJECTED_DISTANCE_UPPER;
191
193 static const float DISTANCE_TOLERANCE;
194
196 static const float ANGLE_TOLERANCE;
197
199 static const float LIMIT;
200
202 static const bool CREATE_INTERACTION_FILE;
203
204 };
205
206
210
214 ;
215
219 ;
220
223 CHPISlick(const CHPISlick& chpi)
224 ;
225
228 virtual ~CHPISlick()
229 ;
230
232
235
238 const CHPISlick& operator = (const CHPISlick& chpi)
239 ;
240
243 virtual void clear()
244 ;
245
247
250
251 bool operator == (const CHPISlick& chpi) const
252 ;
253
255
258
261 virtual bool setup()
262 ;
263
264 void update(const vector<std::pair<Atom*, Atom*> >&);
265
269 virtual double updateScore()
270 ;
271
274
275 private:
276
277 //_ A vector containing all possible interactions between aliphatic
278 //_ C-H groups in the sugar and aromatic rings in the receptor.
279 std::vector< std::pair<const AromaticRing*, const CHGroup*> > possible_interactions_;
280
281 //_ A vector containing all aliphatic C-H groups of the ligand.
282 std::vector<CHGroup> all_CH_groups_;
283
284 //_ A vector containing all aromatic rings of the receptor.
285 std::vector<AromaticRing> all_aromatic_rings_;
286
287 //_
288 float CX_distance_upper_;
289
290 //_
291 float CHX_angle_lower_;
292
293 //_
294 float HX_projected_distance_lower_;
295
296 //_
297 float HX_projected_distance_upper_;
298
299 //_ The tolerance area for creating scores instead of simply counted
300 //_ interactions.
301 float distance_tolerance_;
302 float angle_tolerance_;
303
304 //_ A limit for ignoring interactions that have only very small
305 //_ scores
306 float limit_;
307
308 //_ Verbosity of the code
309 Size verbosity_;
310
311 //_ Flag for writing HIN file containing pseudomolecules for the CHPI
312 //_ interactions found in the system
313 bool write_interactions_file_;
314
315 };
316
317
318
319} // namespace BALL
320
321#endif // BALL_SCORING_COMPONENTS_CHPISLICK_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)
Options options
Definition: CHPISlick.h:273
virtual bool setup()
virtual void clear()
CHPISlick(const CHPISlick &chpi)
virtual ~CHPISlick()
void update(const vector< std::pair< Atom *, Atom * > > &)
CHPISlick(ScoringFunction &sf)
virtual double updateScore()
const std::vector< Atom * > & getRing() const
const Vector3 & getCentre() const
const Vector3 & getNormalVector() const
void setRing(const std::vector< Atom * > &atoms)
AromaticRing(const std::vector< Atom * > &atoms)
void dump(std::ostream &s=std::cout) const
AromaticRing(const AromaticRing &aromatic_ring)
CHGroup(const CHGroup &CH_groups)
CHGroup(const Atom *C_atom, const Atom *H_atom)
void dump(std::ostream &s=std::cout) const
void setAtoms(const Atom *C_atom, const Atom *H_atom)
void setCAtom(const Atom *C_atom)
void setHAtom(const Atom *H_atom)
const Atom * getCAtom() const
Definition: CHPISlick.h:121
const Atom * getHAtom() const
Definition: CHPISlick.h:114
static const String HX_PROJECTED_DISTANCE_LOWER
Definition: CHPISlick.h:154
static const String ANGLE_TOLERANCE
Definition: CHPISlick.h:163
static const String CREATE_INTERACTION_FILE
Definition: CHPISlick.h:169
static const String LIMIT
Definition: CHPISlick.h:166
static const String VERBOSITY
Definition: CHPISlick.h:145
static const String CHX_ANGLE_LOWER
Definition: CHPISlick.h:151
static const String CX_DISTANCE_UPPER
Definition: CHPISlick.h:148
static const String DISTANCE_TOLERANCE
Definition: CHPISlick.h:160
static const String HX_PROJECTED_DISTANCE_UPPER
Definition: CHPISlick.h:157
static const bool CREATE_INTERACTION_FILE
Definition: CHPISlick.h:202
static const float LIMIT
Definition: CHPISlick.h:199
static const float CHX_ANGLE_LOWER
Definition: CHPISlick.h:184
static const Size VERBOSITY
Definition: CHPISlick.h:178
static const float ANGLE_TOLERANCE
Definition: CHPISlick.h:196
static const float HX_PROJECTED_DISTANCE_LOWER
Definition: CHPISlick.h:187
static const float DISTANCE_TOLERANCE
Definition: CHPISlick.h:193
static const float CX_DISTANCE_UPPER
Definition: CHPISlick.h:181
static const float HX_PROJECTED_DISTANCE_UPPER
Definition: CHPISlick.h:190
#define BALL_EXPORT
Definition: COMMON/global.h:50