A data structure for the storage and retrieval of stereochemical information about atoms and bonds.
More...
#include <StereoDescriptor.hpp>
|
| StereoDescriptor (unsigned int config) |
| Constructs a StereoDescriptor instance that specifies the configuration config but stores no reference atoms. More...
|
|
| StereoDescriptor (const StereoDescriptor &descr) |
| Constructs a copy of the StereoDescriptor instance descr. More...
|
|
| StereoDescriptor (unsigned int config, const Atom &atom1, const Atom &atom2, const Atom &atom3) |
| Constructs a StereoDescriptor instance that specifies a configuration of config for three reference atoms. More...
|
|
| StereoDescriptor (unsigned int config, const Atom &atom1, const Atom &atom2, const Atom &atom3, const Atom &atom4) |
| Constructs a StereoDescriptor instance that specifies a configuration of config for four reference atoms. More...
|
|
std::size_t | getNumReferenceAtoms () const |
| Returns the number of specified reference atoms. More...
|
|
unsigned int | getConfiguration () const |
| Returns the configuration of the reference atoms. More...
|
|
void | setConfiguration (unsigned int config) |
| Sets the configuration of the reference atoms to config. More...
|
|
const Atom *const * | getReferenceAtoms () const |
| Returns an array of pointers to the stored reference atoms. More...
|
|
StereoDescriptor & | operator= (const StereoDescriptor &descr) |
| Assignment operator. More...
|
|
bool | isValid (const Atom &atom) const |
| Tells wheter this StereoDescriptor instance is valid for the specified center atom. More...
|
|
bool | isValid (const Bond &bond) const |
| Tells wheter this StereoDescriptor instance is valid for the specified center bond. More...
|
|
unsigned int | getPermutationParity (const Atom &atom1, const Atom &atom2, const Atom &atom3) const |
| Tells if an odd or even number of atom transpositions is required to achieve the same ordering of reference and argument atoms. More...
|
|
unsigned int | getPermutationParity (const Atom &atom1, const Atom &atom2, const Atom &atom3, const Atom &atom4) const |
| Tells if an odd or even number of atom transpositions is required to achieve the same ordering of reference and argument atoms. More...
|
|
A data structure for the storage and retrieval of stereochemical information about atoms and bonds.
The stereochemistry of atoms and bonds is definded by an ordered list of reference atoms and an integer constant that describes the spatial configuration of the reference atoms. Requirements on the specification of the reference atom list and the way the associated steric configuration has to be interpreted both depend on the primary type of the stereocenter (if atom or bond) and, for atom centers, also on the number and geometric arrangement of the reference atoms. The following basic types of atom and bond stereocenters are currently supported:
- Atoms with four neighbors in tetrahedral arrangement:
The four neighbor atoms serve as reference atoms. Their steric configuration is determined by looking along the bond from the center atom (stereocenter) to the 4th reference atom. If the direction of travel from reference atom 1 over atom 2 to atom 3 is clockwise (see Fig. 1a), the configuration flag is assigned the value AtomConfiguration::R, and AtomConfiguration::S, if the reference atoms 1, 2 and 3 are arranged in counterclockwise direction (Fig. 1b).
Fig. 1a: R-Configuration
|
Fig. 1b: S-Configuration
|
- Atoms with three neighbors in pyramidal arrangement:
The neighbor atoms correspond to the first three atoms in the reference atom list. The 4th reference atom denotes the central atom. The configuration is determined by looking along the line from the center atom to a projected point (represented by a blue sphere in figure 2a and 2b) which is obtained by adding the bond vectors from each neighbor atom to the central atom. Like before, if the direction of travel from reference atom 1 over atom 2 to atom 3 is clockwise (see Fig. 2a), the configuration flag is assigned the value AtomConfiguration::R, and AtomConfiguration::S, if the reference atoms 1, 2 and 3 are arranged in a counterclockwise fashion (Fig. 2b).
Fig. 2a: R-Configuration
|
Fig. 2b: S-Configuration
|
- Non-terminal double bonds:
As shown in figure 3a and 3b, the four reference atoms form a path with three consecutive bonds where atoms 2 and 3 are part of the central double bond. Atom 1 is the connected atom of the first double bond ligand, and atom 4 the connected atom of the second ligand. If reference atoms 1 and 4 lie on the same side of the double bond (see Fig. 3a), the configuration flag is assigned the value BondConfiguration::CIS, and BondConfiguration::TRANS, if they are on opposite sides f the bond (Fig. 3b).
Fig. 3a: Cis-Configuration
|
Fig. 3b: Trans-Configuration
|
◆ StereoDescriptor() [1/4]
CDPL::Chem::StereoDescriptor::StereoDescriptor |
( |
unsigned int |
config | ) |
|
Constructs a StereoDescriptor
instance that specifies the configuration config but stores no reference atoms.
- Parameters
-
config | A constant specifying the configuration of the central atoms. |
◆ StereoDescriptor() [2/4]
CDPL::Chem::StereoDescriptor::StereoDescriptor |
( |
const StereoDescriptor & |
descr | ) |
|
Constructs a copy of the StereoDescriptor
instance descr.
- Parameters
-
descr | The StereoDescriptor instance to copy. |
◆ StereoDescriptor() [3/4]
CDPL::Chem::StereoDescriptor::StereoDescriptor |
( |
unsigned int |
config, |
|
|
const Atom & |
atom1, |
|
|
const Atom & |
atom2, |
|
|
const Atom & |
atom3 |
|
) |
| |
Constructs a StereoDescriptor
instance that specifies a configuration of config for three reference atoms.
- Parameters
-
config | A constant specifying the configuration of the reference atoms. |
atom1 | The first reference atom. |
atom2 | The second reference atom. |
atom3 | The third reference atom. |
◆ StereoDescriptor() [4/4]
CDPL::Chem::StereoDescriptor::StereoDescriptor |
( |
unsigned int |
config, |
|
|
const Atom & |
atom1, |
|
|
const Atom & |
atom2, |
|
|
const Atom & |
atom3, |
|
|
const Atom & |
atom4 |
|
) |
| |
Constructs a StereoDescriptor
instance that specifies a configuration of config for four reference atoms.
- Parameters
-
config | A flag specifying the configuration of the reference atoms. |
atom1 | The first reference atom. |
atom2 | The second reference atom. |
atom3 | The third reference atom. |
atom4 | The fourth reference atom. |
◆ getNumReferenceAtoms()
std::size_t CDPL::Chem::StereoDescriptor::getNumReferenceAtoms |
( |
| ) |
const |
Returns the number of specified reference atoms.
- Returns
- The number of specified reference atoms.
◆ getConfiguration()
unsigned int CDPL::Chem::StereoDescriptor::getConfiguration |
( |
| ) |
const |
Returns the configuration of the reference atoms.
- Returns
- A constant specifying the configuration of the reference atoms.
◆ setConfiguration()
void CDPL::Chem::StereoDescriptor::setConfiguration |
( |
unsigned int |
config | ) |
|
Sets the configuration of the reference atoms to config.
- Parameters
-
config | A constant specifying the configuration of the reference atoms. |
◆ getReferenceAtoms()
const Atom* const* CDPL::Chem::StereoDescriptor::getReferenceAtoms |
( |
| ) |
const |
Returns an array of pointers to the stored reference atoms.
- Returns
- An array of pointers to the stored reference atoms.
◆ operator=()
Assignment operator.
- Parameters
-
descr | The StereoDescriptor instance to copy. |
- Returns
- A reference to itself.
◆ isValid() [1/2]
bool CDPL::Chem::StereoDescriptor::isValid |
( |
const Atom & |
atom | ) |
const |
Tells wheter this StereoDescriptor
instance is valid for the specified center atom.
The method checks if the number of reference atoms is at least 3, the reference atoms are distinct and if every reference atom is connected to the argument atom.
- Parameters
-
atom | The stereogenic center atom. |
- Returns
true
if valid, false
otherwise.
◆ isValid() [2/2]
bool CDPL::Chem::StereoDescriptor::isValid |
( |
const Bond & |
bond | ) |
const |
Tells wheter this StereoDescriptor
instance is valid for the specified center bond.
The method checks if the number of reference atoms is 4, the reference atoms are distinct, the specified bond connects reference atoms 2 and 3 and if reference atoms 1 and 4 are connected to reference atom 2 and 3, respectively.
- Parameters
-
bond | The stereogenic center bond. |
- Returns
true
if valid, false
otherwise.
◆ getPermutationParity() [1/2]
unsigned int CDPL::Chem::StereoDescriptor::getPermutationParity |
( |
const Atom & |
atom1, |
|
|
const Atom & |
atom2, |
|
|
const Atom & |
atom3 |
|
) |
| const |
Tells if an odd or even number of atom transpositions is required to achieve the same ordering of reference and argument atoms.
- Parameters
-
atom1 | The first atom. |
atom2 | The second atom. |
atom3 | The third atom. |
- Returns
1
if an odd number of transpositions is required, 2
if an even number of transpositions is required and 0
if the argument atoms do not match the stored reference atoms.
◆ getPermutationParity() [2/2]
unsigned int CDPL::Chem::StereoDescriptor::getPermutationParity |
( |
const Atom & |
atom1, |
|
|
const Atom & |
atom2, |
|
|
const Atom & |
atom3, |
|
|
const Atom & |
atom4 |
|
) |
| const |
Tells if an odd or even number of atom transpositions is required to achieve the same ordering of reference and argument atoms.
- Parameters
-
atom1 | The first atom. |
atom2 | The second atom. |
atom3 | The third atom. |
atom4 | The fourth atom. |
- Returns
1
if an odd number of transpositions is required, 2
if an even number of transpositions is required and 0
if the argument atoms do not match the stored reference atoms.
The documentation for this class was generated from the following file: