![]() |
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... | |
| class | ChiralViolationContribs |
| struct | ChiralViolationContribsParams |
| class | DistViolationContribs |
| struct | DistViolationContribsParams |
| class | FourthDimContribs |
| struct | FourthDimContribsParams |
Typedefs | |
| typedef boost::shared_ptr< BoundsMatrix > | BoundsMatPtr |
| typedef boost::shared_ptr< ChiralSet > | ChiralSetPtr |
| typedef std::vector< ChiralSetPtr > | VECT_CHIRALSET |
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 ForceFields::ForceField * | constructForceField (const BoundsMatrix &mmat, RDGeom::PointPtrVect &positions, const VECT_CHIRALSET &csets, double weightChiral=1.0, double weightFourthDim=0.1, std::map< std::pair< int, int >, double > *extraWeights=nullptr, double basinSizeTol=5.0, 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 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. | |
| typedef boost::shared_ptr<BoundsMatrix> DistGeom::BoundsMatPtr |
Definition at line 107 of file BoundsMatrix.h.
| typedef boost::shared_ptr<ChiralSet> DistGeom::ChiralSetPtr |
Definition at line 62 of file ChiralSet.h.
| typedef std::vector<ChiralSetPtr> DistGeom::VECT_CHIRALSET |
Definition at line 63 of file ChiralSet.h.
|
strong |
| Enumerator | |
|---|---|
| IN_FUSED_SMALL_RINGS | |
Definition at line 20 of file ChiralSet.h.
| 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 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 208 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::constructForceField | ( | const BoundsMatrix & | mmat, |
| RDGeom::PointPtrVect & | positions, | ||
| const VECT_CHIRALSET & | csets, | ||
| double | weightChiral = 1.0, | ||
| double | weightFourthDim = 0.1, | ||
| std::map< std::pair< int, int >, double > * | extraWeights = nullptr, | ||
| double | basinSizeTol = 5.0, | ||
| 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::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.
| 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.
| 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.