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)\)