BALL  1.4.79
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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 
10 #include <BALL/DATATYPE/options.h>
12 
13 namespace 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 
99  HydrogenBond(Mode mode)
100  throw();
101 
104  HydrogenBond(ScoringFunction& sf, Mode mode)
105  throw();
106 
109  HydrogenBond(ScoringComponent& sc, Mode mode)
110  throw();
111 
114  HydrogenBond(const HydrogenBond& fhb)
115  throw();
116 
119  virtual ~HydrogenBond()
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
static const float HB_ANG_UPPER
Definition: hydrogenBond.h:77
static const char * HB_IDEAL_ANGLE
Definition: hydrogenBond.h:28
static const float HB_DIST_UPPER
Definition: hydrogenBond.h:69
static const char * HB_DIST_LOWER
Definition: hydrogenBond.h:32
static const Size VERBOSITY
Definition: hydrogenBond.h:81
static const char * VERBOSITY
Definition: hydrogenBond.h:48
static const char * HB_IDEAL_LENGTH
Definition: hydrogenBond.h:24
static const float HB_IDEAL_ANGLE
Definition: hydrogenBond.h:61
static const char * HB_ANG_LOWER
Definition: hydrogenBond.h:40
static const float HB_DIST_LOWER
Definition: hydrogenBond.h:65
static const char * HB_ANG_UPPER
Definition: hydrogenBond.h:44
static const float HB_ANG_LOWER
Definition: hydrogenBond.h:73
static const float HB_IDEAL_LENGTH
Definition: hydrogenBond.h:57
static const char * HB_DIST_UPPER
Definition: hydrogenBond.h:36
#define BALL_EXPORT
Definition: COMMON/global.h:50