RDKit
Open-source cheminformatics and machine learning.
ROMol.h File Reference

Defines the primary molecule class ROMol as well as associated typedefs. More...

#include <RDGeneral/export.h>
#include <utility>
#include <map>
#include <RDGeneral/BoostStartInclude.h>
#include <boost/graph/adjacency_list.hpp>
#include <boost/smart_ptr.hpp>
#include <RDGeneral/BoostEndInclude.h>
#include <RDGeneral/types.h>
#include <RDGeneral/RDProps.h>
#include "Atom.h"
#include "Bond.h"
#include "Conformer.h"
#include "SubstanceGroup.h"
#include "StereoGroup.h"

Go to the source code of this file.

Classes

class  RDKit::AtomIterator_< Atom_, Mol_ >
 A general random access iterator. More...
 
class  RDKit::AromaticAtomIterator_< Atom_, Mol_ >
 Iterate over aromatic atoms, this is bidirectional. More...
 
class  RDKit::HeteroatomIterator_< Atom_, Mol_ >
 Iterate over heteroatoms, this is bidirectional. More...
 
class  RDKit::QueryAtomIterator_< Atom_, Mol_ >
 Iterate over atoms matching a query. This is bidirectional. More...
 
class  RDKit::MatchingAtomIterator_< Atom_, Mol_ >
 Iterate over atoms matching a query function. This is bidirectional. More...
 
struct  RDKit::CXXAtomIterator< Graph, Vertex >
 
struct  RDKit::CXXAtomIterator< Graph, Vertex >::CXXAtomIter
 
struct  RDKit::CXXBondIterator< Graph, Edge >
 
struct  RDKit::CXXBondIterator< Graph, Edge >::CXXBondIter
 
class  RDKit::ROMol
 

Namespaces

 RDKit
 Std stuff.
 

Typedefs

typedef boost::adjacency_list< boost::vecS, boost::vecS, boost::undirectedS, Atom *, Bond * > RDKit::MolGraph
 This is the BGL type used to store the topology: More...
 
C++11 Iterators

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:

  • each ROMol maintains a Dict of properties:
    • Each 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.
    • Because they have no impact upon chemistry, all property operations are const, this allows extra flexibility for clients who need to store extra data on ROMol objects.
  • each ROMol has collections of bookmarks for Atoms and Bonds:
    • the Atom bookmarks and Bond bookmarks are stored separately from each other
    • each bookmark, an integer, can map to more than one Atom or Bond
    • these are currently used in molecule construction, but could also be useful for reaction mapping and the like
  • information about rings (SSSR and the like) is stored in the molecule's RingInfo pointer.
typedef std::vector< ROMol > RDKit::MOL_VECT
 
typedef std::vector< ROMol * > RDKit::MOL_PTR_VECT
 
typedef MOL_PTR_VECT::const_iterator RDKit::MOL_PTR_VECT_CI
 
typedef MOL_PTR_VECT::iterator RDKit::MOL_PTR_VECT_I
 

Variables

const RDKIT_GRAPHMOL_EXPORT int RDKit::ci_RIGHTMOST_ATOM
 
const RDKIT_GRAPHMOL_EXPORT int RDKit::ci_LEADING_BOND
 
const RDKIT_GRAPHMOL_EXPORT int RDKit::ci_ATOM_HOLDER
 

Detailed Description

Defines the primary molecule class ROMol as well as associated typedefs.

Definition in file ROMol.h.