BALL 1.5.0
hydrogenBond.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_HYDROGENBOND_H
7#define BALL_SCORING_COMPONENTS_HYDROGENBOND_H
8
12
13namespace BALL
14{
18 {
19 public:
20 struct Option
21 {
24 static const char* HB_IDEAL_LENGTH;
25
28 static const char* HB_IDEAL_ANGLE;
29
32 static const char* HB_DIST_LOWER;
33
36 static const char* HB_DIST_UPPER;
37
40 static const char* HB_ANG_LOWER;
41
44 static const char* HB_ANG_UPPER;
45
48 static const char* VERBOSITY;
49 };
50
53 struct Default
54 {
57 static const float HB_IDEAL_LENGTH;
58
61 static const float HB_IDEAL_ANGLE;
62
65 static const float HB_DIST_LOWER;
66
69 static const float HB_DIST_UPPER;
70
73 static const float HB_ANG_LOWER;
74
77 static const float HB_ANG_UPPER;
78
81 static const Size VERBOSITY;
82 };
83
84 enum Mode
85 {
88 ALL_HYDROGENS
89 };
90
91 //BALL_CREATE(HydrogenBond)
92
96
100 throw();
101
105 throw();
106
110 throw();
111
115 throw();
116
120 throw();
121
123
126
129 const HydrogenBond& operator = (const HydrogenBond& fhb)
130 throw();
131
134 virtual void clear()
135 throw();
136
138
140
141 bool operator == (const HydrogenBond& fhb) const
142 throw();
143
145
148
151 virtual bool setup();
152
153 void setupLigand();
154
157 void enableChargeEvaluation(bool b);
159
163
164 virtual double updateScore();
165
168 void update(const vector<std::pair<Atom*, Atom*> >& pair_vector);
170
171 private:
172 /*_ This vector contains all possible hydrogen bonds. It is created
173 * during each call of update(). Pairs are always of the form (hydrogen,
174 * acceptor). The donor can be found easily by following the only bond
175 * of the hydrogen.
176 */
177 std::vector< std::pair<const Atom*, const Atom*> > possible_hydrogen_bonds_;
178
179 double factor_;
180
181 double h_bond_distance_lower_;
182
183 double h_bond_distance_upper_;
184
185 double h_bond_angle_lower_;
186
187 double h_bond_angle_upper_;
188
189 /*_ The ideal hbond length.
190 */
191 double ideal_hbond_length_;
192
193 /*_ The ideal hbond angle.
194 */
195 double ideal_hbond_angle_;
196
197 Size verbosity_;
198
199 Size getType(Atom* atom);
200
201 FresnoTypes* receptor_fresno_types_;
202 FresnoTypes* ligand_fresno_types_;
203
204 Mode mode_;
205
206 bool charge_evaluation_enabled_;
207 };
208}
209
210#endif // BALL_SCORING_COMPONENTS_HYDROGENBOND_H
STL namespace.
Definition: constants.h:13
virtual ~HydrogenBond()
HydrogenBond(ScoringComponent &sc, Mode mode)
HydrogenBond(const HydrogenBond &fhb)
HydrogenBond(ScoringFunction &sf, Mode mode)
HydrogenBond(Mode mode)
static const char * HB_IDEAL_ANGLE
Definition: hydrogenBond.h:28
static const char * VERBOSITY
Definition: hydrogenBond.h:48
static const char * HB_DIST_UPPER
Definition: hydrogenBond.h:36
static const char * HB_IDEAL_LENGTH
Definition: hydrogenBond.h:24
static const char * HB_ANG_UPPER
Definition: hydrogenBond.h:44
static const char * HB_DIST_LOWER
Definition: hydrogenBond.h:32
static const char * HB_ANG_LOWER
Definition: hydrogenBond.h:40
static const float HB_DIST_LOWER
Definition: hydrogenBond.h:65
static const float HB_IDEAL_LENGTH
Definition: hydrogenBond.h:57
static const Size VERBOSITY
Definition: hydrogenBond.h:81
static const float HB_ANG_UPPER
Definition: hydrogenBond.h:77
static const float HB_IDEAL_ANGLE
Definition: hydrogenBond.h:61
static const float HB_ANG_LOWER
Definition: hydrogenBond.h:73
static const float HB_DIST_UPPER
Definition: hydrogenBond.h:69
#define BALL_EXPORT
Definition: COMMON/global.h:50