12#ifndef RD_EMBEDDER_H_GUARD
13#define RD_EMBEDDER_H_GUARD
19#include <boost/shared_ptr.hpp>
131 const std::map<int, RDGeom::Point3D> *
coordMap{
nullptr};
142 boost::shared_ptr<const DistGeom::BoundsMatrix>
boundsMat;
148 std::shared_ptr<std::map<std::pair<unsigned int, unsigned int>,
double>>
CPCI;
172 std::shared_ptr<std::map<std::pair<unsigned int, unsigned int>,
double>>
174 void (*
callback)(
unsigned int) =
nullptr)
214 unsigned int numConfs,
230 if (confIds.size()) {
309 ROMol &mol,
unsigned int maxIterations = 0,
int seed = -1,
310 bool clearConfs =
true,
bool useRandomCoords =
false,
311 double boxSizeMult = 2.0,
bool randNegEig =
true,
312 unsigned int numZeroFail = 1,
313 const std::map<int, RDGeom::Point3D> *coordMap =
nullptr,
314 double optimizerForceTol = 1e-3,
bool ignoreSmoothingFailures =
false,
315 bool enforceChirality =
true,
bool useExpTorsionAnglePrefs =
false,
316 bool useBasicKnowledge =
false,
bool verbose =
false,
317 double basinThresh = 5.0,
bool onlyHeavyAtomsForRMS =
false,
318 unsigned int ETversion = 2,
bool useSmallRingTorsions =
false,
319 bool useMacrocycleTorsions =
true,
bool useMacrocycle14config =
true) {
321 maxIterations, 1, seed, clearConfs, useRandomCoords, boxSizeMult,
322 randNegEig, numZeroFail, coordMap, optimizerForceTol,
323 ignoreSmoothingFailures, enforceChirality, useExpTorsionAnglePrefs,
324 useBasicKnowledge, verbose, basinThresh, -1.0, onlyHeavyAtomsForRMS,
325 ETversion,
nullptr,
true, useSmallRingTorsions, useMacrocycleTorsions,
326 useMacrocycle14config);
407 ROMol &mol,
INT_VECT &res,
unsigned int numConfs = 10,
int numThreads = 1,
408 unsigned int maxIterations = 30,
int seed = -1,
bool clearConfs =
true,
409 bool useRandomCoords =
false,
double boxSizeMult = 2.0,
410 bool randNegEig =
true,
unsigned int numZeroFail = 1,
411 double pruneRmsThresh = -1.0,
412 const std::map<int, RDGeom::Point3D> *coordMap =
nullptr,
413 double optimizerForceTol = 1e-3,
bool ignoreSmoothingFailures =
false,
414 bool enforceChirality =
true,
bool useExpTorsionAnglePrefs =
false,
415 bool useBasicKnowledge =
false,
bool verbose =
false,
416 double basinThresh = 5.0,
bool onlyHeavyAtomsForRMS =
false,
417 unsigned int ETversion = 2,
bool useSmallRingTorsions =
false,
418 bool useMacrocycleTorsions =
true,
bool useMacrocycle14config =
true,
419 unsigned int timeout = 0) {
421 maxIterations, numThreads, seed, clearConfs, useRandomCoords, boxSizeMult,
422 randNegEig, numZeroFail, coordMap, optimizerForceTol,
423 ignoreSmoothingFailures, enforceChirality, useExpTorsionAnglePrefs,
424 useBasicKnowledge, verbose, basinThresh, pruneRmsThresh,
425 onlyHeavyAtomsForRMS, ETversion,
nullptr,
true, useSmallRingTorsions,
426 useMacrocycleTorsions, useMacrocycle14config, timeout);
431 ROMol &mol,
unsigned int numConfs = 10,
unsigned int maxIterations = 30,
432 int seed = -1,
bool clearConfs =
true,
bool useRandomCoords =
false,
433 double boxSizeMult = 2.0,
bool randNegEig =
true,
434 unsigned int numZeroFail = 1,
double pruneRmsThresh = -1.0,
435 const std::map<int, RDGeom::Point3D> *coordMap =
nullptr,
436 double optimizerForceTol = 1e-3,
bool ignoreSmoothingFailures =
false,
437 bool enforceChirality =
true,
bool useExpTorsionAnglePrefs =
false,
438 bool useBasicKnowledge =
false,
bool verbose =
false,
439 double basinThresh = 5.0,
bool onlyHeavyAtomsForRMS =
false,
440 unsigned int ETversion = 2,
bool useSmallRingTorsions =
false,
441 bool useMacrocycleTorsions =
false,
bool useMacrocycle14config =
false,
442 unsigned int timeout = 0) {
444 maxIterations, 1, seed, clearConfs, useRandomCoords, boxSizeMult,
445 randNegEig, numZeroFail, coordMap, optimizerForceTol,
446 ignoreSmoothingFailures, enforceChirality, useExpTorsionAnglePrefs,
447 useBasicKnowledge, verbose, basinThresh, pruneRmsThresh,
448 onlyHeavyAtomsForRMS, ETversion,
nullptr,
true, useSmallRingTorsions,
449 useMacrocycleTorsions, useMacrocycle14config, timeout);
Defines the primary molecule class ROMol as well as associated typedefs.
Class to store the distance bound.
#define RDKIT_DISTGEOMHELPERS_EXPORT
RDKIT_DISTGEOMHELPERS_EXPORT const EmbedParameters ETKDGv2
Parameters corresponding to Sereina Riniker's ETKDG approach - version 2.
RDKIT_DISTGEOMHELPERS_EXPORT const EmbedParameters ETDG
Parameters corresponding to Sereina Riniker's ETDG approach.
RDKIT_DISTGEOMHELPERS_EXPORT const EmbedParameters ETKDGv3
RDKIT_DISTGEOMHELPERS_EXPORT void updateEmbedParametersFromJSON(EmbedParameters ¶ms, const std::string &json)
update parameters from a JSON string
RDKIT_DISTGEOMHELPERS_EXPORT const EmbedParameters ETKDG
Parameters corresponding to Sereina Riniker's ETKDG approach.
RDKIT_DISTGEOMHELPERS_EXPORT void EmbedMultipleConfs(ROMol &mol, INT_VECT &res, unsigned int numConfs, EmbedParameters ¶ms)
Embed multiple conformations for a molecule.
@ MINIMIZE_FOURTH_DIMENSION
@ CHECK_TETRAHEDRAL_CENTERS
RDKIT_DISTGEOMHELPERS_EXPORT std::string embedParametersToJSON(const EmbedParameters ¶ms)
export parameters to JSON string
int EmbedMolecule(ROMol &mol, EmbedParameters ¶ms)
RDKIT_DISTGEOMHELPERS_EXPORT const EmbedParameters srETKDGv3
RDKIT_DISTGEOMHELPERS_EXPORT const EmbedParameters KDG
Parameters corresponding to Sereina Riniker's KDG approach.
RDKIT_DISTGEOMHELPERS_EXPORT const EmbedParameters ETDGv2
Parameters corresponding to Sereina Riniker's ETDG approach - version 2.
std::vector< int > INT_VECT
Parameter object for controlling embedding.
bool embedFragmentsSeparately
bool useMacrocycle14config
bool useMacrocycleTorsions
bool useSymmetryForPruning
bool useExpTorsionAnglePrefs
bool onlyHeavyAtomsForRMS
void(* callback)(unsigned int)
std::vector< unsigned int > failures
unsigned int maxIterations
bool useSmallRingTorsions
bool symmetrizeConjugatedTerminalGroupsForPruning
const std::map< int, RDGeom::Point3D > * coordMap
boost::shared_ptr< const DistGeom::BoundsMatrix > boundsMat
bool enableSequentialRandomSeeds
double boundsMatForceScaling
std::shared_ptr< std::map< std::pair< unsigned int, unsigned int >, double > > CPCI
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=2, const DistGeom::BoundsMatrix *boundsMat=nullptr, bool embedFragmentsSeparately=true, bool useSmallRingTorsions=false, bool useMacrocycleTorsions=false, bool useMacrocycle14config=false, unsigned int timeout=0, std::shared_ptr< std::map< std::pair< unsigned int, unsigned int >, double > > CPCI=nullptr, void(*callback)(unsigned int)=nullptr)
bool ignoreSmoothingFailures