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

Additional Inherited Members

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

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 135 of file Catalog.h.

Member Typedef Documentation

◆ CAT_GRAPH_TRAITS

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

Definition at line 155 of file Catalog.h.

◆ CatalogGraph

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 153 of file Catalog.h.

◆ DOWN_ENT_ITER

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

Definition at line 158 of file Catalog.h.

◆ DOWN_ENT_ITER_PAIR

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 159 of file Catalog.h.

◆ ENT_ITER_PAIR

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 157 of file Catalog.h.

◆ EntryProperty

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

Definition at line 144 of file Catalog.h.

◆ VER_ITER

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

Definition at line 156 of file Catalog.h.

Constructor & Destructor Documentation

◆ HierarchCatalog() [1/3]

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

Definition at line 162 of file Catalog.h.

◆ HierarchCatalog() [2/3]

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

Construct by making a copy of the input params object.

Definition at line 166 of file Catalog.h.

◆ HierarchCatalog() [3/3]

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 172 of file Catalog.h.

◆ ~HierarchCatalog()

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

Definition at line 175 of file Catalog.h.

Member Function Documentation

◆ addEdge()

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 338 of file Catalog.h.

Referenced by RDCatalog::HierarchCatalog< FragCatalogEntry, FragCatParams, int >::initFromStream().

◆ addEntry()

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

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 306 of file Catalog.h.

Referenced by RDCatalog::HierarchCatalog< FragCatalogEntry, FragCatParams, int >::initFromStream().

◆ getDownEntryList()

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 401 of file Catalog.h.

Referenced by RDCatalog::HierarchCatalog< FragCatalogEntry, FragCatParams, int >::toStream().

◆ getEntriesOfOrder() [1/2]

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 415 of file Catalog.h.

◆ getEntriesOfOrder() [2/2]

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 424 of file Catalog.h.

◆ getEntryWithBitId()

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 367 of file Catalog.h.

◆ getEntryWithIdx()

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

returns a pointer to our entry with a particular index

Implements RDCatalog::Catalog< entryType, paramType >.

Definition at line 357 of file Catalog.h.

Referenced by RDCatalog::HierarchCatalog< FragCatalogEntry, FragCatParams, int >::toStream().

◆ getIdOfEntryWithBitId()

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 384 of file Catalog.h.

◆ getNumEntries()

◆ initFromStream()

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

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

Definition at line 234 of file Catalog.h.

Referenced by RDCatalog::HierarchCatalog< FragCatalogEntry, FragCatParams, int >::initFromString().

◆ initFromString()

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 288 of file Catalog.h.

Referenced by RDCatalog::HierarchCatalog< FragCatalogEntry, FragCatParams, int >::HierarchCatalog().

◆ Serialize()

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

serializes this object and returns the resulting pickle

Implements RDCatalog::Catalog< entryType, paramType >.

Definition at line 225 of file Catalog.h.

◆ toStream()

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

serializes this object to a stream

Definition at line 179 of file Catalog.h.

Referenced by RDCatalog::HierarchCatalog< FragCatalogEntry, FragCatParams, int >::Serialize().


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