Open Babel: OBPhModel Class Reference

Public Member Functions | Protected Attributes

# OBPhModel Class Reference

Corrections for pH used by OBMol::CorrectForPH() More...

`#include <phmodel.h>`

Inheritance diagram for OBPhModel:

List of all members.

## Public Member Functions
| OBPhModel ()
| ~OBPhModel ()
void | ParseLine (const char *)
size_t | GetSize ()
void | AssignSeedPartialCharge (OBMol &)
void | CorrectForPH (OBMol &, double pH=7.4)
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

Corrections for pH used by OBMol::CorrectForPH()

The data/phmodel.txt file contains transformations which are applied to correct the charges for a given pH. This function uses the Henderson-Hasselbalch equation to calculate which species (protonated/ unprotonated) is present in the highest concentration at the given pH.

For acids an entry would look like:

      # carboxylic acid
      O=C[OD1:1] >> O=C[O-:1]       4.0

The 4.0 is the pKa for the dissociation [HA] -> [H+] + [A-]. To calculate [HA]/[A-] we use:

      [HA] / [A-] = 10^(pKa - pH)

      [HA]/[A-] > 1  :  [HA] > [A-]
      [HA]/[A-] < 1  :  [A-] > [HA]

For a base, an entry would look be:

      # methyl amine
      C[N:1] >> C[N+:1]     10.7

Here, the 10.7 is the pKa for the dissociation [BH+] -> [H+] + [B:]. To calculate [BH+]/[B:] we use:

      [BH+] / [B:] = 10^(pKa - pH)

      [BH+]/[B:] > 1  :  [BH+] > [B:]
      [BH+]/[B:] < 1  :  [B:] > [BH+]

The transformations are all applied (if needed at the specified pH value) in the same order they are found in data/phmodel.txt.

## Constructor & Destructor Documentation

OBPhModel | ( | ) |

~OBPhModel | ( | ) |

## Member Function Documentation

void ParseLine | ( | const char * | ) | `[virtual]`

Specified by particular table classes (parses an individual data line)

Reimplemented from OBGlobalDataBase.

size_t GetSize | ( | ) | `[inline, virtual]`

Returns:
  the number of chemical transformations

Reimplemented from OBGlobalDataBase.

void AssignSeedPartialCharge | ( | OBMol & | mol ) |

Referenced by OBAtom::GetPartialCharge().

void CorrectForPH | ( | OBMol & | mol,
|  | double | pH = `7.4`
| ) |  |

Referenced by OBMol::CorrectForPH().

void Init | ( | ) | `[inherited]`

Read in the data file, falling back as needed.

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.

const char* _dataptr`[protected, inherited]`

Default data table if file is unreadable.

std::string _filename`[protected, inherited]`

File to search for.

std::string _dir`[protected, inherited]`

Data directory for file if _envvar fails.

std::string _subdir`[protected, inherited]`

Subdirectory (if using environment variable)

std::string _envvar`[protected, inherited]`

Environment variable to check first.

The documentation for this class was generated from the following files:

- phmodel.h
- phmodel.cpp

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines