#include <BALL/QSAR/ringPerceptionProcessor.h>
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 | |
RingPerceptionProcessor & | operator= (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< BitVector > | rings_ |
the SSSR detected by the algorithm | |
static std::vector< BitVector > | matrix_ |
the matrix for the independency tests | |
static std::vector< BitVector > | forwarded_rings_ |
the rings of the ith phase, which are to be forwarded to the ring selector | |
static std::vector< BitVector > | tested_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< BitVector > | all_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) |
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.
BALL::RingPerceptionProcessor::RingPerceptionProcessor | ( | ) |
Default constructor
BALL::RingPerceptionProcessor::RingPerceptionProcessor | ( | const RingPerceptionProcessor & | rp | ) |
Copy constructor
virtual BALL::RingPerceptionProcessor::~RingPerceptionProcessor | ( | ) | [virtual] |
Destructor
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.
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.
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
std::vector<BitVector> BALL::RingPerceptionProcessor::all_small_beers_ [static, protected] |
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.
HashMap<NodeItem<Index, Index>* , TNode_*> BALL::RingPerceptionProcessor::atom_to_tnode_ [static, protected] |
Definition at line 215 of file ringPerceptionProcessor.h.
std::stack<EdgeItem<Index, Index>* > BALL::RingPerceptionProcessor::BCC_ [protected] |
Definition at line 171 of file ringPerceptionProcessor.h.
HashMap<EdgeItem<Index, Index>*, Size> BALL::RingPerceptionProcessor::bond_to_index_ [static, protected] |
mapping for the path representation as bitvectors
Definition at line 218 of file ringPerceptionProcessor.h.
std::vector<BitVector> BALL::RingPerceptionProcessor::forwarded_rings_ [static, protected] |
the rings of the ith phase, which are to be forwarded to the ring selector
Definition at line 228 of file ringPerceptionProcessor.h.
HashMap<Size, EdgeItem<Index, Index>*> BALL::RingPerceptionProcessor::index_to_bond_ [static, protected] |
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.
HashMap<NodeItem<Index, Index>*, NodeItem<Index, Index>* > BALL::RingPerceptionProcessor::parents_ [protected] |
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.
HashMap<TNode_*, NodeItem<Index, Index>* > BALL::RingPerceptionProcessor::tnode_to_atom_ [static, protected] |
mapping for internal TNode structure and the nodes of the molecular graph
Definition at line 214 of file ringPerceptionProcessor.h.
HashSet<NodeItem<Index, Index>* > BALL::RingPerceptionProcessor::visited_ [protected] |
Definition at line 167 of file ringPerceptionProcessor.h.
HashSet<EdgeItem<Index, Index>* > BALL::RingPerceptionProcessor::visited_bonds_ [protected] |
Definition at line 168 of file ringPerceptionProcessor.h.