BALL::RingAnalyser Class Reference

Methods for the analysis of the structure of ringsystems. More...

#include <BALL/STRUCTURE/ringAnalyser.h>

Inheritance diagram for BALL::RingAnalyser:
Inheritance graph
[legend]

List of all members.

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< RinggetRingSystem (Position i)
std::vector< PositiongetPeelingOrder (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< Ringrings_
 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

Detailed Description

Methods for the analysis of the structure of ringsystems.

Definition at line 36 of file ringAnalyser.h.


Member Enumeration Documentation

Enumerator:
NONE 
TEMPLATE 
FUSED 
BRIDGED 
SPIRO 
CORE 

Definition at line 41 of file ringAnalyser.h.


Constructor & Destructor Documentation

BALL::RingAnalyser::RingAnalyser (  ) 

Default-Constructor.

virtual BALL::RingAnalyser::~RingAnalyser (  )  [virtual]

Destructor.


Member Function Documentation

bool BALL::RingAnalyser::assignRTD_ ( std::list< Position > &  trial_system  )  [protected]

interface for a Ring Template Database (RTD), no functionality yet

Returns:
always returns false by now
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.

std::vector<Position> BALL::RingAnalyser::getPeelingOrder ( Position  i  ) 

Returns the peeling order for the i-th ring system.

std::vector<Ring> BALL::RingAnalyser::getRingSystem ( Position  i  ) 

Returns the i-th ring system.

bool BALL::RingAnalyser::isCentralRing_ ( std::list< Position >::iterator  ring,
std::list< Position > &  unassigned_rings 
) [protected]
bool BALL::RingAnalyser::isInRing ( const Atom atom,
std::vector< Atom * > const &  ring 
) const

helper-function; determines, whether an atom is part of a certain ring

Parameters:
atom the atom
ring the ring
Returns:
true, if the atom is part of the ring, otherwise returns false
bool BALL::RingAnalyser::isInRingSystem ( const Atom atom,
Index  i 
) const

helper-function; determines, whether an atom is part of a certain ring

Parameters:
atom the atom
i the index of the ring system to test
Returns:
true, if the atom is part of the ring system, otherwise returns false
virtual Processor::Result BALL::RingAnalyser::operator() ( AtomContainer ac  )  [virtual]

Operator () for the processor

Parameters:
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

Parameters:
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 >.


Member Data Documentation

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.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines
Generated by  doxygen 1.6.3