Atom Properties¶
The OEAtomBase
class is the workhorse of the
OEChem TK library, representing the atoms of a molecule.
This section details some of its important and often used properties and methods.
Read/Write Atom Properties¶
Property Name |
Type |
Get Method |
Set Method |
See Also |
---|---|---|---|---|
Atomic Number |
unsigned int |
|||
Formal Charge |
int |
|||
Implicit Hyd. Count |
unsigned int |
|||
Isotopic Mass |
unsigned int |
|||
Partial Charge |
double |
|||
Atomic Hybridization |
unsigned int |
|||
Integer Atom Type |
int |
|||
Atom Name |
string |
|||
Atom Type Name |
string |
|||
Atom Radius |
double |
|||
Reaction Role |
unsigned int |
|||
Reaction Map Index |
unsigned int |
|||
Ring Membership |
bool |
|||
Aromaticity |
bool |
|||
Atom Chirality |
bool |
|||
Atom Stereo |
unsigned int |
Read Only Atom Properties¶
Property Name |
Type |
Get Method |
See Also |
---|---|---|---|
Atom Degree |
unsigned int |
||
Explicit Atom Degree |
unsigned int |
||
Explicit Hydrogen Count |
unsigned int |
||
Explicit Valence |
unsigned int |
||
Atom Heavy Degree |
unsigned int |
||
Atom Heavy Valence |
unsigned int |
||
Atom Parent |
|||
Total Hydrogen Count |
unsigned int |
||
Atom Valence |
unsigned int |
||
Atom Index |
unsigned int |
||
Atom Has Stereo |
bool |
||
Atom Connection |
bool |
Attach Generic Data to Atoms¶
Generic data (see Generic Data) can be attached to any object that
derives from the OEBase class. The following program shows
an example where hydrogen bonding donor property is attached as a bool
value
to the corresponding OEAtomBase object.
Listing 2: Example of attaching generic data to atoms
#include <openeye.h>
#include <oesystem.h>
#include <oechem.h>
using namespace std;
using namespace OESystem;
using namespace OEChem;
class IsDonorAtomPred : public OEUnaryPredicate<OEAtomBase>
{
public:
IsDonorAtomPred() = default;
IsDonorAtomPred(const IsDonorAtomPred &) = default;
IsDonorAtomPred& operator=(const IsDonorAtomPred &) = default;
~IsDonorAtomPred() = default;
bool operator()(const OEAtomBase &atom) const
{
return atom.GetData<bool>("isdonor");
}
OEUnaryFunction<OEAtomBase, bool> *CreateCopy() const
{
return new IsDonorAtomPred;
}
};
int main()
{
OEGraphMol mol;
OESmilesToMol(mol, "c1c(Cl)cncc1C(=O)O");
OEMatchFunc<OEAtomBase> IsDonorAtom("[!H0;#7,#8]");
for (OEIter<OEAtomBase> atom = mol.GetAtoms(); atom; ++atom)
atom->SetData("isdonor", IsDonorAtom(atom));
cout << "Donor atoms: ";
for (OEIter<const OEAtomBase> atom = mol.GetAtoms(IsDonorAtomPred()); atom; ++atom)
cout << atom->GetIdx() << ' ' << OEGetAtomicSymbol(atom->GetAtomicNum());
cout << endl;
return 0;
}
The OEAtomBase API provides the following methods, publicly inherited from OEBase, that allow the manipulation of generic data.
Method |
Description |
---|---|
sets a generic data associating it with the given tag |
|
adds a generic data associating it with the given tag |
|
determines whether a molecule has any generic data with a given tag |
|
returns the generic data associated with the given tag |
|
deletes all generic data with the given tag |
|
clears all stored generic data |
Note
Generic data attached to a molecule or any of its atoms or bonds is automatically
saved when the molecule is written into an .oeb
file.
See also
Attaching other objects section
SD Tagged Data Manipulation section
PDB Tagged Data Manipulation section