#include <GraphScaffold.hh>
Data Structures | |
class | RR_Annotation |
Public Types | |
typedef std::set< std::pair < size_t, size_t > > | BondSet |
typedef std::vector< ScaffoldType > | ScaffoldAnnotation |
assignment of scaffold types for each node index More... | |
enum | ScaffoldType { GST_UNKNOWN, GST_RING, GST_LINKER, GST_DANGLING } |
possible scaffold types of graph nodes More... | |
Public Member Functions | |
size_t | findRingBonds (const Graph_Interface &graph, BondSet &ringBonds, const size_t maxRingSize=std::numeric_limits< size_t >::max()) |
size_t | findRings (const Graph_Interface &graph, RingReporter &reporter, const size_t maxRingSize=std::numeric_limits< size_t >::max()) |
ScaffoldAnnotation | getScaffoldAnnotation (const Graph_Interface &graph, const size_t maxRingSize=std::numeric_limits< size_t >::max()) |
ScaffoldAnnotation | getScaffoldAnnotation (const Graph_Interface &graph, RingReporter &reporter, const size_t maxRingSize=std::numeric_limits< size_t >::max()) |
GraphScaffold () | |
construction More... | |
virtual | ~GraphScaffold () |
destruction More... | |
Protected Types | |
typedef boost::property < boost::edge_name_t, RingInfo > | Graph_EdgeProperties |
The properties available for the edges of the P-graph. More... | |
typedef boost::property < boost::vertex_index_t, size_t > | Graph_NodeProperties |
The properties available for the nodes of the P-graph. More... | |
typedef boost::adjacency_list < boost::multisetS, boost::vecS, boost::undirectedS, Graph_NodeProperties, Graph_EdgeProperties > | P_Graph |
the P-graph type that is used to detect all rings More... | |
Protected Member Functions | |
ScaffoldAnnotation | getScaffoldAnnotation (const Graph_Interface &graph, RingReporter *reporter, const size_t maxRingSize) |
size_t | initializeP_Graph (const Graph_Interface &graph, RingReporter &reporter) |
size_t | remove_vertex (const size_t nextToRemove, const Graph_Interface &graph, RingReporter &reporter, const size_t maxRingSize) |
Protected Attributes | |
P_Graph | pGraph |
the P-graph to be compressed during the ring perception More... | |
std::vector< size_t > | pGraphDegree |
the degree of each node in pGraph More... | |
boost::property_map< P_Graph, boost::vertex_index_t >::type | pGraphIndex |
the index access for pGraph More... | |
boost::property_map< P_Graph, boost::edge_name_t >::type | pGraphPath |
the edge label access for pGraph, i.e. the according RingList More... | |
std::vector< size_t > | toRemove |
the nodes to be removed during the ring perception from pGraph More... | |
Computes the scaffold annotation of each node, ie. whether it is part of a ring, a ring linker, or a dangling end (side chain).
See The Properties of Known Drugs. 1. Molecular Frameworks Guy W. Bemis and Mark A. Murcko J. Med. Chem. 1996, 39, 2887-2893
Definition at line 23 of file GraphScaffold.hh.
|
inherited |
Definition at line 31 of file RP_Hanser96.hh.
|
protectedinherited |
Definition at line 88 of file RP_Hanser96.hh.
|
protectedinherited |
Definition at line 84 of file RP_Hanser96.hh.
|
protectedinherited |
Definition at line 98 of file RP_Hanser96.hh.
typedef std::vector< ScaffoldType > sgm::GraphScaffold::ScaffoldAnnotation |
Definition at line 36 of file GraphScaffold.hh.
Definition at line 28 of file GraphScaffold.hh.
sgm::GraphScaffold::GraphScaffold | ( | ) |
|
virtual |
|
inherited |
Identifies all bonds participating in rings and stores the according vertex index pairs in the provided container.
graph | the graph to search for ring bonds |
ringBonds | OUT : the container to fill with the ring bonds. NOTE: the container is cleared at the beginning of the call. |
maxRingSize | the maximal size of rings to consider |
|
virtualinherited |
Finds ALL rings within the given graph and reports each found ring to the assigned reporter. The enumeration can be restricted to rings up to a given ring size, ie. number of nodes per ring.
graph | the graph to be analyzed |
reporter | the RingReporter to report all found rings to |
maxRingSize | the maximal size of rings to report |
Implements sgm::RingPerception.
ScaffoldAnnotation sgm::GraphScaffold::getScaffoldAnnotation | ( | const Graph_Interface & | graph, |
const size_t | maxRingSize = std::numeric_limits< size_t >::max() |
||
) |
Identifies the scaffold type for each node in the graph and returns the according scaffold annotation.
graph | the graph to annotate |
maxRingSize | the maximal size of rings to consider |
ScaffoldAnnotation sgm::GraphScaffold::getScaffoldAnnotation | ( | const Graph_Interface & | graph, |
RingReporter & | reporter, | ||
const size_t | maxRingSize = std::numeric_limits< size_t >::max() |
||
) |
Identifies the scaffold type for each node in the graph and returns the according scaffold annotation.
graph | the graph to annotate |
reporter | the ring reporter to forward all rings to |
maxRingSize | the maximal size of rings to consider |
|
protected |
Identifies the scaffold type for each node in the graph and returns the according scaffold annotation.
graph | the graph to annotate |
reporter | the ring reporter to forward all rings to (can be NULL such that no reporting is done) |
maxRingSize | the maximal size of rings to consider |
|
protectedinherited |
Initializes the pGraph member with the given graph. If direct loops are found, these are directly reported and counted.
graph | the graph to be encoded in the pGraph member |
reporter | the RingReporter to report all rings to |
|
protectedinherited |
Virtually removes the vertex nextToRemove from the pGraph and reports all found rings to the given reporter. The removal is only virtual, since the node remains within the pGraph but all adjacent edges are removed, i.e. it is not accessible anymore in later iterations. This is to ease the maintenance of the temporary data structures.
nextToRemove | the index of the vertex to be removed |
graph | the graph searched (needed for ring report) |
reporter | the RingReporter to report all rings to |
maxRingSize | the maximal ring size to consider |
|
protectedinherited |
Definition at line 103 of file RP_Hanser96.hh.
|
protectedinherited |
Definition at line 111 of file RP_Hanser96.hh.
|
protectedinherited |
Definition at line 106 of file RP_Hanser96.hh.
|
protectedinherited |
Definition at line 108 of file RP_Hanser96.hh.
|
protectedinherited |
Definition at line 113 of file RP_Hanser96.hh.