Represent abstract stereopermutation around atom center. More...
#include <Stereopermutation.h>
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. | |
![]() | |
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 constexpr const Stereopermutation & | getDerived (const LexicographicComparable &base) |
Data Fields | |
Member data | |
CharacterOccupation | characters |
Abstract representation of ranked substituents. | |
OrderedLinks | links |
Links between characters. | |
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.
|
delete |
Construct an Stereopermutation from a list of ligand characters and a list of bonded indices referencing the ligand characters.
passCharacters | A vector of chars signifying abstract ligands. |
passLinks | A 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.
passCharacters | A vector of chars signifying abstract ligands. |
passLinks | A vector of pairs. Describes which ligand characters are bonded to one another. |
Stereopermutation Scine::Molassembler::Stereopermutations::Stereopermutation::applyPermutation | ( | const Shapes::Permutation & | permutation | ) | const |
Applies a shape vertex permutation.
Complexity \(O(N + L)\)
|
static |
Rotate characters.
Complexity \(\Theta(N)\)
|
static |
Rotate links.
Complexity \(\Theta(L)\), not linear in shape size since it is small and constant