Chemical Data Processing Library C++ API - Version 1.4.0
GRAILDescriptorCalculator.hpp
Go to the documentation of this file.
1 /*
2  * GRAILDescriptorCalculator.hpp
3  *
4  * This file is part of the Chemical Data Processing Toolkit
5  *
6  * Copyright (C) 2003 Thomas Seidel <thomas.seidel@univie.ac.at>
7  *
8  * This library is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public
10  * License as published by the Free Software Foundation; either
11  * version 2 of the License, or (at your option) any later version.
12  *
13  * This library is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16  * Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public License
19  * along with this library; see the file COPYING. If not, write to
20  * the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
21  * Boston, MA 02111-1307, USA.
22  */
23 
29 #ifndef CDPL_GRAIL_GRAILDESCRIPTORCALCULATOR_HPP
30 #define CDPL_GRAIL_GRAILDESCRIPTORCALCULATOR_HPP
31 
32 #include <cstddef>
33 #include <memory>
34 
35 #include "CDPL/GRAIL/APIPrefix.hpp"
38 #include "CDPL/Math/Vector.hpp"
39 
40 
41 namespace CDPL
42 {
43 
44  namespace Chem
45  {
46 
47  class MolecularGraph;
48  }
49 
50  namespace GRAIL
51  {
52 
53  class GRAILDescriptorCalculatorImpl;
54 
67  {
68 
69  public:
73  static constexpr std::size_t TOTAL_DESCRIPTOR_SIZE = 35;
74 
78  static constexpr std::size_t LIGAND_DESCRIPTOR_SIZE = 13;
79 
83  typedef std::shared_ptr<GRAILDescriptorCalculator> SharedPointer;
84 
89  {
90 
95 
100 
105 
110 
115 
120 
125 
130 
135 
140 
145 
150 
155 
160 
165 
170 
175 
180 
185 
190 
195 
200 
205 
210 
215 
220 
225 
230 
235 
240 
245 
250 
255 
260 
264  VDW_ENERGY_REP
265  };
266 
271 
277 
282 
289 
296  void initTargetData(const Chem::MolecularGraph& tgt_env, const Chem::Atom3DCoordinatesFunction& coords_func,
297  bool tgt_env_changed = true);
298 
304 
315  void calculate(const Math::Vector3DArray& atom_coords, Math::DVector& descr, bool update_lig_part = true);
316 
317  private:
318  void initCalculatorImpl();
319 
320  typedef std::unique_ptr<GRAILDescriptorCalculatorImpl> ImplementationPointer;
321 
322  ImplementationPointer impl;
323  };
324  } // namespace GRAIL
325 } // namespace CDPL
326 
327 #endif // CDPL_GRAIL_GRAILDESCRIPTORCALCULATOR_HPP
Type declaration of a generic wrapper class for storing user-defined Chem::Atom 3D-coordinates functi...
Definition of the preprocessor macro CDPL_GRAIL_API.
#define CDPL_GRAIL_API
Tells the compiler/linker which classes, functions and variables are part of the library API.
Definition of class CDPL::Math::VectorArray.
Definition of vector data types.
Abstract base class for representations of a chemical structure as a graph of bonded atoms.
Definition: MolecularGraph.hpp:57
Calculation of GRAIL descriptors for protein-ligand complexes.
Definition: GRAILDescriptorCalculator.hpp:67
void calculate(const Math::Vector3DArray &atom_coords, Math::DVector &descr, bool update_lig_part=true)
Calculates the GRAIL descriptor for the current ligand pose.
void initLigandData(const Chem::MolecularGraph &ligand)
Initializes the calculator with the molecular graph of the ligand.
void initTargetData(const Chem::MolecularGraph &tgt_env, const Chem::Atom3DCoordinatesFunction &coords_func, bool tgt_env_changed=true)
Initializes the calculator with target-environment data for subsequent descriptor calculations.
GRAILDescriptorCalculator & operator=(const GRAILDescriptorCalculator &calc)
Copy assignment operator.
std::shared_ptr< GRAILDescriptorCalculator > SharedPointer
A reference-counted smart pointer [SHPTR] for dynamically allocated GRAILDescriptorCalculator instanc...
Definition: GRAILDescriptorCalculator.hpp:83
GRAILDescriptorCalculator()
Constructs the GRAILDescriptorCalculator instance.
ElementIndex
Indices of the individual elements of the GRAIL descriptor vector.
Definition: GRAILDescriptorCalculator.hpp:89
@ ENV_HBA_OCC_SUM
Sum of HBA occupancy scores against the target environment.
Definition: GRAILDescriptorCalculator.hpp:159
@ XBD_COUNT
Halogen-bond donor feature count (ligand).
Definition: GRAILDescriptorCalculator.hpp:124
@ VDW_ENERGY_ATT
Attractive part of the Van der Waals interaction energy.
Definition: GRAILDescriptorCalculator.hpp:259
@ ROT_BOND_COUNT
Rotatable bond count (ligand).
Definition: GRAILDescriptorCalculator.hpp:139
@ XBD_XBA_SCORE_MAX
Maximum (ligand XBD → target XBA) interaction score.
Definition: GRAILDescriptorCalculator.hpp:244
@ AR_PI_SCORE_SUM
Sum of (ligand aromatic → target positive-ionizable) interaction scores.
Definition: GRAILDescriptorCalculator.hpp:189
@ HBA_HBD_SCORE_SUM
Sum of (ligand HBA → target HBD) interaction scores.
Definition: GRAILDescriptorCalculator.hpp:229
@ PI_COUNT
Positive-ionizable feature count (ligand).
Definition: GRAILDescriptorCalculator.hpp:94
@ ES_ENERGY_SQRD_DIST
Electrostatic interaction energy with squared atom-pair distance dependency.
Definition: GRAILDescriptorCalculator.hpp:254
@ TOTAL_HYD
Total computed hydrophobicity (ligand).
Definition: GRAILDescriptorCalculator.hpp:144
@ HBA_HBD_SCORE_MAX
Maximum (ligand HBA → target HBD) interaction score.
Definition: GRAILDescriptorCalculator.hpp:234
@ TPSA
Computed topological polar surface area (ligand).
Definition: GRAILDescriptorCalculator.hpp:154
@ H_H_SCORE_SUM
Sum of hydrophobic-hydrophobic interaction scores.
Definition: GRAILDescriptorCalculator.hpp:199
@ XBA_COUNT
Halogen-bond acceptor feature count (ligand).
Definition: GRAILDescriptorCalculator.hpp:129
@ ENV_HBD_OCC_MAX
Maximum HBD occupancy score against the target environment.
Definition: GRAILDescriptorCalculator.hpp:174
@ AR_COUNT
Aromatic feature count (ligand).
Definition: GRAILDescriptorCalculator.hpp:104
@ ES_ENERGY
Electrostatic interaction energy.
Definition: GRAILDescriptorCalculator.hpp:249
@ LOGP
Computed (ligand).
Definition: GRAILDescriptorCalculator.hpp:149
@ ENV_HBD_OCC_SUM
Sum of HBD occupancy scores against the target environment.
Definition: GRAILDescriptorCalculator.hpp:169
@ AR_AR_SCORE_MAX
Maximum aromatic-aromatic interaction score.
Definition: GRAILDescriptorCalculator.hpp:214
@ ENV_HBA_OCC_MAX
Maximum HBA occupancy score against the target environment.
Definition: GRAILDescriptorCalculator.hpp:164
@ HVY_ATOM_COUNT
Heavy atom count (ligand).
Definition: GRAILDescriptorCalculator.hpp:134
@ H_COUNT
Hydrophobic feature count (ligand).
Definition: GRAILDescriptorCalculator.hpp:109
@ XBD_XBA_SCORE_SUM
Sum of (ligand XBD → target XBA) interaction scores.
Definition: GRAILDescriptorCalculator.hpp:239
@ HBD_HBA_SCORE_SUM
Sum of (ligand HBD → target HBA) interaction scores.
Definition: GRAILDescriptorCalculator.hpp:219
@ H_H_SCORE_MAX
Maximum hydrophobic-hydrophobic interaction score.
Definition: GRAILDescriptorCalculator.hpp:204
@ HBD_COUNT
Hydrogen-bond donor feature count (ligand).
Definition: GRAILDescriptorCalculator.hpp:114
@ PI_AR_SCORE_MAX
Maximum (ligand positive-ionizable → target aromatic) interaction score.
Definition: GRAILDescriptorCalculator.hpp:184
@ HBA_COUNT
Hydrogen-bond acceptor feature count (ligand).
Definition: GRAILDescriptorCalculator.hpp:119
@ PI_AR_SCORE_SUM
Sum of (ligand positive-ionizable → target aromatic) interaction scores.
Definition: GRAILDescriptorCalculator.hpp:179
@ AR_PI_SCORE_MAX
Maximum (ligand aromatic → target positive-ionizable) interaction score.
Definition: GRAILDescriptorCalculator.hpp:194
@ HBD_HBA_SCORE_MAX
Maximum (ligand HBD → target HBA) interaction score.
Definition: GRAILDescriptorCalculator.hpp:224
@ AR_AR_SCORE_SUM
Sum of aromatic-aromatic interaction scores.
Definition: GRAILDescriptorCalculator.hpp:209
@ NI_COUNT
Negative-ionizable feature count (ligand).
Definition: GRAILDescriptorCalculator.hpp:99
GRAILDescriptorCalculator(const GRAILDescriptorCalculator &calc)
Constructs a copy of the GRAILDescriptorCalculator instance calc.
std::function< const Math::Vector3D &(const Chem::Atom &)> Atom3DCoordinatesFunction
Generic wrapper class used to store a user-defined Chem::Atom 3D-coordinates function.
Definition: Atom3DCoordinatesFunction.hpp:43
VectorArray< Vector3D > Vector3DArray
Array storing vectors of type Math::Vector3D.
Definition: VectorArray.hpp:87
The namespace of the Chemical Data Processing Library.