Molassembler  1.0.0
Molecule graph and conformer library
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Scine::Molassembler::Stereopermutations::Stereopermutation Class Reference

Represent abstract stereopermutation around atom center. More...

#include <Stereopermutation.h>

Inheritance diagram for Scine::Molassembler::Stereopermutations::Stereopermutation:

Public Types

Member types
using CharacterOccupation = std::vector< char >
 Character occupations.
 
using Link = std::pair< Shapes::Vertex, Shapes::Vertex >
 Type used to represent a link between shape vertices.
 
using OrderedLinks = std::vector< Link >
 Unordered type, but kept ordered by member functions.
 

Public Member Functions

Special member functions
 Stereopermutation ()=delete
 Construct an Stereopermutation from a list of ligand characters and a list of bonded indices referencing the ligand characters. More...
 
 Stereopermutation (CharacterOccupation passCharacters, OrderedLinks passLinks={})
 Construct an Stereopermutation from a list of ligand characters and a list of bonded indices referencing the ligand characters. More...
 
Information
Stereopermutation applyPermutation (const Shapes::Permutation &permutation) const
 Applies a shape vertex permutation. More...
 
std::map< char, std::vector
< unsigned > > 
getCharMap () const
 Gets a map of ligand symbol character to shape vertex positions.
 
std::string toString () const
 A string for display.
 
Operators
auto tie () const
 Yields members tied to tuple for crtp operator suppliers.
 
- Public Member Functions inherited from Scine::Molassembler::Temple::Crtp::LexicographicComparable< Stereopermutation >
constexpr bool operator== (const LexicographicComparable &other) const
 
constexpr bool operator!= (const LexicographicComparable &other) const
 
constexpr bool operator< (const LexicographicComparable &other) const
 
constexpr bool operator<= (const LexicographicComparable &other) const
 
constexpr bool operator> (const LexicographicComparable &other) const
 
constexpr bool operator>= (const LexicographicComparable &other) const
 

Static Public Member Functions

Static functions
static CharacterOccupation permuteCharacters (const CharacterOccupation &characters, const Shapes::Permutation &permutation)
 Rotate characters. More...
 
static OrderedLinks permuteLinks (const OrderedLinks &links, const Shapes::Permutation &permutation)
 Rotate links. More...
 
- Static Public Member Functions inherited from Scine::Molassembler::Temple::Crtp::LexicographicComparable< Stereopermutation >
static constexpr const
Stereopermutation & 
getDerived (const LexicographicComparable &base)
 

Data Fields

Member data
CharacterOccupation characters
 Abstract representation of ranked substituents.
 
OrderedLinks links
 Links between characters.
 

Detailed Description

Represent abstract stereopermutation around atom center.

This class represents a simplified model of a sterically unique assignment of a set of ligands to a stereocenter. It exists to uniquely identify the steric configuration at this stereocenter, and provides methods to assist a systematic generation of all possible configurations. It is generalized over a number of shapes which are encoded in a separate library.

Constructor & Destructor Documentation

Scine::Molassembler::Stereopermutations::Stereopermutation::Stereopermutation ( )
delete

Construct an Stereopermutation from a list of ligand characters and a list of bonded indices referencing the ligand characters.

Parameters
passCharactersA vector of chars signifying abstract ligands.
passLinksA vector of pairs. Describes which ligand characters are bonded to one another.
Scine::Molassembler::Stereopermutations::Stereopermutation::Stereopermutation ( CharacterOccupation  passCharacters,
OrderedLinks  passLinks = {} 
)

Construct an Stereopermutation from a list of ligand characters and a list of bonded indices referencing the ligand characters.

Parameters
passCharactersA vector of chars signifying abstract ligands.
passLinksA vector of pairs. Describes which ligand characters are bonded to one another.

Member Function Documentation

Stereopermutation Scine::Molassembler::Stereopermutations::Stereopermutation::applyPermutation ( const Shapes::Permutation permutation) const

Applies a shape vertex permutation.

Complexity \(O(N + L)\)

static CharacterOccupation Scine::Molassembler::Stereopermutations::Stereopermutation::permuteCharacters ( const CharacterOccupation characters,
const Shapes::Permutation permutation 
)
static

Rotate characters.

Complexity \(\Theta(N)\)

static OrderedLinks Scine::Molassembler::Stereopermutations::Stereopermutation::permuteLinks ( const OrderedLinks links,
const Shapes::Permutation permutation 
)
static

Rotate links.

Complexity \(\Theta(L)\), not linear in shape size since it is small and constant


The documentation for this class was generated from the following file: