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 | ChiralViolationContrib |
class | ChiralViolationContribs |
struct | ChiralViolationContribsParams |
class | DistViolationContrib |
class | DistViolationContribs |
struct | DistViolationContribsParams |
class | FourthDimContrib |
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 | 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 118 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 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 |
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.
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 |
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.
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.
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.
|
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. |
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.
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 |
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.
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.
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 |