class OE2DRingDictionary

This class represents OE2DRingDictionary that stores ring system layouts i.e. templates that can be plugged into the 2D coordinate generation system.

See also

The following OEChem TK examples illustrate how to create and utilize user-defined ring layouts:

The following OEDepict TK example shows how to generate a multi-page PDF report of user-defined ring layouts:


OE2DRingDictionary(oemolistream &ims)
OE2DRingDictionary(const std::string &filename)

Constructors that need documenting.


unsigned int AddRings(const OEMolBase &mol)

Returns the number of ring systems extracted from the given molecule and adds them to the dictionary.


The molecule with 2D coordinates.

All ring systems of the given molecule are enumerated and added to the ring dictionary by applying the following rules:

  • A ring system will be added to the dictionary even if a corresponding layout already exists in the built-in ring dictionary i.e. user-defined layout will higher priority.
  • If a ring system has specified cis/trans bond stereo configuration then two layouts could be added to the ring dictionary: one with the cis/trans bond stereo configuration and one pure carbon skeleton framework without any bond stereo configuration.
  • If a ring system already exists in the given dictionary then the new ring template will be ignored i.e first-come first-register.


unsigned int NumRings() const

Returns the numer of rings stored in the dictionary.