Chemical Data Processing Library C++ API - Version 1.2.0
GRAILXDescriptorCalculator.hpp
Go to the documentation of this file.
1 /*
2  * GRAILXDescriptorCalculator.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_GRAILXDESCRIPTORCALCULATOR_HPP
30 #define CDPL_GRAIL_GRAILXDESCRIPTORCALCULATOR_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 
60  {
61 
62  public:
63  static constexpr std::size_t TOTAL_DESCRIPTOR_SIZE = 177;
64  static constexpr std::size_t LIGAND_DESCRIPTOR_SIZE = 31;
65 
66  typedef std::shared_ptr<GRAILXDescriptorCalculator> SharedPointer;
67 
69  {
70 
247  VDW_ENERGY_REP
248  };
249 
251 
253 
255 
257 
258  void initTargetData(const Chem::MolecularGraph& tgt_env, const Chem::Atom3DCoordinatesFunction& coords_func,
259  bool tgt_env_changed = true);
260 
262 
263  void calculate(const Math::Vector3DArray& atom_coords, Math::DVector& descr, bool update_lig_part = true);
264 
265  private:
266  void initCalculatorImpl();
267 
268  typedef std::unique_ptr<GRAILDescriptorCalculatorImpl> ImplementationPointer;
269 
270  ImplementationPointer impl;
271  };
272  } // namespace GRAIL
273 } // namespace CDPL
274 
275 #endif // CDPL_GRAIL_GRAILXDESCRIPTORCALCULATOR_HPP
Type definition of a generic wrapper class for storing user-defined Chem::Atom 3D-coordinates functio...
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 the class CDPL::Math::VectorArray.
Definition of vector data types.
MolecularGraph.
Definition: MolecularGraph.hpp:52
GRAILXDescriptorCalculator.
Definition: GRAILXDescriptorCalculator.hpp:60
std::shared_ptr< GRAILXDescriptorCalculator > SharedPointer
Definition: GRAILXDescriptorCalculator.hpp:66
void initLigandData(const Chem::MolecularGraph &ligand)
void calculate(const Math::Vector3DArray &atom_coords, Math::DVector &descr, bool update_lig_part=true)
GRAILXDescriptorCalculator & operator=(const GRAILXDescriptorCalculator &calc)
GRAILXDescriptorCalculator(const GRAILXDescriptorCalculator &calc)
ElementIndex
Definition: GRAILXDescriptorCalculator.hpp:69
@ HBD_N2_HBA_N_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:135
@ HBA_S3_HBD_S_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:234
@ HBD_Nam_HBA_O_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:149
@ HBA_Nar_HBD_S_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:205
@ HBA_S2_HBD_O_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:239
@ HBA_N2_HBD_S_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:192
@ HBA_S3_HBD_O_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:232
@ HBA_Nar_HBD_O_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:203
@ VDW_ENERGY_ATT
Definition: GRAILXDescriptorCalculator.hpp:246
@ HBD_Npl3_HBA_N_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:153
@ HBA_HBD_N_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:177
@ HBD_HBA_N_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:123
@ HBA_Oco2_COUNT
Definition: GRAILXDescriptorCalculator.hpp:94
@ HBA_N2_HBD_N_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:188
@ HBD_N2_COUNT
Definition: GRAILXDescriptorCalculator.hpp:80
@ HBD_Nar_COUNT
Definition: GRAILXDescriptorCalculator.hpp:81
@ HBD_HBA_N_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:122
@ NI_COUNT
Definition: GRAILXDescriptorCalculator.hpp:72
@ HBA_Npl3_HBD_N_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:206
@ HBA_S2_HBD_N_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:237
@ HBA_N1_HBD_N_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:194
@ XBA_COUNT
Definition: GRAILXDescriptorCalculator.hpp:78
@ HBA_S3_HBD_N_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:231
@ HBD_N3_HBA_S_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:132
@ HBA_Nar_HBD_N_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:201
@ HBA_Nar_HBD_N_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:200
@ HBA_N2_COUNT
Definition: GRAILXDescriptorCalculator.hpp:88
@ HBA_Nar_COUNT
Definition: GRAILXDescriptorCalculator.hpp:90
@ HBD_N3_HBA_S_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:133
@ ENV_HBD_N_OCC_SUM
Definition: GRAILXDescriptorCalculator.hpp:108
@ PI_COUNT
Definition: GRAILXDescriptorCalculator.hpp:71
@ ES_ENERGY
Definition: GRAILXDescriptorCalculator.hpp:244
@ HBD_O3_HBA_O_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:166
@ HBD_N2_HBA_O_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:136
@ HBA_Oco2_HBD_N_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:224
@ HBA_S2_HBD_S_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:241
@ ENV_HBA_N_OCC_MAX
Definition: GRAILXDescriptorCalculator.hpp:103
@ HBD_S3_HBA_N_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:170
@ AR_AR_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:120
@ HBD_N2_HBA_S_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:139
@ HBD_O3_COUNT
Definition: GRAILXDescriptorCalculator.hpp:85
@ HBD_S3_HBA_N_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:171
@ HBD_N2_HBA_O_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:137
@ HBA_S3_HBD_N_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:230
@ HBD_N4_HBA_S_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:163
@ HBA_O3_HBD_N_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:213
@ H_H_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:118
@ HBA_HBD_S_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:180
@ AR_PI_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:116
@ HBD_N4_COUNT
Definition: GRAILXDescriptorCalculator.hpp:84
@ ENV_HBD_O_OCC_MAX
Definition: GRAILXDescriptorCalculator.hpp:111
@ HVY_ATOM_COUNT
Definition: GRAILXDescriptorCalculator.hpp:97
@ HBA_Npl3_COUNT
Definition: GRAILXDescriptorCalculator.hpp:91
@ HBA_HBD_N_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:176
@ HBD_Nam_HBA_N_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:147
@ HBA_Oco2_HBD_S_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:228
@ HBA_N2_HBD_S_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:193
@ ENV_HBA_O_OCC_SUM
Definition: GRAILXDescriptorCalculator.hpp:104
@ HBD_Npl3_HBA_O_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:154
@ HBA_N1_COUNT
Definition: GRAILXDescriptorCalculator.hpp:89
@ AR_AR_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:121
@ XBD_XBA_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:243
@ HBD_O3_HBA_O_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:167
@ HBA_Npl3_HBD_N_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:207
@ HBA_O3_HBD_N_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:212
@ HBA_O3_HBD_O_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:215
@ HBA_O3_HBD_O_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:214
@ HBD_Nam_HBA_S_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:150
@ HBA_Npl3_HBD_O_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:209
@ ES_ENERGY_SQRD_DIST
Definition: GRAILXDescriptorCalculator.hpp:245
@ HBA_HBD_O_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:178
@ HBA_N2_HBD_N_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:189
@ ENV_HBD_O_OCC_SUM
Definition: GRAILXDescriptorCalculator.hpp:110
@ HBD_N3_HBA_O_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:131
@ HBD_Nam_HBA_S_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:151
@ HBD_Nar_HBA_S_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:145
@ HBD_Npl3_HBA_N_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:152
@ HBA_O2_HBD_N_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:219
@ ENV_HBA_S_OCC_SUM
Definition: GRAILXDescriptorCalculator.hpp:106
@ HBD_S3_HBA_S_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:175
@ HBA_N3_HBD_O_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:185
@ HBD_N3_HBA_N_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:129
@ HBA_O2_HBD_O_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:221
@ HBA_O2_COUNT
Definition: GRAILXDescriptorCalculator.hpp:93
@ HBD_N3_HBA_N_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:128
@ HBA_Npl3_HBD_S_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:210
@ HBA_Oco2_HBD_O_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:227
@ HBA_N1_HBD_O_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:197
@ HBD_HBA_O_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:125
@ PI_AR_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:115
@ HBA_N3_HBD_N_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:183
@ HBD_N4_HBA_O_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:160
@ HBA_S3_COUNT
Definition: GRAILXDescriptorCalculator.hpp:95
@ HBA_Oco2_HBD_O_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:226
@ ENV_HBA_N_OCC_SUM
Definition: GRAILXDescriptorCalculator.hpp:102
@ HBA_S2_COUNT
Definition: GRAILXDescriptorCalculator.hpp:96
@ HBA_Oco2_HBD_N_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:225
@ HBA_N3_HBD_S_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:186
@ HBA_S3_HBD_O_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:233
@ ENV_HBD_S_OCC_SUM
Definition: GRAILXDescriptorCalculator.hpp:112
@ ROT_BOND_COUNT
Definition: GRAILXDescriptorCalculator.hpp:98
@ HBA_N3_HBD_N_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:182
@ HBD_S3_COUNT
Definition: GRAILXDescriptorCalculator.hpp:86
@ HBA_N1_HBD_S_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:198
@ PI_AR_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:114
@ HBA_O2_HBD_S_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:223
@ HBD_N4_HBA_O_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:161
@ HBD_S3_HBA_S_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:174
@ HBA_S2_HBD_S_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:240
@ HBA_N3_COUNT
Definition: GRAILXDescriptorCalculator.hpp:87
@ HBD_N3_COUNT
Definition: GRAILXDescriptorCalculator.hpp:79
@ HBD_HBA_O_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:124
@ HBD_N4_HBA_S_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:162
@ XBD_XBA_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:242
@ TOTAL_HYD
Definition: GRAILXDescriptorCalculator.hpp:99
@ HBA_Npl3_HBD_S_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:211
@ HBA_HBD_S_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:181
@ HBD_Npl3_HBA_O_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:155
@ HBA_O2_HBD_O_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:220
@ HBD_Nam_COUNT
Definition: GRAILXDescriptorCalculator.hpp:82
@ HBD_Nar_HBA_O_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:143
@ HBA_Nar_HBD_O_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:202
@ XBD_COUNT
Definition: GRAILXDescriptorCalculator.hpp:77
@ HBA_Nar_HBD_S_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:204
@ HBD_Npl3_COUNT
Definition: GRAILXDescriptorCalculator.hpp:83
@ HBD_N3_HBA_O_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:130
@ HBD_N4_HBA_N_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:159
@ HBA_Npl3_HBD_O_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:208
@ TPSA
Definition: GRAILXDescriptorCalculator.hpp:101
@ HBA_S2_HBD_N_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:236
@ HBD_O3_HBA_N_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:164
@ ENV_HBA_S_OCC_MAX
Definition: GRAILXDescriptorCalculator.hpp:107
@ HBD_N2_HBA_S_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:138
@ HBD_COUNT
Definition: GRAILXDescriptorCalculator.hpp:75
@ HBA_N2_HBD_O_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:191
@ HBD_O3_HBA_S_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:169
@ AR_PI_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:117
@ HBA_N1_HBD_N_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:195
@ H_COUNT
Definition: GRAILXDescriptorCalculator.hpp:74
@ HBD_HBA_S_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:126
@ HBA_N2_HBD_O_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:190
@ HBA_COUNT
Definition: GRAILXDescriptorCalculator.hpp:76
@ HBA_O2_HBD_N_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:218
@ HBD_Nar_HBA_S_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:144
@ AR_COUNT
Definition: GRAILXDescriptorCalculator.hpp:73
@ HBD_O3_HBA_S_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:168
@ HBA_O3_COUNT
Definition: GRAILXDescriptorCalculator.hpp:92
@ HBD_Npl3_HBA_S_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:156
@ HBA_N3_HBD_O_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:184
@ HBD_Nam_HBA_O_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:148
@ ENV_HBA_O_OCC_MAX
Definition: GRAILXDescriptorCalculator.hpp:105
@ H_H_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:119
@ HBA_O3_HBD_S_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:217
@ HBD_N4_HBA_N_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:158
@ HBA_S2_HBD_O_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:238
@ HBA_S3_HBD_S_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:235
@ HBD_N2_HBA_N_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:134
@ HBD_HBA_S_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:127
@ LOGP
Definition: GRAILXDescriptorCalculator.hpp:100
@ ENV_HBD_S_OCC_MAX
Definition: GRAILXDescriptorCalculator.hpp:113
@ HBD_S3_HBA_O_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:173
@ HBA_N1_HBD_O_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:196
@ HBA_HBD_O_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:179
@ HBD_Nam_HBA_N_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:146
@ HBA_O2_HBD_S_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:222
@ HBA_N1_HBD_S_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:199
@ HBD_O3_HBA_N_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:165
@ HBD_Nar_HBA_N_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:141
@ HBA_O3_HBD_S_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:216
@ HBD_Nar_HBA_O_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:142
@ ENV_HBD_N_OCC_MAX
Definition: GRAILXDescriptorCalculator.hpp:109
@ HBD_Nar_HBA_N_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:140
@ HBD_S3_HBA_O_SCORE_SUM
Definition: GRAILXDescriptorCalculator.hpp:172
@ HBA_N3_HBD_S_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:187
@ HBD_Npl3_HBA_S_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:157
@ HBA_Oco2_HBD_S_SCORE_MAX
Definition: GRAILXDescriptorCalculator.hpp:229
void initTargetData(const Chem::MolecularGraph &tgt_env, const Chem::Atom3DCoordinatesFunction &coords_func, bool tgt_env_changed=true)
std::function< const Math::Vector3D &(const Chem::Atom &)> Atom3DCoordinatesFunction
A generic wrapper class used to store a user-defined Chem::Atom 3D-coordinates function.
Definition: Atom3DCoordinatesFunction.hpp:43
VectorArray< Vector3D > Vector3DArray
An array of Math::Vector3D objects.
Definition: VectorArray.hpp:84
The namespace of the Chemical Data Processing Library.