Molassembler  3.0.1
Molecule graph and conformer library
Conformers.h
Go to the documentation of this file.
1 
8 #ifndef INCLUDE_MOLASSEMBLER_CONFORMER_GENERATION_H
9 #define INCLUDE_MOLASSEMBLER_CONFORMER_GENERATION_H
10 
11 #include "Molassembler/Types.h"
12 #include "Utils/Typenames.h"
13 #include "Molassembler/Detail/Outcome.h"
14 #include <vector>
15 
16 namespace Scine {
17 namespace Molassembler {
18 
19 // Forward-declarations
20 class Molecule;
21 
22 namespace DistanceGeometry {
23 
42 enum class MASM_EXPORT Partiality {
53  FourAtom,
60  TenPercent,
67  All
68 };
69 
73 struct MASM_EXPORT Configuration {
83 
90  unsigned refinementStepLimit {10'000};
91 
98  double refinementGradientTarget {1e-5};
99 
111  double spatialModelLoosening {1.0};
112 
125  std::vector<
126  std::pair<AtomIndex, Utils::Position>
128 };
129 
130 } // namespace DistanceGeometry
131 
190 MASM_EXPORT std::vector<
191  Result<Utils::PositionCollection>
193  const Molecule& molecule,
194  unsigned numStructures,
196 );
197 
237 MASM_EXPORT std::vector<
238  Result<Utils::PositionCollection>
240  const Molecule& molecule,
241  unsigned numStructures,
242  unsigned seed,
244 );
245 
266 MASM_EXPORT Result<Utils::PositionCollection> generateRandomConformation(
267  const Molecule& molecule,
269 );
270 
290 MASM_EXPORT Result<Utils::PositionCollection> generateConformation(
291  const Molecule& molecule,
292  unsigned seed,
294 );
295 
296 } // namespace Molassembler
297 } // namespace Scine
298 
299 #endif
Defines basic types widely shared across the project.
Models a molecule as a graph (connectivity of atoms) and a list of stereopermutators.
Definition: Molecule.h:77
Partiality
Limit triangle inequality bounds smoothing to a subset of all atoms.
Definition: Conformers.h:42
@ FourAtom
Perform smoothing for four one-to-all distance choices.
@ All
Perform smoothing after all distance choices.
@ TenPercent
Perform smoothing for ten percent of one-to-all distance choices.
Result< Utils::PositionCollection > generateConformation(const Molecule &molecule, unsigned seed, const DistanceGeometry::Configuration &configuration=DistanceGeometry::Configuration {})
Generate a 3D structure of a Molecule.
std::vector< Result< Utils::PositionCollection >> generateRandomEnsemble(const Molecule &molecule, unsigned numStructures, const DistanceGeometry::Configuration &configuration=DistanceGeometry::Configuration {})
Generate multiple sets of positional data for a Molecule.
Result< Utils::PositionCollection > generateRandomConformation(const Molecule &molecule, const DistanceGeometry::Configuration &configuration=DistanceGeometry::Configuration {})
Generate a 3D structure of a Molecule.
std::vector< Result< Utils::PositionCollection >> generateEnsemble(const Molecule &molecule, unsigned numStructures, unsigned seed, const DistanceGeometry::Configuration &configuration=DistanceGeometry::Configuration {})
Generate multiple sets of positional data for a Molecule.
A configuration object for distance geometry runs with sane defaults.
Definition: Conformers.h:73
std::vector< std::pair< AtomIndex, Utils::Position > > fixedPositions
Set fixed positions for a subset of atoms.
Definition: Conformers.h:127