BALL::RingPerceptionProcessor Class Reference

#include <BALL/QSAR/ringPerceptionProcessor.h>

Inheritance diagram for BALL::RingPerceptionProcessor:
BALL::UnaryProcessor< AtomContainer > BALL::UnaryFunctor< AtomContainer, Processor::Result >

List of all members.


Classes

struct  Default
 

default options for the ring perception

More...
struct  Option
 

Option names.

More...
struct  PathMessage_
struct  TNode_

Public Member Functions

const vector< vector< Atom * > > & getAllSmallRings () const
Size findAllBCC (std::vector< MolecularGraph * > &bcc, MolecularGraph &graph)
void setDefaultOptions ()
Constrcutors and Destructors
 RingPerceptionProcessor ()
 RingPerceptionProcessor (const RingPerceptionProcessor &rp)
virtual ~RingPerceptionProcessor ()
Assignment
RingPerceptionProcessoroperator= (const RingPerceptionProcessor &rp)
Accessors
Size calculateSSSR (vector< vector< Atom * > > &sssr, AtomContainer &ac)
Processor-related methods
Processor::Result operator() (AtomContainer &ac)

Public Attributes

Options options
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_
static HashMap< TNode_
*, NodeItem< Index, Index > * > 
tnode_to_atom_
 

mapping for internal TNode structure and the nodes of the molecular graph


static HashMap< NodeItem
< Index, Index > *, TNode_ * > 
atom_to_tnode_
static HashMap< EdgeItem
< Index, Index > *, Size
bond_to_index_
 

mapping for the path representation as bitvectors


static HashMap< Size, EdgeItem
< Index, Index > * > 
index_to_bond_
static std::vector< BitVectorrings_
 

the SSSR detected by the algorithm


static std::vector< BitVectormatrix_
 

the matrix for the independency tests


static std::vector< BitVectorforwarded_rings_
 

the rings of the ith phase, which are to be forwarded to the ring selector


static std::vector< BitVectortested_beers_
 

rings (beer) which have already been tested


static std::vector
< std::vector< Atom * > > 
all_small_rings_
 

contains all 3 to 6 membered rings after the procedure of the Balducci-Pearlman algorithm


static std::vector< BitVectorall_small_beers_
 

contains all 3 to 6 membered rings as beers


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)
static void BalducciPearlmanRingSelector_ (BitVector bit_vector)

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

Definition at line 37 of file ringPerceptionProcessor.h.


Constructor & Destructor Documentation

BALL::RingPerceptionProcessor::RingPerceptionProcessor (  ) 

Default constructor

BALL::RingPerceptionProcessor::RingPerceptionProcessor ( const RingPerceptionProcessor rp  ) 

Copy constructor

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

Destructor


Member Function Documentation

Size BALL::RingPerceptionProcessor::BalducciPearlmanAlgorithm_ ( std::vector< std::vector< Atom * > > &  sssr,
MolecularGraph graph 
) [protected]
static void BALL::RingPerceptionProcessor::BalducciPearlmanRingSelector_ ( BitVector  bit_vector  )  [static, protected]
Size BALL::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
void BALL::RingPerceptionProcessor::checkEdges_ ( HashSet< Atom * > &  ring_set,
AtomContainer ac 
) [protected]
void BALL::RingPerceptionProcessor::DFSBCC_ ( std::vector< MolecularGraph * > &  bccs,
Size  dfbi,
HashMap< NodeItem< Index, Index > *, Size DFBIndex,
NodeItem< Index, Index > *  v 
) [protected]
Size BALL::RingPerceptionProcessor::FiguerasAlgorithm_ ( vector< vector< Atom * > > &  sssr,
AtomContainer ac 
) [protected]
Size BALL::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.

Size BALL::RingPerceptionProcessor::findAllBCC_ ( std::vector< MolecularGraph * > &  bcc,
MolecularGraph graph 
) [protected]
const vector<vector<Atom*> >& BALL::RingPerceptionProcessor::getAllSmallRings (  )  const

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

Size BALL::RingPerceptionProcessor::getRing_ ( Atom n,
HashSet< Atom * > &  ring_set 
) [protected]
Processor::Result BALL::RingPerceptionProcessor::operator() ( AtomContainer  )  [virtual]

operator ()

Reimplemented from BALL::UnaryProcessor< AtomContainer >.

RingPerceptionProcessor& BALL::RingPerceptionProcessor::operator= ( const RingPerceptionProcessor rp  ) 

Assignment operator

void BALL::RingPerceptionProcessor::setDefaultOptions (  ) 

sets the default options of this processor


Member Data Documentation

contains all 3 to 6 membered rings as beers

Definition at line 237 of file ringPerceptionProcessor.h.

std::vector<std::vector<Atom*> > BALL::RingPerceptionProcessor::all_small_rings_ [static, protected]

contains all 3 to 6 membered rings after the procedure of the Balducci-Pearlman algorithm

Definition at line 234 of file ringPerceptionProcessor.h.

Definition at line 215 of file ringPerceptionProcessor.h.

Definition at line 171 of file ringPerceptionProcessor.h.

mapping for the path representation as bitvectors

Definition at line 218 of file ringPerceptionProcessor.h.

the rings of the ith phase, which are to be forwarded to the ring selector

Definition at line 228 of file ringPerceptionProcessor.h.

Definition at line 219 of file ringPerceptionProcessor.h.

std::vector<BitVector> BALL::RingPerceptionProcessor::matrix_ [static, protected]

the matrix for the independency tests

Definition at line 225 of file ringPerceptionProcessor.h.

Definition at line 126 of file ringPerceptionProcessor.h.

Definition at line 169 of file ringPerceptionProcessor.h.

Definition at line 170 of file ringPerceptionProcessor.h.

std::vector<BitVector> BALL::RingPerceptionProcessor::rings_ [static, protected]

the SSSR detected by the algorithm

Definition at line 222 of file ringPerceptionProcessor.h.

std::vector<BitVector> BALL::RingPerceptionProcessor::tested_beers_ [static, protected]

rings (beer) which have already been tested

Definition at line 231 of file ringPerceptionProcessor.h.

mapping for internal TNode structure and the nodes of the molecular graph

Definition at line 214 of file ringPerceptionProcessor.h.

Definition at line 167 of file ringPerceptionProcessor.h.

Definition at line 168 of file ringPerceptionProcessor.h.


Generated on Tue Dec 7 19:12:55 2010 for BALL by  doxygen 1.5.9