Represent abstract stereopermutation around atom center. More...
#include <Stereopermutation.h>
Public Types | |
Member types | |
| using | Occupation = Temple::StrongIndexPermutation< Shapes::Vertex, Rank > |
| Ranked site occupation. | |
| 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 ()=default | |
| Empty default-init (invalid state) | |
| Stereopermutation (Occupation passOccupation, OrderedLinks passLinks={}) | |
| Construct an Stereopermutation from an occupation and a a list of bonded shape vertices. More... | |
Information | |
| Stereopermutation | applyPermutation (const Shapes::Permutation &permutation) const |
| Applies a shape vertex permutation. More... | |
| 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 Occupation | permuteOccupation (const Occupation &occupation, const Shapes::Permutation &permutation) |
| Rotate characters. More... | |
| static Occupation | occupationFromChars (const std::string &chars) |
| 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 & | derived (const LexicographicComparable &base) |
Data Fields | |
Member data | |
| Occupation | occupation |
| Occupation of shape vertices by site rank. | |
| OrderedLinks | links |
| Links between shape vertices. | |
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.
| Scine::Molassembler::Stereopermutations::Stereopermutation::Stereopermutation | ( | Occupation | passOccupation, |
| OrderedLinks | passLinks = {} |
||
| ) |
Construct an Stereopermutation from an occupation and a a list of bonded shape vertices.
| passOccupation | An occupation of shape vertices by site rankings |
| passLinks | A vector of shape vertex pairs denoting links |
| 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
|
static |
Rotate characters.
Complexity \(\Theta(N)\)