$buffer-solutions

Buffer solutions: To control pH values in electrolytes.

$buffer-solutions                          optional    !
 buffer-name             character         required    !
 number-of-ions          integer           required    !
 ion-valency             double_array      required    !
 ion-name-1              character         required    !
 ion-name-2              character         required    !
 ion-name-3              character         optional    ! (only necessary for some buffers, e.g. PBS)
 ion-name-4              character         optional    ! (only necessary for some buffers, e.g. PBS)
 pKa                     double_array      required    ! pKa at 25° C ( = 298.15 K)
 dpKa_dT                 double_array      required    ! d pKa / d T
 z_acid                  double_array      required    ! charge on the conjugate acid species
$end_buffer-solutions                      optional    !

pKa at 25° C ( = 298.15 K)

d pKa / d T

Syntax

buffer-name = ACETATE    ! Acetate (sodium acetate + acetic acid) (CH3COO-Na+ + CH3COOH)
            = HEPES      ! HEPES   (C8H18N2O4S)
            = TRIS       ! TRIS    (C4H11NO3)
            = MOPS       ! MOPS    (C7H15NO4S)
            = PBS        ! PBS     (phosphate buffer)

Name of buffer

Acetate (sodium acetate + acetic acid)

CH3COO-Na+ + CH3COOH

HEPES

C8H18N2O4S

TRIS

C4H11NO3

MOPS

C7H15NO4S

PBS (phosphate buffer)

number-of-ions = 2   ! 2 for ACETATE, HEPES, TRIS and MOPS
               = 4   ! 4 for PBS

Number of ions that are contained in the buffer

ion-valency    = -1.0  +1.0              ! for ACETATE:  (CH3COO)-     Na+
               = +1.0  -1.0              ! for TRIS:     TrisH+        (OH)-
               = -1.0  +1.0              ! for MOPS:     (C7H14NO4S)-  Na+
               = -1.0  -2.0  -3.0  1.0   ! for PBS:      (H2PO4)-      (HPO4)2-    (PO4)3-    Na+

Valency of the ions that are contained in the buffer. The number of expected entries corresponds to number-of-ions.

ACETATE: (CH3COO)- Na+

TRIS: TrisH+ (OH)-

MOPS: (C7H14NO4S)- Na+

PBS: (H2PO4)- (HPO4)2- (PO4)3- Na+

Name of the ions that are contained in the buffer:

ion-name-1     = CH3COO^-  ! name of ion no. 1 (for ACETATE)
ion-name-2     = Na^+      ! name of ion no. 2 (for ACETATE)

CH3COOH <==> (CH3COO)- + H+

ion-name-1     = TrisH^+   ! name of ion no. 1 (for TRIS)
ion-name-2     = OH^-      ! name of ion no. 2 (for TRIS)

TrisH+ <==> Tris + H+ ( “NH3+<==> “NH2” + H+ )

Tris + H2O <==> TrisH+ + (OH)- ( “NH2” + H2O <==> “NH3+” + (OH)- )

                           !                                  ("SO3H" <==> "(SO3)-"      + H+)
ion-name-1     = Mops^-    ! name of ion no. 1 (for MOPS)   C7H15NO4S <==> (C7H14NO4S)- + H+
ion-name-2     = Na^+      ! name of ion no. 2 (for MOPS)

(“SO3H” <==> “(SO3)-” + H+)

C7H15NO4S <==> (C7H14NO4S)- +H+

ion-name-1     = H2PO4^-   ! name of ion no. 1 (for PBS)     NaH2PO4 <==> (H2PO4)- +   Na+
ion-name-2     = HPO4^2-   ! name of ion no. 2 (for PBS)     Na2HPO4 <==> (HPO4)2- + 2 Na+
ion-name-3     = PO4^3-    ! name of ion no. 3 (for PBS)    (HPO4)2- <==> (PO4)3-  +   H+
ion-name-4     = Na^+      ! name of ion no. 4 (for PBS)

NaH2PO4 <==> (H2PO4)- + Na+

Na2HPO4 <==> (HPO4)2-+ 2 Na+

(HPO4)2- <==> (PO4)3-+ H+

pKa = 4.76                     ! for ACETATE: pKa                        at 25° C ( = 298.15 K)
    = 7.66                     ! for HEPES:   pKa                        at 25° C ( = 298.15 K)
    = 8.06                     ! for TRIS:    pKa                        at 25° C ( = 298.15 K)
    = 7.31                     ! for MOPS:    pKa                        at 25° C ( = 298.15 K)
    = 2.15     7.21    12.33   ! for PBS:     pKa,1    pKa,2    pKa,3    at 25° C ( = 298.15 K)

