OBPhModel Class Reference

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

#include <phmodel.h>

Inheritance diagram for OBPhModel:
OBGlobalDataBase

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 )
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:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines