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.