Chemical Data Processing Library C++ API - Version 1.2.0
Public Member Functions | List of all members
CDPL::Chem::StereoDescriptor Class Reference

A data structure for the storage and retrieval of stereochemical information about atoms and bonds. More...

#include <StereoDescriptor.hpp>

Public Member Functions

 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...
 
StereoDescriptoroperator= (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...
 

Detailed Description

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:

Fig. 1a: R-Configuration
Fig. 1b: S-Configuration
Fig. 2a: R-Configuration
Fig. 2b: S-Configuration
Fig. 3a: Cis-Configuration
Fig. 3b: Trans-Configuration

Constructor & Destructor Documentation

◆ 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
configA 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
descrThe 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
configA constant specifying the configuration of the reference atoms.
atom1The first reference atom.
atom2The second reference atom.
atom3The 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
configA flag specifying the configuration of the reference atoms.
atom1The first reference atom.
atom2The second reference atom.
atom3The third reference atom.
atom4The fourth reference atom.

Member Function Documentation

◆ 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
configA 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=()

StereoDescriptor& CDPL::Chem::StereoDescriptor::operator= ( const StereoDescriptor descr)

Assignment operator.

Parameters
descrThe 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
atomThe 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
bondThe 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
atom1The first atom.
atom2The second atom.
atom3The 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
atom1The first atom.
atom2The second atom.
atom3The third atom.
atom4The 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: