Loading...
Searching...
No Matches
BALL::RingAnalyser Class Reference

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

`#include <BALL/STRUCTURE/ringAnalyser.h>`

Inheritance diagram for BALL::RingAnalyser:

## Classes

class | Ring

## Public Types

enum | RingType { NONE , TEMPLATE , FUSED , BRIDGED , SPIRO , CORE }
Public Types inherited from BALL::UnaryFunctor< ArgumentType, ResultType >
typedef ResultType | result_type
typedef ArgumentType | argument_type
typedef ArgumentType & | argument_reference
typedef const ArgumentType & | const_argument_reference
typedef ArgumentType * | argument_pointer
typedef const ArgumentType * | const_argument_pointer

## Public Member Functions

Constructors and destructors.
| RingAnalyser ()
| Default-Constructor.
virtual | ~RingAnalyser ()
| Destructor.
Public Member Functions inherited from BALL::UnaryProcessor< AtomContainer >
| UnaryProcessor ()
| UnaryProcessor (const UnaryProcessor &)
virtual | ~UnaryProcessor ()

## Processor-related methods

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
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.
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)
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

## Detailed Description

Methods for the analysis of the structure of ringsystems.

Definition at line 36 of file ringAnalyser.h.

## Member Enumeration Documentation

## RingType

enum BALL::RingAnalyser::RingType

Enumerator
NONE |
TEMPLATE |
FUSED |
BRIDGED |
SPIRO |
CORE |

Definition at line 41 of file ringAnalyser.h.

## Constructor & Destructor Documentation

## RingAnalyser()

BALL::RingAnalyser::RingAnalyser | ( |  | ) |

Default-Constructor.

## ~RingAnalyser()

virtual BALL::RingAnalyser::~RingAnalyser | ( |  | ) |

virtual

Destructor.

## Member Function Documentation

## assignRTD_()

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

## clear()

void BALL::RingAnalyser::clear | ( |  | ) |

Clears the datastructures. NOTE: The options remain! Use setDefaultOptions() to clear the options.

## clusterRings_()

void BALL::RingAnalyser::clusterRings_ | ( |  | ) |

protected

performs an agglomerative clustering of single rings to ringsystems

## findSharedBonds_()

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)

## finish()

virtual bool BALL::RingAnalyser::finish | ( |  | ) |

virtual

Processor method which is called after the operator()-call.

Reimplemented from BALL::UnaryProcessor< AtomContainer >.

## getNumberOfRingSystems()

Size BALL::RingAnalyser::getNumberOfRingSystems | ( |  | ) |

Return the number of ring systems.

## getPeelingOrder()

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

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

## getRingSystem()

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

Returns the i-th ring system.

## isCentralRing_()

bool BALL::RingAnalyser::isCentralRing_ | ( | std::list< Position >::iterator | ring,
|  | std::list< Position > & | unassigned_rings )

protected

## isInRing()

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

## isInRingSystem()

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

## operator()()

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

## peelNextRing_()

bool BALL::RingAnalyser::peelNextRing_ | ( | std::list< Position > & | unassigned_rings,
|  | bool | peel_fused = false )

protected

## peelRings_()

void BALL::RingAnalyser::peelRings_ | ( |  | ) |

protected

performs an analysis of the structure of a ringsystem

## sequenceRing()

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

## start()

virtual bool BALL::RingAnalyser::start | ( |  | ) |

virtual

Processor method which is called before the operator()-call.

Reimplemented from BALL::UnaryProcessor< AtomContainer >.

## Member Data Documentation

## peeling_order_

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.

## ring_systems_

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.

## rings_

std::vector<Ring> BALL::RingAnalyser::rings_

protected

the smallest set of smallest rings of our molecule

Definition at line 183 of file ringAnalyser.h.

## rings_per_bond_

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.