pKa value(s) of buffer reactions. One can calculate the pH value from the pKa value and the concentrations of acid and base (Henderson-Hasselbalch equation):

pH = pKa+ log10( [base] / [acid] )

Example: pH = pKa+ log10( [Cl^-] / [HCl] )

HCl + H2O <==> Cl- + H3O+

dpKa_dT = -0.0002                   ! for ACETATE:  d pKa   / d T
        = -0.014                    ! for HEPES:    d pKa   / d T
        = -0.028                    ! for TRIS:     d pKa   / d T
        = -0.011                    ! for MOPS:     d pKa   / d T
        =  0.0044  -0.0028  -0.026  ! for PBS:      d pKa,1 / d T     d pKa,2 / d T     d pKa,3 / d T

d pKa / d T value(s) of pKa value(s), i.e. temperature dependence of pKa value(s) (temperature coefficient, i.e. the rate of change of pKa with temperature). If the buffer solution warms up, the pKa value drops. For further details, see $buffer-solutions.

z_acid =  0.0                    ! for ACETATE:   0 = CH3COOH
       =  0.0                    ! for MOPS:      0 = C7H15NO4S
       = +1.0                    ! for TRIS:     +1 = TrisH+
       =  0.0    -1.0    -2.0    ! for PBS:       0 = H3PO4, -1 = (H2PO4)- , -2 = (HPO4)^2-

Charge on the conjugate acid species.

Note: ‘conjugate acid’ + H20<==> ‘conjugate base’ + H30+

This value enters the equation for the ionic strength dependence of the pKa value (modified pKa value: pKa’).

forACETATE:

0 = CH3COOH

forMOPS:

0 = C7H15NO4S

forTRIS:

+1 = TrisH+

forPBS:

0 = H3PO4, -1 = (H2PO4)- , -2 = (HPO4)2-

Examples: Acetate, MOPS and PBS (phosphate buffer)

The phosphate buffer is special (and thus more complicated) because it consists of three pKa values (and it thus has four different ions).

$buffer-solutions

 buffer-name    = ACETATE                    ! Acetate (sodium acetate + acetic acid) (CH3COO-Na+ + CH3COOH)
 number-of-ions = 2                          ! CH3COOH  <==> (CH3COO)- + H+
 ion-valency    = -1.0 +1.0                  !
 ion-name-1     = CH3COO^-                   ! (CH3COO)-
 ion-name-2     = Na^+                       ! Na+
 pKa            = 4.76                       ! pKa at 25° C ( = 298.15 K)
 dpKa_dT        = -0.0002                    ! d pKa   / d T
 z_acid         = 0.0                        ! charge on the conjugate acid species (0 = CH3COOH)

(CH3COO-Na+ + CH3COOH)

CH3COOH<==> (CH3COO)- + H+

