Given Cartesian coordinates, construct graphs or molecules. More...
Data Structures | |
struct | ComponentMap |
Type used to represent a map from an atom collection index to an interpreted object. More... | |
struct | MoleculesResult |
Result type of an interpret call. More... | |
struct | GraphsResult |
Result type of a graph interpret call. More... | |
struct | FalsePositive |
Fn result datatype. More... | |
Enumerations | |
enum | BondDiscretizationOption { BondDiscretizationOption::Binary, BondDiscretizationOption::RoundToNearest } |
How floating-point bond orders are discretized into bond types. More... | |
Functions | |
MoleculesResult | molecules (const Utils::ElementTypeCollection &elements, const AngstromPositions &angstromWrapper, const Utils::BondOrderCollection &bondOrders, BondDiscretizationOption discretization=BondDiscretizationOption::Binary, const boost::optional< double > &stereopermutatorThreshold=1.4) |
The function that actually does all the work with the library-internal wrapper. More... | |
MoleculesResult | molecules (const Utils::ElementTypeCollection &elements, const AngstromPositions &angstromWrapper, BondDiscretizationOption discretization=BondDiscretizationOption::Binary, const boost::optional< double > &stereopermutatorThreshold=1.4) |
Interpret a molecule from positional information only. Calculates bond orders using Utils' BondDetector class. More... | |
MoleculesResult | molecules (const Utils::AtomCollection &atomCollection, const Utils::BondOrderCollection &bondOrders, BondDiscretizationOption discretization=BondDiscretizationOption::Binary, const boost::optional< double > &stereopermutatorThreshold=1.4) |
Interpret molecules from element types, positional information and a bond order collection. More... | |
MoleculesResult | molecules (const Utils::AtomCollection &atoms, const Utils::BondOrderCollection &periodicBonds, const std::unordered_set< unsigned > &uninterestingAtoms, const std::unordered_map< unsigned, unsigned > &ghostAtomMap, BondDiscretizationOption discretization=BondDiscretizationOption::Binary, const boost::optional< double > &stereopermutatorThreshold=1.4) |
Interpret molecules of a periodic system. More... | |
MoleculesResult | molecules (const Utils::AtomCollection &atomCollection, BondDiscretizationOption discretization=BondDiscretizationOption::Binary, const boost::optional< double > &stereopermutatorThreshold=1.4) |
Interpret molecules from Cartesian coordinates. More... | |
GraphsResult | graphs (const Utils::ElementTypeCollection &elements, const AngstromPositions &angstromWrapper, const Utils::BondOrderCollection &bondOrders, BondDiscretizationOption discretization=BondDiscretizationOption::Binary) |
The function that actually does all the work with the library-internal wrapper. More... | |
GraphsResult | graphs (const Utils::AtomCollection &atomCollection, const Utils::BondOrderCollection &bondOrders, BondDiscretizationOption discretization=BondDiscretizationOption::Binary) |
Interpret graphs from element types, positional information and a bond order collection. More... | |
std::vector< FalsePositive > | uncertainBonds (const Utils::AtomCollection &atomCollection, const Utils::BondOrderCollection &bondOrders) |
Suggests false positives from a binary interpretation of bond orders. More... | |
std::vector< FalsePositive > | badHapticLigandBonds (const Utils::AtomCollection &atomCollection, const Utils::BondOrderCollection &bondOrders) |
Suggests false positive haptic ligand bonds from a binary interpretation of bond orders. More... | |
Utils::BondOrderCollection | removeFalsePositives (const Utils::AtomCollection &atoms, Utils::BondOrderCollection bonds) |
Iteratively applies false positive detection schemes. More... | |
Given Cartesian coordinates, construct graphs or molecules.
std::vector<FalsePositive> Scine::Molassembler::Interpret::badHapticLigandBonds | ( | const Utils::AtomCollection & | atomCollection, |
const Utils::BondOrderCollection & | bondOrders | ||
) |
Suggests false positive haptic ligand bonds from a binary interpretation of bond orders.
Generates a plane of best fit for each haptic ligand in the interpreted graphs. If the angle of the normal of this plane to the axis defined by the central atom and the site centroid is more than 30 degrees, tries to name a single bond whose removal improves the interpretation.
GraphsResult Scine::Molassembler::Interpret::graphs | ( | const Utils::ElementTypeCollection & | elements, |
const AngstromPositions & | angstromWrapper, | ||
const Utils::BondOrderCollection & | bondOrders, | ||
BondDiscretizationOption | discretization = BondDiscretizationOption::Binary |
||
) |
The function that actually does all the work with the library-internal wrapper.
Complexity \(\Theta(M)\) graph instantiations for each connected component found of at least linear complexity each
elements | Element type collection |
angstromWrapper | Positional information in Angstrom units |
bondOrders | Bond orders |
discretization | How to discretize fractional bond orders |
invalid_argument | If the number of particles in the element collection, angstrom wrapper or bond order collection do not match. |
GraphsResult Scine::Molassembler::Interpret::graphs | ( | const Utils::AtomCollection & | atomCollection, |
const Utils::BondOrderCollection & | bondOrders, | ||
BondDiscretizationOption | discretization = BondDiscretizationOption::Binary |
||
) |
Interpret graphs from element types, positional information and a bond order collection.
Attempts to interpret (possibly multiple) graphs from element types, positional information and a bond order collection. Bond orders are discretized into bond types. Connected components within the space are identified and individually instantiated into Molecules.
atomCollection | Element types and positional information in Bohr units. |
bondOrders | Fractional bond orders |
discretization | Decide how bond orders are discretized into bond types |
invalid_argument | If the number of particles in the atom collection and bond order collection do not match. |
MoleculesResult Scine::Molassembler::Interpret::molecules | ( | const Utils::ElementTypeCollection & | elements, |
const AngstromPositions & | angstromWrapper, | ||
const Utils::BondOrderCollection & | bondOrders, | ||
BondDiscretizationOption | discretization = BondDiscretizationOption::Binary , |
||
const boost::optional< double > & | stereopermutatorThreshold = 1.4 |
||
) |
The function that actually does all the work with the library-internal wrapper.
Complexity \(\Theta(M)\) molecule instantiations for each connected component found of at least linear complexity each
elements | Element type collection |
angstromWrapper | Positional information in Angstrom units |
bondOrders | Bond orders |
discretization | How to discretize fractional bond orders |
stereopermutatorThreshold | From which fractional bond order on to try the interpretation of bond stereopermutator. If set as boost::none , no bond stereopermutators are interpreted. |
invalid_argument | If the number of particles in the element collection, angstrom wrapper or bond order collection do not match. |
MoleculesResult Scine::Molassembler::Interpret::molecules | ( | const Utils::ElementTypeCollection & | elements, |
const AngstromPositions & | angstromWrapper, | ||
BondDiscretizationOption | discretization = BondDiscretizationOption::Binary , |
||
const boost::optional< double > & | stereopermutatorThreshold = 1.4 |
||
) |
Interpret a molecule from positional information only. Calculates bond orders using Utils' BondDetector class.
elements | Element type collection |
angstromWrapper | Positional information in Angstrom units |
discretization | How to discretize fractional bond orders |
stereopermutatorThreshold | From which fractional bond order on to try the interpretation of bond stereopermutator. If set as boost::none , no bond stereopermutators are interpreted. |
invalid_argument | If the number of particles in the element collection and angstrom wrapper do not match. |
MoleculesResult Scine::Molassembler::Interpret::molecules | ( | const Utils::AtomCollection & | atomCollection, |
const Utils::BondOrderCollection & | bondOrders, | ||
BondDiscretizationOption | discretization = BondDiscretizationOption::Binary , |
||
const boost::optional< double > & | stereopermutatorThreshold = 1.4 |
||
) |
Interpret molecules from element types, positional information and a bond order collection.
Attempts to interpret (possibly multiple) Molecules from element types, positional information and a bond order collection. Bond orders are discretized into bond types. Connected components within the space are identified and individually instantiated into Molecules. The instantiation behavior of BondStereopermutators in the Molecules can be limited to edges whose bond order exceeds a particular value.
atomCollection | Element types and positional information in Bohr units. |
bondOrders | Fractional bond orders |
discretization | Decide how bond orders are discretized into bond types |
stereopermutatorThreshold | If specified, limits the instantiation of BondStereopermutators onto edges whose fractional bond orders exceed the provided threshold. If this is not desired, specify boost::none. |
invalid_argument | If the number of particles in the atom collection and bond order collection do not match. |
MoleculesResult Scine::Molassembler::Interpret::molecules | ( | const Utils::AtomCollection & | atoms, |
const Utils::BondOrderCollection & | periodicBonds, | ||
const std::unordered_set< unsigned > & | uninterestingAtoms, | ||
const std::unordered_map< unsigned, unsigned > & | ghostAtomMap, | ||
BondDiscretizationOption | discretization = BondDiscretizationOption::Binary , |
||
const boost::optional< double > & | stereopermutatorThreshold = 1.4 |
||
) |
Interpret molecules of a periodic system.
Interpret molecules into a simplified representation of structures with periodic boundary conditions.
atoms | Atom collection with ghost atoms |
periodicBonds | Bond orders including extra bonds to ghost atoms |
uninterestingAtoms | List of atoms for which to skip shape classification and stereopermutator instantiation. |
ghostAtomMap | Map from ghost atom indices to their base atom |
discretization | Decide how bond orders are discretized into bond types |
stereopermutatorThreshold | If specified, limits the instantiation of BondStereopermutators onto edges whose fractional bond orders exceed the provided threshold. If this is not desired, specify boost::none. |
std::invalid_argument | If the number of particles in the atom collection and bond order collection do not match. |
MoleculesResult Scine::Molassembler::Interpret::molecules | ( | const Utils::AtomCollection & | atomCollection, |
BondDiscretizationOption | discretization = BondDiscretizationOption::Binary , |
||
const boost::optional< double > & | stereopermutatorThreshold = 1.4 |
||
) |
Interpret molecules from Cartesian coordinates.
Attempts to interpret (possibly multiple) Molecules from element types and positional information. Bond orders are calculated from atom-pairwise spatial distances by van-der-Waals radii. The bond orders are then discretized into bond types. Connected components within the space are identified and individually instantiated into Molecules. The instantiation behavior of BondStereopermutators in the Molecules can be limited to edges whose bond order exceeds a particular value.
atomCollection | Element types and positional information in Bohr units. |
discretization | Decide how bond orders are discretized into bond types |
stereopermutatorThreshold | If specified, limits the instantiation of BondStereopermutators onto edges whose fractional bond orders exceed the provided threshold |
Utils::BondOrderCollection Scine::Molassembler::Interpret::removeFalsePositives | ( | const Utils::AtomCollection & | atoms, |
Utils::BondOrderCollection | bonds | ||
) |
Iteratively applies false positive detection schemes.
std::vector<FalsePositive> Scine::Molassembler::Interpret::uncertainBonds | ( | const Utils::AtomCollection & | atomCollection, |
const Utils::BondOrderCollection & | bondOrders | ||
) |
Suggests false positives from a binary interpretation of bond orders.
Collects instances where shape classification is uncertain. If two connected atoms are both uncertain (>= 50% probability that the point cloud could be part of a random sample), lists the bond as a possible false postive.