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::ForceFieldconstructForceField (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


Generated on Sat May 24 08:36:33 2008 for RDCode by  doxygen 1.5.3