RDKit
Open-source cheminformatics and machine learning.
FragCatalogEntry.h
Go to the documentation of this file.
1 //
2 // Copyright (C) 2003-2006 Rational Discovery LLC
3 //
4 // @@ All Rights Reserved @@
5 // This file is part of the RDKit.
6 // The contents are covered by the terms of the BSD license
7 // which is included in the file license.txt, found at the root
8 // of the RDKit source tree.
9 //
10 #include <RDGeneral/export.h>
11 #ifndef _RD_FRAGCATALOGENTRY_H_
12 #define _RD_FRAGCATALOGENTRY_H_
13 
14 #include "FragCatParams.h"
15 #include <RDGeneral/utils.h>
16 #include <Catalogs/CatalogEntry.h>
17 #include <GraphMol/RDKitBase.h>
22 #include <map>
23 #include <sstream>
24 
25 namespace RDKit {
26 
28  : public RDCatalog::CatalogEntry {
29  public:
30  FragCatalogEntry() : dp_mol(0), d_descrip(""), d_order(0) {
31  dp_props = new Dict();
32  setBitId(-1);
33  }
34 
35  FragCatalogEntry(const ROMol *omol, const PATH_TYPE &path,
36  const MatchVectType &aidToFid);
37  FragCatalogEntry(const std::string &pickle);
38 
40  delete dp_mol;
41  dp_mol = 0;
42  if (dp_props) {
43  delete dp_props;
44  dp_props = 0;
45  }
46  }
47 
48  std::string getDescription() const { return d_descrip; }
49 
50  void setDescription(const std::string &val) { d_descrip = val; }
51 
52  void setDescription(const FragCatParams *params);
53 
54  // check if this fragment macthes the one specified
55  //
56 
57  bool match(const FragCatalogEntry *other, double tol) const;
58 
59  Subgraphs::DiscrimTuple getDiscrims() const;
60 
61  unsigned int getOrder() const { return dp_mol->getNumBonds(); }
62 
63  const INT_INT_VECT_MAP &getFuncGroupMap() const { return d_aToFmap; }
64 
65  // REVIEW: this should be removed?
66  std::string getSmarts() { return ""; }
67 
68  // FUnctions on the property dictionary
69  template <typename T>
70  void setProp(const char *key, T &val) const {
71  dp_props->setVal(key, val);
72  }
73 
74  template <typename T>
75  void setProp(const std::string &key, T &val) const {
76  setProp(key.c_str(), val);
77  }
78 
79  void setProp(const char *key, int val) const { dp_props->setVal(key, val); }
80 
81  void setProp(const std::string &key, int val) const {
82  setProp(key.c_str(), val);
83  }
84 
85  void setProp(const char *key, float val) const { dp_props->setVal(key, val); }
86 
87  void setProp(const std::string &key, float val) const {
88  setProp(key.c_str(), val);
89  }
90 
91  void setProp(const std::string &key, std::string &val) const {
92  setProp(key.c_str(), val);
93  }
94 
95  template <typename T>
96  void getProp(const char *key, T &res) const {
97  dp_props->getVal(key, res);
98  }
99  template <typename T>
100  void getProp(const std::string &key, T &res) const {
101  getProp(key.c_str(), res);
102  }
103 
104  bool hasProp(const char *key) const {
105  if (!dp_props) return false;
106  return dp_props->hasVal(key);
107  }
108  bool hasProp(const std::string &key) const { return hasProp(key.c_str()); }
109 
110  void clearProp(const char *key) const { dp_props->clearVal(key); }
111 
112  void clearProp(const std::string &key) const { clearProp(key.c_str()); }
113 
114  void toStream(std::ostream &ss) const;
115  std::string Serialize() const;
116  void initFromStream(std::istream &ss);
117  void initFromString(const std::string &text);
118 
119  private:
120  ROMol *dp_mol;
121  Dict *dp_props;
122 
123  std::string d_descrip;
124 
125  unsigned int d_order;
126 
127  // a map between the atom ids in mol that connect to
128  // a functional group and the corresponding functional
129  // group ID
130  INT_INT_VECT_MAP d_aToFmap;
131 };
132 } // namespace RDKit
133 
134 #endif
RDKit::Dict
The Dict class can be used to store objects of arbitrary type keyed by strings.
Definition: Dict.h:36
RDKit::FragCatalogEntry::setProp
void setProp(const std::string &key, std::string &val) const
Definition: FragCatalogEntry.h:91
RDKit::FragCatalogEntry::hasProp
bool hasProp(const std::string &key) const
Definition: FragCatalogEntry.h:108
RDKit::FragCatalogEntry::setProp
void setProp(const std::string &key, float val) const
Definition: FragCatalogEntry.h:87
RDKit::FragCatalogEntry::setProp
void setProp(const std::string &key, T &val) const
Definition: FragCatalogEntry.h:75
RDKit::INT_INT_VECT_MAP
std::map< int, INT_VECT > INT_INT_VECT_MAP
Definition: types.h:289
RDKit::EnumerationStrategyPickler::pickle
RDKIT_CHEMREACTIONS_EXPORT void pickle(const boost::shared_ptr< EnumerationStrategyBase > &enumerator, std::ostream &ss)
pickles a EnumerationStrategy and adds the results to a stream ss
RDKit::FragCatalogEntry::setProp
void setProp(const std::string &key, int val) const
Definition: FragCatalogEntry.h:81
RDCatalog::CatalogEntry
Abstract base class to be used to represent an entry in a Catalog.
Definition: CatalogEntry.h:20
RDKit::FragCatalogEntry::getDescription
std::string getDescription() const
returns a text description of this entry
Definition: FragCatalogEntry.h:48
SmilesWrite.h
RDKit::Subgraphs::DiscrimTuple
boost::tuples::tuple< std::uint32_t, std::uint32_t, std::uint32_t > DiscrimTuple
used to return path discriminators (three unsigned ints):
Definition: SubgraphUtils.h:24
RDKit::FragCatalogEntry::getProp
void getProp(const std::string &key, T &res) const
Definition: FragCatalogEntry.h:100
RDKit::FragCatalogEntry::getProp
void getProp(const char *key, T &res) const
Definition: FragCatalogEntry.h:96
RDKit::FragCatalogEntry::setProp
void setProp(const char *key, T &val) const
Definition: FragCatalogEntry.h:70
RDKit::FragCatParams
container for user parameters used to create a fragment catalog
Definition: FragCatParams.h:24
SubgraphUtils.h
RDKit::ROMol
Definition: ROMol.h:171
utils.h
RDKitBase.h
pulls in the core RDKit functionality
RDKit::FragCatalogEntry::clearProp
void clearProp(const std::string &key) const
Definition: FragCatalogEntry.h:112
CatalogEntry.h
RDKit::FragCatalogEntry::FragCatalogEntry
FragCatalogEntry()
Definition: FragCatalogEntry.h:30
FragCatParams.h
RDKit::FragCatalogEntry::clearProp
void clearProp(const char *key) const
Definition: FragCatalogEntry.h:110
RDKit::FragCatalogEntry::hasProp
bool hasProp(const char *key) const
Definition: FragCatalogEntry.h:104
RDKit
Std stuff.
Definition: Atom.h:30
RDKit::FragCatalogEntry::getFuncGroupMap
const INT_INT_VECT_MAP & getFuncGroupMap() const
Definition: FragCatalogEntry.h:63
RDKit::FragCatalogEntry::getOrder
unsigned int getOrder() const
Definition: FragCatalogEntry.h:61
RDKit::FragCatalogEntry::~FragCatalogEntry
~FragCatalogEntry()
Definition: FragCatalogEntry.h:39
RDLog::toStream
RDKIT_RDGENERAL_EXPORT std::ostream & toStream(std::ostream &)
RDKIT_FRAGCATALOG_EXPORT
#define RDKIT_FRAGCATALOG_EXPORT
Definition: export.h:281
RDKit::FragCatalogEntry::getSmarts
std::string getSmarts()
Definition: FragCatalogEntry.h:66
RDKit::FragCatalogEntry::setProp
void setProp(const char *key, int val) const
Definition: FragCatalogEntry.h:79
RDKit::FragCatalogEntry::setDescription
void setDescription(const std::string &val)
Definition: FragCatalogEntry.h:50
Subgraphs.h
functionality for finding subgraphs and paths in molecules
RDKit::FragCatalogEntry::setProp
void setProp(const char *key, float val) const
Definition: FragCatalogEntry.h:85
RDKit::FragCatalogEntry
Definition: FragCatalogEntry.h:27
RDKit::MatchVectType
std::vector< std::pair< int, int > > MatchVectType
used to return matches from substructure searching, The format is (queryAtomIdx, molAtomIdx)
Definition: FragFPGenerator.h:24
SubstructMatch.h
RDKit::PATH_TYPE
std::vector< int > PATH_TYPE
Definition: Subgraphs.h:37
export.h