Open Babel  3.0
Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
OBTetraPlanarStereo Class Referenceabstract

#include <openbabel/stereo/tetraplanar.h>

Inheritance diagram for OBTetraPlanarStereo:
OBStereoBase OBGenericData OBCisTransStereo OBSquarePlanarStereo

Public Member Functions

 OBTetraPlanarStereo (OBMol *mol)
 
virtual ~OBTetraPlanarStereo ()
 
virtual OBGenericDataClone (OBBase *) const
 
void SetAttribute (const std::string &v)
 
void SetOrigin (const DataOrigin s)
 
virtual const std::string & GetAttribute () const
 
unsigned int GetDataType () const
 
virtual const std::string & GetValue () const
 
virtual DataOrigin GetOrigin () const
 
Geniric (for all OBStereo::Type) stereochemistry
OBMolGetMolecule () const
 
virtual OBStereo::Type GetType () const =0
 
void SetSpecified (bool specified)
 
bool IsSpecified () const
 

Static Public Member Functions

template<typename ConfigType >
static ConfigType ToConfig (const ConfigType &cfg, unsigned long start, OBStereo::Shape shape=OBStereo::ShapeU)
 

Protected Attributes

std::string _attr
 
unsigned int _type
 
DataOrigin _source
 

Detailed Description

Base class for handling and storing planar stereochemistry with 4 reference atoms.

tetraplanar.png

Combinations

The four reference ids can be treated like a sequence of 4 numbers. Each element can only occur once. This means there are 4! = 24 combinations.

These are the 24 possible combinations or permutations.

1234 2134 3124 4123
1243 2143 3142 4132
1324 2314 3214 4213
1342 2341 3241 4231
1423 2413 3412 4312
1432 2431 3421 4321

Based on which reference ids are on opposite sides (180°), it is possible to divide these 24 combinations in three sets. For this it is also needed to make use of a shape to map the reference id indexes on the points in the plane. Without these shapes or a fixed meaning, these sequences have no meaning. The use of these shapes (U, Z & 4) is illustrated in the figure below:

SPshapes.png

In the figure, it can be seen the OBStereo::ShapeU implies the 1st reference id in the sequence is opposite to the 3th and the 2nd is opposite to the 4th. The same can be done for OBStereo::ShapeZ and OBStereo::Shape

Grouped by opposite reference ids using OBStereo::Shape4

1-2, 3-4 : 1234, 1243, 2134, 2143, 3412, 3421, 4312, 4321
1-3, 2-4 : 1324, 1242, 2413, 2431, 3124, 3142, 4213, 4231
1-4, 2-3 : 1423, 1432, 2314, 2341, 3214, 3241, 4123, 4132

Internally the reference ids are stored in a U shape. The OBTetraPlanarStereo::ToInternal() and OBTetraPlanarStereo::ToShape() methods convert between the internally used U shape and the other shapes.

Like all stereo classes, errors, warnings or info is reported using OBMessageHandler.

Note
U shaped ordering can also be considered circular and is the only shape that can be rotated lexicographically.
Since
version 2.3

Constructor & Destructor Documentation

◆ OBTetraPlanarStereo()

◆ ~OBTetraPlanarStereo()

virtual ~OBTetraPlanarStereo ( )
virtual

Member Function Documentation

◆ ToConfig()

static ConfigType ToConfig ( const ConfigType &  cfg,
unsigned long  start,
OBStereo::Shape  shape = OBStereo::ShapeU 
)
inlinestatic

◆ GetMolecule()

OBMol* GetMolecule ( ) const
inlineinherited

Get the molecule. This can be used by subclasses when more information is needed (e.g. OBCisTransStereo::GetCisRef, ...).

◆ GetType()

virtual OBStereo::Type GetType ( ) const
pure virtualinherited

Reimplemented by subclasses to return the type defined in OBStereo::Type.

Implemented in OBCisTransStereo, OBTetrahedralStereo, and OBSquarePlanarStereo.

◆ SetSpecified()

void SetSpecified ( bool  specified)
inlineinherited

Set whether the stereochemistry is specified. Comparing a specified OBStereoBase derived class (or it's Config struct) with an unspecified one, always returns true.

◆ IsSpecified()

bool IsSpecified ( ) const
inlineinherited
Returns
True if the stereochemistry is specified.

◆ Clone()

virtual OBGenericData* Clone ( OBBase ) const
inlinevirtualinherited

◆ SetAttribute()

void SetAttribute ( const std::string &  v)
inlineinherited

◆ SetOrigin()

void SetOrigin ( const DataOrigin  s)
inlineinherited

◆ GetAttribute()

virtual const std::string& GetAttribute ( ) const
inlinevirtualinherited
Returns
The attribute (key), which can be used to retrieve this data

Referenced by OpenBabel::extract_thermochemistry(), and OBMoleculeFormat::MakeCombinedMolecule().

◆ GetDataType()

unsigned int GetDataType ( ) const
inlineinherited
Returns
the data type for this object as defined in OBGenericDataType

◆ GetValue()

virtual const std::string& GetValue ( ) const
inlinevirtualinherited

Base class returns a default value (the attribute type) but should never be called.

Reimplemented in OBPairData, and OBCommentData.

Referenced by OBDepict::AddAtomLabels(), OBDepict::DrawMolecule(), OBDescriptor::FilterCompare(), and OBDescriptor::GetValues().

◆ GetOrigin()

virtual DataOrigin GetOrigin ( ) const
inlinevirtualinherited

Member Data Documentation

◆ _attr

std::string _attr
protectedinherited

attribute tag (e.g., "UnitCell", "Comment" or "Author")

Referenced by OBRotamerList::Clone(), and OBNasaThermoData::OBNasaThermoData().

◆ _type

unsigned int _type
protectedinherited

attribute type – declared for each subclass

Referenced by OBRotamerList::Clone(), and OBNasaThermoData::OBNasaThermoData().

◆ _source

DataOrigin _source
protectedinherited

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