Molassembler  1.0.0
Molecule graph and conformer library
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
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 "outcome/outcome.hpp"
14 #include <vector>
15 
16 namespace Scine {
17 namespace Molassembler {
18 
19 namespace outcome = OUTCOME_V2_NAMESPACE;
20 
21 // Forward-declarations
22 class Molecule;
23 
24 namespace DistanceGeometry {
25 
44 enum class MASM_EXPORT Partiality {
55  FourAtom,
62  TenPercent,
69  All
70 };
71 
75 struct MASM_EXPORT Configuration {
85 
92  unsigned refinementStepLimit {10000};
93 
100  double refinementGradientTarget {1e-5};
101 
113  double spatialModelLoosening {1.0};
114 
127  std::vector<
128  std::pair<AtomIndex, Utils::Position>
130 };
131 
132 } // namespace DistanceGeometry
133 
192 MASM_EXPORT std::vector<
193  outcome::result<Utils::PositionCollection>
195  const Molecule& molecule,
196  unsigned numStructures,
198 );
199 
239 MASM_EXPORT std::vector<
240  outcome::result<Utils::PositionCollection>
242  const Molecule& molecule,
243  unsigned numStructures,
244  unsigned seed,
245  const DistanceGeometry::Configuration& configuration = DistanceGeometry::Configuration {}
246 );
247 
268 MASM_EXPORT outcome::result<Utils::PositionCollection> generateRandomConformation(
269  const Molecule& molecule,
270  const DistanceGeometry::Configuration& configuration = DistanceGeometry::Configuration {}
271 );
272 
292 MASM_EXPORT outcome::result<Utils::PositionCollection> generateConformation(
293  const Molecule& molecule,
294  unsigned seed,
295  const DistanceGeometry::Configuration& configuration = DistanceGeometry::Configuration {}
296 );
297 
298 } // namespace Molassembler
299 } // namespace Scine
300 
301 #endif
Models a molecule as a graph (connectivity of atoms) and a list of stereopermutators.
Definition: Molecule.h:73
std::vector< outcome::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.
Defines basic types widely shared across the project.
outcome::result< Utils::PositionCollection > generateConformation(const Molecule &molecule, unsigned seed, const DistanceGeometry::Configuration &configuration=DistanceGeometry::Configuration{})
Generate a 3D structure of a Molecule.
A configuration object for distance geometry runs with sane defaults.
Definition: Conformers.h:75
Perform smoothing after all distance choices.
outcome::result< Utils::PositionCollection > generateRandomConformation(const Molecule &molecule, const DistanceGeometry::Configuration &configuration=DistanceGeometry::Configuration{})
Generate a 3D structure of a Molecule.
std::vector< std::pair< AtomIndex, Utils::Position > > fixedPositions
Set fixed positions for a subset of atoms.
Definition: Conformers.h:129
std::vector< outcome::result< Utils::PositionCollection >> generateRandomEnsemble(const Molecule &molecule, unsigned numStructures, const DistanceGeometry::Configuration &configuration=DistanceGeometry::Configuration{})
Generate multiple sets of positional data for a Molecule.
Perform smoothing for four one-to-all distance choices.
Perform smoothing for ten percent of one-to-all distance choices.
Partiality
Limit triangle inequality bounds smoothing to a subset of all atoms.
Definition: Conformers.h:44