![]() |
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 | |
| RWMol (const RWMol &other) | |
| RWMol & | operator= (const RWMol &) |
| RWMol (RWMol &&other) noexcept | |
| RWMol & | operator= (RWMol &&other) noexcept |
| void | insertMol (const ROMol &other) |
insert the atoms and bonds from other into this molecule | |
| void | clear () |
| removes all atoms, bonds, properties, bookmarks, etc. | |
| void | beginBatchEdit () |
| void | rollbackBatchEdit () |
| void | commitBatchEdit () |
Atoms | |
| unsigned int | addAtom (bool updateLabel=true) |
| adds an empty Atom to our collection | |
| unsigned int | addAtom (Atom *atom, bool updateLabel=true, bool takeOwnership=false) |
| adds an Atom to our collection | |
| void | replaceAtom (unsigned int idx, Atom *atom, bool updateLabel=false, bool preserveProps=false) |
| adds an Atom to our collection | |
| Atom * | getLastAtom () |
| returns a pointer to the highest-numbered Atom | |
| Atom * | getActiveAtom () |
| returns a pointer to the "active" Atom | |
| void | setActiveAtom (Atom *atom) |
sets our activeAtom | |
| void | 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. | |
| void | removeAtom (unsigned int idx) |
| removes an Atom from the molecule | |
| void | 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 | removeAtom (Atom *atom, bool clearProps) |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
Bonds | |
| unsigned int | addBond (unsigned int beginAtomIdx, unsigned int endAtomIdx, Bond::BondType order=Bond::UNSPECIFIED) |
| adds a Bond between the indicated Atoms | |
| unsigned int | 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. | |
| unsigned int | addBond (Bond *bond, bool takeOwnership=false) |
| adds a Bond to our collection | |
| Bond * | createPartialBond (unsigned int beginAtomIdx, Bond::BondType order=Bond::UNSPECIFIED) |
| starts a Bond and sets its beginAtomIdx | |
| unsigned int | finishPartialBond (unsigned int endAtomIdx, int bondBookmark, Bond::BondType order=Bond::UNSPECIFIED) |
| finishes a partially constructed bond | |
| void | removeBond (unsigned int beginAtomIdx, unsigned int endAtomIdx) |
| removes a bond from the molecule | |
| void | replaceBond (unsigned int idx, Bond *bond, bool preserveProps=false, bool keepSGroups=true) |
| replaces a particular Bond | |
Public Member Functions inherited from RDKit::ROMol | |
| CXXAtomIterator< MolGraph, Atom * > | atoms () |
| C++11 Range iterator. | |
| CXXAtomIterator< const MolGraph, Atom *const > | atoms () const |
| CXXAtomIterator< const MolGraph, Atom *const, MolGraph::adjacency_iterator > | atomNeighbors (Atom const *at) const |
| CXXAtomIterator< MolGraph, Atom *, MolGraph::adjacency_iterator > | atomNeighbors (Atom const *at) |
| CXXBondIterator< const MolGraph, Bond *const, MolGraph::out_edge_iterator > | atomBonds (Atom const *at) const |
| CXXBondIterator< MolGraph, Bond *, MolGraph::out_edge_iterator > | atomBonds (Atom const *at) |
| CXXBondIterator< MolGraph, Bond * > | bonds () |
| CXXBondIterator< const MolGraph, Bond *const > | bonds () const |
| ROMol () | |
| ROMol (const ROMol &other, bool quickCopy=false, int confId=-1) | |
| copy constructor with a twist | |
| ROMol (const std::string &binStr) | |
| construct a molecule from a pickle string | |
| ROMol (const std::string &binStr, unsigned int propertyFlags) | |
| construct a molecule from a pickle string | |
| ROMol (ROMol &&o) noexcept | |
| ROMol & | operator= (ROMol &&o) noexcept |
| ROMol & | operator= (const ROMol &)=delete |
| virtual | ~ROMol () |
| Atom * | operator[] (const vertex_descriptor &v) |
| const Atom * | operator[] (const vertex_descriptor &v) const |
| Bond * | operator[] (const edge_descriptor &e) |
| const Bond * | operator[] (const edge_descriptor &e) const |
| const std::vector< StereoGroup > & | getStereoGroups () const |
| Gets a reference to the groups of atoms with relative stereochemistry. | |
| void | setStereoGroups (std::vector< StereoGroup > stereo_groups) |
| Sets groups of atoms with relative stereochemistry. | |
| unsigned int | getNumAtoms () const |
| returns our number of atoms | |
| unsigned int | getNumAtoms (bool onlyExplicit) const |
| unsigned int | getNumHeavyAtoms () const |
| returns our number of heavy atoms (atomic number > 1) | |
| Atom * | getAtomWithIdx (unsigned int idx) |
| returns a pointer to a particular Atom | |
| const Atom * | getAtomWithIdx (unsigned int idx) const |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
| template<class U> | |
| Atom * | getAtomWithIdx (const U idx) |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
| template<class U> | |
| const Atom * | getAtomWithIdx (const U idx) const |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
| unsigned int | getAtomDegree (const Atom *at) const |
| returns the degree (number of neighbors) of an Atom in the graph | |
| unsigned int | getNumBonds (bool onlyHeavy=1) const |
| returns our number of Bonds | |
| Bond * | getBondWithIdx (unsigned int idx) |
| returns a pointer to a particular Bond | |
| const Bond * | getBondWithIdx (unsigned int idx) const |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
| template<class U> | |
| Bond * | getBondWithIdx (const U idx) |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
| template<class U> | |
| const Bond * | getBondWithIdx (const U idx) const |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
| Bond * | getBondBetweenAtoms (unsigned int idx1, unsigned int idx2) |
| returns a pointer to the bond between two atoms, Null on failure | |
| const Bond * | getBondBetweenAtoms (unsigned int idx1, unsigned int idx2) const |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
| template<class U, class V> | |
| Bond * | getBondBetweenAtoms (const U idx1, const V idx2) |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
| template<class U, class V> | |
| const Bond * | getBondBetweenAtoms (const U idx1, const V idx2) const |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
| void | setAtomBookmark (Atom *at, int mark) |
| associates an Atom pointer with a bookmark | |
| void | replaceAtomBookmark (Atom *at, int mark) |
| associates an Atom pointer with a bookmark | |
| Atom * | getAtomWithBookmark (int mark) |
returns the first Atom associated with the bookmark provided | |
| Atom * | getUniqueAtomWithBookmark (int mark) |
| ATOM_PTR_LIST & | getAllAtomsWithBookmark (int mark) |
returns all Atoms associated with the bookmark provided | |
| void | clearAtomBookmark (int mark) |
removes a bookmark from our collection | |
| void | clearAtomBookmark (int mark, const Atom *atom) |
removes a particular Atom from the list associated with the bookmark | |
| 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 *bond, int mark) |
| associates a Bond pointer with a bookmark | |
| Bond * | getBondWithBookmark (int mark) |
returns the first Bond associated with the bookmark provided | |
| Bond * | getUniqueBondWithBookmark (int mark) |
| 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 | 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 | |
| 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 |
| RingInfo * | getRingInfo () const |
| ADJ_ITER_PAIR | getAtomNeighbors (Atom const *at) const |
| provides access to all neighbors around an Atom | |
| 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 |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
| BOND_ITER_PAIR | getEdges () const |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
| MolGraph const & | getTopology () const |
| brief returns a pointer to our underlying BGL object | |
| AtomIterator | beginAtoms () |
| get an AtomIterator pointing at our first Atom | |
| ConstAtomIterator | beginAtoms () const |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
| AtomIterator | endAtoms () |
| get an AtomIterator pointing at the end of our Atoms | |
| ConstAtomIterator | endAtoms () const |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
| BondIterator | beginBonds () |
| get a BondIterator pointing at our first Bond | |
| ConstBondIterator | beginBonds () const |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
| BondIterator | endBonds () |
| get a BondIterator pointing at the end of our Bonds | |
| ConstBondIterator | endBonds () const |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
| AromaticAtomIterator | beginAromaticAtoms () |
| get an AtomIterator pointing at our first aromatic Atom | |
| ConstAromaticAtomIterator | beginAromaticAtoms () const |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
| AromaticAtomIterator | endAromaticAtoms () |
| get an AtomIterator pointing at the end of our Atoms | |
| ConstAromaticAtomIterator | endAromaticAtoms () const |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
| HeteroatomIterator | beginHeteros () |
| get an AtomIterator pointing at our first hetero Atom | |
| ConstHeteroatomIterator | beginHeteros () const |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
| HeteroatomIterator | endHeteros () |
| get an AtomIterator pointing at the end of our Atoms | |
| ConstHeteroatomIterator | endHeteros () const |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
| bool | hasQuery () const |
| if the Mol has any Query atoms or bonds | |
| QueryAtomIterator | beginQueryAtoms (QueryAtom const *query) |
get an AtomIterator pointing at our first Atom that matches query | |
| ConstQueryAtomIterator | beginQueryAtoms (QueryAtom const *) const |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
| QueryAtomIterator | endQueryAtoms () |
| get an AtomIterator pointing at the end of our Atoms | |
| ConstQueryAtomIterator | endQueryAtoms () const |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
| MatchingAtomIterator | beginMatchingAtoms (bool(*query)(Atom *)) |
get an AtomIterator pointing at our first Atom that matches query | |
| ConstMatchingAtomIterator | beginMatchingAtoms (bool(*query)(const Atom *)) const |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
| MatchingAtomIterator | endMatchingAtoms () |
| get an AtomIterator pointing at the end of our Atoms | |
| ConstMatchingAtomIterator | endMatchingAtoms () const |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
| ConformerIterator | beginConformers () |
| ConformerIterator | endConformers () |
| ConstConformerIterator | beginConformers () const |
| ConstConformerIterator | endConformers () const |
| void | clearComputedProps (bool includeRings=true) const |
clears all of our computed properties | |
| void | updatePropertyCache (bool strict=true) |
calculates any of our lazy properties | |
| bool | needsUpdatePropertyCache () const |
| void | clearPropertyCache () |
| void | debugMol (std::ostream &str) const |
Public Member Functions inherited from RDKit::RDProps | |
| RDProps () | |
| RDProps (const RDProps &rhs) | |
| RDProps & | operator= (const RDProps &rhs) |
| RDProps (RDProps &&o) noexcept=default | |
| RDProps & | operator= (RDProps &&rhs) noexcept=default |
| void | clear () |
| const Dict & | getDict () const |
| gets the underlying Dictionary | |
| Dict & | getDict () |
| 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 std::string &key, T val, bool computed=false) const |
sets a property value | |
| template<typename T> | |
| void | getProp (const std::string &key, T &res) const |
| allows retrieval of a particular property value | |
| template<typename T> | |
| T | getProp (const std::string &key) const |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
| template<typename T> | |
| bool | getPropIfPresent (const std::string &key, T &res) const |
| bool | hasProp (const std::string &key) const |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
| void | clearProp (const std::string &key) const |
clears the value of a property | |
| void | clearComputedProps () const |
clears all of our computed properties | |
| void | updateProps (const RDProps &source, bool preserveExisting=false) |
| update the properties from another | |
Additional Inherited Members | |
Protected Attributes inherited from RDKit::ROMol | |
| unsigned int | numBonds {0} |
Protected Attributes inherited from RDKit::RDProps | |
| Dict | d_props |
RWMol is a molecule class that is intended to be edited.
See documentation for ROMol for general remarks
|
inline |
Definition at line 34 of file RWMol.h.
References RDKit::ROMol::ROMol().
Referenced by operator=(), operator=(), RWMol(), and RWMol().
|
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 45 of file RWMol.h.
References RDKit::ROMol::ROMol().
|
inline |
Definition at line 47 of file RWMol.h.
References RDKit::ROMol::ROMol(), and RWMol().
|
inlinenoexcept |
Definition at line 49 of file RWMol.h.
References RDKit::ROMol::ROMol(), and RWMol().
|
inline |
| 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 RDKit::SLNParse::addAtomToMol(), and RDKit::SLNParse::startMol().
| 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.
References RDKit::Bond::UNSPECIFIED.
|
inline |
| unsigned int RDKit::RWMol::addBond | ( | unsigned int | beginAtomIdx, |
| unsigned int | endAtomIdx, | ||
| Bond::BondType | order = Bond::UNSPECIFIED ) |
adds a Bond between the indicated Atoms
References RDKit::Bond::UNSPECIFIED.
Referenced by RDKit::SLNParse::addAtomToMol(), and RDKit::SLNParse::startMol().
| void RDKit::RWMol::beginBatchEdit | ( | ) |
|
inline |
removes all atoms, bonds, properties, bookmarks, etc.
Definition at line 203 of file RWMol.h.
References RDKit::ROMol::numBonds.
| void RDKit::RWMol::commitBatchEdit | ( | ) |
| 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.
References RDKit::Bond::UNSPECIFIED.
| 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
References RDKit::Bond::UNSPECIFIED.
| 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 RDKit::SLNParse::addAtomToMol(), RDKit::SLNParse::addBranchToMol(), and RDKit::SLNParse::closeRingBond().
|
inline |
returns a pointer to the highest-numbered Atom
Definition at line 101 of file RWMol.h.
References RDKit::ROMol::getAtomWithIdx(), and RDKit::ROMol::getNumAtoms().
| void RDKit::RWMol::insertMol | ( | const ROMol & | other | ) |
insert the atoms and bonds from other into this molecule
References RDKit::ROMol::ROMol().
Referenced by RDKit::SLNParse::addBranchToMol().
Definition at line 50 of file RWMol.h.
References RDKit::ROMol::operator=(), and RWMol().
| 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::removeAtom | ( | Atom * | atom, |
| bool | clearProps ) |
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::removeAtom | ( | unsigned int | idx | ) |
removes an Atom from the molecule
| void RDKit::RWMol::removeBond | ( | unsigned int | beginAtomIdx, |
| unsigned int | endAtomIdx ) |
removes a bond from the molecule
| void RDKit::RWMol::replaceAtom | ( | unsigned int | idx, |
| Atom * | atom, | ||
| bool | updateLabel = false, | ||
| bool | preserveProps = false ) |
| void RDKit::RWMol::replaceBond | ( | unsigned int | idx, |
| Bond * | bond, | ||
| bool | preserveProps = false, | ||
| bool | keepSGroups = true ) |
| void RDKit::RWMol::setActiveAtom | ( | Atom * | atom | ) |
sets our activeAtom
Referenced by RDKit::SLNParse::addBranchToMol().
| 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.