RDKit
Open-source cheminformatics and machine learning.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Subgraphs.h File Reference

functionality for finding subgraphs and paths in molecules More...

#include <vector>
#include <list>
#include <map>

Go to the source code of this file.

Namespaces

 RDKit
 Includes a bunch of functionality for handling Atom and Bond queries.
 

Typedefs

typedef std::vector< int > RDKit::PATH_TYPE
 
typedef std::list< PATH_TYPE > RDKit::PATH_LIST
 
typedef PATH_LIST::const_iterator RDKit::PATH_LIST_CI
 
typedef std::map< int, PATH_LIST > RDKit::INT_PATH_LIST_MAP
 
typedef
INT_PATH_LIST_MAP::const_iterator 
RDKit::INT_PATH_LIST_MAP_CI
 
typedef INT_PATH_LIST_MAP::iterator RDKit::INT_PATH_LIST_MAP_I
 

Functions

INT_PATH_LIST_MAP RDKit::findAllSubgraphsOfLengthsMtoN (const ROMol &mol, unsigned int lowerLen, unsigned int upperLen, bool useHs=false, int rootedAtAtom=-1)
 find all bond subgraphs in a range of sizes More...
 
PATH_LIST RDKit::findAllSubgraphsOfLengthN (const ROMol &mol, unsigned int targetLen, bool useHs=false, int rootedAtAtom=-1)
 find all bond subgraphs of a particular size More...
 
PATH_LIST RDKit::findUniqueSubgraphsOfLengthN (const ROMol &mol, unsigned int targetLen, bool useHs=false, bool useBO=true, int rootedAtAtom=-1)
 find unique bond subgraphs of a particular size More...
 
PATH_LIST RDKit::findAllPathsOfLengthN (const ROMol &mol, unsigned int targetLen, bool useBonds=true, bool useHs=false, int rootedAtAtom=-1)
 find all paths of a particular size More...
 
INT_PATH_LIST_MAP RDKit::findAllPathsOfLengthsMtoN (const ROMol &mol, unsigned int lowerLen, unsigned int upperLen, bool useBonds=true, bool useHs=false, int rootedAtAtom=-1)
 
PATH_TYPE RDKit::findAtomEnvironmentOfRadiusN (const ROMol &mol, unsigned int radius, unsigned int rootedAtAtom, bool useHs=false)
 find bond subgraphs of a particular radius around an atom More...
 

Detailed Description

functionality for finding subgraphs and paths in molecules

Difference between subgraphs and paths : Subgraphs are potentially branched, whereas paths (in our terminology at least) cannot be. So, the following graph:

            C--0--C--1--C--3--C
                  |
                  2
                  |
                  C

has 3 subgraphs of length 3: (0,1,2),(0,1,3),(2,1,3) but only 2 paths of length 3: (0,1,3),(2,1,3)

Definition in file Subgraphs.h.