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 | 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
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 . |
|
inline |
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.
unsigned int RDKit::RWMol::addBond | ( | unsigned int | beginAtomIdx, |
unsigned int | endAtomIdx, | ||
Bond::BondType | order = Bond::UNSPECIFIED |
||
) |
adds a Bond between the indicated Atoms
void RDKit::RWMol::beginBatchEdit | ( | ) |
|
inline |
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.
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
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.
|
inline |
insert the atoms and bonds from other
into this molecule
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
removes a bond from the molecule
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.