RDKit
Open-source cheminformatics and machine learning.
RDCatalog::HierarchCatalog< entryType, paramType, orderType > Class Template Reference

A Catalog with a hierarchical structure. More...

#include <Catalog.h>

Inheritance diagram for RDCatalog::HierarchCatalog< entryType, paramType, orderType >:
RDCatalog::Catalog< entryType, paramType >

Classes

struct  vertex_entry_t
 used by the BGL to set up the node properties in our graph More...
 

Public Types

typedef boost::property< vertex_entry_t, entryType * > EntryProperty
 
typedef boost::adjacency_list< boost::vecS, boost::vecS, boost::bidirectionalS, EntryPropertyCatalogGraph
 the type of the graph itself: More...
 
typedef boost::graph_traits< CatalogGraphCAT_GRAPH_TRAITS
 
typedef CAT_GRAPH_TRAITS::vertex_iterator VER_ITER
 
typedef std::pair< VER_ITER, VER_ITERENT_ITER_PAIR
 
typedef CAT_GRAPH_TRAITS::adjacency_iterator DOWN_ENT_ITER
 
typedef std::pair< DOWN_ENT_ITER, DOWN_ENT_ITERDOWN_ENT_ITER_PAIR
 
- Public Types inherited from RDCatalog::Catalog< entryType, paramType >
typedef entryType entryType_t
 
typedef paramType paramType_t
 

Public Member Functions

 HierarchCatalog ()
 
 HierarchCatalog (paramType *params)
 Construct by making a copy of the input params object. More...
 
 HierarchCatalog (const std::string &pickle)
 Construct from a pickle (a serialized form of the HierarchCatalog) More...
 
 ~HierarchCatalog ()
 
void toStream (std::ostream &ss) const
 serializes this object to a stream More...
 
std::string Serialize () const
 serializes this object and returns the resulting pickle More...
 
void initFromStream (std::istream &ss)
 fills the contents of this object from a stream containing a pickle More...
 
unsigned int getNumEntries () const
 returns the number of entries More...
 
void initFromString (const std::string &text)
 fills the contents of this object from a string containing a pickle More...
 
unsigned int addEntry (entryType *entry, bool updateFPLength=true)
 add a new entry to the catalog More...
 
void addEdge (unsigned int id1, unsigned int id2)
 adds an edge between two entries in the catalog More...
 
const entryType * getEntryWithIdx (unsigned int idx) const
 returns a pointer to our entry with a particular index More...
 
const entryType * getEntryWithBitId (unsigned int idx) const
 returns a pointer to our entry with a particular bit ID More...
 
int getIdOfEntryWithBitId (unsigned int idx) const
 returns the index of the entry with a particular bit ID More...
 
RDKit::INT_VECT getDownEntryList (unsigned int idx) const
 returns a list of the indices of entries below the one passed in More...
 
const RDKit::INT_VECTgetEntriesOfOrder (orderType ord)
 returns a list of the indices that have a particular order More...
 
const RDKit::INT_VECTgetEntriesOfOrder (orderType ord) const
 returns a list of the indices that have a particular order More...
 
- Public Member Functions inherited from RDCatalog::Catalog< entryType, paramType >
 Catalog ()
 
virtual ~Catalog ()
 
unsigned int getFPLength () const
 returns the length of our fingerprint More...
 
void setFPLength (unsigned int val)
 sets our fingerprint length More...
 
virtual void setCatalogParams (paramType *params)
 sets our parameters by copying the params argument More...
 
const paramType * getCatalogParams () const
 returns a pointer to our parameters More...
 

Additional Inherited Members

- Protected Attributes inherited from RDCatalog::Catalog< entryType, paramType >
unsigned int d_fpLength
 the length of our fingerprint More...
 
paramType * dp_cParams
 our params object More...
 

Detailed Description

template<class entryType, class paramType, class orderType>
class RDCatalog::HierarchCatalog< entryType, paramType, orderType >

A Catalog with a hierarchical structure.

The entries of a HierarchCatalog are arranged in a directed graph

The difference between Indices and Bit Ids

