Go to the documentation of this file.
7 #ifndef BALL_QSAR_RINGPERCEPTIONPROCESSOR_H
8 #define BALL_QSAR_RINGPERCEPTIONPROCESSOR_H
10 #ifndef BALL_KERNEL_ATOMCONTAINER_H
14 #ifndef BALL_STRUCTURE_SIMPLEMOLECULARGRAPH_H
18 #ifndef BALL_DATATYPE_OPTIONS_H
82 const vector<vector<
Atom*> >& getAllSmallRings() const;
189 message_ =
"\nCould not find a valid set of smallest rings for an input molecule.\n\n";
190 message_+=
"Either the input molecule was not valid (e.g.: not a single connected component)\n";
191 message_+=
"or the algorithm failed on this special topology.";
200 #endif // BALL_QSAR_RINGPERCEPTIONPROCESSOR_H
static HashMap< EdgeItem< Index, Index > *, Size > bond_to_index_
mapping for the path representation as bitvectors
bool haveZeroIntersection(BitVector &beep1, BitVector &beep2)
std::vector< PathMessage_ > send_buffer
the send buffer, where messages are stored in
HashMap class based on the STL map (containing serveral convenience functions)
void recieve()
method to process the messages in the recieve buffer
static HashMap< TNode_ *, NodeItem< Index, Index > * > tnode_to_atom_
mapping for internal TNode structure and the nodes of the molecular graph
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 > rings_
the SSSR detected by the algorithm
EdgeItem< Index, Index > * efirst
pointer to the first edge of the message path
RingProcessorException(const char *file, int line)
void push(EdgeItem< Index, Index > *bond, TNode_ *node)
void send()
method to process the messages in the send buffer
static std::vector< BitVector > all_small_beers_
contains all 3 to 6 membered rings as beers
static std::vector< BitVector > matrix_
the matrix for the independency tests
static std::vector< BitVector > tested_beers_
rings (beer) which have already been tested
BALL_EXPORT GlobalExceptionHandler globalHandler
static void setMessage(const String &message)
Set the error message.
Size BalducciPearlmanAlgorithm_(std::vector< std::vector< Atom * > > &sssr, SimpleMolecularGraph &graph)
bool nodeIsNew(BitVector &beep, NodeItem< Index, Index > *node)
#define BALL_CREATE(name)
bool haveSingleIntersection(BitVector &beep1, BitVector &beep2)
std::vector< PathMessage_ > recieve_buffer
the recieve buffer, where messages are stored in
static HashMap< NodeItem< Index, Index > *, TNode_ * > atom_to_tnode_
static void BalducciPearlmanRingSelector_(BitVector bit_vector)
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 HashMap< Size, EdgeItem< Index, Index > * > index_to_bond_
TNode_ * nfirst
pointer to the first node this message was sent from