12 #ifndef RD_EMBEDDER_H_GUARD
13 #define RD_EMBEDDER_H_GUARD
18 #include <boost/shared_ptr.hpp>
22 namespace DGeomHelpers {
112 boost::shared_ptr<const DistGeom::BoundsMatrix>
boundsMat;
117 std::shared_ptr<std::map<std::pair<unsigned int, unsigned int>,
double>>
CPCI;
123 useRandomCoords(false),
128 optimizerForceTol(1e-3),
129 ignoreSmoothingFailures(false),
130 enforceChirality(true),
131 useExpTorsionAnglePrefs(false),
132 useBasicKnowledge(false),
135 pruneRmsThresh(-1.0),
136 onlyHeavyAtomsForRMS(false),
139 embedFragmentsSeparately(true),
140 useSmallRingTorsions(false),
141 useMacrocycleTorsions(false),
142 useMacrocycle14config(false),
145 unsigned int maxIterations,
int numThreads,
int randomSeed,
146 bool clearConfs,
bool useRandomCoords,
double boxSizeMult,
147 bool randNegEig,
unsigned int numZeroFail,
148 const std::map<int, RDGeom::Point3D> *coordMap,
double optimizerForceTol,
149 bool ignoreSmoothingFailures,
bool enforceChirality,
150 bool useExpTorsionAnglePrefs,
bool useBasicKnowledge,
bool verbose,
151 double basinThresh,
double pruneRmsThresh,
bool onlyHeavyAtomsForRMS,
152 unsigned int ETversion = 1,
154 bool embedFragmentsSeparately =
true,
bool useSmallRingTorsions =
false,
155 bool useMacrocycleTorsions =
false,
bool useMacrocycle14config =
false,
156 std::shared_ptr<std::map<std::pair<unsigned int, unsigned int>,
double>>
158 : maxIterations(maxIterations),
159 numThreads(numThreads),
160 randomSeed(randomSeed),
161 clearConfs(clearConfs),
162 useRandomCoords(useRandomCoords),
163 boxSizeMult(boxSizeMult),
164 randNegEig(randNegEig),
165 numZeroFail(numZeroFail),
167 optimizerForceTol(optimizerForceTol),
168 ignoreSmoothingFailures(ignoreSmoothingFailures),
169 enforceChirality(enforceChirality),
170 useExpTorsionAnglePrefs(useExpTorsionAnglePrefs),
171 useBasicKnowledge(useBasicKnowledge),
173 basinThresh(basinThresh),
174 pruneRmsThresh(pruneRmsThresh),
175 onlyHeavyAtomsForRMS(onlyHeavyAtomsForRMS),
176 ETversion(ETversion),
177 boundsMat(boundsMat),
178 embedFragmentsSeparately(embedFragmentsSeparately),
179 useSmallRingTorsions(useSmallRingTorsions),
180 useMacrocycleTorsions(useMacrocycleTorsions),
181 useMacrocycle14config(useMacrocycle14config),
203 if (confIds.size()) {
281 ROMol &mol,
unsigned int maxIterations = 0,
int seed = -1,
282 bool clearConfs =
true,
bool useRandomCoords =
false,
283 double boxSizeMult = 2.0,
bool randNegEig =
true,
284 unsigned int numZeroFail = 1,
285 const std::map<int, RDGeom::Point3D> *coordMap = 0,
286 double optimizerForceTol = 1e-3,
bool ignoreSmoothingFailures =
false,
287 bool enforceChirality =
true,
bool useExpTorsionAnglePrefs =
false,
288 bool useBasicKnowledge =
false,
bool verbose =
false,
289 double basinThresh = 5.0,
bool onlyHeavyAtomsForRMS =
false,
290 unsigned int ETversion = 1,
bool useSmallRingTorsions =
false,
291 bool useMacrocycleTorsions =
false,
bool useMacrocycle14config =
false) {
293 maxIterations, 1,
seed, clearConfs, useRandomCoords, boxSizeMult,
294 randNegEig, numZeroFail, coordMap, optimizerForceTol,
295 ignoreSmoothingFailures, enforceChirality, useExpTorsionAnglePrefs,
296 useBasicKnowledge, verbose, basinThresh, -1.0, onlyHeavyAtomsForRMS,
297 ETversion,
nullptr,
true, useSmallRingTorsions, useMacrocycleTorsions,
298 useMacrocycle14config);
379 ROMol &mol,
INT_VECT &res,
unsigned int numConfs = 10,
int numThreads = 1,
380 unsigned int maxIterations = 30,
int seed = -1,
bool clearConfs =
true,
381 bool useRandomCoords =
false,
double boxSizeMult = 2.0,
382 bool randNegEig =
true,
unsigned int numZeroFail = 1,
383 double pruneRmsThresh = -1.0,
384 const std::map<int, RDGeom::Point3D> *coordMap = 0,
385 double optimizerForceTol = 1e-3,
bool ignoreSmoothingFailures =
false,
386 bool enforceChirality =
true,
bool useExpTorsionAnglePrefs =
false,
387 bool useBasicKnowledge =
false,
bool verbose =
false,
388 double basinThresh = 5.0,
bool onlyHeavyAtomsForRMS =
false,
389 unsigned int ETversion = 1,
bool useSmallRingTorsions =
false,
390 bool useMacrocycleTorsions =
false,
bool useMacrocycle14config =
false) {
392 maxIterations, numThreads,
seed, clearConfs, useRandomCoords, boxSizeMult,
393 randNegEig, numZeroFail, coordMap, optimizerForceTol,
394 ignoreSmoothingFailures, enforceChirality, useExpTorsionAnglePrefs,
395 useBasicKnowledge, verbose, basinThresh, pruneRmsThresh,
396 onlyHeavyAtomsForRMS, ETversion,
nullptr,
true, useSmallRingTorsions,
397 useMacrocycleTorsions, useMacrocycle14config);
402 ROMol &mol,
unsigned int numConfs = 10,
unsigned int maxIterations = 30,
403 int seed = -1,
bool clearConfs =
true,
bool useRandomCoords =
false,
404 double boxSizeMult = 2.0,
bool randNegEig =
true,
405 unsigned int numZeroFail = 1,
double pruneRmsThresh = -1.0,
406 const std::map<int, RDGeom::Point3D> *coordMap = 0,
407 double optimizerForceTol = 1e-3,
bool ignoreSmoothingFailures =
false,
408 bool enforceChirality =
true,
bool useExpTorsionAnglePrefs =
false,
409 bool useBasicKnowledge =
false,
bool verbose =
false,
410 double basinThresh = 5.0,
bool onlyHeavyAtomsForRMS =
false,
411 unsigned int ETversion = 1,
bool useSmallRingTorsions =
false,
412 bool useMacrocycleTorsions =
false,
bool useMacrocycle14config =
false) {
414 maxIterations, 1,
seed, clearConfs, useRandomCoords, boxSizeMult,
415 randNegEig, numZeroFail, coordMap, optimizerForceTol,
416 ignoreSmoothingFailures, enforceChirality, useExpTorsionAnglePrefs,
417 useBasicKnowledge, verbose, basinThresh, pruneRmsThresh,
418 onlyHeavyAtomsForRMS, ETversion,
nullptr,
true, useSmallRingTorsions,
419 useMacrocycleTorsions, useMacrocycle14config);