![]() |
RDKit
Open-source cheminformatics and machine learning.
|
RWMol is a molecule class that is intended to be edited. More...
#include <RWMol.h>
Public Member Functions | |
RWMol () | |
RWMol (const ROMol &other, bool quickCopy=false, int confId=-1) | |
copy constructor with a twist More... | |
RWMol & | operator= (const RWMol &) |
void | insertMol (const ROMol &other) |
insert the atoms and bonds from other into this molecule More... | |
void | clear () |
removes all atoms, bonds, properties, bookmarks, etc. More... | |
Atoms | |
unsigned int | addAtom (bool updateLabel=true) |
adds an empty Atom to our collection More... | |
unsigned int | addAtom (Atom *atom, bool updateLabel=true, bool takeOwnership=false) |
adds an Atom to our collection More... | |
unsigned int | addAtom (ATOM_SPTR atom, bool updateLabel=true) |
adds an Atom to our collection More... | |
void | replaceAtom (unsigned int idx, Atom *atom, bool updateLabel=false) |
replaces a particular Atom More... | |
Atom * | getLastAtom () |
returns a pointer to the highest-numbered Atom More... | |
Atom * | getActiveAtom () |
returns a pointer to the "active" Atom More... | |
void | setActiveAtom (Atom *atom) |
sets our activeAtom More... | |
void | setActiveAtom (unsigned int idx) |
void | removeAtom (unsigned int idx) |
removes an Atom from the molecule More... | |
void | removeAtom (Atom *atom) |
Bonds | |
unsigned int | addBond (unsigned int beginAtomIdx, unsigned int endAtomIdx, Bond::BondType order=Bond::UNSPECIFIED) |
adds a Bond between the indicated Atoms More... | |
unsigned int | addBond (ATOM_SPTR beginAtom, ATOM_SPTR endAtom, Bond::BondType order=Bond::UNSPECIFIED) |
unsigned int | addBond (Atom *beginAtom, Atom *endAtom, Bond::BondType order=Bond::UNSPECIFIED) |
unsigned int | addBond (Bond *bond, bool takeOwnership=false) |
adds a Bond to our collection More... | |
unsigned int | addBond (BOND_SPTR bsp) |
adds a Bond to our collection More... | |
Bond * | createPartialBond (unsigned int beginAtomIdx, Bond::BondType order=Bond::UNSPECIFIED) |
starts a Bond and sets its beginAtomIdx More... | |
unsigned int | finishPartialBond (unsigned int endAtomIdx, int bondBookmark, Bond::BondType order=Bond::UNSPECIFIED) |
finishes a partially constructed bond More... | |
void | removeBond (unsigned int beginAtomIdx, unsigned int endAtomIdx) |
removes a bond from the molecule More... | |
![]() | |
ROMol () | |
ROMol (const ROMol &other, bool quickCopy=false, int confId=-1) | |
copy constructor with a twist More... | |
ROMol (const std::string &binStr) | |
construct a molecule from a pickle string More... | |
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 |
unsigned int | getNumAtoms (bool onlyExplicit=1) const |
returns our number of atoms More... | |
unsigned int | getNumHeavyAtoms () const |
returns our number of heavy atoms (atomic number > 1) More... | |
Atom * | getAtomWithIdx (unsigned int idx) |
returns a pointer to a particular Atom More... | |
const Atom * | getAtomWithIdx (unsigned int idx) const |
unsigned int | getAtomDegree (const Atom *at) const |
returns the degree (number of neighbors) of an Atom in the graph More... | |
unsigned int | getAtomDegree (ATOM_SPTR at) const |
unsigned int | getNumBonds (bool onlyHeavy=1) const |
returns our number of Bonds More... | |
Bond * | getBondWithIdx (unsigned int idx) |
returns a pointer to a particular Bond More... | |
const Bond * | getBondWithIdx (unsigned int idx) const |
Bond * | getBondBetweenAtoms (unsigned int idx1, unsigned int idx2) |
returns a pointer to the bond between two atoms, Null on failure More... | |
const Bond * | getBondBetweenAtoms (unsigned int idx1, unsigned int idx2) const |
void | setAtomBookmark (ATOM_SPTR at, int mark) |
associates an Atom pointer with a bookmark More... | |
void | setAtomBookmark (Atom *at, int mark) |
void | replaceAtomBookmark (ATOM_SPTR at, int mark) |
associates an Atom pointer with a bookmark More... | |
void | replaceAtomBookmark (Atom *at, int mark) |
Atom * | getAtomWithBookmark (int mark) |
returns the first Atom associated with the bookmark provided More... | |
ATOM_PTR_LIST & | getAllAtomsWithBookmark (int mark) |
returns all Atoms associated with the bookmark provided More... | |
void | clearAtomBookmark (const int mark) |
removes a bookmark from our collection More... | |
void | clearAtomBookmark (const int mark, const Atom *atom) |
removes a particular Atom from the list associated with the bookmark More... | |
void | clearAtomBookmark (const int mark, ATOM_SPTR atom) |
void | clearAllAtomBookmarks () |
blows out all atomic bookmarks More... | |
bool | hasAtomBookmark (int mark) const |
queries whether or not any atoms are associated with a bookmark More... | |
ATOM_BOOKMARK_MAP * | getAtomBookmarks () |
returns a pointer to all of our atom bookmarks More... | |
void | setBondBookmark (BOND_SPTR bond, int mark) |
associates a Bond pointer with a bookmark More... | |
void | setBondBookmark (Bond *bond, int mark) |
Bond * | getBondWithBookmark (int mark) |
returns the first Bond associated with the bookmark provided More... | |
BOND_PTR_LIST & | getAllBondsWithBookmark (int mark) |
returns all bonds associated with the bookmark provided More... | |
void | clearBondBookmark (int mark) |
removes a bookmark from our collection More... | |
void | clearBondBookmark (int mark, const Bond *bond) |
removes a particular Bond from the list associated with the bookmark More... | |
void | clearBondBookmark (int mark, BOND_SPTR bond) |
void | clearAllBondBookmarks () |
blows out all bond bookmarks More... | |
bool | hasBondBookmark (int mark) const |
queries whether or not any bonds are associated with a bookmark More... | |
BOND_BOOKMARK_MAP * | getBondBookmarks () |
returns a pointer to all of our bond bookmarks More... | |
const Conformer & | getConformer (int id=-1) const |
Conformer & | getConformer (int id=-1) |
void | removeConformer (unsigned int id) |
Delete the conformation with the specified ID. More... | |
void | clearConformers () |
Clear all the conformations on the molecule. More... | |
unsigned int | addConformer (Conformer *conf, bool assignId=false) |
Add a new conformation to the molecule. More... | |
unsigned int | getNumConformers () const |
RingInfo * | getRingInfo () const |
ADJ_ITER_PAIR | getAtomNeighbors (Atom const *at) const |
provides access to all neighbors around an Atom More... | |
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 More... | |
ATOM_ITER_PAIR | getVertices () |
returns an iterator pair for looping over all Atoms More... | |
BOND_ITER_PAIR | getEdges () |
returns an iterator pair for looping over all Bonds More... | |
ATOM_ITER_PAIR | getVertices () const |
BOND_ITER_PAIR | getEdges () const |
MolGraph const & | getTopology () const |
brief returns a pointer to our underlying BGL object More... | |
AtomIterator | beginAtoms () |
get an AtomIterator pointing at our first Atom More... | |
ConstAtomIterator | beginAtoms () const |
AtomIterator | endAtoms () |
get an AtomIterator pointing at the end of our Atoms More... | |
ConstAtomIterator | endAtoms () const |
BondIterator | beginBonds () |
get a BondIterator pointing at our first Bond More... | |
ConstBondIterator | beginBonds () const |
BondIterator | endBonds () |
get a BondIterator pointing at the end of our Bonds More... | |
ConstBondIterator | endBonds () const |
AromaticAtomIterator | beginAromaticAtoms () |
get an AtomIterator pointing at our first aromatic Atom More... | |
ConstAromaticAtomIterator | beginAromaticAtoms () const |
AromaticAtomIterator | endAromaticAtoms () |
get an AtomIterator pointing at the end of our Atoms More... | |
ConstAromaticAtomIterator | endAromaticAtoms () const |
HeteroatomIterator | beginHeteros () |
get an AtomIterator pointing at our first hetero Atom More... | |
ConstHeteroatomIterator | beginHeteros () const |
HeteroatomIterator | endHeteros () |
get an AtomIterator pointing at the end of our Atoms More... | |
ConstHeteroatomIterator | endHeteros () const |
QueryAtomIterator | beginQueryAtoms (QueryAtom const *query) |
get an AtomIterator pointing at our first Atom that matches query More... | |
ConstQueryAtomIterator | beginQueryAtoms (QueryAtom const *) const |
QueryAtomIterator | endQueryAtoms () |
get an AtomIterator pointing at the end of our Atoms More... | |
ConstQueryAtomIterator | endQueryAtoms () const |
MatchingAtomIterator | beginMatchingAtoms (bool(*query)(Atom *)) |
get an AtomIterator pointing at our first Atom that matches query More... | |
ConstMatchingAtomIterator | beginMatchingAtoms (bool(*query)(const Atom *)) const |
MatchingAtomIterator | endMatchingAtoms () |
get an AtomIterator pointing at the end of our Atoms More... | |
ConstMatchingAtomIterator | endMatchingAtoms () const |
ConformerIterator | beginConformers () |
ConformerIterator | endConformers () |
ConstConformerIterator | beginConformers () const |
ConstConformerIterator | endConformers () const |
STR_VECT | getPropList (bool includePrivate=true, bool includeComputed=true) const |
returns a list with the names of our properties More... | |
template<typename T > | |
void | setProp (const char *key, T val, bool computed=false) const |
sets a property value More... | |
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 More... | |
template<typename T > | |
void | getProp (const std::string &key, T &res) const |
template<typename T > | |
T | getProp (const char *key) const |
template<typename T > | |
T | getProp (const std::string &key) const |
template<typename T > | |
bool | getPropIfPresent (const char *key, T &res) const |
template<typename T > | |
bool | getPropIfPresent (const std::string &key, T &res) const |
bool | hasProp (const char *key) const |
returns whether or not we have a property with name key More... | |
bool | hasProp (const std::string &key) const |
void | clearProp (const char *key) const |
clears the value of a property More... | |
void | clearProp (const std::string &key) const |
void | clearComputedProps (bool includeRings=true) const |
clears all of our computed properties More... | |
void | updatePropertyCache (bool strict=true) |
calculates any of our lazy properties More... | |
bool | needsUpdatePropertyCache () const |
void | debugMol (std::ostream &str) const |
sends some debugging info to a stream More... | |
RWMol is a molecule class that is intended to be edited.
See documentation for ROMol for general remarks
|
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). |
confId | if this is >=0, the resulting ROMol will contain only the specified conformer from other . |
Definition at line 44 of file RWMol.h.
References addAtom(), insertMol(), and operator=().
unsigned int RDKit::RWMol::addAtom | ( | bool | updateLabel = true | ) |
adds an empty Atom to our collection
updateLabel | (optional) if this is true, the new Atom will be our activeAtom |
Referenced by RWMol(), and RDKit::SLNParse::startMol().
|
inline |
|
inline |
adds an Atom to our collection
atom | pointer to the Atom to add |
updateLabel | (optional) if this is true, the new Atom will be our activeAtom |
Note: since this is using a smart pointer, we don't need to worry about issues of ownership.
Definition at line 94 of file RWMol.h.
References replaceAtom().
unsigned int RDKit::RWMol::addBond | ( | unsigned int | beginAtomIdx, |
unsigned int | endAtomIdx, | ||
Bond::BondType | order = Bond::UNSPECIFIED |
||
) |
adds a Bond between the indicated Atoms
Referenced by getLastAtom(), and RDKit::SLNParse::startMol().
unsigned int RDKit::RWMol::addBond | ( | ATOM_SPTR | beginAtom, |
ATOM_SPTR | endAtom, | ||
Bond::BondType | order = Bond::UNSPECIFIED |
||
) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
unsigned int RDKit::RWMol::addBond | ( | Atom * | beginAtom, |
Atom * | endAtom, | ||
Bond::BondType | order = Bond::UNSPECIFIED |
||
) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
inline |
|
inline |
adds a Bond to our collection
bsp | smart pointer to the Bond to add |
Note: since this is using a smart pointer, we don't need to worry about issues of ownership.
Definition at line 164 of file RWMol.h.
References createPartialBond(), finishPartialBond(), removeBond(), and RDKit::Bond::UNSPECIFIED.
|
inline |
removes all atoms, bonds, properties, bookmarks, etc.
Definition at line 213 of file RWMol.h.
References detail::computedPropName.
Bond* RDKit::RWMol::createPartialBond | ( | unsigned int | beginAtomIdx, |
Bond::BondType | order = Bond::UNSPECIFIED |
||
) |
starts a Bond and sets its beginAtomIdx
The caller should set a bookmark to the returned Bond in order to be able to later complete it:
Bond *pBond = mol->createPartialBond(1); mol->setBondBookmark(pBond,666); ... do some other stuff ... mol->finishPartialBond(2,666,Bond::SINGLE); mol->clearBondBookmark(666,pBond);
or, if we want to set the BondType
initially:
Bond *pBond = mol->createPartialBond(1,Bond::DOUBLE); mol->setBondBookmark(pBond,666); ... do some other stuff ... mol->finishPartialBond(2,666); mol->clearBondBookmark(666,pBond);
the call to finishPartialBond() will take priority if you set the BondType
in both calls.
Referenced by addBond().
unsigned int RDKit::RWMol::finishPartialBond | ( | unsigned int | endAtomIdx, |
int | bondBookmark, | ||
Bond::BondType | order = Bond::UNSPECIFIED |
||
) |
finishes a partially constructed bond
See the documentation for createPartialBond() for more details
Referenced by addBond().
Atom* RDKit::RWMol::getActiveAtom | ( | ) |
returns a pointer to the "active" Atom
If we have an activeAtom
, it will be returned, otherwise the results of getLastAtom() will be returned.
Referenced by getLastAtom().
|
inline |
returns a pointer to the highest-numbered Atom
Definition at line 108 of file RWMol.h.
References addBond(), getActiveAtom(), RDKit::ROMol::getAtomWithIdx(), RDKit::ROMol::getNumAtoms(), removeAtom(), setActiveAtom(), and RDKit::Bond::UNSPECIFIED.
void RDKit::RWMol::insertMol | ( | const ROMol & | other | ) |
insert the atoms and bonds from other
into this molecule
Referenced by RWMol().
void RDKit::RWMol::removeAtom | ( | unsigned int | idx | ) |
removes an Atom from the molecule
Referenced by getLastAtom().
void RDKit::RWMol::removeAtom | ( | Atom * | atom | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
void RDKit::RWMol::removeBond | ( | unsigned int | beginAtomIdx, |
unsigned int | endAtomIdx | ||
) |
removes a bond from the molecule
Referenced by addBond().
void RDKit::RWMol::replaceAtom | ( | unsigned int | idx, |
Atom * | atom, | ||
bool | updateLabel = false |
||
) |
void RDKit::RWMol::setActiveAtom | ( | Atom * | atom | ) |
sets our activeAtom
Referenced by getLastAtom().
void RDKit::RWMol::setActiveAtom | ( | unsigned int | idx | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.