OBElementTable Class Reference
Periodic Table of the Elements. More...
#include <openbabel/data.h>

Public Member Functions | |
OBElementTable (void) | |
~OBElementTable () | |
void | ParseLine (const char *) |
unsigned int | GetNumberOfElements () |
size_t | GetSize () |
int | GetAtomicNum (const char *) |
int | GetAtomicNum (const char *, int &iso) |
int | GetAtomicNum (std::string name, int &iso) |
const char * | GetSymbol (int) |
double | GetVdwRad (int) |
double | GetCovalentRad (int) |
double | GetMass (int) |
double | CorrectedBondRad (int, int=3) |
double | CorrectedVdwRad (int, int=3) |
int | GetMaxBonds (int) |
double | GetElectroNeg (int) |
double | GetAllredRochowElectroNeg (int) |
double | GetIonization (int) |
double | GetElectronAffinity (int) |
std::vector< double > | GetRGB (int) |
std::string | GetName (int) |
void | Init () |
void | SetReadDirectory (char *dir) |
void | SetEnvironmentVariable (char *var) |
Protected Attributes | |
bool | _init |
const char * | _dataptr |
std::string | _filename |
std::string | _dir |
std::string | _subdir |
std::string | _envvar |
Detailed Description
Periodic Table of the Elements.
Translating element data is a common task given that many file formats give either element symbol or atomic number information, but not both. The OBElementTable class facilitates conversion between textual and numeric element information. An instance of the OBElementTable class (etab) is declared as external in data.cpp. Source files that include the header file mol.h automatically have an extern definition to etab. The following code sample demonstrates the use of the OBElementTable class:
cout << "The symbol for element 6 is " << etab.GetSymbol(6) << endl; cout << "The atomic number for Sulfur is " << etab.GetAtomicNum(16) << endl; cout << "The van der Waal radius for Nitrogen is " << etab.GetVdwRad(7);
Stored information in the OBElementTable includes elemental:
- symbols
- covalent radii
- van der Waal radii
- expected maximum bonding valence
- molar mass (by IUPAC recommended atomic masses)
- electronegativity (Pauling and Allred-Rochow)
- ionization potential
- electron affinity
- RGB colors for visualization programs
- names (by IUPAC recommendation)
Constructor & Destructor Documentation
OBElementTable | ( | void | ) |
~OBElementTable | ( | ) |
Member Function Documentation
void ParseLine | ( | const char * | ) | [virtual] |
Specified by particular table classes (parses an individual data line).
Reimplemented from OBGlobalDataBase.
unsigned int GetNumberOfElements | ( | ) |
- Returns:
- the number of elements in the periodic table
size_t GetSize | ( | ) | [inline, virtual] |
- Returns:
- the number of elements in the periodic table
Reimplemented from OBGlobalDataBase.
int GetAtomicNum | ( | const char * | sym | ) |
- Deprecated:
- Does not properly handle 'D' or 'T' hydrogen isotopes
Referenced by AliasData::Expand(), and OBElementTable::GetAtomicNum().
int GetAtomicNum | ( | const char * | identifier, | |
int & | iso | |||
) |
- Returns:
- the atomic number matching the element symbol or IUPAC name passed or 0 if not defined. For 'D' or 'T' hydrogen isotopes, will return a value in the second argument
int GetAtomicNum | ( | std::string | name, | |
int & | iso | |||
) |
Overloads GetAtomicNum(const char *, int &iso).
const char * GetSymbol | ( | int | atomicnum | ) |
- Returns:
- the element symbol matching the atomic number passed
Referenced by OBDepict::DrawMolecule(), and OBMol::GetSpacedFormula().
double GetVdwRad | ( | int | atomicnum | ) |
- Returns:
- the van der Waals radius for this atomic number
double GetCovalentRad | ( | int | atomicnum | ) |
- Returns:
- the covalent radius for this atomic number
Referenced by OBMol::ConnectTheDots().
double GetMass | ( | int | atomicnum | ) |
- Returns:
- the average atomic mass for this element. For exact isotope masses, use OpenBabel::OBIsotopeTable
Referenced by OBAtom::GetAtomicMass(), and OBMol::GetMolWt().
double CorrectedBondRad | ( | int | atomicnum, | |
int | hyb = 3 | |||
) |
- Returns:
- a "corrected" bonding radius based on the hybridization. Scales the covalent radius by 0.95 for sp2 and 0.90 for sp hybrids
Referenced by OBMol::AddHydrogens(), OpenBabel::GetCorrectedBondVector(), OBBond::GetEquibLength(), OBAtom::HtoMethyl(), OBMol::PerceiveBondOrders(), and OBAtom::SetHybAndGeom().
double CorrectedVdwRad | ( | int | atomicnum, | |
int | hyb = 3 | |||
) |
- Returns:
- a "corrected" vdW radius based on the hybridization. Scales the van der Waals radius by 0.95 for sp2 and 0.90 for sp hybrids
int GetMaxBonds | ( | int | atomicnum | ) |
- Returns:
- the maximum expected number of bonds to this element
Referenced by OBMol::ConnectTheDots(), and OBMol::PerceiveBondOrders().
double GetElectroNeg | ( | int | atomicnum | ) |
- Returns:
- the Pauling electronegativity for this element
Referenced by OBMol::PerceiveBondOrders().
double GetAllredRochowElectroNeg | ( | int | atomicnum | ) |
- Returns:
- the Allred-Rochow electronegativity for this element
double GetIonization | ( | int | atomicnum | ) |
- Returns:
- the ionization potential (in eV) for this element
double GetElectronAffinity | ( | int | atomicnum | ) |
- Returns:
- the electron affinity (in eV) for this element
vector< double > GetRGB | ( | int | atomicnum | ) |
- Returns:
- a vector with red, green, blue color values for this element
Referenced by OBDepict::DrawMolecule().
string GetName | ( | int | atomicnum | ) |
- Returns:
- the name of this element
void Init | ( | ) | [inherited] |
Read in the data file, falling back as needed.
Referenced by OBAromaticTyper::AssignAromaticFlags(), OBResidueData::AssignBonds(), OBBondTyper::AssignFunctionalGroupBonds(), OBAtomTyper::AssignHyb(), OBAtomTyper::AssignImplicitValence(), OBPhModel::AssignSeedPartialCharge(), OBRingTyper::AssignTypes(), OBAtomTyper::AssignTypes(), OBAtomTyper::CorrectAromaticNitrogens(), OBElementTable::CorrectedBondRad(), OBElementTable::CorrectedVdwRad(), OBPhModel::CorrectForPH(), OBElementTable::GetAllredRochowElectroNeg(), OBElementTable::GetAtomicNum(), OBElementTable::GetCovalentRad(), OBElementTable::GetElectronAffinity(), OBElementTable::GetElectroNeg(), OBIsotopeTable::GetExactMass(), OBTypeTable::GetFromType(), OBElementTable::GetIonization(), OBElementTable::GetMass(), OBElementTable::GetMaxBonds(), OBElementTable::GetName(), OBElementTable::GetNumberOfElements(), OBElementTable::GetRGB(), OBRotorRules::GetRotorIncrements(), OBElementTable::GetSymbol(), OBTypeTable::GetToType(), OBElementTable::GetVdwRad(), OBTypeTable::SetFromType(), OBResidueData::SetResName(), OBTypeTable::SetToType(), and OBTypeTable::Translate().
void SetReadDirectory | ( | char * | dir | ) | [inline, inherited] |
Set the directory before calling Init().
void SetEnvironmentVariable | ( | char * | var | ) | [inline, inherited] |
Set the environment variable to use before calling Init().
Member Data Documentation
bool _init [protected, inherited] |
Whether the data been read already.
Referenced by OBAromaticTyper::AssignAromaticFlags(), OBResidueData::AssignBonds(), OBBondTyper::AssignFunctionalGroupBonds(), OBAtomTyper::AssignHyb(), OBAtomTyper::AssignImplicitValence(), OBPhModel::AssignSeedPartialCharge(), OBRingTyper::AssignTypes(), OBAtomTyper::AssignTypes(), OBAtomTyper::CorrectAromaticNitrogens(), OBElementTable::CorrectedBondRad(), OBElementTable::CorrectedVdwRad(), OBPhModel::CorrectForPH(), OBElementTable::GetAllredRochowElectroNeg(), OBElementTable::GetAtomicNum(), OBElementTable::GetCovalentRad(), OBElementTable::GetElectronAffinity(), OBElementTable::GetElectroNeg(), OBIsotopeTable::GetExactMass(), OBTypeTable::GetFromType(), OBElementTable::GetIonization(), OBElementTable::GetMass(), OBElementTable::GetMaxBonds(), OBElementTable::GetName(), OBElementTable::GetNumberOfElements(), OBElementTable::GetRGB(), OBRotorRules::GetRotorIncrements(), OBElementTable::GetSymbol(), OBTypeTable::GetToType(), OBElementTable::GetVdwRad(), OBGlobalDataBase::Init(), OBAromaticTyper::OBAromaticTyper(), OBAtomTyper::OBAtomTyper(), OBBondTyper::OBBondTyper(), OBElementTable::OBElementTable(), OBIsotopeTable::OBIsotopeTable(), OBPhModel::OBPhModel(), OBResidueData::OBResidueData(), OBRingTyper::OBRingTyper(), OBRotorRules::OBRotorRules(), OBTypeTable::OBTypeTable(), OBTypeTable::SetFromType(), OBResidueData::SetResName(), OBTypeTable::SetToType(), and OBTypeTable::Translate().
const char* _dataptr [protected, inherited] |
Default data table if file is unreadable.
Referenced by OBGlobalDataBase::Init(), OBAromaticTyper::OBAromaticTyper(), OBAtomTyper::OBAtomTyper(), OBBondTyper::OBBondTyper(), OBElementTable::OBElementTable(), OBIsotopeTable::OBIsotopeTable(), OBPhModel::OBPhModel(), OBResidueData::OBResidueData(), OBRotorRules::OBRotorRules(), and OBTypeTable::OBTypeTable().
std::string _filename [protected, inherited] |
File to search for.
Referenced by OBGlobalDataBase::Init(), OBAromaticTyper::OBAromaticTyper(), OBAtomTyper::OBAtomTyper(), OBBondTyper::OBBondTyper(), OBElementTable::OBElementTable(), OBIsotopeTable::OBIsotopeTable(), OBPhModel::OBPhModel(), OBResidueData::OBResidueData(), OBRingTyper::OBRingTyper(), OBRotorRules::OBRotorRules(), and OBTypeTable::OBTypeTable().
std::string _dir [protected, inherited] |
Data directory for file if _envvar fails.
Referenced by OBAromaticTyper::OBAromaticTyper(), OBAtomTyper::OBAtomTyper(), OBBondTyper::OBBondTyper(), OBElementTable::OBElementTable(), OBIsotopeTable::OBIsotopeTable(), OBPhModel::OBPhModel(), OBResidueData::OBResidueData(), OBRingTyper::OBRingTyper(), OBRotorRules::OBRotorRules(), and OBTypeTable::OBTypeTable().
std::string _subdir [protected, inherited] |
Subdirectory (if using environment variable).
Referenced by OBAromaticTyper::OBAromaticTyper(), OBAtomTyper::OBAtomTyper(), OBBondTyper::OBBondTyper(), OBElementTable::OBElementTable(), OBIsotopeTable::OBIsotopeTable(), OBPhModel::OBPhModel(), OBResidueData::OBResidueData(), OBRingTyper::OBRingTyper(), OBRotorRules::OBRotorRules(), and OBTypeTable::OBTypeTable().
std::string _envvar [protected, inherited] |
Environment variable to check first.
Referenced by OBGlobalDataBase::Init(), OBAromaticTyper::OBAromaticTyper(), OBAtomTyper::OBAtomTyper(), OBBondTyper::OBBondTyper(), OBElementTable::OBElementTable(), OBIsotopeTable::OBIsotopeTable(), OBPhModel::OBPhModel(), OBResidueData::OBResidueData(), OBRingTyper::OBRingTyper(), OBRotorRules::OBRotorRules(), and OBTypeTable::OBTypeTable().
The documentation for this class was generated from the following files: