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]
the number of chemical transformations

Reimplemented from OBGlobalDataBase.

void AssignSeedPartialCharge ( OBMol mol  ) 
void CorrectForPH ( OBMol mol,
double  pH = 7.4 

Referenced by OBMol::CorrectForPH().

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

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines