Chemical Data Processing Library C++ API - Version 1.4.0
FragmentConformerGeneratorSettings.hpp
Go to the documentation of this file.
1 /*
2  * FragmentConformerGeneratorSettings.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_CONFGEN_FRAGMENTCONFORMERGENERATORSETTINGS_HPP
30 #define CDPL_CONFGEN_FRAGMENTCONFORMERGENERATORSETTINGS_HPP
31 
32 #include <cstddef>
33 
35 
36 
37 namespace CDPL
38 {
39 
40  namespace ConfGen
41  {
42 
48  {
49 
50  public:
55 
60 
65 
70  {
71 
72  public:
77 
82  void setMaxNumSampledConformers(std::size_t max_num);
83 
88  std::size_t getMaxNumSampledConformers() const;
89 
94  void setMinNumSampledConformers(std::size_t min_num);
95 
100  std::size_t getMinNumSampledConformers() const;
101 
106  void setTimeout(std::size_t mil_secs);
107 
112  std::size_t getTimeout() const;
113 
118  void setEnergyWindow(double win_size);
119 
124  double getEnergyWindow() const;
125 
130  void setMaxNumOutputConformers(std::size_t max_num);
131 
136  std::size_t getMaxNumOutputConformers() const;
137 
142  void setMinRMSD(double min_rmsd);
143 
148  double getMinRMSD() const;
149 
150  private:
151  std::size_t maxNumSampledConfs;
152  std::size_t minNumSampledConfs;
153  std::size_t maxNumOutputConfs;
154  std::size_t timeout;
155  double eWindow;
156  double minRMSD;
157  };
158 
163 
168 
173  void preserveInputBondingGeometries(bool preserve);
174 
180 
185  void setForceFieldType(unsigned int type);
186 
191  unsigned int getForceFieldType() const;
192 
199 
205 
210  void setDielectricConstant(double de_const);
211 
216  double getDielectricConstant() const;
217 
222  void setDistanceExponent(double exponent);
223 
228  double getDistanceExponent() const;
229 
234  void setMaxNumRefinementIterations(std::size_t max_iter);
235 
240  std::size_t getMaxNumRefinementIterations() const;
241 
246  void setRefinementStopGradient(double grad_norm);
247 
253 
258  void setMacrocycleRotorBondCountThreshold(std::size_t min_count);
259 
265 
271 
277 
283 
289 
295 
301 
306  void setSmallRingSystemSamplingFactor(std::size_t factor);
307 
312  std::size_t getSmallRingSystemSamplingFactor() const;
313 
314  private:
315  bool preserveBondGeom;
316  unsigned int forceFieldType;
317  bool strictParam;
318  double dielectricConst;
319  double distExponent;
320  std::size_t maxNumRefIters;
321  double refStopGrad;
322  std::size_t mcRotorBondCountThresh;
323  std::size_t srSamplingFactor;
324  FragmentSettings chainSettings;
325  FragmentSettings mcSettings;
326  FragmentSettings srSettings;
327  };
328  } // namespace ConfGen
329 } // namespace CDPL
330 
331 #endif // CDPL_CONFGEN_FRAGMENTCONFORMERGENERATORSETTINGS_HPP
Definition of the preprocessor macro CDPL_CONFGEN_API.
#define CDPL_CONFGEN_API
Tells the compiler/linker which classes, functions and variables are part of the library API.
Per-fragment-class settings (separate parameters for chain, small ring system and macrocycle fragment...
Definition: FragmentConformerGeneratorSettings.hpp:70
void setMinNumSampledConformers(std::size_t min_num)
Sets the minimum number of trial conformers sampled per fragment before convergence is tested.
std::size_t getTimeout() const
Returns the per-fragment wall clock processing time limit.
void setMinRMSD(double min_rmsd)
Sets the minimum pairwise heavy atom RMSD that fragment conformers in the output set must have.
void setMaxNumOutputConformers(std::size_t max_num)
Sets the maximum number of output conformers per fragment.
double getEnergyWindow() const
Returns the per-fragment energy window size.
void setEnergyWindow(double win_size)
Sets the energy window size (in kcal/mol) above the fragment conformer minimum within which fragment ...
double getMinRMSD() const
Returns the minimum RMSD threshold used to filter fragment conformers.
std::size_t getMaxNumSampledConformers() const
Returns the maximum number of trial conformers sampled per fragment.
void setTimeout(std::size_t mil_secs)
Sets the per-fragment wall clock processing time limit.
FragmentSettings()
Constructs a FragmentSettings instance with default configuration parameter values.
std::size_t getMinNumSampledConformers() const
Returns the minimum number of trial conformers sampled per fragment.
void setMaxNumSampledConformers(std::size_t max_num)
Sets the maximum number of trial conformers sampled per fragment.
std::size_t getMaxNumOutputConformers() const
Returns the maximum number of output conformers per fragment.
Bundle of configuration parameters for fragment conformer ensemble generation via class ConfGen::Frag...
Definition: FragmentConformerGeneratorSettings.hpp:48
double getDistanceExponent() const
Returns the exponent of the MMFF94 distance-dependent electrostatic term.
const FragmentSettings & getChainSettings() const
Returns a const reference to the per-fragment-class settings used for chain fragments.
unsigned int getForceFieldType() const
Returns the force field type used for fragment conformer minimization.
void setForceFieldType(unsigned int type)
Sets the force field type used for fragment conformer minimization.
void setDielectricConstant(double de_const)
Sets the dielectric constant used by the MMFF94 electrostatic interactions.
void setMacrocycleRotorBondCountThreshold(std::size_t min_count)
Sets the minimum number of rotatable bonds a macrocyclic ring must contain to be considered as a flex...
void strictForceFieldParameterization(bool strict)
Specifies whether strict MMFF94 parameterization is required.
FragmentSettings & getChainSettings()
Returns a reference to the per-fragment-class settings used for chain fragments.
bool strictForceFieldParameterization() const
Tells whether strict MMFF94 parameterization is required.
double getDielectricConstant() const
Returns the dielectric constant used by the MMFF94 electrostatic interactions.
FragmentConformerGeneratorSettings()
Constructs the % FragmentConformerGeneratorSettings instance with default configuration parameter val...
bool preserveInputBondingGeometries() const
Tells whether the bonding geometries of the input fragment are preserved.
double getRefinementStopGradient() const
Returns the gradient-norm threshold used to terminate refinement.
virtual ~FragmentConformerGeneratorSettings()
Virtual destructor.
Definition: FragmentConformerGeneratorSettings.hpp:167
const FragmentSettings & getSmallRingSystemSettings() const
Returns a const reference to the per-fragment-class settings used for small ring systems.
static const FragmentConformerGeneratorSettings FAST
A static instance preconfigured for fast (less thorough) conformer generation.
Definition: FragmentConformerGeneratorSettings.hpp:59
void setMaxNumRefinementIterations(std::size_t max_iter)
Sets the maximum number of MMFF94 energy-minimization iterations per fragment conformer.
void setDistanceExponent(double exponent)
Sets the exponent of the MMFF94 distance-dependent electrostatic term.
FragmentSettings & getMacrocycleSettings()
Returns a reference to the per-fragment-class settings used for flexible macrocyclic ring systems.
const FragmentSettings & getMacrocycleSettings() const
Returns a const reference to the per-fragment-class settings used for flexible macrocyclic ring syste...
std::size_t getMaxNumRefinementIterations() const
Returns the maximum number of MMFF94 energy-minimization iterations per fragment conformer.
std::size_t getSmallRingSystemSamplingFactor() const
Returns the multiplicative factor scaling the sampling effort for small ring systems.
static const FragmentConformerGeneratorSettings DEFAULT
A static instance providing configuration parameter default values.
Definition: FragmentConformerGeneratorSettings.hpp:54
std::size_t getMacrocycleRotorBondCountThreshold() const
Returns the flexible macrocycle rotatable bond count threshold.
void preserveInputBondingGeometries(bool preserve)
Specifies whether the bonding geometries (bond lengths and angles) of the input fragment shall be pre...
static const FragmentConformerGeneratorSettings THOROUGH
A static instance preconfigured for thorough (slower) conformer generation.
Definition: FragmentConformerGeneratorSettings.hpp:64
void setSmallRingSystemSamplingFactor(std::size_t factor)
Sets a multiplicative factor scaling the sampling effort for small ring systems.
void setRefinementStopGradient(double grad_norm)
Sets the gradient-norm threshold at which fragment conformer refinement is considered converged.
FragmentSettings & getSmallRingSystemSettings()
Returns a reference to the per-fragment-class settings used for small ring systems.
The namespace of the Chemical Data Processing Library.