Main Page | Modules | Namespace List | Class Hierarchy | Class List | Namespace Members | Class Members

RingPerceptionProcessor Class Reference

Processor, which marks all atoms and bonds in a ring structure with the Composite Property "InRing". More...

#include <ringPerceptionProcessor.h>

Inheritance diagram for RingPerceptionProcessor:

UnaryProcessor< AtomContainer > UnaryFunctor< AtomContainer, Processor::Result > List of all members.

[NOHEADER]

Size FiguerasAlgorithm_ (vector< vector< Atom * > > &sssr, AtomContainer &ac)
Size getRing_ (Atom *n, HashSet< Atom * > &ring_set)
void checkEdges_ (HashSet< Atom * > &ring_set, AtomContainer &ac)
Size findAllBCC_ (std::vector< MolecularGraph * > &bcc, MolecularGraph &graph)
void DFSBCC_ (std::vector< MolecularGraph * > &bccs, Size dfbi, HashMap< NodeItem< Index, Index > *, Size > DFBIndex, NodeItem< Index, Index > *v)
Size BalducciPearlmanAlgorithm_ (std::vector< std::vector< Atom * > > &sssr, MolecularGraph &graph)
HashSet< NodeItem< Index,
Index > * > 
visited_
HashSet< EdgeItem< Index,
Index > * > 
visited_bonds_
HashMap< NodeItem< Index,
Index > *, Size
P_
HashMap< NodeItem< Index,
Index > *, NodeItem< Index,
Index > * > 
parents_
std::stack< EdgeItem< Index,
Index > * > 
BCC_
void BalducciPearlmanRingSelector_ (BitVector bit_vector)
HashMap< TNode_ *, NodeItem<
Index, Index > * > 
tnode_to_atom_
 mapping for internal TNode structure and the nodes of the molecular graph
HashMap< NodeItem< Index,
Index > *, TNode_ * > 
atom_to_tnode_
HashMap< EdgeItem< Index,
Index > *, Size
bond_to_index_
 mapping for the path representation as bitvectors
HashMap< Size, EdgeItem< Index,
Index > * > 
index_to_bond_
std::vector< BitVectorrings_
 the SSSR detected by the algorithm
std::vector< BitVectormatrix_
 the matrix for the independency tests
std::vector< BitVectorforwarded_rings_
 the rings of the ith phase, which are to be forwarded to the ring selector
std::vector< BitVectortested_beers_
 rings (beer) which have already been tested
std::vector< std::vector<
Atom * > > 
all_small_rings_
 contains all 3 to 6 membered rings after the procedure of the Balducci-Pearlman algorithm
std::vector< BitVectorall_small_beers_
 contains all 3 to 6 membered rings as beers

Public Member Functions

const vector< vector< Atom * > > & getAllSmallRings () const
 Getter which returns all the 3 - 6 membered rings, calculateSSSR with the Balducci-Pearlman Algorithm (defalt) is needed prior this call.
Size findAllBCC (std::vector< MolecularGraph * > &bcc, MolecularGraph &graph)
 Method that finds all biconnected components, the algorithm is freely adapted from a standard bcc (binary connected components) algorithm.
void setDefaultOptions ()
 sets the default options of this processor
Constrcutors and Destructors
 RingPerceptionProcessor ()
 Default constructor.
 RingPerceptionProcessor (const RingPerceptionProcessor &rp)
 Copy constructor.
virtual ~RingPerceptionProcessor ()
 Destructor.
Assignment
RingPerceptionProcessoroperator= (const RingPerceptionProcessor &rp)
 Assignment operator.
Accessors
Size calculateSSSR (vector< vector< Atom * > > &sssr, AtomContainer &ac)
 Method to get a smallest set of smallest rings (SSSR) from a molecule.
Processor-related methods
Processor::Result operator() (AtomContainer &ac)
 operator ()

Public Attributes

Options options

Detailed Description

Processor, which marks all atoms and bonds in a ring structure with the Composite Property "InRing".

calculateSSSR() can also compute the number of rings found.

The processor is an implementation of Figueras algorithm, described in: J. Figueras, J. Chem. Inf. Comput. Sci., 1996, 36(5), 986-991

and the Balducci Pearlman algorithm described in: Renzo Balducci, Robert S. Pearlman, J. Chem. Inf. Comput. Sci., 34:822-831, 1994


Member Function Documentation

Size RingPerceptionProcessor::calculateSSSR vector< vector< Atom * > > &  sssr,
AtomContainer ac
 

Method to get a smallest set of smallest rings (SSSR) from a molecule.

Parameters:
SSSR,vector of rings, where the rings are stored in vector<Atom*>
AtomContiner,from which AtomContainer the rings are to be percepted

Size RingPerceptionProcessor::findAllBCC std::vector< MolecularGraph * > &  bcc,
MolecularGraph &  graph
 

Method that finds all biconnected components, the algorithm is freely adapted from a standard bcc (binary connected components) algorithm.

Returns the number of bccs found.

const vector<vector<Atom*> >& RingPerceptionProcessor::getAllSmallRings  )  const
 

Getter which returns all the 3 - 6 membered rings, calculateSSSR with the Balducci-Pearlman Algorithm (defalt) is needed prior this call.