Molassembler  3.0.0
Molecule graph and conformer library
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Scine::Molassembler::RankingInformation Struct Reference

Ranking data of substituents around a central vertex. More...

#include <RankingInformation.h>

Data Structures

struct  Link
 Information on links between substituents of a central atom. More...
 

Public Types

Member types
template<typename T >
using NestedList = std::vector< std::vector< T > >
 ASC ordered list (via ranking) of atom index lists (sub-list atoms equal)
 
using RankedSubstituentsType = NestedList< AtomIndex >
 ASC ordered list (via ranking) of atom index lists (sub-list atoms equal)
 
using SiteListType = NestedList< AtomIndex >
 An unordered list of sets of atom indices that constitute binding sites.
 
using RankedSitesType = NestedList< SiteIndex >
 Ascending ordered list of binding site indices (sub-list site indices equal)
 

Public Member Functions

Modification
void applyPermutation (const std::vector< AtomIndex > &permutation)
 Applies an atom index permutation. More...
 
Information
SiteIndex getSiteIndexOf (AtomIndex i) const
 Fetches the binding site index of a substituent. More...
 
unsigned getRankedIndexOfSite (SiteIndex i) const
 Fetches the position of a binding site index within the site ranking. More...
 
bool hasHapticSites () const
 Checks whether there are haptic binding sites. More...
 
Operators
bool operator== (const RankingInformation &other) const
 
bool operator!= (const RankingInformation &other) const
 

Static Public Member Functions

Static member functions
static std::vector< unsigned > siteConstitutingAtomsRankedPositions (const std::vector< AtomIndex > &siteAtomList, const RankingInformation::RankedSubstituentsType &substituentRanking)
 Gets ranking positions of a binding site's constituting atoms in descending order. More...
 
static RankedSitesType rankSites (const SiteListType &sites, const RankedSubstituentsType &substituentRanking)
 Combines the ranking of substituents with the binding site constitutions into a site-level ranking. More...
 

Data Fields

Data members
RankedSubstituentsType substituentRanking
 Sorted substituents grouped by priority ascending.
 
SiteListType sites
 Binding site atom index groupings. More...
 
RankedSitesType siteRanking
 Site ranking. More...
 
std::vector< Linklinks
 A list of information on all links between binding sites. More...
 

Detailed Description

Ranking data of substituents around a central vertex.

Member Function Documentation

void Scine::Molassembler::RankingInformation::applyPermutation ( const std::vector< AtomIndex > &  permutation)

Applies an atom index permutation.

Complexity \(\Theta(1)\)

Parameters
permutationThe permutation to apply
unsigned Scine::Molassembler::RankingInformation::getRankedIndexOfSite ( SiteIndex  i) const

Fetches the position of a binding site index within the site ranking.

Complexity \(\Theta(1)\)

Parameters
iThe binding site index to find
Returns
The position within siteRanking of the supplied ligand index
SiteIndex Scine::Molassembler::RankingInformation::getSiteIndexOf ( AtomIndex  i) const

Fetches the binding site index of a substituent.

Complexity \(\Theta(1)\)

Exceptions
std::out_of_rangeIf the specified atom index is not part of any binding site
bool Scine::Molassembler::RankingInformation::hasHapticSites ( ) const

Checks whether there are haptic binding sites.

Complexity \(\Theta(1)\)

Note
These are identified by the sites member having sets of substituents with more than one element
static RankedSitesType Scine::Molassembler::RankingInformation::rankSites ( const SiteListType sites,
const RankedSubstituentsType substituentRanking 
)
static

Combines the ranking of substituents with the binding site constitutions into a site-level ranking.

Site ordering is predicated on the following rules:

  1. Larger sites precede smaller sites
  2. Lexicographical comparison of the constituting atoms' ranking positions

Complexity \(\Theta(S^2)\) where \(S\) is the number of sites

Parameters
sitesList of atom index lists that each constitute a binding site
substituentRankingThe substituent-level ranking result
Returns
A ranked (ascending) nested list of ligand indices
static std::vector<unsigned> Scine::Molassembler::RankingInformation::siteConstitutingAtomsRankedPositions ( const std::vector< AtomIndex > &  siteAtomList,
const RankingInformation::RankedSubstituentsType substituentRanking 
)
static

Gets ranking positions of a binding site's constituting atoms in descending order.

*         Ranking position:     0     1       2      3
* Input:  substituentRanking: {{0}, {4, 3}, {1, 9}, {5}}
*         binding site indices: {5, 3, 0}
* Output: {3, 1, 0}
* 

Complexity \(\Theta(S)\) where \(S\) is the number of substituents

Field Documentation

std::vector<Link> Scine::Molassembler::RankingInformation::links

A list of information on all links between binding sites.

Note
This list is sorted, enabling use of the RankingInformation comparison operators
RankedSitesType Scine::Molassembler::RankingInformation::siteRanking

Site ranking.

This is a ranked (ascending) nested list of site indices (indices into sites).

For any instance r, this member should merely be the cached result of a call to RankingInformation::rankSites with the arguments r.sites and r.substituentRanking.

SiteListType Scine::Molassembler::RankingInformation::sites

Binding site atom index groupings.

This is an unordered nested list of atom index lists that each constitute a binding site. If a nested list has only a single element, the site is 'normal'. If there are multiple elements in a nested list, the site is haptically bonded.


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