![]() |
RDKit
Open-source cheminformatics and machine learning.
|
Classes | |
| class | BoundsMatrix |
| Class to store the distance bound. More... | |
| class | ChiralSet |
| Class used to store a quartet of points and chiral volume bounds on them. More... | |
| struct | ChiralViolationContribsParams |
| class | ChiralViolationContribs |
| struct | DistViolationContribsParams |
| class | DistViolationContribs |
| struct | FourthDimContribsParams |
| class | FourthDimContribs |
| class | ZMatrix |
| struct | overloaded |
| struct | TorsionRange |
| struct | TorsionValues |
Typedefs | |
| using | VECT_CHIRALSET = std::vector<boost::shared_ptr<ChiralSet>> |
| typedef boost::shared_ptr< BoundsMatrix > | BoundsMatPtr |
| using | ChiralSetPtr = boost::shared_ptr<ChiralSet> |
| typedef std::shared_ptr< ZMatrix > | ZMatPtr |
| using | TorsionCandidates = std::variant<TorsionRange, TorsionValues> |
Enumerations | |
| enum class | ChiralSetStructureFlags : std::uint64_t { IN_FUSED_SMALL_RINGS } |
Functions | |
| RDKIT_DISTGEOMETRY_EXPORT double | calcChiralVolume (const unsigned int idx1, const unsigned int idx2, const unsigned int idx3, const unsigned int idx4, const double *pos, const unsigned int dim) |
| RDKIT_DISTGEOMETRY_EXPORT double | calcChiralVolume (const unsigned int idx1, const unsigned int idx2, const unsigned int idx3, const unsigned int idx4, const RDGeom::PointPtrVect &pts) |
| RDKIT_DISTGEOMETRY_EXPORT double | pickRandomDistMat (const BoundsMatrix &mmat, RDNumeric::SymmMatrix< double > &distmat, int seed=-1) |
| RDKIT_DISTGEOMETRY_EXPORT double | pickRandomDistMat (const BoundsMatrix &mmat, RDNumeric::SymmMatrix< double > &distmat, RDKit::double_source_type &rng) |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
| RDKIT_DISTGEOMETRY_EXPORT bool | computeInitialCoords (const RDNumeric::SymmMatrix< double > &distmat, RDGeom::PointPtrVect &positions, bool randNegEig=false, unsigned int numZeroFail=2, int seed=-1) |
| Compute an initial embedded in 3D based on a distance matrix. | |
| RDKIT_DISTGEOMETRY_EXPORT bool | computeInitialCoords (const RDNumeric::SymmMatrix< double > &distmat, RDGeom::PointPtrVect &positions, RDKit::double_source_type &rng, bool randNegEig=false, unsigned int numZeroFail=2) |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
| RDKIT_DISTGEOMETRY_EXPORT bool | computeRandomCoords (RDGeom::PointPtrVect &positions, double boxSize, int seed=-1) |
| places atoms randomly in a box | |
| RDKIT_DISTGEOMETRY_EXPORT bool | computeRandomCoords (RDGeom::PointPtrVect &positions, double boxSize, RDKit::double_source_type &rng) |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
| RDKIT_DISTGEOMETRY_EXPORT bool | computeZMatrixCoords (ZMatrix &zmat, RDGeom::PointPtrVect &positions, int seed=-1) |
| places atoms from a given Z-Matrix | |
| RDKIT_DISTGEOMETRY_EXPORT bool | computeZMatrixCoords (ZMatrix &zmat, RDGeom::PointPtrVect &positions, RDKit::double_source_type &rng) |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
| RDKIT_DISTGEOMETRY_EXPORT ForceFields::ForceField * | constructForceField (const BoundsMatrix &mmat, const RDGeom::PointPtrVect &positions, const VECT_CHIRALSET &csets, const double weightDistance=1.0, const double weightChiral=1.0, const double weightFourthDim=0.1, const std::map< std::pair< int, int >, double > *extraWeights=nullptr, const double basinSizeTol=5.0, const boost::dynamic_bitset<> *fixedPts=nullptr) |
| Setup the error function for violation of distance bounds as a forcefield. | |
| RDKIT_DISTGEOMETRY_EXPORT ForceFields::ForceField * | constructForceField (const BoundsMatrix &mmat, const RDGeom::PointPtrVect &positions, const VECT_CHIRALSET &csets, const double weightChiral=1.0, const double weightFourthDim=0.1, const std::map< std::pair< int, int >, double > *extraWeights=nullptr, const double basinSizeTol=5.0, const boost::dynamic_bitset<> *fixedPts=nullptr) |
| Setup the error function for violation of distance bounds as a forcefield. | |
| RDKIT_DISTGEOMETRY_EXPORT ForceFields::ForceField * | construct3DForceField (const BoundsMatrix &mmat, RDGeom::Point3DPtrVect &positions, const ForceFields::CrystalFF::CrystalFFDetails &etkdgDetails) |
| RDKIT_DISTGEOMETRY_EXPORT ForceFields::ForceField * | construct3DForceField (const BoundsMatrix &mmat, RDGeom::Point3DPtrVect &positions, const ForceFields::CrystalFF::CrystalFFDetails &etkdgDetails, const std::map< std::pair< unsigned int, unsigned int >, double > &CPCI) |
| RDKIT_DISTGEOMETRY_EXPORT ForceFields::ForceField * | constructPlain3DForceField (const BoundsMatrix &mmat, RDGeom::Point3DPtrVect &positions, const ForceFields::CrystalFF::CrystalFFDetails &etkdgDetails) |
| RDKIT_DISTGEOMETRY_EXPORT ForceFields::ForceField * | construct3DImproperForceField (const BoundsMatrix &mmat, RDGeom::Point3DPtrVect &positions, const std::vector< std::vector< int > > &improperAtoms, const std::vector< std::vector< int > > &angles, const std::vector< int > &atomNums) |
| Force field with improper terms and SP linearity contributions. | |
| ForceFields::ForceField * | construct3DImproperForceField (const BoundsMatrix &mmat, RDGeom::Point3DPtrVect &positions, const ForceFields::CrystalFF::CrystalFFDetails &etkdgDetails) |
| Force field with improper terms and SP linearity contributions. | |
| RDKIT_DISTGEOMETRY_EXPORT ForceFields::ForceField * | constructAllInOneForceField (const BoundsMatrix &mmat, RDGeom::PointPtrVect &positions, const ForceFields::CrystalFF::CrystalFFDetails &etkdgDetails, const VECT_CHIRALSET *csets, const std::map< std::pair< unsigned int, unsigned int >, double > *extraWeights=nullptr, const boost::dynamic_bitset<> *fixedPts=nullptr) |
| Force Field for All-In-One Minimization. | |
| RDKIT_DISTGEOMETRY_EXPORT ForceFields::ForceField * | constructAllInOneForceField (const BoundsMatrix &mmat, RDGeom::PointPtrVect &positions, const ForceFields::CrystalFF::CrystalFFDetails &etkdgDetails, const VECT_CHIRALSET *csets, const std::map< std::pair< unsigned int, unsigned int >, double > &CPCI, const std::map< std::pair< unsigned int, unsigned int >, double > *extraWeights=nullptr, const boost::dynamic_bitset<> *fixedPts=nullptr) |
| RDKIT_DISTGEOMETRY_EXPORT void | addTorsionTerms (ForceFields::ForceField *field, const ForceFields::CrystalFF::CrystalFFDetails &etkdgDetails, const bool doK, const bool doET) |
| RDKIT_DISTGEOMETRY_EXPORT bool | triangleSmoothBounds (BoundsMatrix *boundsMat, double tol=0.) |
| RDKIT_DISTGEOMETRY_EXPORT bool | triangleSmoothBounds (BoundsMatPtr boundsMat, double tol=0.) |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
| template<typename T> | |
| std::ostream & | operator<< (std::ostream &os, const std::optional< T > &opt) |
| Class to store Z-Matrix. | |
| std::ostream & | operator<< (std::ostream &os, const ZMatrix &zmat) |
| int64_t | quantize (double val, double precision=TORSION_PRECISION) |
| TorsionCandidates | merge (const TorsionCandidates &lhs, const TorsionCandidates &rhs) |
| double | sample (const TorsionCandidates &torsionCand, RDKit::double_source_type &rng) |
| bool | less (const TorsionCandidates &lhs, const TorsionCandidates &rhs) |
| bool | equal (const TorsionCandidates &lhs, const TorsionCandidates &rhs) |
| bool | contains (const TorsionCandidates &torsionCand, const double value) |
| typedef boost::shared_ptr<BoundsMatrix> DistGeom::BoundsMatPtr |
Definition at line 106 of file BoundsMatrix.h.
| using DistGeom::ChiralSetPtr = boost::shared_ptr<ChiralSet> |
Definition at line 62 of file ChiralSet.h.
| using DistGeom::TorsionCandidates = std::variant<TorsionRange, TorsionValues> |
Definition at line 170 of file ZMatrixUtils.h.
| typedef std::vector< ChiralSetPtr > DistGeom::VECT_CHIRALSET = std::vector<boost::shared_ptr<ChiralSet>> |
Definition at line 27 of file Embedder.h.
| typedef std::shared_ptr<ZMatrix> DistGeom::ZMatPtr |
|
strong |
| Enumerator | |
|---|---|
| IN_FUSED_SMALL_RINGS | |
Definition at line 20 of file ChiralSet.h.
| RDKIT_DISTGEOMETRY_EXPORT void DistGeom::addTorsionTerms | ( | ForceFields::ForceField * | field, |
| const ForceFields::CrystalFF::CrystalFFDetails & | etkdgDetails, | ||
| const bool | doK, | ||
| const bool | doET ) |
References RDKIT_DISTGEOMETRY_EXPORT.
| RDKIT_DISTGEOMETRY_EXPORT double DistGeom::calcChiralVolume | ( | const unsigned int | idx1, |
| const unsigned int | idx2, | ||
| const unsigned int | idx3, | ||
| const unsigned int | idx4, | ||
| const double * | pos, | ||
| const unsigned int | dim ) |
References RDKIT_DISTGEOMETRY_EXPORT.
| RDKIT_DISTGEOMETRY_EXPORT double DistGeom::calcChiralVolume | ( | const unsigned int | idx1, |
| const unsigned int | idx2, | ||
| const unsigned int | idx3, | ||
| const unsigned int | idx4, | ||
| const RDGeom::PointPtrVect & | pts ) |
References RDKIT_DISTGEOMETRY_EXPORT.
| RDKIT_DISTGEOMETRY_EXPORT bool DistGeom::computeInitialCoords | ( | const RDNumeric::SymmMatrix< double > & | distmat, |
| RDGeom::PointPtrVect & | positions, | ||
| bool | randNegEig = false, | ||
| unsigned int | numZeroFail = 2, | ||
| int | seed = -1 ) |
Compute an initial embedded in 3D based on a distance matrix.
This function follows the embed algorithm mentioned in "Distance Geometry and Molecular Conformation" by G.M.Crippen and T.F.Havel (pages 312-313)
| distmat | Distance matrix |
| positions | A vector of pointers to Points to write out the resulting coordinates |
| randNegEig | If set to true and if any of the eigen values are negative, we will pick the corresponding components of the coordinates at random |
| numZeroFail | Fail embedding is more this many (or more) eigen values are zero |
| seed | the random number seed to use |
References RDKIT_DISTGEOMETRY_EXPORT.
| RDKIT_DISTGEOMETRY_EXPORT bool DistGeom::computeInitialCoords | ( | const RDNumeric::SymmMatrix< double > & | distmat, |
| RDGeom::PointPtrVect & | positions, | ||
| RDKit::double_source_type & | rng, | ||
| bool | randNegEig = false, | ||
| unsigned int | numZeroFail = 2 ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
References RDKIT_DISTGEOMETRY_EXPORT.
| RDKIT_DISTGEOMETRY_EXPORT bool DistGeom::computeRandomCoords | ( | RDGeom::PointPtrVect & | positions, |
| double | boxSize, | ||
| int | seed = -1 ) |
places atoms randomly in a box
| positions | A vector of pointers to Points to write out the resulting coordinates |
| boxSize | the side-length of the cubic box |
| seed | the random number seed to use |
References RDKIT_DISTGEOMETRY_EXPORT.
| RDKIT_DISTGEOMETRY_EXPORT bool DistGeom::computeRandomCoords | ( | RDGeom::PointPtrVect & | positions, |
| double | boxSize, | ||
| RDKit::double_source_type & | rng ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
References RDKIT_DISTGEOMETRY_EXPORT.
| RDKIT_DISTGEOMETRY_EXPORT bool DistGeom::computeZMatrixCoords | ( | ZMatrix & | zmat, |
| RDGeom::PointPtrVect & | positions, | ||
| int | seed = -1 ) |
places atoms from a given Z-Matrix
| zmat | The Z-Matrix |
| positions | A vector of pointers to Points to write out the resulting coordinates |
References RDKIT_DISTGEOMETRY_EXPORT.
| RDKIT_DISTGEOMETRY_EXPORT bool DistGeom::computeZMatrixCoords | ( | ZMatrix & | zmat, |
| RDGeom::PointPtrVect & | positions, | ||
| RDKit::double_source_type & | rng ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
References RDKIT_DISTGEOMETRY_EXPORT.
| RDKIT_DISTGEOMETRY_EXPORT ForceFields::ForceField * DistGeom::construct3DForceField | ( | const BoundsMatrix & | mmat, |
| RDGeom::Point3DPtrVect & | positions, | ||
| const ForceFields::CrystalFF::CrystalFFDetails & | etkdgDetails ) |
Force field with experimental torsion angle preferences and 1-2/1-3 distance constraints
| mmat | Distance bounds matrix |
| positions | A vector of pointers to 3D Points to write out the resulting coordinates |
| etkdgDetails | Contains information about the ETKDG force field |
NOTE: the caller is responsible for deleting this force field.
References RDKIT_DISTGEOMETRY_EXPORT.
| RDKIT_DISTGEOMETRY_EXPORT ForceFields::ForceField * DistGeom::construct3DForceField | ( | const BoundsMatrix & | mmat, |
| RDGeom::Point3DPtrVect & | positions, | ||
| const ForceFields::CrystalFF::CrystalFFDetails & | etkdgDetails, | ||
| const std::map< std::pair< unsigned int, unsigned int >, double > & | CPCI ) |
Force field with experimental torsion angle preferences and 1-2/1-3 distance constraints, as well as atom pairwise Columbic interactions
| mmat | Distance bounds matrix |
| positions | A vector of pointers to 3D Points to write out the resulting coordinates |
| etkdgDetails | Contains information about the ETKDG force field |
| CPCI | Contains which atom pair(s) have what strength of attractive/repulsive electrostatic interaction(s) |
NOTE: the caller is responsible for deleting this force field.
References RDKIT_DISTGEOMETRY_EXPORT.
|
inline |
Force field with improper terms and SP linearity contributions.
| mmat | Distance bounds matrix |
| positions | A vector of pointers to 3D Points to write out the resulting coordinates |
| etkdgDetails | Contains information about the ETKDG force field |
Definition at line 260 of file DistGeomUtils.h.
References ForceFields::CrystalFF::CrystalFFDetails::angles, ForceFields::CrystalFF::CrystalFFDetails::atomNums, construct3DImproperForceField(), and ForceFields::CrystalFF::CrystalFFDetails::improperAtoms.
| RDKIT_DISTGEOMETRY_EXPORT ForceFields::ForceField * DistGeom::construct3DImproperForceField | ( | const BoundsMatrix & | mmat, |
| RDGeom::Point3DPtrVect & | positions, | ||
| const std::vector< std::vector< int > > & | improperAtoms, | ||
| const std::vector< std::vector< int > > & | angles, | ||
| const std::vector< int > & | atomNums ) |
Force field with improper terms and SP linearity contributions.
| mmat | Distance bounds matrix |
| positions | A vector of pointers to 3D Points to write out the resulting coordinates |
| improperAtoms | A list of groups of 4 atom indices for inversion terms |
| angles | List of lists with the three angle indices and whether the center atom in the angle is SP hybridized for every angle in the molecule. |
| atomNums | A list of atomic numbers for all atoms in the molecule, no longer used. |
Referenced by construct3DImproperForceField().
| RDKIT_DISTGEOMETRY_EXPORT ForceFields::ForceField * DistGeom::constructAllInOneForceField | ( | const BoundsMatrix & | mmat, |
| RDGeom::PointPtrVect & | positions, | ||
| const ForceFields::CrystalFF::CrystalFFDetails & | etkdgDetails, | ||
| const VECT_CHIRALSET * | csets, | ||
| const std::map< std::pair< unsigned int, unsigned int >, double > & | CPCI, | ||
| const std::map< std::pair< unsigned int, unsigned int >, double > * | extraWeights = nullptr, | ||
| const boost::dynamic_bitset<> * | fixedPts = nullptr ) |
References RDKIT_DISTGEOMETRY_EXPORT.
| RDKIT_DISTGEOMETRY_EXPORT ForceFields::ForceField * DistGeom::constructAllInOneForceField | ( | const BoundsMatrix & | mmat, |
| RDGeom::PointPtrVect & | positions, | ||
| const ForceFields::CrystalFF::CrystalFFDetails & | etkdgDetails, | ||
| const VECT_CHIRALSET * | csets, | ||
| const std::map< std::pair< unsigned int, unsigned int >, double > * | extraWeights = nullptr, | ||
| const boost::dynamic_bitset<> * | fixedPts = nullptr ) |
Force Field for All-In-One Minimization.
| mmat | Distance bounds matrix |
| positions | A vector of pointers to Points to place in the field |
| etkdgDetails | Contains information about the ETKDG force field |
| csets | The vector of chiral points (type: ChiralSet) |
| extraWeights | mapping from atom pair indices to double to overwrite the force constants for the distance terms |
References RDKIT_DISTGEOMETRY_EXPORT.
| RDKIT_DISTGEOMETRY_EXPORT ForceFields::ForceField * DistGeom::constructForceField | ( | const BoundsMatrix & | mmat, |
| const RDGeom::PointPtrVect & | positions, | ||
| const VECT_CHIRALSET & | csets, | ||
| const double | weightChiral = 1.0, | ||
| const double | weightFourthDim = 0.1, | ||
| const std::map< std::pair< int, int >, double > * | extraWeights = nullptr, | ||
| const double | basinSizeTol = 5.0, | ||
| const boost::dynamic_bitset<> * | fixedPts = nullptr ) |
Setup the error function for violation of distance bounds as a forcefield.
This is based on function E3 on page 311 of "Distance Geometry in Molecular Modeling" Jeffrey M.Blaney and J.Scott Dixon, Review in Computational Chemistry, Volume V
| mmat | Distance bounds matrix |
| positions | A vector of pointers to Points to write out the resulting coordinates |
| csets | The vector of chiral points (type: ChiralSet) |
| weightChiral | weight to be used to enforce chirality |
| weightFourthDim | another chiral weight |
| extraWeights | an optional set of weights for distance bounds violations |
| basinSizeTol | Optional: any distance bound with a basin (distance between max and min bounds) larger than this value will not be included in the force field used to cleanup the structure. |
References RDKIT_DISTGEOMETRY_EXPORT.
| RDKIT_DISTGEOMETRY_EXPORT ForceFields::ForceField * DistGeom::constructForceField | ( | const BoundsMatrix & | mmat, |
| const RDGeom::PointPtrVect & | positions, | ||
| const VECT_CHIRALSET & | csets, | ||
| const double | weightDistance = 1.0, | ||
| const double | weightChiral = 1.0, | ||
| const double | weightFourthDim = 0.1, | ||
| const std::map< std::pair< int, int >, double > * | extraWeights = nullptr, | ||
| const double | basinSizeTol = 5.0, | ||
| const boost::dynamic_bitset<> * | fixedPts = nullptr ) |
Setup the error function for violation of distance bounds as a forcefield.
This is based on function E3 on page 311 of "Distance Geometry in Molecular Modeling" Jeffrey M.Blaney and J.Scott Dixon, Review in Computational Chemistry, Volume V
| mmat | Distance bounds matrix |
| positions | A vector of pointers to Points to write out the resulting coordinates |
| csets | The vector of chiral points (type: ChiralSet) |
| weightDistance | weight to be used for distance bounds |
| weightChiral | weight to be used to enforce chirality |
| weightFourthDim | another chiral weight |
| extraWeights | an optional set of weights for distance bounds violations |
| basinSizeTol | Optional: any distance bound with a basin (distance between max and min bounds) larger than this value will not be included in the force field used to cleanup the structure. |
References RDKIT_DISTGEOMETRY_EXPORT.
| RDKIT_DISTGEOMETRY_EXPORT ForceFields::ForceField * DistGeom::constructPlain3DForceField | ( | const BoundsMatrix & | mmat, |
| RDGeom::Point3DPtrVect & | positions, | ||
| const ForceFields::CrystalFF::CrystalFFDetails & | etkdgDetails ) |
Force field with experimental torsion angle preferences and 1-2/1-3 distance constraints
| mmat | Distance bounds matrix |
| positions | A vector of pointers to 3D Points to write out the resulting coordinates |
| etkdgDetails | Contains information about the ETKDG force field |
NOTE: the caller is responsible for deleting this force field.
References RDKIT_DISTGEOMETRY_EXPORT.
|
inline |
Definition at line 277 of file ZMatrixUtils.h.
|
inline |
|
inline |
|
inline |
| std::ostream & DistGeom::operator<< | ( | std::ostream & | os, |
| const std::optional< T > & | opt ) |
Class to store Z-Matrix.
Similar to a conventional ZMatrix with the following two main differences: torsions are not stored as fixed values but as ranges or set of distinct values stores information of dependend torisions, i.e., direct neighbors that are not the bond references with order (in Zmatrix) < than the current one
|
inline |
| RDKIT_DISTGEOMETRY_EXPORT double DistGeom::pickRandomDistMat | ( | const BoundsMatrix & | mmat, |
| RDNumeric::SymmMatrix< double > & | distmat, | ||
| int | seed = -1 ) |
Pick a distance matrix at random such that the distance satisfy the bounds in the BoundsMatrix
| mmat | Bounds matrix |
| distmat | Storage for randomly chosen distances |
| seed | the random number seed to use |
References RDKIT_DISTGEOMETRY_EXPORT.
| RDKIT_DISTGEOMETRY_EXPORT double DistGeom::pickRandomDistMat | ( | const BoundsMatrix & | mmat, |
| RDNumeric::SymmMatrix< double > & | distmat, | ||
| RDKit::double_source_type & | rng ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
References RDKIT_DISTGEOMETRY_EXPORT.
|
inline |
Definition at line 44 of file ZMatrixUtils.h.
References M_PI.
Referenced by DistGeom::TorsionRange::contains(), DistGeom::TorsionValues::contains(), DistGeom::TorsionValues::insert(), DistGeom::TorsionRange::TorsionRange(), and DistGeom::TorsionValues::TorsionValues().
|
inline |
Definition at line 255 of file ZMatrixUtils.h.
| RDKIT_DISTGEOMETRY_EXPORT bool DistGeom::triangleSmoothBounds | ( | BoundsMatPtr | boundsMat, |
| double | tol = 0. ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
References RDKIT_DISTGEOMETRY_EXPORT.
| RDKIT_DISTGEOMETRY_EXPORT bool DistGeom::triangleSmoothBounds | ( | BoundsMatrix * | boundsMat, |
| double | tol = 0. ) |
Smooth the upper and lower bound in a metric matrix so that triangle inequality is not violated
This an implementation of the O(N^3) algorithm given on pages 252-253 of "Distance Geometry and Molecular Conformation" by G.M.Crippen and T.F.Havel Research Studies Press, 1988. There are other (slightly) more implementations (see pages 301-302 in the above book), but that is for later
| boundsMat | A pointer to the distance bounds matrix |
| tol | a tolerance (percent) for errors in the smoothing process |
References RDKIT_DISTGEOMETRY_EXPORT.