#include <ROMol.h>

Public Member Functions | |
| ROMol () | |
| ROMol (const ROMol &other, bool quickCopy=false) | |
| copy constructor with a twist | |
| ROMol (const std::string &binStr) | |
| construct a molecule from a pickle string | |
| virtual | ~ROMol () |
Atoms | |
| unsigned int | getNumAtoms (bool onlyHeavy=1) const |
| returns our number of Atoms | |
| GRAPH_NODE_TYPE | getAtomWithIdx (unsigned int idx) |
| returns a pointer to a particular Atom | |
| GRAPH_NODE_CONST_TYPE | getAtomWithIdx (unsigned int idx) const |
| unsigned int | getAtomDegree (const Atom *at) const |
| returns the degree (number of neighbors) of an Atom in the graph | |
| unsigned int | getAtomDegree (ATOM_SPTR at) const |
Bonds | |
| unsigned int | getNumBonds (bool onlyHeavy=1) const |
| returns our number of Bonds | |
| GRAPH_EDGE_TYPE | getBondWithIdx (unsigned int idx) |
| returns a pointer to a particular Bond | |
| GRAPH_EDGE_CONST_TYPE | getBondWithIdx (unsigned int idx) const |
| GRAPH_EDGE_TYPE | getBondBetweenAtoms (unsigned int idx1, unsigned int idx2) |
| returns a pointer to the bond between two atoms, Null on failure | |
| GRAPH_EDGE_CONST_TYPE | getBondBetweenAtoms (unsigned int idx1, unsigned int idx2) const |
Bookmarks | |
| void | setAtomBookmark (ATOM_SPTR at, int mark) |
| associates an Atom pointer with a bookmark | |
| void | setAtomBookmark (Atom *at, int mark) |
| GRAPH_NODE_TYPE | getAtomWithBookmark (int mark) |
returns the first Atom associated with the bookmark provided | |
| ATOM_PTR_LIST & | getAllAtomsWithBookmark (int mark) |
returns all Atoms associated with the bookmark provided | |
| void | clearAtomBookmark (const int mark) |
removes a bookmark from our collection | |
| void | clearAtomBookmark (const int mark, const Atom *atom) |
removes a particular Atom from the list associated with the bookmark | |
| void | clearAtomBookmark (const int mark, ATOM_SPTR atom) |
| void | clearAllAtomBookmarks () |
blows out all atomic bookmarks | |
| bool | hasAtomBookmark (int mark) const |
queries whether or not any atoms are associated with a bookmark | |
| ATOM_BOOKMARK_MAP * | getAtomBookmarks () |
returns a pointer to all of our atom bookmarks | |
| void | setBondBookmark (BOND_SPTR bond, int mark) |
| associates a Bond pointer with a bookmark | |
| void | setBondBookmark (Bond *bond, int mark) |
| GRAPH_EDGE_TYPE | getBondWithBookmark (int mark) |
returns the first Bond associated with the bookmark provided | |
| BOND_PTR_LIST & | getAllBondsWithBookmark (int mark) |
returns all bonds associated with the bookmark provided | |
| void | clearBondBookmark (int mark) |
removes a bookmark from our collection | |
| void | clearBondBookmark (int mark, const Bond *bond) |
removes a particular Bond from the list associated with the bookmark | |
| void | clearBondBookmark (int mark, BOND_SPTR bond) |
| void | clearAllBondBookmarks () |
blows out all bond bookmarks | |
| bool | hasBondBookmark (int mark) |
queries whether or not any bonds are associated with a bookmark | |
| BOND_BOOKMARK_MAP * | getBondBookmarks () |
returns a pointer to all of our bond bookmarks | |
Conformers | |
| const Conformer & | getConformer (int id=-1) const |
| Conformer & | getConformer (int id=-1) |
| void | removeConformer (unsigned int id) |
| Delete the conformation with the specified ID. | |
| void | clearConformers () |
| Clear all the conformations on the molecule. | |
| unsigned int | addConformer (Conformer *conf, bool assignId=false) |
| Add a new conformation to the molecule. | |
| unsigned int | getNumConformers () const |
Topology | |
| RingInfo * | getRingInfo () const |
| ADJ_ITER_PAIR | getAtomNeighbors (Atom const *at) const |
| provides access to all neighbors around an Atom | |
| ADJ_ITER_PAIR | getAtomNeighbors (ATOM_SPTR at) const |
| OBOND_ITER_PAIR | getAtomBonds (Atom const *at) const |
| provides access to all Bond objects connected to an Atom | |
| GRAPH_MOL_ATOM_PMAP::type | getAtomPMap () |
| returns the atom PMap | |
| GRAPH_MOL_BOND_PMAP::type | getBondPMap () |
| returns the bond PMap (required to use Bond iterators) | |
| GRAPH_MOL_ATOM_PMAP::const_type | getAtomPMap () const |
| GRAPH_MOL_BOND_PMAP::const_type | getBondPMap () const |
| ATOM_ITER_PAIR | getVertices () |
| returns an iterator pair for looping over all Atoms | |
| BOND_ITER_PAIR | getEdges () |
| returns an iterator pair for looping over all Bonds | |
| ATOM_ITER_PAIR | getVertices () const |
| BOND_ITER_PAIR | getEdges () const |
| MolGraph const * | getTopology () const |
| brief returns a pointer to our underlying BGL object | |
Iterators | |
| AtomIterator | beginAtoms () |
| get an AtomIterator pointing at our first Atom | |
| ConstAtomIterator | beginAtoms () const |
| AtomIterator | endAtoms () |
| get an AtomIterator pointing at the end of our Atoms | |
| ConstAtomIterator | endAtoms () const |
| AromaticAtomIterator | beginAromaticAtoms () |
| get an AtomIterator pointing at our first aromatic Atom | |
| ConstAromaticAtomIterator | beginAromaticAtoms () const |
| AromaticAtomIterator | endAromaticAtoms () |
| get an AtomIterator pointing at the end of our Atoms | |
| ConstAromaticAtomIterator | endAromaticAtoms () const |
| HeteroatomIterator | beginHeteros () |
| get an AtomIterator pointing at our first hetero Atom | |
| ConstHeteroatomIterator | beginHeteros () const |
| HeteroatomIterator | endHeteros () |
| get an AtomIterator pointing at the end of our Atoms | |
| ConstHeteroatomIterator | endHeteros () const |
| QueryAtomIterator | beginQueryAtoms (QueryAtom const *query) |
get an AtomIterator pointing at our first Atom that matches query | |
| ConstQueryAtomIterator | beginQueryAtoms (QueryAtom const *) const |
| QueryAtomIterator | endQueryAtoms () |
| gte an AtomIterator pointing at the end of our Atoms | |
| ConstQueryAtomIterator | endQueryAtoms () const |
| BondIterator | beginBonds () |
| get a BondIterator pointing at our first Bond | |
| ConstBondIterator | beginBonds () const |
| BondIterator | endBonds () |
| get a BondIterator pointing at the end of our Bonds | |
| ConstBondIterator | endBonds () const |
| ConformerIterator | beginConformers () |
| ConformerIterator | endConformers () |
| ConstConformerIterator | beginConformers () const |
| ConstConformerIterator | endConformers () const |
Properties | |
| STR_VECT | getPropList (bool includePrivate=true, bool includeComputed=true) const |
returns a list with the names of our properties | |
| template<typename T> | |
| void | setProp (const char *key, T val, bool computed=false) const |
sets a property value | |
| template<typename T> | |
| void | setProp (const std::string key, T val, bool computed=false) const |
| template<typename T> | |
| void | getProp (const char *key, T &res) const |
| allows retrieval of a particular property value | |
| template<typename T> | |
| void | getProp (const std::string key, T &res) const |
| bool | hasProp (const char *key) const |
returns whether or not we have a property with name key | |
| bool | hasProp (const std::string key) const |
| void | clearProp (const char *key) const |
clears the value of a property | |
| void | clearProp (const std::string key) const |
| void | clearComputedProps (bool includeRings=true) const |
clears all of our computed properties | |
| void | updatePropertyCache (bool strict=true) |
calculates any of our lazy properties | |
Misc | |
| void | debugMol (std::ostream &str) const |
| sends some debugging info to a stream | |
Friends | |
| class | MolPickler |
| class | RWMol |
This is the primary class for most molecule operations.
If you need to be manipulating the molecule (e.g. adding or deleting atoms or bonds, use an RWMol instead.
Notes:
properties: property is keyed by name and can store an arbitrary type.Properties can be marked as calculated, in which case they will be cleared when the clearComputedProps() method is called.property operations are const, this allows extra flexibility for clients who need to store extra data on ROMol objects.
bookmarks for Atoms and Bonds:
Definition at line 93 of file ROMol.h.
| RDKit::ROMol::ROMol | ( | const ROMol & | other, | |
| bool | quickCopy = false | |||
| ) | [inline] |
copy constructor with a twist
| other | the molecule to be copied | |
| quickCopy | (optional) if this is true, the resulting ROMol will not copy any of the properties or bookmarks and conformers from other. This can make the copy substantially faster (thus the name). |
| RDKit::ROMol::ROMol | ( | const std::string & | binStr | ) |
construct a molecule from a pickle string
| unsigned int RDKit::ROMol::getNumAtoms | ( | bool | onlyHeavy = 1 |
) | const |
| GRAPH_NODE_TYPE RDKit::ROMol::getAtomWithIdx | ( | unsigned int | idx | ) |
| GRAPH_NODE_CONST_TYPE RDKit::ROMol::getAtomWithIdx | ( | unsigned int | idx | ) | const |
| unsigned int RDKit::ROMol::getAtomDegree | ( | const Atom * | at | ) | const |
returns the degree (number of neighbors) of an Atom in the graph
| unsigned int RDKit::ROMol::getAtomDegree | ( | ATOM_SPTR | at | ) | const |
| unsigned int RDKit::ROMol::getNumBonds | ( | bool | onlyHeavy = 1 |
) | const |
| GRAPH_EDGE_TYPE RDKit::ROMol::getBondWithIdx | ( | unsigned int | idx | ) |
returns a pointer to a particular Bond
| GRAPH_EDGE_CONST_TYPE RDKit::ROMol::getBondWithIdx | ( | unsigned int | idx | ) | const |
| GRAPH_EDGE_TYPE RDKit::ROMol::getBondBetweenAtoms | ( | unsigned int | idx1, | |
| unsigned int | idx2 | |||
| ) |
returns a pointer to the bond between two atoms, Null on failure
| GRAPH_EDGE_CONST_TYPE RDKit::ROMol::getBondBetweenAtoms | ( | unsigned int | idx1, | |
| unsigned int | idx2 | |||
| ) | const |
| void RDKit::ROMol::setAtomBookmark | ( | ATOM_SPTR | at, | |
| int | mark | |||
| ) | [inline] |
| void RDKit::ROMol::setAtomBookmark | ( | Atom * | at, | |
| int | mark | |||
| ) | [inline] |
| GRAPH_NODE_TYPE RDKit::ROMol::getAtomWithBookmark | ( | int | mark | ) |
returns the first Atom associated with the bookmark provided
| ATOM_PTR_LIST& RDKit::ROMol::getAllAtomsWithBookmark | ( | int | mark | ) |
returns all Atoms associated with the bookmark provided
| void RDKit::ROMol::clearAtomBookmark | ( | const int | mark | ) |
| void RDKit::ROMol::clearAtomBookmark | ( | const int | mark, | |
| const Atom * | atom | |||
| ) |
removes a particular Atom from the list associated with the bookmark
| void RDKit::ROMol::clearAtomBookmark | ( | const int | mark, | |
| ATOM_SPTR | atom | |||
| ) | [inline] |
| void RDKit::ROMol::clearAllAtomBookmarks | ( | ) | [inline] |
| bool RDKit::ROMol::hasAtomBookmark | ( | int | mark | ) | const [inline] |
| ATOM_BOOKMARK_MAP* RDKit::ROMol::getAtomBookmarks | ( | ) | [inline] |
| void RDKit::ROMol::setBondBookmark | ( | BOND_SPTR | bond, | |
| int | mark | |||
| ) | [inline] |
| void RDKit::ROMol::setBondBookmark | ( | Bond * | bond, | |
| int | mark | |||
| ) | [inline] |
| GRAPH_EDGE_TYPE RDKit::ROMol::getBondWithBookmark | ( | int | mark | ) |
returns the first Bond associated with the bookmark provided
| BOND_PTR_LIST& RDKit::ROMol::getAllBondsWithBookmark | ( | int | mark | ) |
returns all bonds associated with the bookmark provided
| void RDKit::ROMol::clearBondBookmark | ( | int | mark | ) |
| void RDKit::ROMol::clearBondBookmark | ( | int | mark, | |
| const Bond * | bond | |||
| ) |
removes a particular Bond from the list associated with the bookmark
| void RDKit::ROMol::clearBondBookmark | ( | int | mark, | |
| BOND_SPTR | bond | |||
| ) | [inline] |
| void RDKit::ROMol::clearAllBondBookmarks | ( | ) | [inline] |
| bool RDKit::ROMol::hasBondBookmark | ( | int | mark | ) | [inline] |
| BOND_BOOKMARK_MAP* RDKit::ROMol::getBondBookmarks | ( | ) | [inline] |
| const Conformer& RDKit::ROMol::getConformer | ( | int | id = -1 |
) | const |
return the conformer with a specified ID if the ID is negative the first conformation will be returned
| Conformer& RDKit::ROMol::getConformer | ( | int | id = -1 |
) |
return the conformer with a specified ID if the ID is negative the first conformation will be returned
| void RDKit::ROMol::removeConformer | ( | unsigned int | id | ) |
Delete the conformation with the specified ID.
| void RDKit::ROMol::clearConformers | ( | ) | [inline] |
| unsigned int RDKit::ROMol::addConformer | ( | Conformer * | conf, | |
| bool | assignId = false | |||
| ) |
Add a new conformation to the molecule.
| conf | - conformation to be added to the molecule, this molecule takes ownership of the conformer | |
| assignId | - a unique ID will be assigned to the the conformation if true otherwise it is assumed that the conformation already has an (unique) ID set |
| unsigned int RDKit::ROMol::getNumConformers | ( | ) | const [inline] |
| RingInfo* RDKit::ROMol::getRingInfo | ( | ) | const [inline] |
returns a pointer to our RingInfo structure Note: the client should not delete this.
Definition at line 299 of file ROMol.h.
Referenced by RDKit::queryAtomIsInRingOfSize(), RDKit::queryAtomMinRingSize(), RDKit::queryAtomRingBondCount(), RDKit::queryAtomRingMembership(), RDKit::queryBondIsInRingOfSize(), RDKit::queryBondMinRingSize(), RDKit::queryIsAtomInNRings(), RDKit::queryIsAtomInRing(), RDKit::queryIsBondInNRings(), and RDKit::queryIsBondInRing().
| ADJ_ITER_PAIR RDKit::ROMol::getAtomNeighbors | ( | Atom const * | at | ) | const |
provides access to all neighbors around an Atom
| at | the atom whose neighbors we are looking for |
... molPtr is a const ROMol * ... ... atomPtr is a const Atom * ... ROMol::ADJ_ITER nbrIdx,endNbrs; boost::tie(nbrIdx,endNbrs) = molPtr->getAtomNeighbors(atomPtr); while(nbrIdx!=endNbrs){ const Atom *at=molPtr->getAtomWithIdx(*nbrIdx); ... do something with the Atom ... ++nbrIdx; }
Notes:
| ADJ_ITER_PAIR RDKit::ROMol::getAtomNeighbors | ( | ATOM_SPTR | at | ) | const |
| OBOND_ITER_PAIR RDKit::ROMol::getAtomBonds | ( | Atom const * | at | ) | const |
provides access to all Bond objects connected to an Atom
| at | the atom whose neighbors we are looking for |
... molPtr is a const ROMol * ... ... atomPtr is a const Atom * ... ROMol::OEDGE_ITER beg,end; ROMol::GRAPH_MOL_BOND_PMAP::const_type pMap = molPtr->getBondPMap(); boost::tie(beg,end) = molPtr->getAtomBonds(atomPtr); while(beg!=end){ const Bond *bond=pMap[*beg]; ... do something with the Bond ... ++beg; }
... molPtr is a ROMol * ... ... atomPtr is a const Atom * ... ROMol::OEDGE_ITER beg,end; ROMol::GRAPH_MOL_BOND_PMAP::type pMap = molPtr->getBondPMap(); boost::tie(beg,end) = molPtr->getAtomBonds(atomPtr); while(beg!=end){ Bond *bond=pMap[*beg]; ... do something with the Bond ... ++beg; }
Referenced by RDKit::queryAtomRingBondCount().
| GRAPH_MOL_ATOM_PMAP::type RDKit::ROMol::getAtomPMap | ( | ) |
returns the atom PMap
| GRAPH_MOL_BOND_PMAP::type RDKit::ROMol::getBondPMap | ( | ) |
returns the bond PMap (required to use Bond iterators)
Referenced by RDKit::queryAtomRingBondCount().
| GRAPH_MOL_ATOM_PMAP::const_type RDKit::ROMol::getAtomPMap | ( | ) | const |
| GRAPH_MOL_BOND_PMAP::const_type RDKit::ROMol::getBondPMap | ( | ) | const |
| ATOM_ITER_PAIR RDKit::ROMol::getVertices | ( | ) |
returns an iterator pair for looping over all Atoms
Usage
... molPtr is an ROMol * ... ROMol::GRAPH_MOL_ATOM_PMAP::type atomMap = molPtr->getAtomPMap(); ROMol::VERTEX_ITER atBegin,atEnd; boost::tie(atBegin,atEnd) = mol.getVertices(); while(atBegin!=atEnd){ Atom *at2=atomMap[*atBegin]; ... do something with the Atom ... ++atBegin; }
| BOND_ITER_PAIR RDKit::ROMol::getEdges | ( | ) |
returns an iterator pair for looping over all Bonds
Usage
... molPtr is a ROMol * ... ROMol::EDGE_ITER firstB,lastB; boost::tie(firstB,lastB) = mol.getEdges(); ROMol::GRAPH_MOL_BOND_PMAP::type bondMap = mol.getBondPMap(); while(firstB!=lastB){ Bond *bond = bondMap[*firstB]; ... do something with the Bond ... ++firstB; }
| ATOM_ITER_PAIR RDKit::ROMol::getVertices | ( | ) | const |
| BOND_ITER_PAIR RDKit::ROMol::getEdges | ( | ) | const |
| MolGraph const* RDKit::ROMol::getTopology | ( | ) | const [inline] |
brief returns a pointer to our underlying BGL object
This can be useful if you need to call other BGL algorithms:
Here's an example:
| AtomIterator RDKit::ROMol::beginAtoms | ( | ) |
get an AtomIterator pointing at our first Atom
| ConstAtomIterator RDKit::ROMol::beginAtoms | ( | ) | const |
| AtomIterator RDKit::ROMol::endAtoms | ( | ) |
get an AtomIterator pointing at the end of our Atoms
| ConstAtomIterator RDKit::ROMol::endAtoms | ( | ) | const |
| AromaticAtomIterator RDKit::ROMol::beginAromaticAtoms | ( | ) |
get an AtomIterator pointing at our first aromatic Atom
| ConstAromaticAtomIterator RDKit::ROMol::beginAromaticAtoms | ( | ) | const |
| AromaticAtomIterator RDKit::ROMol::endAromaticAtoms | ( | ) |
get an AtomIterator pointing at the end of our Atoms
| ConstAromaticAtomIterator RDKit::ROMol::endAromaticAtoms | ( | ) | const |
| HeteroatomIterator RDKit::ROMol::beginHeteros | ( | ) |
get an AtomIterator pointing at our first hetero Atom
| ConstHeteroatomIterator RDKit::ROMol::beginHeteros | ( | ) | const |
| HeteroatomIterator RDKit::ROMol::endHeteros | ( | ) |
get an AtomIterator pointing at the end of our Atoms
| ConstHeteroatomIterator RDKit::ROMol::endHeteros | ( | ) | const |
| QueryAtomIterator RDKit::ROMol::beginQueryAtoms | ( | QueryAtom const * | query | ) |
get an AtomIterator pointing at our first Atom that matches query
| ConstQueryAtomIterator RDKit::ROMol::beginQueryAtoms | ( | QueryAtom const * | ) | const |
| QueryAtomIterator RDKit::ROMol::endQueryAtoms | ( | ) |
gte an AtomIterator pointing at the end of our Atoms
| ConstQueryAtomIterator RDKit::ROMol::endQueryAtoms | ( | ) | const |
| BondIterator RDKit::ROMol::beginBonds | ( | ) |
get a BondIterator pointing at our first Bond
| ConstBondIterator RDKit::ROMol::beginBonds | ( | ) | const |
| BondIterator RDKit::ROMol::endBonds | ( | ) |
get a BondIterator pointing at the end of our Bonds
| ConstBondIterator RDKit::ROMol::endBonds | ( | ) | const |
| ConformerIterator RDKit::ROMol::beginConformers | ( | ) | [inline] |
| ConstConformerIterator RDKit::ROMol::beginConformers | ( | ) | const [inline] |
| ConstConformerIterator RDKit::ROMol::endConformers | ( | ) | const [inline] |
| STR_VECT RDKit::ROMol::getPropList | ( | bool | includePrivate = true, |
|
| bool | includeComputed = true | |||
| ) | const [inline] |
returns a list with the names of our properties
Definition at line 497 of file ROMol.h.
References getProp(), hasProp(), and RDKit::Dict::keys().
| void RDKit::ROMol::setProp | ( | const char * | key, | |
| T | val, | |||
| bool | computed = false | |||
| ) | const [inline] |
| void RDKit::ROMol::setProp | ( | const std::string | key, | |
| T | val, | |||
| bool | computed = false | |||
| ) | const [inline] |
| void RDKit::ROMol::getProp | ( | const char * | key, | |
| T & | res | |||
| ) | const [inline] |
allows retrieval of a particular property value
| key | the name under which the property should be stored. If a property is already stored under this name, it will be replaced. | |
| res | a reference to the storage location for the value. |
property with name key exists, a KeyErrorException will be thrown.boost::lexical_cast machinery is used to attempt type conversions. If this fails, a boost::bad_lexical_cast exception will be thrown. Definition at line 561 of file ROMol.h.
References RDKit::Dict::getVal().
Referenced by clearProp(), getPropList(), and setProp().
| void RDKit::ROMol::getProp | ( | const std::string | key, | |
| T & | res | |||
| ) | const [inline] |
| bool RDKit::ROMol::hasProp | ( | const char * | key | ) | const [inline] |
returns whether or not we have a property with name key
Definition at line 572 of file ROMol.h.
References RDKit::Dict::hasVal().
Referenced by getPropList().
| bool RDKit::ROMol::hasProp | ( | const std::string | key | ) | const [inline] |
| void RDKit::ROMol::clearProp | ( | const char * | key | ) | const [inline] |
clears the value of a property
Notes:
property with name key exists, a KeyErrorException will be thrown.property is marked as computed, it will also be removed from our list of computedProperties | void RDKit::ROMol::clearProp | ( | const std::string | key | ) | const [inline] |
Definition at line 596 of file ROMol.h.
References RDKit::Dict::clearVal(), getProp(), and RDKit::Dict::setVal().
| void RDKit::ROMol::clearComputedProps | ( | bool | includeRings = true |
) | const |
clears all of our computed properties
| void RDKit::ROMol::updatePropertyCache | ( | bool | strict = true |
) |
calculates any of our lazy properties
Notes:
updatePropertyCache() on each of our Atoms and Bonds | void RDKit::ROMol::debugMol | ( | std::ostream & | str | ) | const |
sends some debugging info to a stream
friend class MolPickler [friend] |
1.5.5