12 #ifndef RD_EMBEDDER_H_GUARD 13 #define RD_EMBEDDER_H_GUARD 20 namespace DGeomHelpers {
124 useRandomCoords(false),
129 optimizerForceTol(1e-3),
130 ignoreSmoothingFailures(false),
131 enforceChirality(true),
132 useExpTorsionAnglePrefs(false),
133 useBasicKnowledge(false),
136 pruneRmsThresh(-1.0),
137 onlyHeavyAtomsForRMS(false),
140 bool clearConfs,
bool useRandomCoords,
double boxSizeMult,
141 bool randNegEig,
unsigned int numZeroFail,
142 const std::map<int, RDGeom::Point3D> *coordMap,
143 double optimizerForceTol,
bool ignoreSmoothingFailures,
144 bool enforceChirality,
bool useExpTorsionAnglePrefs,
145 bool useBasicKnowledge,
bool verbose,
double basinThresh,
146 double pruneRmsThresh,
bool onlyHeavyAtomsForRMS,
147 unsigned int ETversion = 1)
148 : maxIterations(maxIterations),
149 numThreads(numThreads),
150 randomSeed(randomSeed),
151 clearConfs(clearConfs),
152 useRandomCoords(useRandomCoords),
153 boxSizeMult(boxSizeMult),
154 randNegEig(randNegEig),
155 numZeroFail(numZeroFail),
157 optimizerForceTol(optimizerForceTol),
158 ignoreSmoothingFailures(ignoreSmoothingFailures),
159 enforceChirality(enforceChirality),
160 useExpTorsionAnglePrefs(useExpTorsionAnglePrefs),
161 useBasicKnowledge(useBasicKnowledge),
163 basinThresh(basinThresh),
164 pruneRmsThresh(pruneRmsThresh),
165 onlyHeavyAtomsForRMS(onlyHeavyAtomsForRMS),
166 ETversion(ETversion){};
186 if (confIds.size()) {
263 int seed = -1,
bool clearConfs =
true,
264 bool useRandomCoords =
false,
double boxSizeMult = 2.0,
265 bool randNegEig =
true,
unsigned int numZeroFail = 1,
266 const std::map<int, RDGeom::Point3D> *coordMap = 0,
267 double optimizerForceTol = 1e-3,
268 bool ignoreSmoothingFailures =
false,
269 bool enforceChirality =
true,
270 bool useExpTorsionAnglePrefs =
false,
271 bool useBasicKnowledge =
false,
bool verbose =
false,
272 double basinThresh = 5.0,
273 bool onlyHeavyAtomsForRMS =
false) {
275 maxIterations, 1, seed, clearConfs, useRandomCoords, boxSizeMult,
276 randNegEig, numZeroFail, coordMap, optimizerForceTol,
277 ignoreSmoothingFailures, enforceChirality, useExpTorsionAnglePrefs,
278 useBasicKnowledge, verbose, basinThresh, -1.0, onlyHeavyAtomsForRMS);
355 ROMol &mol,
INT_VECT &res,
unsigned int numConfs = 10,
int numThreads = 1,
356 unsigned int maxIterations = 30,
int seed = -1,
bool clearConfs =
true,
357 bool useRandomCoords =
false,
double boxSizeMult = 2.0,
358 bool randNegEig =
true,
unsigned int numZeroFail = 1,
359 double pruneRmsThresh = -1.0,
360 const std::map<int, RDGeom::Point3D> *coordMap = 0,
361 double optimizerForceTol = 1e-3,
bool ignoreSmoothingFailures =
false,
362 bool enforceChirality =
true,
bool useExpTorsionAnglePrefs =
false,
363 bool useBasicKnowledge =
false,
bool verbose =
false,
364 double basinThresh = 5.0,
bool onlyHeavyAtomsForRMS =
false) {
366 useRandomCoords, boxSizeMult, randNegEig, numZeroFail,
367 coordMap, optimizerForceTol, ignoreSmoothingFailures,
368 enforceChirality, useExpTorsionAnglePrefs,
369 useBasicKnowledge, verbose, basinThresh,
370 pruneRmsThresh, onlyHeavyAtomsForRMS);
375 ROMol &mol,
unsigned int numConfs = 10,
unsigned int maxIterations = 30,
376 int seed = -1,
bool clearConfs =
true,
bool useRandomCoords =
false,
377 double boxSizeMult = 2.0,
bool randNegEig =
true,
378 unsigned int numZeroFail = 1,
double pruneRmsThresh = -1.0,
379 const std::map<int, RDGeom::Point3D> *coordMap = 0,
380 double optimizerForceTol = 1e-3,
bool ignoreSmoothingFailures =
false,
381 bool enforceChirality =
true,
bool useExpTorsionAnglePrefs =
false,
382 bool useBasicKnowledge =
false,
bool verbose =
false,
383 double basinThresh = 5.0,
bool onlyHeavyAtomsForRMS =
false) {
384 EmbedParameters params(maxIterations, 1, seed, clearConfs, useRandomCoords,
385 boxSizeMult, randNegEig, numZeroFail, coordMap,
386 optimizerForceTol, ignoreSmoothingFailures,
387 enforceChirality, useExpTorsionAnglePrefs,
388 useBasicKnowledge, verbose, basinThresh,
389 pruneRmsThresh, onlyHeavyAtomsForRMS);
bool onlyHeavyAtomsForRMS
int EmbedMolecule(ROMol &mol, const EmbedParameters ¶ms)
Compute an embedding (in 3D) for the specified molecule using Distance.
Defines the primary molecule class ROMol as well as associated typedefs.
const std::map< int, RDGeom::Point3D > * coordMap
bool ignoreSmoothingFailures
RDKIT_DISTGEOMHELPERS_EXPORT void EmbedMultipleConfs(ROMol &mol, INT_VECT &res, unsigned int numConfs, const EmbedParameters ¶ms)
Parameter object for controlling embedding.
RDKIT_DISTGEOMHELPERS_EXPORT const EmbedParameters ETKDGv2
Parameters corresponding to Sereina Riniker's ETKDG approach - version 2.
RDKIT_DISTGEOMHELPERS_EXPORT const EmbedParameters ETKDG
Parameters corresponding to Sereina Riniker's ETKDG approach.
std::vector< int > INT_VECT
EmbedParameters(unsigned int maxIterations, int numThreads, int randomSeed, bool clearConfs, bool useRandomCoords, double boxSizeMult, bool randNegEig, unsigned int numZeroFail, const std::map< int, RDGeom::Point3D > *coordMap, double optimizerForceTol, bool ignoreSmoothingFailures, bool enforceChirality, bool useExpTorsionAnglePrefs, bool useBasicKnowledge, bool verbose, double basinThresh, double pruneRmsThresh, bool onlyHeavyAtomsForRMS, unsigned int ETversion=1)
RDKIT_DISTGEOMHELPERS_EXPORT const EmbedParameters ETDG
Parameters corresponding to Sereina Riniker's ETDG approach.
unsigned int maxIterations
#define RDKIT_DISTGEOMHELPERS_EXPORT
RDKIT_DISTGEOMHELPERS_EXPORT const EmbedParameters KDG
Parameters corresponding to Sereina Riniker's KDG approach.
bool useExpTorsionAnglePrefs