RDKit::ROMol Class Reference

ROMol is a molecule class that is intended to have a fixed topology. More...

#include <ROMol.h>

Inheritance diagram for RDKit::ROMol:

RDKit::RWMol

List of all members.

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 ConformergetConformer (int id=-1) const
ConformergetConformer (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
RingInfogetRingInfo () 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


Detailed Description

ROMol is a molecule class that is intended to have a fixed topology.

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:

Definition at line 93 of file ROMol.h.


Constructor & Destructor Documentation

RDKit::ROMol::ROMol (  )  [inline]

Definition at line 166 of file ROMol.h.

RDKit::ROMol::ROMol ( const ROMol other,
bool  quickCopy = false 
) [inline]

copy constructor with a twist

Parameters:
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).

Definition at line 175 of file ROMol.h.

RDKit::ROMol::ROMol ( const std::string &  binStr  ) 

construct a molecule from a pickle string

virtual RDKit::ROMol::~ROMol (  )  [inline, virtual]

Definition at line 179 of file ROMol.h.


Member Function Documentation

unsigned int RDKit::ROMol::getNumAtoms ( bool  onlyHeavy = 1  )  const

returns our number of Atoms

Referenced by RDKit::RWMol::getLastAtom().

GRAPH_NODE_TYPE RDKit::ROMol::getAtomWithIdx ( unsigned int  idx  ) 

returns a pointer to a particular Atom

Referenced by RDKit::RWMol::getLastAtom().

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

returns our number of Bonds

Referenced by RDKit::FragCatalogEntry::getOrder().

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]

associates an Atom pointer with a bookmark

Definition at line 217 of file ROMol.h.

void RDKit::ROMol::setAtomBookmark ( Atom at,
int  mark 
) [inline]

Definition at line 219 of file ROMol.h.

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  ) 

removes a bookmark from our collection

Referenced by clearAtomBookmark().

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]

Definition at line 229 of file ROMol.h.

References clearAtomBookmark().

void RDKit::ROMol::clearAllAtomBookmarks (  )  [inline]

blows out all atomic bookmarks

Definition at line 231 of file ROMol.h.

bool RDKit::ROMol::hasAtomBookmark ( int  mark  )  const [inline]

queries whether or not any atoms are associated with a bookmark

Definition at line 233 of file ROMol.h.

ATOM_BOOKMARK_MAP* RDKit::ROMol::getAtomBookmarks (  )  [inline]

returns a pointer to all of our atom bookmarks

Definition at line 235 of file ROMol.h.

void RDKit::ROMol::setBondBookmark ( BOND_SPTR  bond,
int  mark 
) [inline]

associates a Bond pointer with a bookmark

Definition at line 238 of file ROMol.h.

void RDKit::ROMol::setBondBookmark ( Bond bond,
int  mark 
) [inline]

Definition at line 240 of file ROMol.h.

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  ) 

removes a bookmark from our collection

Referenced by clearBondBookmark().

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]

Definition at line 250 of file ROMol.h.

References clearBondBookmark().

void RDKit::ROMol::clearAllBondBookmarks (  )  [inline]

blows out all bond bookmarks

Definition at line 252 of file ROMol.h.

bool RDKit::ROMol::hasBondBookmark ( int  mark  )  [inline]

queries whether or not any bonds are associated with a bookmark

Definition at line 254 of file ROMol.h.

BOND_BOOKMARK_MAP* RDKit::ROMol::getBondBookmarks (  )  [inline]

returns a pointer to all of our bond bookmarks

Definition at line 256 of file ROMol.h.

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]

Clear all the conformations on the molecule.

Definition at line 276 of file ROMol.h.

unsigned int RDKit::ROMol::addConformer ( Conformer conf,
bool  assignId = false 
)

Add a new conformation to the molecule.

Parameters:
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]

Definition at line 287 of file ROMol.h.

RingInfo* RDKit::ROMol::getRingInfo (  )  const [inline]

ADJ_ITER_PAIR RDKit::ROMol::getAtomNeighbors ( Atom const *  at  )  const

provides access to all neighbors around an Atom

Parameters:
at the atom whose neighbors we are looking for
Usage
        ... 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:

  • technically, we're probably suppposed to be using the atom pmap here (accessible using ROMol::getAtomPMap()), but that's not actually required.

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

Parameters:
at the atom whose neighbors we are looking for
Usage
        ... 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;
        }
or, if you need a non-const Bond *:
        ... 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:

           ... mol is a const ROMol ...
           ... mapping is an INT_VECT ...
           mapping.resize(mol.getNumAtoms());
           const MolGraph *G_p = mol.getTopology();
           int res = boost::connected_components(*G_p,&mapping[0]);

Definition at line 422 of file ROMol.h.

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]

Definition at line 475 of file ROMol.h.

ConformerIterator RDKit::ROMol::endConformers (  )  [inline]

Definition at line 479 of file ROMol.h.

ConstConformerIterator RDKit::ROMol::beginConformers (  )  const [inline]

Definition at line 483 of file ROMol.h.

ConstConformerIterator RDKit::ROMol::endConformers (  )  const [inline]

Definition at line 487 of file ROMol.h.

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().

template<typename T>
void RDKit::ROMol::setProp ( const char *  key,
val,
bool  computed = false 
) const [inline]

sets a property value

Parameters:
key the name under which the property should be stored. If a property is already stored under this name, it will be replaced.
val the value to be stored
computed (optional) allows the property to be flagged computed.

Definition at line 528 of file ROMol.h.

template<typename T>
void RDKit::ROMol::setProp ( const std::string  key,
val,
bool  computed = false 
) const [inline]

Definition at line 534 of file ROMol.h.

References getProp(), and RDKit::Dict::setVal().

template<typename T>
void RDKit::ROMol::getProp ( const char *  key,
T &  res 
) const [inline]

allows retrieval of a particular property value

Parameters:
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.
Notes:
  • if no property with name key exists, a KeyErrorException will be thrown.
  • the 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().

template<typename T>
void RDKit::ROMol::getProp ( const std::string  key,
T &  res 
) const [inline]

Definition at line 566 of file ROMol.h.

References RDKit::Dict::getVal().

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]

Definition at line 577 of file ROMol.h.

References RDKit::Dict::hasVal().

void RDKit::ROMol::clearProp ( const char *  key  )  const [inline]

clears the value of a property

Notes:

  • if no property with name key exists, a KeyErrorException will be thrown.
  • if the property is marked as computed, it will also be removed from our list of computedProperties

Definition at line 591 of file ROMol.h.

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:

void RDKit::ROMol::debugMol ( std::ostream &  str  )  const

sends some debugging info to a stream


Friends And Related Function Documentation

friend class MolPickler [friend]

Definition at line 95 of file ROMol.h.

friend class RWMol [friend]

Definition at line 96 of file ROMol.h.


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

Generated on Tue Oct 7 06:10:13 2008 for RDCode by  doxygen 1.5.5