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 ()
ATOM_SPTR operator[] (const vertex_descriptor &v)
const ATOM_SPTR operator[] (const vertex_descriptor &v) const
BOND_SPTR operator[] (const edge_descriptor &e)
const BOND_SPTR operator[] (const edge_descriptor &e) const
Atoms
unsigned int getNumAtoms (bool onlyHeavy=1) const
 returns our number of Atoms
AtomgetAtomWithIdx (unsigned int idx)
 returns a pointer to a particular Atom
const AtomgetAtomWithIdx (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
BondgetBondWithIdx (unsigned int idx)
 returns a pointer to a particular Bond
const BondgetBondWithIdx (unsigned int idx) const
BondgetBondBetweenAtoms (unsigned int idx1, unsigned int idx2)
 returns a pointer to the bond between two atoms, Null on failure
const BondgetBondBetweenAtoms (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)
AtomgetAtomWithBookmark (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)
BondgetBondWithBookmark (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) const
 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
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
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
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
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 98 of file ROMol.h.


Constructor & Destructor Documentation

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

Definition at line 168 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 177 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 181 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().

Atom* RDKit::ROMol::getAtomWithIdx ( unsigned int  idx  ) 

returns a pointer to a particular Atom

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

const Atom* 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().

Bond* RDKit::ROMol::getBondWithIdx ( unsigned int  idx  ) 

returns a pointer to a particular Bond

const Bond* RDKit::ROMol::getBondWithIdx ( unsigned int  idx  )  const

Bond* RDKit::ROMol::getBondBetweenAtoms ( unsigned int  idx1,
unsigned int  idx2 
)

returns a pointer to the bond between two atoms, Null on failure

const Bond* 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 219 of file ROMol.h.

Referenced by RDKit::SLNParse::bookmarkAtomID().

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

Definition at line 221 of file ROMol.h.

Atom* 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 231 of file ROMol.h.

References clearAtomBookmark().

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

blows out all atomic bookmarks

Definition at line 233 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 235 of file ROMol.h.

Referenced by RDKit::SLNParse::bookmarkAtomID().

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

returns a pointer to all of our atom bookmarks

Definition at line 237 of file ROMol.h.

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

associates a Bond pointer with a bookmark

Definition at line 240 of file ROMol.h.

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

Definition at line 242 of file ROMol.h.

Bond* 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 252 of file ROMol.h.

References clearBondBookmark().

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

blows out all bond bookmarks

Definition at line 254 of file ROMol.h.

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

queries whether or not any bonds are associated with a bookmark

Definition at line 256 of file ROMol.h.

Referenced by RDKit::SLNParse::bookmarkAtomID().

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

returns a pointer to all of our bond bookmarks

Definition at line 258 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 278 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 289 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_SPTR at=molPtr[*nbrIdx];
          ... do something with the Atom ...
          ++nbrIdx;
        }

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;
        boost::tie(beg,end) = molPtr->getAtomBonds(atomPtr);
        while(beg!=end){
          const BOND_SPTR bond=(*molPtr)[*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;
        boost::tie(beg,end) = molPtr->getAtomBonds(atomPtr);
        while(beg!=end){
          BOND_SPTR bond=(*molPtr)[*beg];
          ... do something with the Bond ...
          ++beg;
        }

Referenced by RDKit::queryAtomRingBondCount().

ATOM_ITER_PAIR RDKit::ROMol::getVertices (  ) 

returns an iterator pair for looping over all Atoms

Usage

        ROMol::VERTEX_ITER atBegin,atEnd;
        boost::tie(atBegin,atEnd) = mol.getVertices();  
        while(atBegin!=atEnd){
          ATOM_SPTR at2=mol[*atBegin];
          ... do something with the Atom ...
          ++atBegin;
        }

BOND_ITER_PAIR RDKit::ROMol::getEdges (  ) 

returns an iterator pair for looping over all Bonds

Usage

        ROMol::EDGE_ITER firstB,lastB;
        boost::tie(firstB,lastB) = mol.getEdges();
        while(firstB!=lastB){
          BOND_SPTR bond = mol[*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 408 of file ROMol.h.

Referenced by RDKit::queryAtomRingBondCount().

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

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

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

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

Definition at line 459 of file ROMol.h.

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

Definition at line 463 of file ROMol.h.

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

Definition at line 467 of file ROMol.h.

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

Definition at line 471 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 481 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 512 of file ROMol.h.

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

Definition at line 518 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 545 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 550 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 556 of file ROMol.h.

References RDKit::Dict::hasVal().

Referenced by getPropList().

bool RDKit::ROMol::hasProp ( const std::string  key  )  const [inline]

Definition at line 561 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 575 of file ROMol.h.

void RDKit::ROMol::clearProp ( const std::string  key  )  const [inline]

Definition at line 580 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

ATOM_SPTR RDKit::ROMol::operator[] ( const vertex_descriptor &  v  )  [inline]

Definition at line 611 of file ROMol.h.

const ATOM_SPTR RDKit::ROMol::operator[] ( const vertex_descriptor &  v  )  const [inline]

Definition at line 612 of file ROMol.h.

BOND_SPTR RDKit::ROMol::operator[] ( const edge_descriptor &  e  )  [inline]

Definition at line 614 of file ROMol.h.

const BOND_SPTR RDKit::ROMol::operator[] ( const edge_descriptor &  e  )  const [inline]

Definition at line 615 of file ROMol.h.


Friends And Related Function Documentation

friend class MolPickler [friend]

Definition at line 100 of file ROMol.h.

friend class RWMol [friend]

Definition at line 101 of file ROMol.h.


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

Generated on Fri Apr 3 06:03:04 2009 for RDCode by  doxygen 1.5.6