20 #include <boost/foreach.hpp> 102 explicit Atom(
unsigned int num);
105 explicit Atom(
const std::string &what);
141 setIdx(rdcast<unsigned int>(index));
165 unsigned int getTotalNumHs(
bool includeNeighbors =
false)
const;
244 return static_cast<HybridizationType
>(
d_hybrid);
263 virtual void setQuery(QUERYATOM_QUERY *what);
266 virtual QUERYATOM_QUERY *
getQuery()
const;
269 QUERYATOM_QUERY *what,
271 bool maintainOrder =
true);
305 virtual bool Match(
Atom const *what)
const;
307 virtual inline bool Match(
const ATOM_SPTR &what)
const {
308 return Match(what.get());
369 !strict || (mapno >= 0 && mapno < 1000),
370 "atom map number out of range [0..1000], use strict=false to override");
ROMol & getOwningMol() const
returns a reference to the ROMol that owns this Atom
Queries::Query< int, Atom const *, true > QUERYATOM_QUERY
unrecognized hybridization
std::list< int > INT_LIST
void setNumRadicalElectrons(unsigned int num)
void setChiralTag(ChiralType what)
sets our chiralTag
virtual Atom * copy() const
makes a copy of this Atom and returns a pointer to it.
bool getPropIfPresent(const std::string &key, T &res) const
unsigned int getTotalValence() const
returns the total valence (implicit and explicit) for an atom
bool getNoImplicit() const
returns the noImplicit flag
int getPerturbationOrder(INT_LIST probe) const
returns the perturbation order for a list of integers
int getAtomRLabel(const Atom *atm)
void invertChirality()
inverts our chiralTag
The abstract base class for atom-level monomer info.
RWMol is a molecule class that is intended to be edited.
hybridization that hasn't been specified
unsigned int getTotalNumHs(bool includeNeighbors=false) const
returns the total number of Hs (implicit and explicit) that this Atom is bound to ...
virtual void setQuery(QUERYATOM_QUERY *what)
NOT CALLABLE.
unsigned int getNumRadicalElectrons() const
returns the number of radical electrons for this Atom
unsigned int getIsotope() const
returns our isotope number
const std::string molAtomMapNumber
double getMass() const
returns our mass
std::string getAtomAlias(const Atom *atom)
unsigned int getIdx() const
returns our index within the ROMol
boost::uint8_t d_chiralTag
void setAtomValue(Atom *atom, const std::string &value)
Set the atom's MDL atom value.
void setAtomRLabel(Atom *atm, int rlabel)
Set the atom's MDL integer RLabel.
some unrecognized type of chirality
boost::int8_t d_explicitValence
virtual bool Match(Atom const *what) const
returns whether or not we match the argument
virtual bool Match(const ATOM_SPTR &what) const
ROMol is a molecule class that is intended to have a fixed topology.
unsigned int getDegree() const
void setIdx(const U index)
overload
void updatePropertyCache(bool strict=true)
calculates any of our lazy properties
virtual bool hasQuery() const
tetrahedral: clockwise rotation (SMILES @@)
unsigned int getTotalDegree() const
void setNumExplicitHs(unsigned int what)
sets our number of explict Hs
virtual void expandQuery(QUERYATOM_QUERY *what, Queries::CompositeQueryType how=Queries::COMPOSITE_AND, bool maintainOrder=true)
NOT CALLABLE.
int getAtomicNum() const
returns our atomic number
AtomMonomerInfo * getMonomerInfo()
void setAtomicNum(int newNum)
sets our atomic number
void setIsotope(unsigned int what)
sets our isotope number
int getExplicitValence() const
returns the explicit valence (including Hs) of this atom
void setHybridization(HybridizationType what)
sets our hybridization
void setSupplementalSmilesLabel(Atom *atom, const std::string &label)
Sets the supplemental label that will follow the atom when writing.
ChiralType
store type of chirality
void setMonomerInfo(AtomMonomerInfo *info)
takes ownership of the pointer
unsigned int getNumExplicitHs() const
returns our number of explict Hs
HybridizationType
store hybridization
void setProp(const std::string &key, T val, bool computed=false) const
sets a property value
ChiralType getChiralTag() const
returns our chiralTag
int calcExplicitValence(bool strict=true)
calculates and returns our explicit valence
virtual QUERYATOM_QUERY * getQuery() const
NOT CALLABLE.
unsigned int getNumImplicitHs() const
returns the number of implicit Hs this Atom is bound to
void setOwningMol(ROMol *other)
sets our owning molecule
int getImplicitValence() const
returns the implicit valence for this Atom
tetrahedral: counter-clockwise rotation (SMILES
handles pickling (serializing) molecules
boost::uint16_t d_isotope
bool needsUpdatePropertyCache() const
int calcImplicitValence(bool strict=true)
calculates and returns our implicit valence
boost::shared_ptr< Atom > ATOM_SPTR
boost::uint8_t d_atomicNum
const AtomMonomerInfo * getMonomerInfo() const
#define PRECONDITION(expr, mess)
std::ostream & operator<<(std::ostream &target, const RDKit::Atom &at)
allows Atom objects to be dumped to streams
boost::uint16_t atomindex_t
void setNoImplicit(bool what)
sets our noImplicit flag, indicating whether or not we are allowed to have implicit Hs ...
HybridizationType getHybridization() const
returns our hybridization
std::string getSymbol() const
returns our symbol (determined by our atomic number)
void setIdx(unsigned int index)
sets our index within the ROMol
boost::shared_ptr< const Atom > C_ATOM_SPTR
boost::int8_t d_formalCharge
boost::int8_t d_implicitValence
AtomMonomerInfo * dp_monomerInfo
bool hasProp(const std::string &key) const
Pulls in all the query types.
chirality that hasn't been specified
int getFormalCharge() const
returns the formal charge of this atom
boost::uint8_t d_numRadicalElectrons
Base class for all queries.
void setFormalCharge(int what)
set's the formal charge of this atom
void setAtomAlias(Atom *atom, const std::string &alias)
Set the atom's MDL atom alias.
std::string getAtomValue(const Atom *atom)
boost::uint8_t d_numExplicitHs
void clearProp(const std::string &key) const
clears the value of a property
void setAtomMapNum(int mapno, bool strict=true)
Set the atom map Number of the atom.
void setOwningMol(ROMol &other)
sets our owning molecule
The class for representing atoms.
void setIsAromatic(bool what)
sets our isAromatic flag, indicating whether or not we are aromatic
std::string getSupplementalSmilesLabel(const Atom *atom)
int getAtomMapNum() const
bool getIsAromatic() const
returns our isAromatic flag