#include <Atom.h>

Public Types | |
| enum | HybridizationType { UNSPECIFIED = 0, S, SP, SP2, SP3, SP3D, SP3D2, OTHER } |
| store hybridization More... | |
| enum | ChiralType { CHI_UNSPECIFIED = 0, CHI_TETRAHEDRAL_CW, CHI_TETRAHEDRAL_CCW, CHI_OTHER } |
| store type of chirality More... | |
| typedef boost::shared_ptr< Atom > | ATOM_SPTR |
| typedef boost::shared_ptr < const Atom > | C_ATOM_SPTR |
| typedef Queries::Query< int, Atom const *, true > | QUERYATOM_QUERY |
Public Member Functions | |
| Atom () | |
| Atom (unsigned int num) | |
| construct an Atom with a particular atomic number | |
| Atom (std::string what) | |
| construct an Atom with a particular symbol (looked up in the PeriodicTable) | |
| Atom (const Atom &other) | |
| virtual | ~Atom () |
| virtual Atom * | copy () const |
| makes a copy of this Atom and returns a pointer to it. | |
| const int | getAtomicNum () const |
| returns our atomic number | |
| void | setAtomicNum (int newNum) |
| sets our atomic number | |
| std::string | getSymbol () const |
| returns our symbol (determined by our atomic number) | |
| ROMol & | getOwningMol () const |
| returns a reference to the ROMol that owns this Atom | |
| const unsigned int | getIdx () const |
| returns our index within the ROMol | |
| void | setIdx (unsigned int index) |
| sets our index within the ROMol | |
| unsigned int | getDegree () const |
| unsigned int | getTotalDegree () const |
| unsigned int | getTotalNumHs (bool includeNeighbors=false) const |
| returns the total number of Hs (implicit and explicit) that this Atom is bound to | |
| unsigned int | getNumImplicitHs () const |
| returns the number of implicit Hs this Atom is bound to | |
| int | getExplicitValence () const |
| returns the number of explicit Hs this Atom is bound to | |
| int | getImplicitValence () const |
| returns the implicit valence for this Atom | |
| unsigned int | getNumRadicalElectrons () const |
| returns the number of radical electrons for this Atom | |
| void | setNumRadicalElectrons (unsigned int num) |
| const int | getFormalCharge () const |
| returns the formal charge of this atom | |
| void | setFormalCharge (int what) |
| set's the formal charge of this atom | |
| void | setNoImplicit (bool what) |
sets our noImplicit flag, indicating whether or not we are allowed to have implicit Hs | |
| bool | getNoImplicit () const |
returns the noImplicit flag | |
| void | setNumExplicitHs (unsigned int what) |
| sets our number of explict Hs | |
| unsigned int | getNumExplicitHs () const |
| returns our number of explict Hs | |
| void | setIsAromatic (bool what) |
sets our isAromatic flag, indicating whether or not we are aromatic | |
| bool | getIsAromatic () const |
returns our isAromatic flag | |
| void | setMass (double what) |
| sets our mass (for isotopes) | |
| double | getMass () const |
| returns our mass | |
| void | setDativeFlag (int what) |
sets our dativeFlag | |
| int | getDativeFlag () const |
returns our dativeFlag | |
| bool | hasDativeFlag (int what) const |
| void | clearDativeFlag () |
clears our dativeFlag | |
| void | setChiralTag (ChiralType what) |
sets our chiralTag | |
| void | invertChirality () |
inverts our chiralTag | |
| ChiralType | getChiralTag () const |
returns our chiralTag | |
| void | setHybridization (HybridizationType what) |
| sets our hybridization | |
| HybridizationType | getHybridization () const |
| returns our hybridization | |
| virtual bool | hasQuery () const |
| virtual void | setQuery (QUERYATOM_QUERY *what) |
| NOT CALLABLE. | |
| virtual QUERYATOM_QUERY * | getQuery () const |
| NOT CALLABLE. | |
| virtual void | expandQuery (QUERYATOM_QUERY *what, Queries::CompositeQueryType how=Queries::COMPOSITE_AND, bool maintainOrder=true) |
| NOT CALLABLE. | |
| virtual bool | Match (Atom const *what) const |
| returns whether or not we match the argument | |
| virtual bool | Match (const ATOM_SPTR what) const |
| STR_VECT | getPropList () const |
returns a list with the names of our properties | |
| template<typename T> | |
| void | setProp (const char *key, T val, bool computed=false) const |
sets a property value | |
| 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 | |
| template<typename T> | |
| void | getProp (const std::string key, T &res) const |
| bool | hasProp (const char *key) const |
returns whether or not we have a property with name key | |
| bool | hasProp (const std::string key) const |
| void | clearProp (const char *key) const |
clears the value of a property | |
| void | clearProp (const std::string key) const |
| void | clearComputedProps () const |
clears all of our computed properties | |
| int | getPerturbationOrder (INT_LIST probe) const |
| returns the perturbation order for a list of integers | |
| void | updatePropertyCache (bool strict=true) |
calculates any of our lazy properties | |
| int | calcExplicitValence (bool strict=true) |
| calculates and returns our explicit valence | |
| int | calcImplicitValence (bool strict=true) |
| calculates and returns our implicit valence | |
Protected Member Functions | |
| void | setOwningMol (ROMol *other) |
| sets our owning molecule | |
| void | setOwningMol (ROMol &other) |
| sets our owning molecule | |
| void | initAtom () |
Protected Attributes | |
| bool | df_isAromatic |
| bool | df_noImplicit |
| int | d_dativeFlag |
| unsigned int | d_numExplicitHs |
| int | d_formalCharge |
| unsigned int | d_atomicNum |
| unsigned int | d_index |
| int | d_implicitValence |
| int | d_explicitValence |
| unsigned int | d_numRadicalElectrons |
| ChiralType | d_chiralTag |
| HybridizationType | d_hybrid |
| double | d_mass |
| ROMol * | dp_mol |
| Dict * | dp_props |
Friends | |
| class | MolPickler |
| the pickler needs access to our privates | |
| class | ROMol |
| class | RWMol |
Notes:
properties: 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.property operations are const, this allows extra flexibility for clients who need to store extra data on Atom objects.Chirality:
The chirality of an Atom is determined by two things:
chiralTag
For tetrahedral coordination, the chiralTag tells you what direction you have to rotate to get from bond 2 to bond 3 while looking down bond 1. This is pretty much identical to the SMILES represenation of chirality
Definition at line 56 of file Atom.h.
| typedef boost::shared_ptr<Atom> RDKit::Atom::ATOM_SPTR |
| typedef boost::shared_ptr<const Atom> RDKit::Atom::C_ATOM_SPTR |
| typedef Queries::Query<int,Atom const *,true> RDKit::Atom::QUERYATOM_QUERY |
| RDKit::Atom::Atom | ( | ) |
| RDKit::Atom::Atom | ( | unsigned int | num | ) | [explicit] |
construct an Atom with a particular atomic number
| RDKit::Atom::Atom | ( | std::string | what | ) | [explicit] |
construct an Atom with a particular symbol (looked up in the PeriodicTable)
| RDKit::Atom::Atom | ( | const Atom & | other | ) |
| virtual RDKit::Atom::~Atom | ( | ) | [virtual] |
| virtual Atom* RDKit::Atom::copy | ( | ) | const [virtual] |
makes a copy of this Atom and returns a pointer to it.
Note: the caller is responsible for deleteing the result
Reimplemented in RDKit::QueryAtom.
| const int RDKit::Atom::getAtomicNum | ( | ) | const [inline] |
returns our atomic number
Definition at line 102 of file Atom.h.
References d_atomicNum.
Referenced by RDKit::queryAtomNum().
| void RDKit::Atom::setAtomicNum | ( | int | newNum | ) | [inline] |
| std::string RDKit::Atom::getSymbol | ( | ) | const |
returns our symbol (determined by our atomic number)
| ROMol& RDKit::Atom::getOwningMol | ( | ) | const [inline] |
returns a reference to the ROMol that owns this Atom
Definition at line 110 of file Atom.h.
References dp_mol.
Referenced by RDKit::queryAtomIsInRingOfSize(), RDKit::queryAtomMinRingSize(), RDKit::queryAtomRingBondCount(), RDKit::queryAtomRingMembership(), RDKit::queryIsAtomInNRings(), and RDKit::queryIsAtomInRing().
| const unsigned int RDKit::Atom::getIdx | ( | ) | const [inline] |
returns our index within the ROMol
Definition at line 113 of file Atom.h.
References d_index.
Referenced by RDKit::RecursiveStructureQuery::getAtIdx(), RDKit::queryAtomIsInRingOfSize(), RDKit::queryAtomMinRingSize(), RDKit::queryAtomRingMembership(), RDKit::queryIsAtomInNRings(), and RDKit::queryIsAtomInRing().
| void RDKit::Atom::setIdx | ( | unsigned int | index | ) | [inline] |
sets our index within the ROMol
Notes:
< this->getOwningMol()->getNumAtoms() Definition at line 120 of file Atom.h.
References d_index.
| unsigned int RDKit::Atom::getDegree | ( | ) | const |
returns the explicit degree of the Atom (number of bonded neighbors in the graph)
Notes:
Referenced by RDKit::queryAtomExplicitDegree(), RDKit::queryAtomHeavyAtomDegree(), RDKit::queryAtomTotalDegree(), and RDKit::queryAtomUnsaturated().
| unsigned int RDKit::Atom::getTotalDegree | ( | ) | const |
returns the total degree of the Atom (number of bonded neighbors + number of Hs)
Notes:
| unsigned int RDKit::Atom::getTotalNumHs | ( | bool | includeNeighbors = false |
) | const |
returns the total number of Hs (implicit and explicit) that this Atom is bound to
Notes:
Referenced by RDKit::queryAtomHCount().
| unsigned int RDKit::Atom::getNumImplicitHs | ( | ) | const |
| int RDKit::Atom::getExplicitValence | ( | ) | const |
returns the number of explicit Hs this Atom is bound to
Referenced by RDKit::queryAtomTotalValence(), and RDKit::queryAtomUnsaturated().
| int RDKit::Atom::getImplicitValence | ( | ) | const |
returns the implicit valence for this Atom
Notes:
Referenced by RDKit::queryAtomImplicitValence(), RDKit::queryAtomTotalDegree(), and RDKit::queryAtomTotalValence().
| unsigned int RDKit::Atom::getNumRadicalElectrons | ( | ) | const [inline] |
returns the number of radical electrons for this Atom
Notes:
Definition at line 168 of file Atom.h.
References d_numRadicalElectrons.
| void RDKit::Atom::setNumRadicalElectrons | ( | unsigned int | num | ) | [inline] |
| const int RDKit::Atom::getFormalCharge | ( | ) | const [inline] |
returns the formal charge of this atom
Definition at line 173 of file Atom.h.
References d_formalCharge.
Referenced by RDKit::queryAtomFormalCharge().
| void RDKit::Atom::setFormalCharge | ( | int | what | ) | [inline] |
set's the formal charge of this atom
Definition at line 175 of file Atom.h.
References d_formalCharge.
| void RDKit::Atom::setNoImplicit | ( | bool | what | ) | [inline] |
sets our noImplicit flag, indicating whether or not we are allowed to have implicit Hs
Definition at line 179 of file Atom.h.
References df_noImplicit.
| bool RDKit::Atom::getNoImplicit | ( | ) | const [inline] |
| void RDKit::Atom::setNumExplicitHs | ( | unsigned int | what | ) | [inline] |
| unsigned int RDKit::Atom::getNumExplicitHs | ( | ) | const [inline] |
| void RDKit::Atom::setIsAromatic | ( | bool | what | ) | [inline] |
sets our isAromatic flag, indicating whether or not we are aromatic
Definition at line 189 of file Atom.h.
References df_isAromatic.
| bool RDKit::Atom::getIsAromatic | ( | ) | const [inline] |
returns our isAromatic flag
Definition at line 191 of file Atom.h.
References df_isAromatic.
Referenced by RDKit::queryAtomAliphatic(), and RDKit::queryAtomAromatic().
| void RDKit::Atom::setMass | ( | double | what | ) | [inline] |
| double RDKit::Atom::getMass | ( | ) | const [inline] |
returns our mass
Definition at line 196 of file Atom.h.
References d_mass.
Referenced by RDKit::queryAtomMass().
| void RDKit::Atom::setDativeFlag | ( | int | what | ) | [inline] |
| int RDKit::Atom::getDativeFlag | ( | ) | const [inline] |
| bool RDKit::Atom::hasDativeFlag | ( | int | what | ) | const [inline] |
| void RDKit::Atom::clearDativeFlag | ( | ) | [inline] |
| void RDKit::Atom::setChiralTag | ( | ChiralType | what | ) | [inline] |
| void RDKit::Atom::invertChirality | ( | ) |
inverts our chiralTag
| ChiralType RDKit::Atom::getChiralTag | ( | ) | const [inline] |
| void RDKit::Atom::setHybridization | ( | HybridizationType | what | ) | [inline] |
| HybridizationType RDKit::Atom::getHybridization | ( | ) | const [inline] |
returns our hybridization
Definition at line 226 of file Atom.h.
References d_hybrid.
Referenced by RDKit::queryAtomHybridization().
| virtual bool RDKit::Atom::hasQuery | ( | ) | const [inline, virtual] |
| virtual void RDKit::Atom::setQuery | ( | QUERYATOM_QUERY * | what | ) | [virtual] |
| virtual QUERYATOM_QUERY* RDKit::Atom::getQuery | ( | ) | const [virtual] |
| virtual void RDKit::Atom::expandQuery | ( | QUERYATOM_QUERY * | what, | |
| Queries::CompositeQueryType | how = Queries::COMPOSITE_AND, |
|||
| bool | maintainOrder = true | |||
| ) | [virtual] |
| virtual bool RDKit::Atom::Match | ( | Atom const * | what | ) | const [virtual] |
returns whether or not we match the argument
Notes:
Reimplemented in RDKit::QueryAtom.
| virtual bool RDKit::Atom::Match | ( | const ATOM_SPTR | what | ) | const [virtual] |
Reimplemented in RDKit::QueryAtom.
| STR_VECT RDKit::Atom::getPropList | ( | ) | const [inline] |
returns a list with the names of our properties
Definition at line 269 of file Atom.h.
References dp_props, and RDKit::Dict::keys().
| void RDKit::Atom::setProp | ( | const char * | key, | |
| T | val, | |||
| bool | computed = false | |||
| ) | const [inline] |
| void RDKit::Atom::setProp | ( | const std::string | key, | |
| T | val, | |||
| bool | computed = false | |||
| ) | const [inline] |
| void RDKit::Atom::getProp | ( | const char * | key, | |
| T & | res | |||
| ) | const [inline] |
allows retrieval of a particular property value
| key | the name under which the property should be stored. If a property is already stored under this name, it will be replaced. | |
| res | a reference to the storage location for the value. |
property with name key exists, a KeyErrorException will be thrown.boost::lexical_cast machinery is used to attempt type conversions. If this fails, a boost::bad_lexical_cast exception will be thrown. Definition at line 320 of file Atom.h.
References dp_props, and RDKit::Dict::getVal().
Referenced by clearComputedProps(), clearProp(), and setProp().
| void RDKit::Atom::getProp | ( | const std::string | key, | |
| T & | res | |||
| ) | const [inline] |
| bool RDKit::Atom::hasProp | ( | const char * | key | ) | const [inline] |
returns whether or not we have a property with name key
Definition at line 332 of file Atom.h.
References dp_props, and RDKit::Dict::hasVal().
Referenced by clearComputedProps(), clearProp(), and setProp().
| bool RDKit::Atom::hasProp | ( | const std::string | key | ) | const [inline] |
| void RDKit::Atom::clearProp | ( | const char * | key | ) | const [inline] |
clears the value of a property
Notes:
property with name key exists, a KeyErrorException will be thrown.property is marked as computed, it will also be removed from our list of computedProperties | void RDKit::Atom::clearProp | ( | const std::string | key | ) | const [inline] |
Definition at line 356 of file Atom.h.
References RDKit::Dict::clearVal(), dp_props, getProp(), hasProp(), and RDKit::Dict::setVal().
| void RDKit::Atom::clearComputedProps | ( | ) | const [inline] |
clears all of our computed properties
Definition at line 370 of file Atom.h.
References RDKit::Dict::clearVal(), dp_props, getProp(), hasProp(), and RDKit::Dict::setVal().
| int RDKit::Atom::getPerturbationOrder | ( | INT_LIST | probe | ) | const |
returns the perturbation order for a list of integers
This value is associated with chirality.
| probe | a list of bond indices. This must be the same length as our number of incoming bonds (our degree). |
[0,1,2,3] getPerturbationOrder([1,0,2,3]) = 1 getPerturbationOrder([1,2,3,0]) = 3 getPerturbationOrder([1,2,0,3]) = 2
Notes:
| void RDKit::Atom::updatePropertyCache | ( | bool | strict = true |
) |
calculates any of our lazy properties
Notes:
properties are implicit and explicit valence | int RDKit::Atom::calcExplicitValence | ( | bool | strict = true |
) |
calculates and returns our explicit valence
Notes:
| int RDKit::Atom::calcImplicitValence | ( | bool | strict = true |
) |
calculates and returns our implicit valence
Notes:
| void RDKit::Atom::setOwningMol | ( | ROMol * | other | ) | [protected] |
| void RDKit::Atom::setOwningMol | ( | ROMol & | other | ) | [inline, protected] |
| void RDKit::Atom::initAtom | ( | ) | [protected] |
friend class MolPickler [friend] |
bool RDKit::Atom::df_isAromatic [protected] |
bool RDKit::Atom::df_noImplicit [protected] |
int RDKit::Atom::d_dativeFlag [protected] |
Definition at line 438 of file Atom.h.
Referenced by clearDativeFlag(), getDativeFlag(), hasDativeFlag(), and setDativeFlag().
unsigned int RDKit::Atom::d_numExplicitHs [protected] |
int RDKit::Atom::d_formalCharge [protected] |
unsigned int RDKit::Atom::d_atomicNum [protected] |
unsigned int RDKit::Atom::d_index [protected] |
int RDKit::Atom::d_implicitValence [protected] |
int RDKit::Atom::d_explicitValence [protected] |
unsigned int RDKit::Atom::d_numRadicalElectrons [protected] |
Definition at line 447 of file Atom.h.
Referenced by getNumRadicalElectrons(), and setNumRadicalElectrons().
ChiralType RDKit::Atom::d_chiralTag [protected] |
HybridizationType RDKit::Atom::d_hybrid [protected] |
double RDKit::Atom::d_mass [protected] |
ROMol* RDKit::Atom::dp_mol [protected] |
Dict* RDKit::Atom::dp_props [protected] |
Definition at line 452 of file Atom.h.
Referenced by clearComputedProps(), clearProp(), getProp(), getPropList(), hasProp(), and setProp().
1.5.5