|
Chemical Data Processing Library C++ API - Version 1.1.0
|
Go to the documentation of this file.
29 #ifndef CDPL_CONFGEN_DGCONSTRAINTGENERATOR_HPP
30 #define CDPL_CONFGEN_DGCONSTRAINTGENERATOR_HPP
34 #include <unordered_map>
51 class MMFF94InteractionData;
74 typedef std::vector<StereoCenterData> StereoCenterDataArray;
129 void extractAtomStereoCenterData();
130 void extractBondStereoCenterData();
132 void setBondLength(std::size_t atom1_idx, std::size_t atom2_idx,
double length);
133 double getBondLength(std::size_t atom1_idx, std::size_t atom2_idx)
const;
135 void setBondAngle(std::size_t atom1_idx, std::size_t atom2_idx, std::size_t atom3_idx,
double angle);
136 double getBondAngle(std::size_t atom1_idx, std::size_t atom2_idx, std::size_t atom3_idx)
const;
139 std::size_t getSmallestRingSize(
const Chem::FragmentList& sssr, std::size_t atom1_idx, std::size_t atom2_idx)
const;
141 void markAtomPairProcessed(std::size_t atom1_idx, std::size_t atom2_idx);
142 bool atomPairProcessed(std::size_t atom1_idx, std::size_t atom2_idx)
const;
144 double calc13AtomDistance(
double bond1_len,
double bond2_len,
double angle)
const;
146 double calcCis14AtomDistance(
double bond1_len,
double bond2_len,
double bond3_len,
147 double angle_12,
double angle_23)
const;
148 double calcTrans14AtomDistance(
double bond1_len,
double bond2_len,
double bond3_len,
149 double angle_12,
double angle_23)
const;
154 typedef std::vector<std::size_t> AtomIndexList;
156 std::size_t getNeighborAtoms(
const Chem::Atom& atom, AtomIndexList& idx_list,
159 typedef std::pair<std::size_t, std::size_t> BondLengthKey;
160 typedef std::tuple<std::size_t, std::size_t, std::size_t> BondAngleKey;
165 std::size_t operator()(
const BondAngleKey& k)
const;
171 std::size_t operator()(
const BondLengthKey& k)
const;
174 typedef std::unordered_map<BondLengthKey, double, BondLengthKeyHash> BondLengthTable;
175 typedef std::unordered_map<BondAngleKey, double, BondAngleKeyHash> BondAngleTable;
181 BondLengthTable bondLengthTable;
182 BondAngleTable bondAngleTable;
183 StereoCenterDataArray atomStereoData;
184 StereoCenterDataArray bondStereoData;
185 std::size_t numAtoms;
186 AtomIndexList atomIndexList1;
187 AtomIndexList atomIndexList2;
188 DGConstraintGeneratorSettings settings;
193 #endif // CDPL_CONFGEN_DGCONSTRAINTGENERATOR_HPP
Definition: MMFF94InteractionData.hpp:51
Definition of the class CDPL::Math::VectorArray.
void setup(const Chem::MolecularGraph &molgraph, const ForceField::MMFF94InteractionData &ia_data)
Bond.
Definition: Bond.hpp:50
const StereoCenterData & getBondStereoCenterData(std::size_t idx) const
DGCoordinatesGenerator< 3, double > DG3DCoordinatesGenerator
Definition: DGCoordinatesGenerator.hpp:296
std::pair< std::size_t, Chem::StereoDescriptor > StereoCenterData
Definition: DGConstraintGenerator.hpp:71
ConstStereoCenterDataIterator getAtomStereoCenterDataBegin() const
const StereoCenterData & getAtomStereoCenterData(std::size_t idx) const
DGConstraintGeneratorSettings & getSettings()
boost::dynamic_bitset BitSet
A dynamic bitset class.
Definition: BitSet.hpp:46
std::size_t getNumBondStereoCenters() const
void add14DistanceConstraints(Util::DG3DCoordinatesGenerator &coords_gen)
Atom.
Definition: Atom.hpp:52
void addBondConfigurationConstraints(Util::DG3DCoordinatesGenerator &coords_gen)
StereoCenterDataArray::const_iterator ConstStereoCenterDataIterator
Definition: DGConstraintGenerator.hpp:77
MolecularGraph.
Definition: MolecularGraph.hpp:52
Definition of the type CDPL::Util::BitSet.
void setup(const Chem::MolecularGraph &molgraph)
A common interface for data-structures that support a random access to stored Chem::Atom instances.
Definition: AtomContainer.hpp:55
const Util::BitSet & getExcludedHydrogenMask() const
void addDefaultDistanceConstraints(Util::DG3DCoordinatesGenerator &coords_gen)
std::size_t getNumAtomStereoCenters() const
Definition of the preprocessor macro CDPL_CONFGEN_API.
#define CDPL_CONFGEN_API
Tells the compiler/linker which classes, functions and variables are part of the library API.
A data type for the storage of Chem::Fragment objects.
Definition: FragmentList.hpp:49
void addAtomPlanarityConstraints(Util::DG3DCoordinatesGenerator &coords_gen)
Definition: DGConstraintGenerator.hpp:68
const DGConstraintGeneratorSettings & getSettings() const
The namespace of the Chemical Data Processing Library.
void addBondStereoCenter(const Chem::Bond &bond, const Chem::StereoDescriptor &descr)
ConstStereoCenterDataIterator getBondStereoCenterDataBegin() const
void addBondPlanarityConstraints(Util::DG3DCoordinatesGenerator &coords_gen)
ConstStereoCenterDataIterator getBondStereoCenterDataEnd() const
Definition of the class CDPL::ConfGen::DGConstraintGeneratorSettings.
A data structure for the storage and retrieval of stereochemical information about atoms and bonds.
Definition: StereoDescriptor.hpp:102
Definition of the type CDPL::Chem::StereoDescriptor.
Implementation of a distance geometry based coordinates generator.
void addAtomConfigurationConstraints(Util::DG3DCoordinatesGenerator &coords_gen)
void addBondAngleConstraints(Util::DG3DCoordinatesGenerator &coords_gen)
void addFixedSubstructureConstraints(const Chem::AtomContainer &atoms, const Math::Vector3DArray &coords, Util::DG3DCoordinatesGenerator &coords_gen)
Definition: DGConstraintGeneratorSettings.hpp:42
void addAtomStereoCenter(const Chem::Atom &atom, const Chem::StereoDescriptor &descr)
ConstStereoCenterDataIterator getAtomStereoCenterDataEnd() const
VectorNorm2< E >::ResultType length(const VectorExpression< E > &e)
Definition: VectorExpression.hpp:553
void addBondLengthConstraints(Util::DG3DCoordinatesGenerator &coords_gen)