Methods for the analysis of the structure of ringsystems. More...
#include <BALL/STRUCTURE/ringAnalyser.h>

Classes | |
| class | Ring |
Public Types | |
| enum | RingType { NONE, TEMPLATE, FUSED, BRIDGED, SPIRO, CORE } |
Public Member Functions | |
| void | clear () |
| bool | isInRing (const Atom *atom, std::vector< Atom * > const &ring) const |
| helper-function; determines, whether an atom is part of a certain ring | |
| bool | isInRingSystem (const Atom *atom, Index i) const |
| helper-function; determines, whether an atom is part of a certain ring | |
| void | sequenceRing (std::vector< Atom * > &ring) |
| Size | getNumberOfRingSystems () |
| std::vector< Ring > | getRingSystem (Position i) |
| std::vector< Position > | getPeelingOrder (Position i) |
Constructors and destructors. | |
| RingAnalyser () | |
| Default-Constructor. | |
| virtual | ~RingAnalyser () |
| Destructor. | |
Processor-related methods | |
| virtual bool | start () |
| Processor method which is called before the operator()-call. | |
| virtual Processor::Result | operator() (AtomContainer &ac) |
| virtual bool | finish () |
| Processor method which is called after the operator()-call. | |
Protected Member Functions | |
| void | clusterRings_ () |
| performs an agglomerative clustering of single rings to ringsystems | |
| void | findSharedBonds_ () |
| void | peelRings_ () |
| performs an analysis of the structure of a ringsystem | |
| bool | isCentralRing_ (std::list< Position >::iterator ring, std::list< Position > &unassigned_rings) |
| bool | peelNextRing_ (std::list< Position > &unassigned_rings, bool peel_fused=false) |
| bool | assignRTD_ (std::list< Position > &trial_system) |
| interface for a Ring Template Database (RTD), no functionality yet | |
Protected Attributes | |
| std::vector< Ring > | rings_ |
| the smallest set of smallest rings of our molecule | |
| std::vector< std::vector < Position > > | ring_systems_ |
| the ring systems, stored as indices into the smallest set of smallest rings | |
| HashMap< Bond const *, std::deque< Position > > | rings_per_bond_ |
| the ring memberships per bond | |
| std::vector< std::vector < Position > > | peeling_order_ |
| the order in which rings are peeled from their respective ring systems | |
Methods for the analysis of the structure of ringsystems.
Definition at line 36 of file ringAnalyser.h.
Definition at line 41 of file ringAnalyser.h.
| BALL::RingAnalyser::RingAnalyser | ( | ) |
Default-Constructor.
| virtual BALL::RingAnalyser::~RingAnalyser | ( | ) | [virtual] |
Destructor.
interface for a Ring Template Database (RTD), no functionality yet
| void BALL::RingAnalyser::clear | ( | ) |
Clears the datastructures. NOTE: The options remain! Use setDefaultOptions() to clear the options.
| void BALL::RingAnalyser::clusterRings_ | ( | ) | [protected] |
performs an agglomerative clustering of single rings to ringsystems
| void BALL::RingAnalyser::findSharedBonds_ | ( | ) | [protected] |
Find the bonds shared between rings in the sssr Precondition: the rings must be sorted such that a_i, a_i+1 share a bond (and a_size-1, a_0)
| virtual bool BALL::RingAnalyser::finish | ( | ) | [virtual] |
Processor method which is called after the operator()-call.
Reimplemented from BALL::UnaryProcessor< AtomContainer >.
| Size BALL::RingAnalyser::getNumberOfRingSystems | ( | ) |
Return the number of ring systems.
Returns the peeling order for the i-th ring system.
| bool BALL::RingAnalyser::isCentralRing_ | ( | std::list< Position >::iterator | ring, | |
| std::list< Position > & | unassigned_rings | |||
| ) | [protected] |
helper-function; determines, whether an atom is part of a certain ring
| atom | the atom | |
| ring | the ring |
helper-function; determines, whether an atom is part of a certain ring
| atom | the atom | |
| i | the index of the ring system to test |
| virtual Processor::Result BALL::RingAnalyser::operator() | ( | AtomContainer & | ac | ) | [virtual] |
Operator () for the processor
| ac | the AtomContainer to which the processor is applied. |
Reimplemented from BALL::UnaryProcessor< AtomContainer >.
| bool BALL::RingAnalyser::peelNextRing_ | ( | std::list< Position > & | unassigned_rings, | |
| bool | peel_fused = false | |||
| ) | [protected] |
| void BALL::RingAnalyser::peelRings_ | ( | ) | [protected] |
performs an analysis of the structure of a ringsystem
| void BALL::RingAnalyser::sequenceRing | ( | std::vector< Atom * > & | ring | ) |
Puts the Atoms in the input ring into the correct order
After calling this function, for i, i+1 it holds that atom i is bonded to atom i+1, and that the last is bonded to the first entry
| ring | the input ring to sequence |
| virtual bool BALL::RingAnalyser::start | ( | ) | [virtual] |
Processor method which is called before the operator()-call.
Reimplemented from BALL::UnaryProcessor< AtomContainer >.
std::vector<std::vector<Position> > BALL::RingAnalyser::peeling_order_ [protected] |
the order in which rings are peeled from their respective ring systems
Definition at line 192 of file ringAnalyser.h.
std::vector<std::vector<Position> > BALL::RingAnalyser::ring_systems_ [protected] |
the ring systems, stored as indices into the smallest set of smallest rings
Definition at line 186 of file ringAnalyser.h.
std::vector<Ring> BALL::RingAnalyser::rings_ [protected] |
the smallest set of smallest rings of our molecule
Definition at line 183 of file ringAnalyser.h.
HashMap<Bond const*, std::deque<Position> > BALL::RingAnalyser::rings_per_bond_ [protected] |
the ring memberships per bond
Definition at line 189 of file ringAnalyser.h.
1.6.3