OBRing Class Reference
Stores information on rings in a molecule from SSSR perception. More...
#include <openbabel/ring.h>
Public Member Functions | |
| int | Size () const |
| int | PathSize () const |
| bool | IsAromatic () |
| void | SetType (char *type) |
| void | SetType (std::string &type) |
| char * | GetType () |
| unsigned int | GetRootAtom () |
| bool | IsMember (OBAtom *a) |
| bool | IsMember (OBBond *b) |
| bool | IsInRing (int i) |
| void | SetParent (OBMol *m) |
| OBMol * | GetParent () |
| bool | findCenterAndNormal (vector3 ¢er, vector3 &norm1, vector3 &norm2) |
Constructors | |
| OBRing () | |
| OBRing (std::vector< int > &path, int size) | |
| OBRing (std::vector< int > &path, OBBitVec set) | |
| OBRing (const OBRing &src) | |
| OBRing & | operator= (const OBRing &src) |
Public Attributes | |
| std::vector< int > | _path |
| OBBitVec | _pathset |
Detailed Description
Stores information on rings in a molecule from SSSR perception.Ring information beyond atom and bond membership is usually not necessary, but more information can be had about the rings in a molecule. The OBRing class is used to store the information from a Smallest Set of Smallest Rings (SSSR) perception of a molecule. The OBMol member function OBMol::GetSSSR() stores the information it perceives in a vector<OBRing*> inside the molecule. Perception is only done once for a molecule unless the connection table is modified. The following code demonstrates how to extract the SSSR information:
OBMol mol;
vector<OBRing*> vr;
vr = mol.GetSSSR();
OBRings store the atom numbers of the atoms in each of the smallest set of smallest rings in both a vector<int> and an OBBitVec. An example of how to print out the atom numbers present in all SSSR rings is show below:
vector<OBRing*>::iterator i;
vector<int>::iterator j;
vector<OBRing*> *rlist = (vector<OBRing*>*)mol.GetData("RingList");
for (i = rlist->begin();i != rlist->end();++i)
{
for(j = (*i)->_path.begin(); j != (*i)->_path.end(); ++j)
cout << *j << ' ';
cout << endl;
}
will produce something like the following output for benzene:
1 2 3 4 5 6
Ring information is automatically deleted from an OBMol when it goes out of scope or the OBMol::Clear() member function is called.
Implements blue-obelisk:findSmallestSetOfSmallestRings.
Constructor & Destructor Documentation
| OBRing | ( | ) | [inline] |
| OBRing | ( | std::vector< int > & | path, | |
| int | size | |||
| ) |
Initialize a ring from a set of atom indexes path and with size.
Member Function Documentation
| int Size | ( | ) | const [inline] |
- Returns:
- the size of this ring (i.e., how many atoms in the cycle)
Referenced by OpenBabel::CompareRingSize(), and OBRing::GetRootAtom().
| int PathSize | ( | ) | const [inline] |
| bool IsAromatic | ( | ) |
| void SetType | ( | char * | type | ) |
Set the ring type (see OBRingTyper for more).
| void SetType | ( | std::string & | type | ) |
Set the ring type (see OBRingTyper for more).
| char * GetType | ( | void | ) |
- Returns:
- the ring type
| unsigned int GetRootAtom | ( | ) |
- Returns:
- the index for the root atom. O for furan, S for thiazole, N for pyrrole. For 6 membered aromatic rings, the first non carbon atom is used for root. For 5 members rings the O, S or N (BOSum=3, valence=3) will be used for root
| bool IsMember | ( | OBAtom * | a | ) |
- Returns:
- Whether atom
ais a member of this ring
| bool IsMember | ( | OBBond * | b | ) |
| bool IsInRing | ( | int | i | ) | [inline] |
- Returns:
- Whether
ias an atom index is in this ring
Referenced by OBAromaticTyper::SelectRootAtoms().
| void SetParent | ( | OBMol * | m | ) | [inline] |
| OBMol* GetParent | ( | ) | [inline] |
- Returns:
- the parent of this ring, or NULL if none has been defined
Referenced by OBRing::GetRootAtom(), and OBRing::GetType().
Set the supplied vectors to the center of this ring, along with the normal (in both directions).
- Parameters:
-
center The center of the ring norm1 The normal of the best-fit plane for this ring norm2 -1 * norm1 (i.e., the opposite direction of norm1)
- Returns:
- True (success)
Member Data Documentation
| std::vector<int> _path |
the path of this ring (i.e., the atom indexes)
Referenced by OBRing::findCenterAndNormal(), OBRing::GetRootAtom(), OBRing::IsAromatic(), OBRing::OBRing(), OBRing::operator=(), and OBAromaticTyper::SelectRootAtoms().
the path of this ring as a redundant bit vector
Referenced by OpenBabel::FindRingAtoms(), OBRing::IsMember(), OBRing::OBRing(), and OBRing::operator=().
The documentation for this class was generated from the following files:

