10 #ifndef _RD_DISTGEOMUTILS_H_ 11 #define _RD_DISTGEOMUTILS_H_ 63 bool randNegEig =
false,
unsigned int numZeroFail = 2,
69 bool randNegEig =
false,
70 unsigned int numZeroFail = 2);
115 double weightFourthDim = 0.1,
116 std::map<std::pair<int, int>,
double> *extraWeights = 0,
117 double basinSizeTol = 5.0);
142 const std::vector<std::pair<int, int> > &bonds,
143 const std::vector<std::vector<int> > &angles,
144 const std::vector<std::vector<int> > &expTorsionAtoms,
145 const std::vector<std::pair<std::vector<int>, std::vector<double> > > &
147 const std::vector<std::vector<int> > &improperAtoms,
148 const std::vector<int> &atomNums);
172 const std::vector<std::pair<int, int> > &bonds,
173 const std::vector<std::vector<int> > &angles,
174 const std::vector<std::vector<int> > &expTorsionAtoms,
175 const std::vector<std::pair<std::vector<int>, std::vector<double> > > &
177 const std::vector<int> &atomNums);
193 const std::vector<std::vector<int> > &improperAtoms,
194 const std::vector<int> &atomNums);
std::vector< RDGeom::Point3D * > Point3DPtrVect
ForceFields::ForceField * construct3DImproperForceField(const BoundsMatrix &mmat, RDGeom::Point3DPtrVect &positions, const std::vector< std::vector< int > > &improperAtoms, const std::vector< int > &atomNums)
Force field with only improper terms.
double pickRandomDistMat(const BoundsMatrix &mmat, RDNumeric::SymmMatrix< double > &distmat, RDKit::double_source_type &rng)
std::vector< RDGeom::Point * > PointPtrVect
ForceFields::ForceField * construct3DForceField(const BoundsMatrix &mmat, RDGeom::Point3DPtrVect &positions, const std::vector< std::pair< int, int > > &bonds, const std::vector< std::vector< int > > &angles, const std::vector< std::vector< int > > &expTorsionAtoms, const std::vector< std::pair< std::vector< int >, std::vector< double > > > &expTorsionAngles, const std::vector< std::vector< int > > &improperAtoms, const std::vector< int > &atomNums)
Force field with experimental torsion angle preferences and 1-2/1-3 distance.
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.
A symmetric matrix class.
std::vector< ChiralSetPtr > VECT_CHIRALSET
bool computeInitialCoords(const RDNumeric::SymmMatrix< double > &distmat, RDGeom::PointPtrVect &positions, RDKit::double_source_type &rng, bool randNegEig=false, unsigned int numZeroFail=2)
boost::variate_generator< rng_type &, uniform_double > double_source_type
ForceFields::ForceField * constructPlain3DForceField(const BoundsMatrix &mmat, RDGeom::Point3DPtrVect &positions, const std::vector< std::pair< int, int > > &bonds, const std::vector< std::vector< int > > &angles, const std::vector< std::vector< int > > &expTorsionAtoms, const std::vector< std::pair< std::vector< int >, std::vector< double > > > &expTorsionAngles, const std::vector< int > &atomNums)
Force field with experimental torsion angle preferences and 1-2/1-3 distance.
A class to store forcefields and handle minimization.
bool computeRandomCoords(RDGeom::PointPtrVect &positions, double boxSize, RDKit::double_source_type &rng)