buffer-name    = MOPS                       ! MOPS  (C7H15NO4S)  +  NaOH
number-of-ions = 2                          !
ion-valency    = -1.0  +1.0                 ! (C7H14NO4S)-  Na+
ion-name-1     = Mops^-                     !  C7H15NO4S <==> (C7H14NO4S)- + H+
ion-name-2     = Na^+                       !
pKa            = 7.31                       ! pKa at 25° C ( = 298.15 K)
                                            ! (Note: This pKa is thermodynamic value. The working pKa' is 7.20.)
dpKa_dT        = -0.011                     ! d pKa   / d T
z_acid         = 0.0                        ! charge on the conjugate acid species (0 = C7H15NO4S)

(C7H15NO4S) + NaOH

(C7H14NO4S)- Na+

C7H15NO4S <==> (C7H14NO4S)- + H+

(0 = C7H15NO4S)

 buffer-name    = PBS                        ! PBS (phosphate buffer)
 number-of-ions = 4                          !
 ion-valency    = -1.0  -2.0  -3.0  1.0      ! (H2PO4)-     (HPO4)2-     (PO4)3-     Na+
 ion-name-1     = H2PO4^-                    ! NaH2PO4 <==> (H2PO4)- +   Na+
 ion-name-2     = HPO4^2-                    ! Na2HPO4 <==> (HPO4)2- + 2 Na+
 ion-name-3     = PO4^3-                     !
 ion-name-4     = Na^+                       !
 pKa            = 2.15     7.21    12.33     ! pKa,1    pKa,2    pKa,3    at 25° C ( = 298.15 K)
 dpKa_dT        = 0.0044  -0.0028  -0.026    ! d pKa   / d T
 z_acid         = 0.0     -1.0     -2.0      ! charge on the conjugate acid species (0 = H3PO4, -1 = (H2PO4)- , -2 = (HPO4)2-)

$end_buffer-solutions

(H2PO4)- (HPO4)2- (PO4)3- Na+

NaH2PO4 <==> (H2PO4)- + Na+

Na2HPO4 <==> (HPO4)2- + 2 Na+

(0 = H3PO4, -1 = (H2PO4)- , -2 = (HPO4)2-)

For more details on buffers, please have a look at the excellent book of [Beynon1996]. Rob Beynon also provides a web interface A recipe calculator for thermodynamically correct buffers for pH control at: https://phbuffers.org

Example: Acetate buffer (sodium acetate + acetic acid)

The following figure shows the pH value as a function of the concentration of the (CH3COO)- ions. Note that this number is equal to the concentration of Na+ ions (see equations above). The concentration of the acetate buffer is 0.1 M, i.e. it consists of

  • 0.1 M CH3COOH (acetic acid) and

  • 0.1 M CH3COO-Na+ (sodium acetate).

The temperature was set to 298.15 K ( = 25° C). The pKa value at 25° C is 4.76. Note that the pKa value depends on temperature and ionic strength. Thus for each pH value a different value of pKa had been calculated self-consistently=>pKa’. The calculations were performed by looping over the pH values. Note that the code adds the appropriate concentrations of Cl- ions (originating from the acid HCl) and Na+ ions (originating from the base NaOH) automatically.

CH3COO- + H3O+ + Cl- <==> CH3COOH + H2O + Cl-

CH3COOH + Na+ + OH- <==> CH3COO- + H2O + Na+

The acetate buffer has the best buffering range (i.e. pH = ±1) at around pKa = 4.76, i.e. it buffers nicely between pH = 3.76 and pH = 5.76.

Below the pH value of 3, the concentration of (CH3COO)- is negligible and only CH3COOH exists.

Above the pH value of 8, the concentration of CH3COOH  is negligible and only (CH3COO)- exists.

pH value vs. [CH3COO-]

image1

The relation between the pH value, the pKa’ value and the concentration of CH3COO- ions is governed by the Henderson-Hasselbalch equation.

pH = pKa’  +  log ( [CH3COO-] / [CH3COOH] )

The concentration of all ions (not only the buffer ions), the ionic strength, as well as the pKa’ value(s) as a function of pH are contained in this file: BufferIonConc_vs_pH.dat If you want to obtain the input file (Buffer_Acetate.nn3) that calculates the above figure, please submit a support ticket.

Details on the calculations

  • ACETATE(sodium acetate + acetic acid)

    [CH3COOH]  = [ACETATE] / ( 1 + 10pH-pKa )

    [(CH3COO)-] = [CH3COOH] * 10pH-pKa (Henderson-Hasselbalch equation)

    [Na+] = [(CH3COO)-]

  • MOPS

    [C7H15NO4S] = [MOPS] / ( 1 + 10pH-pKa )

    [(C7H14NO4S)-] = [C7H15NO4S] * 10pH-pKa (Henderson-Hasselbalch equation)

    [Na+] = [(C7H14NO4S)-]

    (analogous forHEPESandTRIS)

  • PBS (phosphate buffer)

    [H3PO4] = [PBS] / ( 1 + 10pH-pKa,1 * ( 1 + 10pH-pKa,2 * ( 1 + 10pH-pKa,3 ) ) )

    [(H2PO4)-] = [H3PO4] * 10pH-pKa,1 (Henderson-Hasselbalch equation)

    [(HPO4)2-] = [(H2PO4)-] * 10pH-pKa,2 (Henderson-Hasselbalch equation)

    [(PO4)3-] = [(HPO4)2-] * 10pH-pKa,3 (Henderson-Hasselbalch equation)

    [Na+] = (1 * [(H2PO4)-] + 2 * [(HPO4)2-] + 3 * [(PO4)3-]

The following figure shows the pH value as a functions of the Na+ concentration for a PBS buffer. Note that there are three buffer ranges.

image2

In this figure, we plot the concentration of the PBS buffer ions, and the resulting ionic strength as a function of pH.

image3

If you want to obtain the input file Buffer_PBS.nn3 that calculates the above figure, please submit a support ticket.

The entries for $buffer-solutions that are specified in the database can be overwritten in the input file. For details, have a look at the input file keyword $buffer-solutions.