BALL  1.4.79
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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 
11 #include <BALL/DATATYPE/options.h>
14 
15 namespace BALL
16 {
21  {
22  public:
26  {
27  public:
29  AromaticRing();
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:
78  CHGroup();
79 
81  ~CHGroup();
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 
126  static const String CX_DISTANCE_UPPER;
127 
129  static const String CHX_ANGLE_LOWER;
130 
133 
136 
139 
141  static const String ANGLE_TOLERANCE;
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 
186  CHPI();
187 
190  CHPI(ScoringFunction& sf);
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 
229  void setupLigand();
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
static const String CREATE_INTERACTION_FILE
Definition: CHPI.h:147
Options options
Definition: CHPI.h:239
static const float HX_PROJECTED_DISTANCE_LOWER
Definition: CHPI.h:162
static const String HX_PROJECTED_DISTANCE_UPPER
Definition: CHPI.h:135
static const Size VERBOSITY
Definition: CHPI.h:153
static const String CX_DISTANCE_UPPER
Definition: CHPI.h:126
static const String ANGLE_TOLERANCE
Definition: CHPI.h:141
const Atom * getCAtom() const
Definition: CHPI.h:105
BALL_EXPORT AtomList atoms(const AtomContainer &fragment, const String &expression=String())
static const bool CREATE_INTERACTION_FILE
Definition: CHPI.h:177
static const float DISTANCE_TOLERANCE
Definition: CHPI.h:168
static const String HX_PROJECTED_DISTANCE_LOWER
Definition: CHPI.h:132
static const String DISTANCE_TOLERANCE
Definition: CHPI.h:138
static const String CHX_ANGLE_LOWER
Definition: CHPI.h:129
static const float HX_PROJECTED_DISTANCE_UPPER
Definition: CHPI.h:165
BALL_EXPORT bool operator==(const String &s1, const String &s2)
static const String LIMIT
Definition: CHPI.h:144
static const float ANGLE_TOLERANCE
Definition: CHPI.h:171
This processor provides methods for detection and assignment of aromaticity.
static const String VERBOSITY
Definition: CHPI.h:123
static const float LIMIT
Definition: CHPI.h:174
static const float CHX_ANGLE_LOWER
Definition: CHPI.h:159
const Atom * getHAtom() const
Definition: CHPI.h:99
#define BALL_EXPORT
Definition: COMMON/global.h:50
static const float CX_DISTANCE_UPPER
Definition: CHPI.h:156