A HierarchCatalog may contain more entries than the user is actually interested in. For example a HierarchCatalog constructed to contain orders 5 through 8 may well contain information about orders 1-5, in order to facilitate some search optimizations.

  • Bit Ids refer to the "interesting" bits. So, in the above example, Bit Id 0 will be the first entry with order 5.
  • Indices refer to the underlying structure of the catalog. So, in the above example, the entry with index 0 will be the first entry with order 1.

Definition at line 134 of file Catalog.h.

Member Typedef Documentation

template<class entryType , class paramType , class orderType >
typedef boost::graph_traits<CatalogGraph> RDCatalog::HierarchCatalog< entryType, paramType, orderType >::CAT_GRAPH_TRAITS

Definition at line 153 of file Catalog.h.

template<class entryType , class paramType , class orderType >
typedef boost::adjacency_list< boost::vecS, boost::vecS, boost::bidirectionalS, EntryProperty> RDCatalog::HierarchCatalog< entryType, paramType, orderType >::CatalogGraph

the type of the graph itself:

Definition at line 151 of file Catalog.h.

template<class entryType , class paramType , class orderType >
typedef CAT_GRAPH_TRAITS::adjacency_iterator RDCatalog::HierarchCatalog< entryType, paramType, orderType >::DOWN_ENT_ITER

Definition at line 156 of file Catalog.h.

template<class entryType , class paramType , class orderType >
typedef std::pair<DOWN_ENT_ITER, DOWN_ENT_ITER> RDCatalog::HierarchCatalog< entryType, paramType, orderType >::DOWN_ENT_ITER_PAIR

Definition at line 157 of file Catalog.h.

template<class entryType , class paramType , class orderType >
typedef std::pair<VER_ITER, VER_ITER> RDCatalog::HierarchCatalog< entryType, paramType, orderType >::ENT_ITER_PAIR

Definition at line 155 of file Catalog.h.

template<class entryType , class paramType , class orderType >
typedef boost::property<vertex_entry_t, entryType *> RDCatalog::HierarchCatalog< entryType, paramType, orderType >::EntryProperty

Definition at line 143 of file Catalog.h.

template<class entryType , class paramType , class orderType >
typedef CAT_GRAPH_TRAITS::vertex_iterator RDCatalog::HierarchCatalog< entryType, paramType, orderType >::VER_ITER

Definition at line 154 of file Catalog.h.

Constructor & Destructor Documentation

template<class entryType , class paramType , class orderType >
RDCatalog::HierarchCatalog< entryType, paramType, orderType >::HierarchCatalog ( )
inline

Definition at line 160 of file Catalog.h.

template<class entryType , class paramType , class orderType >
RDCatalog::HierarchCatalog< entryType, paramType, orderType >::HierarchCatalog ( paramType *  params)
inline

Construct by making a copy of the input params object.

Definition at line 164 of file Catalog.h.

References RDCatalog::Catalog< entryType, paramType >::setCatalogParams().

template<class entryType , class paramType , class orderType >
RDCatalog::HierarchCatalog< entryType, paramType, orderType >::HierarchCatalog ( const std::string &  pickle)
inline

Construct from a pickle (a serialized form of the HierarchCatalog)

Definition at line 171 of file Catalog.h.

References RDKit::EnumerationStrategyPickler::pickle().

template<class entryType , class paramType , class orderType >
RDCatalog::HierarchCatalog< entryType, paramType, orderType >::~HierarchCatalog ( )
inline

Definition at line 176 of file Catalog.h.

Member Function Documentation

template<class entryType , class paramType , class orderType >
void RDCatalog::HierarchCatalog< entryType, paramType, orderType >::addEdge ( unsigned int  id1,
unsigned int  id2 
)
inline

adds an edge between two entries in the catalog

Since we are using a bidirectional graph - the order in which the ids are supplied here makes a difference

Parameters
id1index of the edge's beginning
id2index of the edge's end

Definition at line 335 of file Catalog.h.

References RDCatalog::Catalog< entryType, paramType >::getNumEntries(), and URANGE_CHECK.

