12#ifndef RD_EMBEDDER_H_GUARD
13#define RD_EMBEDDER_H_GUARD
19#include <boost/shared_ptr.hpp>
134 const std::map<int, RDGeom::Point3D> *
coordMap{
nullptr};
145 boost::shared_ptr<const DistGeom::BoundsMatrix>
boundsMat{
nullptr};
152 std::shared_ptr<std::map<std::pair<unsigned int, unsigned int>,
double>>
CPCI{
174 unsigned int numConfs,
190 if (confIds.size()) {
269 ROMol &mol,
unsigned int maxIterations = 0,
int seed = -1,
270 bool clearConfs =
true,
bool useRandomCoords =
false,
271 double boxSizeMult = 2.0,
bool randNegEig =
true,
272 unsigned int numZeroFail = 1,
273 const std::map<int, RDGeom::Point3D> *coordMap =
nullptr,
274 double optimizerForceTol = 1e-3,
bool ignoreSmoothingFailures =
false,
275 bool enforceChirality =
true,
bool useExpTorsionAnglePrefs =
false,
276 bool useBasicKnowledge =
false,
bool verbose =
false,
277 double basinThresh = 5.0,
bool onlyHeavyAtomsForRMS =
false,
278 unsigned int ETversion = 2,
bool useSmallRingTorsions =
false,
279 bool useMacrocycleTorsions =
true,
bool useMacrocycle14config =
true) {
282 .clearConfs = clearConfs,
283 .useRandomCoords = useRandomCoords,
284 .boxSizeMult = boxSizeMult,
285 .randNegEig = randNegEig,
286 .numZeroFail = numZeroFail,
287 .coordMap = coordMap,
288 .optimizerForceTol = optimizerForceTol,
289 .ignoreSmoothingFailures = ignoreSmoothingFailures,
290 .enforceChirality = enforceChirality,
291 .useExpTorsionAnglePrefs = useExpTorsionAnglePrefs,
292 .useBasicKnowledge = useBasicKnowledge,
294 .basinThresh = basinThresh,
295 .onlyHeavyAtomsForRMS = onlyHeavyAtomsForRMS,
296 .ETversion = ETversion,
297 .useSmallRingTorsions = useSmallRingTorsions,
298 .useMacrocycleTorsions = useMacrocycleTorsions,
299 .useMacrocycle14config = useMacrocycle14config};
381 ROMol &mol,
INT_VECT &res,
unsigned int numConfs = 10,
int numThreads = 1,
382 unsigned int maxIterations = 30,
int seed = -1,
bool clearConfs =
true,
383 bool useRandomCoords =
false,
double boxSizeMult = 2.0,
384 bool randNegEig =
true,
unsigned int numZeroFail = 1,
385 double pruneRmsThresh = -1.0,
386 const std::map<int, RDGeom::Point3D> *coordMap =
nullptr,
387 double optimizerForceTol = 1e-3,
bool ignoreSmoothingFailures =
false,
388 bool enforceChirality =
true,
bool useExpTorsionAnglePrefs =
false,
389 bool useBasicKnowledge =
false,
bool verbose =
false,
390 double basinThresh = 5.0,
bool onlyHeavyAtomsForRMS =
false,
391 unsigned int ETversion = 2,
bool useSmallRingTorsions =
false,
392 bool useMacrocycleTorsions =
true,
bool useMacrocycle14config =
true,
393 unsigned int timeout = 0) {
395 .numThreads = numThreads,
397 .clearConfs = clearConfs,
398 .useRandomCoords = useRandomCoords,
399 .boxSizeMult = boxSizeMult,
400 .randNegEig = randNegEig,
401 .numZeroFail = numZeroFail,
402 .coordMap = coordMap,
403 .optimizerForceTol = optimizerForceTol,
404 .ignoreSmoothingFailures = ignoreSmoothingFailures,
405 .enforceChirality = enforceChirality,
406 .useExpTorsionAnglePrefs = useExpTorsionAnglePrefs,
407 .useBasicKnowledge = useBasicKnowledge,
409 .basinThresh = basinThresh,
410 .pruneRmsThresh = pruneRmsThresh,
411 .onlyHeavyAtomsForRMS = onlyHeavyAtomsForRMS,
412 .ETversion = ETversion,
413 .useSmallRingTorsions = useSmallRingTorsions,
414 .useMacrocycleTorsions = useMacrocycleTorsions,
415 .useMacrocycle14config = useMacrocycle14config,
421 ROMol &mol,
unsigned int numConfs = 10,
unsigned int maxIterations = 30,
422 int seed = -1,
bool clearConfs =
true,
bool useRandomCoords =
false,
423 double boxSizeMult = 2.0,
bool randNegEig =
true,
424 unsigned int numZeroFail = 1,
double pruneRmsThresh = -1.0,
425 const std::map<int, RDGeom::Point3D> *coordMap =
nullptr,
426 double optimizerForceTol = 1e-3,
bool ignoreSmoothingFailures =
false,
427 bool enforceChirality =
true,
bool useExpTorsionAnglePrefs =
false,
428 bool useBasicKnowledge =
false,
bool verbose =
false,
429 double basinThresh = 5.0,
bool onlyHeavyAtomsForRMS =
false,
430 unsigned int ETversion = 2,
bool useSmallRingTorsions =
false,
431 bool useMacrocycleTorsions =
false,
bool useMacrocycle14config =
false,
432 unsigned int timeout = 0) {
436 .clearConfs = clearConfs,
437 .useRandomCoords = useRandomCoords,
438 .boxSizeMult = boxSizeMult,
439 .randNegEig = randNegEig,
440 .numZeroFail = numZeroFail,
441 .coordMap = coordMap,
442 .optimizerForceTol = optimizerForceTol,
443 .ignoreSmoothingFailures = ignoreSmoothingFailures,
444 .enforceChirality = enforceChirality,
445 .useExpTorsionAnglePrefs = useExpTorsionAnglePrefs,
446 .useBasicKnowledge = useBasicKnowledge,
448 .basinThresh = basinThresh,
449 .pruneRmsThresh = pruneRmsThresh,
450 .onlyHeavyAtomsForRMS = onlyHeavyAtomsForRMS,
451 .ETversion = ETversion,
452 .useSmallRingTorsions = useSmallRingTorsions,
453 .useMacrocycleTorsions = useMacrocycleTorsions,
454 .useMacrocycle14config = useMacrocycle14config,
Defines the primary molecule class ROMol as well as associated typedefs.
#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 const EmbedParameters DG
Parameters corresponding to plain Distance Geometry.
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 useLegacyImplementation
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
bool ignoreSmoothingFailures