|
Open Babel
3.0
|
#include <openbabel/stereo/tetrahedral.h>
Public Member Functions | |
| Config () | |
| Config (unsigned long _center, unsigned long from_or_towards, const OBStereo::Refs &_refs, OBStereo::Winding _winding=OBStereo::Clockwise, OBStereo::View _view=OBStereo::ViewFrom) | |
| bool | operator== (const Config &other) const |
| bool | operator!= (const Config &other) const |
Public Attributes | |
| unsigned long | from |
| unsigned long | towards |
Data members defining stereochemistry. | |
| unsigned long | center |
| union { | |
| unsigned long from | |
| unsigned long towards | |
| }; | |
| OBStereo::Refs | refs |
| OBStereo::Winding | winding |
| OBStereo::View | view |
| bool | specified |
Stereochemical configuration for tetrahedral stereocenters.
The config struct represents the stereochemistry in a well defined way. For tetrahedral stereo centers, the following data members define the special orientation of the atoms:
center: Atom id of the stereogenic center atom.from/towards: Atom id (or OBStereo::ImplicitRef) for the atom to view from/towards.refs: The three remaining atom ids (may also contain one OBStereo::NoRef element if from/towards is set to a real atom id).view: Specify the viewing from or towards the atom with from/towards id.winding: Clockwise or AntiClockwise (order in the Refs refs list)
Only center is specific for OBTetrahedralStereo::Config. The other data members occur in all OBTetraNonPlanarStereo derived classes.
|
inline |
Default constructor. Initializes the from/torards and center to OBStereo::NoRef, the winding to OBStereo::Clockwise and view to OBStereo::ViewFrom.
|
inline |
Constructor with all parameters.
| _center | The center (chiral) atom id. |
| from_or_towards | The atom id from which to view or view towards (see view). |
| _refs | The 3 reference ids. |
| _winding | The winding for the 3 ids in _refs. |
| _view | Specify viewing from or towards the atom with from_or_towards id. |
| bool operator== | ( | const Config & | other | ) | const |
Equal to operator. Comparing OBTetrahedralStereo::Config structs is done using the information stored in the struct's data members (i.e. view, winding, from/towards and refs).
There are a number of cases resuling in false being returned:
When either Config struct is unspecified (i.e. the stereochemistry implied is accidental), true is returned.
It doesn't matter if the two Config structs use the same view, same from/towards Ref or the same winding. All needed conversions will be carried out automatically (see OBTetraNonPlanerStereo::ToConfig). These conversions ensure the spacial orientation of the 4 groups remains unchanged.
Another key feature is the ability to comapre Config structs regardless of implicit (OBStereo::ImplicitRef) or explicit hydrogens. This is best illustrated with some examples. In these examples the same ref has already been selected as from/towards atom and both use the same winding and view direction. We will focus on how the three remaining refs are interpreted.
234 == 234 // true 2H4 == 234 // 3 is missing, must be the implicit --> 234 == 234 // true 2H4 == 243 // same as above, but now 234 == 243 // false 234 == H34 // 2 is missing, must be implicit --> 234 == 234 // true
By comparing the second and third example above, it can be clearly seen that the value of 1 Ref can actually be ignored. It's position in the sequence (or the winding) is defined by the two explicit Ref values.
|
inline |
Not equal to operator. This is the inverse of the Equal to operator==.
| unsigned long center |
| unsigned long from |
| unsigned long towards |
| union { ... } |
This anonymous union helps to keep code clean. Both the from and towards data members contain the same OBStereo::Ref (same memory address) but can be used interchangeably to match the context of the code. The real viewing direction is specified by the view data member.
| OBStereo::Refs refs |
The 3 reference ids.
Referenced by OBTetrahedralConfig::Convert(), OBMol::CopySubstructure(), OpenBabel::DeleteStereoOnAtom(), OpenBabel::findMetalloceneBonds(), OBSmartsMatcher::match(), OBMol::operator+=(), and OBTetrahedralConfig::operator==().
| OBStereo::Winding winding |
Referenced by OBTetrahedralConfig::Convert(), and OBSmartsMatcher::match().
| OBStereo::View view |
Specify viewing from or towards the atom with from/towards id.
Referenced by OBTetrahedralConfig::Convert(), and OBSmartsMatcher::match().
| bool specified |
True if the stereochemistry is specified. When false, the described special orientation is only accidental (i.e. unspecified).
Referenced by OpenBabel::CanonicalLabels(), OBTetrahedralConfig::Convert(), OBMol::CopySubstructure(), OBBuilder::CorrectStereoAtoms(), OpenBabel::findMetalloceneBonds(), and OBSmartsMatcher::match().
1.8.13