![]() |
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 | DistViolationContrib |
class | FourthDimContrib |
Typedefs | |
typedef boost::shared_ptr< BoundsMatrix > | BoundsMatPtr |
typedef boost::shared_ptr< ChiralSet > | ChiralSetPtr |
typedef std::vector< ChiralSetPtr > | VECT_CHIRALSET |
Functions | |
double | pickRandomDistMat (const BoundsMatrix &mmat, RDNumeric::SymmMatrix< double > &distmat, int seed=-1) |
double | pickRandomDistMat (const BoundsMatrix &mmat, RDNumeric::SymmMatrix< double > &distmat, RDKit::double_source_type &rng) |
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. More... | |
bool | computeInitialCoords (const RDNumeric::SymmMatrix< double > &distmat, RDGeom::PointPtrVect &positions, RDKit::double_source_type &rng, bool randNegEig=false, unsigned int numZeroFail=2) |
bool | computeRandomCoords (RDGeom::PointPtrVect &positions, double boxSize, int seed=-1) |
places atoms randomly in a box More... | |
bool | computeRandomCoords (RDGeom::PointPtrVect &positions, double boxSize, RDKit::double_source_type &rng) |
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=0, double basinSizeTol=5.0) |
Setup the error function for violation of distance bounds as a forcefield. More... | |
bool | triangleSmoothBounds (BoundsMatrix *boundsMat, double tol=0.) |
bool | triangleSmoothBounds (BoundsMatPtr boundsMat, double tol=0.) |
typedef boost::shared_ptr<BoundsMatrix> DistGeom::BoundsMatPtr |
Definition at line 113 of file BoundsMatrix.h.
typedef boost::shared_ptr<ChiralSet> DistGeom::ChiralSetPtr |
Definition at line 51 of file ChiralSet.h.
typedef std::vector<ChiralSetPtr> DistGeom::VECT_CHIRALSET |
Definition at line 52 of file ChiralSet.h.
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 |
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.
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 |
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.
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 = 0 , |
||
double | basinSizeTol = 5.0 |
||
) |
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. |
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 |
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.
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 |
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.