template<class entryType , class paramType , class orderType >
unsigned int RDCatalog::HierarchCatalog< entryType, paramType, orderType >::addEntry ( entryType *  entry,
bool  updateFPLength = true 
)
inlinevirtual

add a new entry to the catalog

Parameters
entrythe entry to be added
updateFPLength(optional) if this is true, our internal fingerprint length will also be updated.

Implements RDCatalog::Catalog< entryType, paramType >.

Definition at line 304 of file Catalog.h.

References RDCatalog::Catalog< entryType, paramType >::getFPLength(), PRECONDITION, and RDCatalog::Catalog< entryType, paramType >::setFPLength().

template<class entryType , class paramType , class orderType >
RDKit::INT_VECT RDCatalog::HierarchCatalog< entryType, paramType, orderType >::getDownEntryList ( unsigned int  idx) const
inline

returns a list of the indices of entries below the one passed in

Definition at line 398 of file Catalog.h.

template<class entryType , class paramType , class orderType >
const RDKit::INT_VECT& RDCatalog::HierarchCatalog< entryType, paramType, orderType >::getEntriesOfOrder ( orderType  ord)
inline

returns a list of the indices that have a particular order

Definition at line 412 of file Catalog.h.

template<class entryType , class paramType , class orderType >
const RDKit::INT_VECT& RDCatalog::HierarchCatalog< entryType, paramType, orderType >::getEntriesOfOrder ( orderType  ord) const
inline

returns a list of the indices that have a particular order

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 421 of file Catalog.h.

References CHECK_INVARIANT.

template<class entryType , class paramType , class orderType >
const entryType* RDCatalog::HierarchCatalog< entryType, paramType, orderType >::getEntryWithBitId ( unsigned int  idx) const
inline

returns a pointer to our entry with a particular bit ID

Definition at line 364 of file Catalog.h.

References RDCatalog::Catalog< entryType, paramType >::getFPLength(), RDCatalog::Catalog< entryType, paramType >::getNumEntries(), and URANGE_CHECK.

template<class entryType , class paramType , class orderType >
const entryType* RDCatalog::HierarchCatalog< entryType, paramType, orderType >::getEntryWithIdx ( unsigned int  idx) const
inlinevirtual

returns a pointer to our entry with a particular index

Implements RDCatalog::Catalog< entryType, paramType >.

Definition at line 354 of file Catalog.h.

References RDCatalog::Catalog< entryType, paramType >::getNumEntries(), and URANGE_CHECK.

template<class entryType , class paramType , class orderType >
int RDCatalog::HierarchCatalog< entryType, paramType, orderType >::getIdOfEntryWithBitId ( unsigned int  idx) const
inline

returns the index of the entry with a particular bit ID

Definition at line 381 of file Catalog.h.

References RDCatalog::Catalog< entryType, paramType >::getFPLength(), RDCatalog::Catalog< entryType, paramType >::getNumEntries(), and URANGE_CHECK.

template<class entryType , class paramType , class orderType >
unsigned int RDCatalog::HierarchCatalog< entryType, paramType, orderType >::getNumEntries ( ) const
inlinevirtual

returns the number of entries

Implements RDCatalog::Catalog< entryType, paramType >.

Definition at line 282 of file Catalog.h.

template<class entryType , class paramType , class orderType >
void RDCatalog::HierarchCatalog< entryType, paramType, orderType >::initFromStream ( std::istream &  ss)
inline
template<class entryType , class paramType , class orderType >
void RDCatalog::HierarchCatalog< entryType, paramType, orderType >::initFromString ( const std::string &  text)
inline

fills the contents of this object from a string containing a pickle

Definition at line 286 of file Catalog.h.

template<class entryType , class paramType , class orderType >
std::string RDCatalog::HierarchCatalog< entryType, paramType, orderType >::Serialize ( ) const
inlinevirtual

serializes this object and returns the resulting pickle

Implements RDCatalog::Catalog< entryType, paramType >.

Definition at line 226 of file Catalog.h.

References RDLog::toStream().

template<class entryType , class paramType , class orderType >
void RDCatalog::HierarchCatalog< entryType, paramType, orderType >::toStream ( std::ostream &  ss) const
inline

The documentation for this class was generated from the following file: