8 #ifndef INCLUDE_MOLASSEMBLER_DIRECTED_CONFORMER_GENERATOR_H
9 #define INCLUDE_MOLASSEMBLER_DIRECTED_CONFORMER_GENERATOR_H
15 #include "boost/variant/variant_fwd.hpp"
17 #include <unordered_map>
24 namespace Molassembler {
103 constexpr
static std::uint8_t unknownDecision = std::numeric_limits<std::uint8_t>::max();
108 AtomStereopermutatorPreconditionsUnmet,
110 HasAssignedBondStereopermutator,
112 HasTerminalConstitutingAtom,
184 static boost::variant<IgnoreReason, BondStereopermutator>
considerBond(
248 const BondList& bondsToConsider = {}
433 unsigned dihedralRetries = 3;
506 std::unique_ptr<Impl> pImpl_;
523 std::vector<AtomIndex> is;
526 std::vector<AtomIndex> ls;
527 unsigned symmetryOrder;
529 using Interval = std::pair<double, double>;
530 using Intervals = std::vector<Interval>;
539 const std::vector<double>& dihedrals,
541 unsigned symmetryOrder = 1
544 static std::pair<double, double> makeBounds(
double phi,
double tolerance);
545 static std::pair<int, int> integerBounds(
const std::pair<double, double>& bounds);
567 std::vector<Intervals>
bins(
double delta=M_PI / 6)
const;
579 const std::vector<Intervals>& allBins
584 const std::vector<std::vector<unsigned>>&
binIndices,
585 const std::vector<Intervals>& allBins
590 std::vector<std::pair<int, int>>
592 const std::vector<std::vector<unsigned>>&
binIndices,
593 const std::vector<Intervals>& allBins
598 std::vector<DihedralInfo> sequences;
599 std::vector<std::vector<double>> observedDihedrals;
Handle rotational arrangements of adjacent atom-centered shapes.
Centralizes the main customization points of the library's behavior.
FittingMode
Differentiates how viable assignments are chosen during fitting.
Definition: BondStereopermutator.h:67
@ Nearest
Choose whichever assignment best represents the geometry directly.
@ Thresholded
Positions must be close to the idealized assignment geometry.
Alignment
How dihedrals are aligned in the generation of stereopermutations.
Definition: BondStereopermutator.h:53
@ Staggered
At least one pair of substituents are staggered along the axis.
Models a molecule as a graph (connectivity of atoms) and a list of stereopermutators.
Definition: Molecule.h:77
Drives a PRNG.
Definition: Prng.h:24
std::size_t AtomIndex
Unsigned integer atom index type. Used to refer to particular atoms.
Definition: Types.h:51
Random::Engine & randomnessEngine()
Randomness source for the entire library.
Type used to refer to particular bonds. Orders first < second.
Definition: Types.h:54
A configuration object for distance geometry runs with sane defaults.
Definition: Conformers.h:73