RDCode: DistGeom Namespace Reference

# DistGeom Namespace Reference

## 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)
bool | computeInitialCoords (const RDNumeric::SymmMatrix< double > &distmat, RDGeom::PointPtrVect &positions, bool randNegEig=false, unsigned int numZeroFail=2)
| Compute an initial embedded in 3D based on a distance matrix.
bool | computeRandomCoords (RDGeom::PointPtrVect &positions, double boxSize)
| places atoms randomly in a box
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.
bool | triangleSmoothBounds (BoundsMatrix *boundsMat)
bool | triangleSmoothBounds (BoundsMatPtr boundsMat)

## Typedef Documentation

typedef boost::shared_ptr<BoundsMatrix> DistGeom::BoundsMatPtr

Definition at line 110 of file BoundsMatrix.h.

typedef boost::shared_ptr<ChiralSet> DistGeom::ChiralSetPtr

Definition at line 47 of file ChiralSet.h.

typedef std::vector<ChiralSetPtr> DistGeom::VECT_CHIRALSET

Definition at line 48 of file ChiralSet.h.

## Function Documentation

bool DistGeom::computeInitialCoords | ( | const RDNumeric::SymmMatrix< double > & | distmat,
|  | RDGeom::PointPtrVect & | positions,
|  | bool | randNegEig = `false`,
|  | unsigned int | numZeroFail = `2` |
| ) |  |  |

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)

Parameters:

  | 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

Returns:
  true if the embedding was successful

bool DistGeom::computeRandomCoords | ( | RDGeom::PointPtrVect & | positions,
|  | double | boxSize |
| ) |  |  |

places atoms randomly in a box

Parameters:

  | positions | A vector of pointers to Points to write out the resulting coordinates
  | boxSize | If set to true and if any of the eigen values are negative, we will pick the corresponding components of the coordinates at random

Returns:
  true if the embedding was successful

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

Parameters:

  | 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.

Returns:
  a pointer to a ForceField suitable for cleaning up the violations. NOTE: the caller is responsible for deleting this force field.

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

Parameters:

  | mmat | Bounds matrix
  | distmat | Storage for randomly chosen distances
  | seed | Optional value to seed the random number generator

Returns:
  the largest element of the distance matrix

bool DistGeom::triangleSmoothBounds | ( | BoundsMatPtr | boundsMat | ) |

bool DistGeom::triangleSmoothBounds | ( | BoundsMatrix * | boundsMat | ) |

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

Parameters:

  | boundsMat | A pointer to the distance bounds matrix