11 #ifndef INCLUDE_MOLASSEMBLER_DISTANCE_GEOMETRY_CONFORMER_GENERATION_H
12 #define INCLUDE_MOLASSEMBLER_DISTANCE_GEOMETRY_CONFORMER_GENERATION_H
18 namespace Molassembler {
20 namespace outcome = OUTCOME_V2_NAMESPACE;
22 namespace DistanceGeometry {
32 Eigen::MatrixXd gather(
const Eigen::VectorXd& vectorizedPositions);
39 AngstromPositions convertToAngstromPositions(
const Eigen::MatrixXd& positions);
48 Eigen::MatrixXd fitAndSetFixedPositions(
49 const Eigen::MatrixXd& positions,
50 const Configuration& configuration
66 Molecule narrow(Molecule molecule, Random::Engine& engine);
74 std::vector<AtomIndex> vertices;
77 using GroupMapType = std::unordered_map<BondIndex, RotatableGroup, boost::hash<BondIndex>>;
80 static GroupMapType
make(
81 const std::vector<DihedralConstraint>& constraints,
86 std::vector<ChiralConstraint> chiralConstraints;
87 std::vector<DihedralConstraint> dihedralConstraints;
88 GroupMapType rotatableGroups;
103 outcome::result<AngstromPositions>
refine(
104 Eigen::MatrixXd embeddedPositions,
107 const std::shared_ptr<MoleculeDGInformation>& DgDataPtr
111 outcome::result<AngstromPositions> generateConformer(
114 std::shared_ptr<MoleculeDGInformation>& DgDataPtr,
115 bool regenerateDGDataEachStep,
128 outcome::result<AngstromPositions>
131 unsigned numConformers,
133 const boost::optional<unsigned> seedOption
Models a molecule as a graph (connectivity of atoms) and a list of stereopermutators.
Definition: Molecule.h:73
Definition: DistanceBoundsMatrix.h:28
Drives a PRNG.
Definition: Prng.h:24
A configuration object for distance geometry runs with sane defaults.
Definition: Conformers.h:75
Convert a Molecule to atom-pair distance bounds and chiral constraints.
Basic Logging functionality for debugging.
std::size_t AtomIndex
Unsigned integer atom index type. Used to refer to particular atoms.
Definition: Types.h:51
std::vector< outcome::result< AngstromPositions >> run(const Molecule &molecule, unsigned numConformers, const Configuration &configuration, const boost::optional< unsigned > seedOption)
Main and parallel implementation of Distance Geometry. Generates an ensemble of 3D structures of a gi...
MoleculeDGInformation gatherDGInformation(const Molecule &molecule, const Configuration &configuration)
Collects intermediate conformational data about a Molecule using a spatial model. ...
outcome::result< AngstromPositions > refine(Eigen::MatrixXd embeddedPositions, const DistanceBoundsMatrix &distanceBounds, const Configuration &configuration, const std::shared_ptr< MoleculeDGInformation > &DgDataPtr)
Distance Geometry refinement.
Eigen::MatrixXd BoundsMatrix
Type used to represent atom-pairwise distance bounds constructed from bounds on internal coordinates...
Definition: SpatialModel.h:66