Preface.
This model is dedicated to Dr. Vladimir Fencl (1923 - 2002) and his friend and colleague,
Dr. Peter A. Stewart (1921 - 1993).
Abstract.
The Figge-Fencl quantitative physicochemical model of human acid-base physiology in blood
plasma is presented below. Following Stewart, the model incorporates three fundamental
physicochemical principles as they apply to a single body fluid compartment (such as
arterial blood plasma) under steady-state conditions: the law of conservation of mass is
always obeyed; electrical neutrality is always maintained; and all statements of chemical
equilibria are simultaneously satisfied.
Dissociation equilibria for the carbon dioxide - bicarbonate - carbonate system
are explicitly included. The expression employed for the carbon dioxide - bicarbonate
equilibrium is mathematically equivalent to the Henderson-Hasselbalch equation. Hence,
the Henderson-Hasselbalch equation is always satisfied in the Figge-Fencl model. This is
a necessary but not sufficient condition to describe the acid-base status of a given body
fluid compartment.
Dissociation equilibria for major species of weak acids and their conjugate bases are
incorporated into the Figge-Fencl model. These include the phosphoric acid - phosphate
system, the citric acid - citrate system, and dissociable amino acid side chains of
albumin. Plasma globulins play only a minor role in acid-base balance and are not
explicitly included in the current version of the Figge-Fencl model.
Human serum albumin is treated as a polyprotic macromolecule with
multiple equilibrium dissociation constants corresponding to different classes of amino
acid side chains. As in the Figge-Mydosh-Fencl model, pK(a) values for 13 of 16 albumin
histidine residues in the Figge-Fencl model are based on NMR spectroscopy data
(temperature-corrected from 25 to 37 degrees Celsius using the van't Hoff equation).
The Figge-Fencl model also takes into account the neutral-to-base (N-B) structural
transition of human serum albumin over the pH range of 6 to 9, and the model explicitly
accounts for the contribution of all 59 lysine residues in albumin. The model features a
small number of lysine residues with unusually low pK(a) values, the existence of which is
suggested by spectroscopic and x-ray crystallographic data. Based on the albumin titration
curve of Halle and Lindman (temperature-corrected from 22 to 37 degrees C) it is estimated
that there are up to nine low-titrating lysine residues with pK(a) values distributed within
the range of 5.8 to 8.4 (inclusive) in two clusters; one cluster is near 6.0 and the
second cluster is near 8.0. Final pK(a) values in the Figge-Fencl model are established
using an iterative least-squares fit to the data of Figge, Rossing and Fencl for
albumin-containing solutions. All permitted combinations of trial pK(a) values for 59 lysine
and 2 histidine residues are systematically analyzed in successive model iterations. The
optimal set of parameters is the single set that minimizes the sum of the squares of the
deviations between measured and calculated pH.
At pH 7.40, the Figge-Fencl model predicts that the charge contributed by 4.4 g / dL of albumin is approximately
-11.8 mEq / L. Within the pH range of biologic interest (6.9 to 7.9) the Figge-Fencl model
predicts that the approximate negative charge contributed by albumin in human plasma at a
given pH is:
[ ZAlbumin ] = -10 x [ Albumin ] x (0.1204 x pH - 0.625);
where [ ZAlbumin ] is in mEq / L and [ Albumin ] is in g / dL. Over the stated pH
range, the molar buffer capacity of albumin is 8.0 Eq / mol / pH unit. Thus, for [ Albumin ]
of 4.4 g / dL, the buffer capacity of albumin is: 5.3 mEq / L / pH unit. The buffer
capacity of albumin is used in the formulation of the classic van Slyke equation for
plasma.
The Figge-Fencl quantitative physicochemical model can be used in conjunction
with a computer application to illustrate the effects of independent variables on
acid-base status in plasma-like solutions containing albumin. The application program
will solve the following function for pH:
pH = fpH { SID, Pco2, [ Pitot ], [ Albumin ], [ Citratetot ] }.
Introductory Notes.
[1] Peter A. Stewart introduced a quantitative physicochemical model of acid-base balance
in blood plasma [
reference 1 ]. Stewart incorporated the principle of electrical neutrality and
accounted for the electrical charges contributed by all ionized species. Dissociation
equilibria for the carbon dioxide - bicarbonate - carbonate system were explicitly
included. The expression employed by Stewart for the carbon dioxide - bicarbonate
equilibrium is mathematically equivalent to the Henderson-Hasselbalch equation. All
nonvolatile weak acids (H2PO4-, plasma proteins, and
divalent citrate ion) were characterized by a single
equilibrium dissociation constant in Stewart's model. The text of Stewart's classic
book entitled "How to Understand Acid-Base: A Quantitative Acid-Base Primer for Biology and
Medicine" is available online at
http://www.acidbase.org/.
[2] Figge, Rossing and Fencl [
reference 2 ] produced electrolyte solutions resembling human serum that contained
albumin as the sole protein moiety. Data collected from these solutions were used in a
least-squares algorithm to develop a more robust quantitative physicochemical model. This
model treated albumin as a polyprotic macromolecule with multiple equilibrium dissociation
constants corresponding to different classes of amino acid side chains (i.e., Arg + Lys,
Asp + Glu, Cys, His, Tyr, amino terminus, carboxyl terminus). This model was successful in
calculating the pH of albumin-containing electrolyte solutions as well as the pH of
filtrands of serum.
[3] Figge, Mydosh and Fencl [
reference 3 ] further refined the quantitative physicochemical model by incorporating
pK(a) values for albumin histidine residues as determined by NMR spectroscopy [
reference 4 and
reference 5 ]. The pK(a)
values were temperature-corrected to 37 degrees Celsius in the model [
reference 3 ]. This model accounted for the effects of the microenvironments within
the macromolecule of albumin on the pK(a) values of individual histidine residues.
Temperature-corrected pK(a) values for histidine are also employed in the Figge-Fencl
quantitative physicochemical model of acid-base physiology. Temperature correction from
25 to 37 degrees Celsius (298 to 310 degrees K) is accomplished using the van't Hoff
equation, which yields a correction factor of -0.2, as follows. The standard molar
enthalpy for the dissociation of a proton from an imidazole group of histidine will vary
according to the protein microenvironment. A representative value is 6,940 cal / mol.
R is the gas constant, 1.987 cal / deg K / mol. The natural logarithm of 10, ln(10), is
2.302585. The van't Hoff equation to adjust the pK(a) of a histidine residue from 298
to 310 degrees K is as follows:
pK(a)310 = pK(a)298 + (6940 / ln(10) / R)(1 / 310 - 1 / 298) =
pK(a)298 - 0.2.
The imidazole groups of histidine residues are of particular importance because they can
titrate within the pH range of biologic interest.
[4] Human serum albumin undergoes several structural transitions as a function of pH. The
N-B (neutral-to-base) transition occurs between pH 6 and 9, which is important because this
includes the physiologic pH range. Human serum albumin is organized into three
structurally homologous domains, denoted 1, 2 and 3 [
reference 6 ]. A
variety of spectroscopic methods including far-UV circular dichroism (CD), near-UV CD, and
fluorescence emission (from tryptophan and tyrosine residues) have been employed to study
the structural transitions of human albumin and the three recombinant domains of albumin [
reference 7 ]. The role of
histidine residues in the N-B transition has been studied by NMR spectroscopy [
reference 4 and
reference 5 ]. The
fluorescence spectrum of bovine serum albumin has also been studied in the pH range of 3 to
10 [
reference 8 ]. The N-B transition has been described in terms of a two-state model [
reference 9 ]. The N state exists at lower pH values, and the B state at high pH.
This interpretation is supported by the far-UV CD data which demonstrate a slight reduction
in alpha-helical content of albumin as the pH ranges from 7.4 to 9.0 [
reference 7 ]. Furthermore,
near-UV CD data demonstrate that albumin domains 1 and 2 undergo a tertiary structural
isomerization in the pH range of the N-B transition [
reference 7 ]. Domain 3 is
not involved in the N-B structural transition. Based on model calculations, there are
most likely five conformation-linked histidine residues that undergo a downward pK shift
as albumin transitions from the N to the B conformation [
reference 5 ]. The five
histidine residues that participate in the N-B transition have been assigned to domain 1 of
human serum albumin based on an analysis of NMR data [
reference 5 ]. Calcium
ions can exert a strong influence on the N-B transition.
Calcium ions induce a downward shift in the pK(a) of several histidine residues at constant
pH and a concomitant downward shift in the midpoint pH of the N-B transition [
reference 4,
reference 5, and
reference 9 ]. Consequently, the addition of calcium results in the release of protons
and a shift from the N to the B conformation.
[5] The Figge-Fencl quantitative physicochemical model of acid-base physiology, presented
below, incorporates an empiric function that models the N-B transition by downshifting the
pK(a) values of five histidine residues located within domain 1 of human serum albumin.
The magnitude of the pK downshift is 0.4 units, as estimated in
reference 4. In the presence of physiologic calcium ion concentrations (2.5 mM), the
midpoint of the pH range for the N-B transition is approximately 6.9 [
reference 9 ].
[6] Buried lysine residues with unusually low pK(a) values (e.g., pK(a) of 5.7) have been
documented in the literature [
reference 10 ]. The
available evidence suggests that there are potentially six lysine residues in human
serum albumin that have an unusually low pK(a). This interpretation is supported by data
from tryptophan and tyrosine fluorescence emission studies [
reference 7 ]. Human serum
albumin contains a single tryptophan residue at position 214, which is located within
domain 2. Tryptophan fluorescence can be excited by a wavelength of 295 nm, which does not
excite tyrosine residues. When tryptophan-specific fluorescence is studied in the context
of intact human serum albumin, there is a decrease in fluorescence intensity as the pH is
raised from 7.4 to 9.0 [
reference 7 ]. When tyrosine
fluorescence is studied from recombinant domain 3, there is a decrease in fluorescence
intensity as the pH is raised from 6 to 9 [
reference 7 ].
The decrease of the tyrosine fluorescence signal intensity could be partially explained by
deprotonation of the phenolic hydroxyl group of some tyrosine side chains. Furthermore,
deprotonated epsilon-amino groups of lysine side chains are known to quench the
fluorescence signal from both tryptophan and tyrosine residues. Therefore, deprotonated
lysine residues in close proximity to tryptophan and tyrosine are candidate quenching
groups. Based on the known
x-ray crystal structure
of human albumin [
reference 11,
reference 12, Protein Data Bank entries
1UOR and
1AO6 ],
the epsilon-amino groups of lysine-525, 414, 432, and 534 are within five Angstroms of
tyrosine-401, 411, 452, and 497, respectively. These tyrosine residues are all located
within domain 3 of human serum albumin. Structural rearrangements
associated with the N-B transition (which do not affect domain 3) are not likely to be a
factor in the decrease of the fluorescence signal from these particular tyrosine residues.
This suggests that the adjacent lysine epsilon-amino groups could be at least partially
responsible for quenching the tyrosine fluorescence signal as they deprotonate within the
pH range of 6 to 9. Likewise, lysine-199 and lysine-195 are positioned 3.7 and 7.4
Angstroms, respectively, from tryptophan-214. Thus, the decrease in the fluorescence signal
from tryptophan-214 might be due to changes in secondary or tertiary structure of domain 2,
and/or quenching from one or both adjacent lysine epsilon-amino groups as they deprotonate
within the slightly alkaline pH range. These data suggest that there are potentially six
lysine epsilon-amino groups in human albumin that exhibit an anomalously low pK(a) value.
Similar fluorescence data were presented regarding bovine serum albumin [
reference 8 ].
[7] The exact number of low-titrating lysine residues in human serum albumin is not known.
Therefore, the Figge-Fencl quantitative physicochemical model of acid-base physiology, as
presented below, uses a least-squares procedure to estimate the total number. Based on the
albumin titration curve of Halle and Lindman [
reference 13 ] (corrected from 22 to 37 degrees C) it is estimated that there are up to
nine low-titrating lysine residues with pK(a) values distributed within the range of 5.8
to 8.4 (inclusive), with one cluster near 6.0, and a second cluster near 8.0. Hence,
the model allows up to nine low-titrating lysine residues to populate
trial pK(a) values distributed as follows: N1 residues are assigned a pK(a) of
LYS1 = 5.8; N2 residues a pK(a) of LYS2 = 6.0; N3 residues a pK(a) of LYS3 = 7.6;
N4 residues a pK(a) of LYS4 = 7.8; N5 residues a pK(a) of LYS5 = 8.0; N6 residues a
pK(a) of LYS6 = 8.2; and N7 residues a pk(a) of LYS7 = 8.4. The parameters N1, N2,
N4, N5 and N6 are each allowed to vary from 0 to 2, inclusive, and N3 and N7 from 0 to 1,
inclusive, with the provision that N1 + N2 + N3 + N4 + N5 + N6 + N7 cannot exceed 9.
The optimized values of the parameters N1, N2, N3, N4, N5, N6 and N7 are determined by a
least-squares algorithm using a computer program as described below. There are a total of
59 lysine residues in human albumin. Consequently, the number of normally-titrating lysine
residues in the model is (59 - N1 - N2 - N3 - N4 - N5 - N6 - N7). The pK(a) of lysine
residues in polypeptides is typically near 10.5. Consequently, the parameter LYS8,
representing the pK(a) of a normally-titrating lysine residue, is allowed to assume a value
of 10.3, 10.4 or 10.5. These fall within the range of published textbook values for the
pK(a) of lysine [ references 14 and 15 ]. This model accounts for the contribution of all
59 lysine residues in human serum albumin. Arginine residues are considered separately
from lysine. Each of the 24 arginine resides in albumin is assigned a pK(a) of 12.5, in
accordance with a standard textbook value [ references 14 and 15 ].
[8] In the Figge-Fencl quantitative model presented below, each of the 18 tyrosine residues
in albumin is assigned a pK(a) value of 11.7, in accordance with a spectrophotometrically
determined value [ reference 13 ]. The formal possibility of anomalously low pK(a) values
for a subset of tyrosine residues is not addressed in this model.
[9] In the Figge-Fencl quantitative model presented below, the 36 aspartic acid and 62
glutamic acid residues in albumin are each assigned a pK(a) of 4.0, cysteine is assigned a
pK(a) of 8.5, the amino terminus is assigned a pK(a) of 8.0, and the carboxyl terminus is
assigned a pK(a) of 3.1. These are consistent with standard textbook values [ references
14 and 15 ] and were previously employed in Figge, Mydosh and Fencl [
reference 3 ].
[10] The pK(a) values of two histidine residues that could not be determined by NMR are
designated as HIS15 and HIS16. HIS15 is constrained by the NMR data and is allowed to vary
from 6.8 to 7.8, inclusive. HIS16 is allowed to vary from 5.5 to 6.5, inclusive,
encompassing a range of standard textbook values for histidine after temperature
correction to 37 degrees C [ references 14 and 15 ]. The values of HIS15 and HIS16 are
determined as part of the least-squares algorithm in the computer program below. A third
incompletely characterized histidine residue is assigned a temperature-corrected pK(a)
value of 5.2, consistent with available NMR data.
[11] The computer program for the albumin model is written in Visual BASIC. The parameters,
HIS15, HIS16, N1 through N7, and LYS8 are allowed to vary through all possible combinations
of values (within the stated admissible limits). Consequently, there are a total of
340,494 combinations of values for HIS15, HIS16, N1 to N7, and LYS8 that are tested in the
model ([3 x 3 x 2 x 3 x 3 x 3 x 2 - 34] x 11 x 11 x 3 = 340,494). A least-squares
algorithm is employed using the data of Figge, Rossing and Fencl for albumin-containing
solutions [
reference 2 ]. Since there are 65 data points in this database, the model calculations
are run a total of 22,132,110 times in the computer program. The optimal set of parameters
is the single set that minimizes the sum of the squares of the deviations between measured
and calculated pH. The program takes under ten hours to run in compiled form on a
2.80 GHz processor. The single set of optimized parameters is displayed below, following
the computer program listing.
[12] A detailed model for the contribution of plasma globulins is difficult to develop due
to the marked heterogeneity of plasma globulin species. Based on liquid phase preparative
isoelectric focusing of native human immunoglobulin molecules, the distribution of
isoelectric points for IgG is 4.35 to 9.95, with a dominant peak between pH 7 and 9.95,
centered at pH 8.2 [
reference 17 ]. Thus a significant fraction of IgG molecules will carry a positive
charge within the physiologic pH range. Hence, at physiologic pH values, it is expected
that the positive charges contributed by IgG molecules will at least partially offset the
negative charges carried by alpha- and beta-globulin fractions as well as IgA, the
majority of IgM and the remainder of IgG molecules.
[13] A model summary and a simple formula for calculating the
predicted charge displayed by albumin over the pH range of 6.9 to 7.9 are also presented.
The molar buffer capacity of albumin is calculated from this analysis. Following this, a
formal mathematical representation of the optimized model is presented.
An application program is also available
for performing calculations with the optimized Figge-Fencl quantitative physicochemical
model.
[14] Concentrations of substances are noted by brackets, [ X ], and the appropriate units
will be provided. Except as noted below, [ X ] will be a non-negative value. However, in the case of
substances carrying a variable charge per mole, the charge will be calculated and the
algebraic sign associated with the charge will already be incorporated in the numerical
value of the concentration. To avoid ambiguity, the symbol [ Zx ] will be
employed when the algebraic sign associated with the charge is already incorporated in the
numerical value of the concentration. This applies to the following calculated value:
[ ZAlbumin ].
[15] K1, K2 and K3 are the apparent equilibrium dissociation constants for phosphoric
acid for plasma [
Reference 19 ]. pK1 =
1.915; pK2 = 6.66; pK3 = 11.78.
[16] C1, C2 and C3 are the apparent equilibrium dissociation constants for citric acid.
Values of these constants at 37 degrees Celsius were taken from reference 20:
pK1 = 3.11; pK2 = 4.75; pK3 = 6.43. The constants were
then adjusted to an ionic strength of 0.16 M for use in the Figge-Fencl model. The adjusted
values are: pK1 = 2.98; pK2 = 4.37; pK3 = 5.79. The
adjustments were made using the equation
pK' = pK + nA(I1/2)/{1 + 1.6(I1/2)};
where n = (2 x charge of the acid - 1); I = 0.16;
and A is the constant of the Debye-Hueckel
equation. At 37 degrees Celsius,
A = 1.825 x 106{0.993/( (74.27)3 (310)3 )}1/2
= 0.521.
[17] The constant Kc1, governing the carbon dioxide - bicarbonate equilibrium, is derived
directly from parameters in the Henderson-Hasselbalch equation. The solubility of
CO2 in plasma is: 0.230 mmol / L / kPa x 0.13332236842105 kPa / mmHg =
0.0307 mmol / L / mmHg. Kc1 = (10-6.1) (0.0307) / (1000) = 2.44 x 10-11.
Hence, calculations using Kc1 in the Figge-Fencl model yield results identical to those
calculated with the Henderson-Hasselbalch equation.
[18] The constant Kc2, the second dissociation constant for carbonic acid, is calculated
from the formula (equation 9) given by Harned and Scholes [ reference 21 ]. At 37 degrees
Celsius (310 K), the formula yields: log Kc2 = -2902.39 / 310 + 6.4980 - 0.02379 x 310
= -10.239. Hence, at zero ionic strength, pKc2 = 10.239. The correction factor for an
ionic strength of 0.15 M is approximately 0.022. Hence pKc2 = 10.261, and kc2 = 5.5E-11.
Due to the fact that carbonate ion has a charge of -2, Kc2 when expressed in Eq / L is
1.1E-10.
References:
1. Stewart, PA. Modern quantitative acid-base chemistry. Can J Physiol Pharmacol.
1983; 61: 1444-1461. [
Abstract on PubMed ].
2. Figge J, Rossing TH, Fencl V. The role of serum proteins in acid-base equilibria.
J Lab Clin Med. 1991; 117: 453-467. [
Abstract on PubMed ].
3. Figge J, Mydosh T, Fencl V. Serum proteins and acid-base equilibria: a follow-up.
J Lab Clin Med. 1992; 120: 713-719. [
Abstract on PubMed ].
4. Labro JFA, Janssen LHM. A proton nuclear magnetic resonance study of human serum
albumin in the neutral pH region. Biochim Biophys Acta. 1986; 873: 267-278. [
Abstract on PubMed ].
5. Bos OJM, Labro JFA, Fischer MJE, Wilting J, Janssen LHM. The molecular mechanism
of the neutral-to-base transition of human serum albumin. Acid/base titration and proton
nuclear magnetic resonance studies on a large peptic and a large tryptic fragment of
albumin. J Biol Chem. 1989;
264: 953-959. [ PDF download of the full text is available online at
http://www.jbc.org/cgi/content/abstract/264/2/953 ].
6. Dockal M, Carter DC, Ruker F. The three recombinant domains of human serum albumin.
Structural characterization and ligand binding properties.
J Biol Chem. 1999; 274: 29303-29310. [ Full text is available online at
http://www.jbc.org/cgi/content/full/274/41/29303 ].
7. Dockal M, Carter DC, Ruker F. Conformational transitions of the three recombinant
domains of human serum albumin depending on pH. J Biol Chem. 2000; 275: 3042-3050.
[ Full text is available online at
http://www.jbc.org/cgi/content/full/275/5/3042 ].
8. Halfman CJ, Nishida T. Influence of pH and electrolyte on the fluorescence of bovine
serum albumin. Biochim Biophys Acta. 1971; 243: 284-293. [
Citation on PubMed ].
9. Janssen LHM, Van Wilgenburg MT, Wilting J. Human serum albumin as an allosteric
two-state protein. Evidence from effects of calcium and warfarin on proton binding
behaviour. Biochim Biophys Acta. 1981; 669: 244-250. [
Abstract on PubMed ].
10. Fitch CA, Karp DA, Lee KK, Stites WE, Lattman EE, Garcia-Moreno E B. Experimental pK(a)
values of buried residues: analysis with continuum methods and role of water penetration.
Biophys J. 2002; 82: 3289-3304. [ Full text is available online at
http://www.biophysj.org/cgi/content/full/82/6/3289 ].
11. He XM, Carter DC. Atomic structure and chemistry of human serum albumin. Nature.
1992; 358: 209-215. [
Abstract on PubMed ].
12. Sugio S, Kashima A, Mochizuki S, Noda M, Kobayashi K. Crystal Structure of Human
Serum Albumin at 2.5 Angstrom Resolution. Protein Eng. 1999; 12: 439-446. [ Full
text is available online at
http://peds.oupjournals.org/cgi/content/full/12/6/439 ].
13. Halle B, Lindman B. Chloride ion binding to human plasma albumin from chlorine-35
quadrupole relaxation. Biochemistry. 1978; 17: 3774-3781. [
Abstract on PubMed ].
14. Stryer L. Biochemistry. San Francisco: W.H. Freeman. First Edition. 1975.
Pages 44 and 86.
15. Berg JM, Tymoczko JL, Stryer L. Biochemistry. New York: W.H. Freeman.
Fifth Edition. 2002. Pages 50 and 74.
16. Siggaard-Andersen O, Fogh-Andersen N. Base excess or buffer base (strong ion
difference) as a measure of non-respiratory acid-base disturbance. Acta Anesthesiol
Scand. 1995; 39 (Suppl 106): 123-128.
[ See also O. Siggaard-Andersen's web site at
http://www.osa.suite.dk/; the full text article is available under the Bibliography. ].
17. Prin C, Bene MC, Gobert B, Montagne P, Faure GC. Isoelectric restriction of human
immunoglobulin isotypes. Biochemica et Biophysica Acta. 1995; 1243: 287-290. [
Abstract on PubMed ].
18. Fencl V, Jabor A, Kazda A, Figge J. Diagnosis of metabolic acid-base disturbances
in critically ill patients. Am J Respir Crit Care Med. 2000; 162: 2246-2251.
[ Full text is available online at
http://ajrccm.atsjournals.org/cgi/content/full/162/6/2246 ].
[ See also the online supplement, which is accessible at
http://ajrccm.atsjournals.org/cgi/content/full/162/6/2246/DC1 ].
19. Sendroy J, Hastings B. Studies of the solubility of calcium salts. II. The
solubility of tertiary calcium phosphate in salt solutions and biological fluids.
J Biol Chem. 1927; 71: 783-796.
[ Full text is available online at
http://www.jbc.org/cgi/reprint/71/3/783 ].
20.
http://analytical.biochem.purdue.edu/221/wwwboard/handouts/supplemental/buffer.pdf
21. Harned HS, Scholes SR. The ionization constant of HCO3- from
0 to 50 Degrees. J Am Chem Soc. 1941; 63: 1706-1709.
Computer Program.
Sub Model()
Rem: Figge-Fencl Quantitative Physicochemical Model
Rem: of Human Acid-Base Physiology.
Rem:
Rem: Program by James J. Figge, MD, MBA, FACP. Updated 22 December, 2007;
Rem: Updated 28 December, 2008.
Rem: Copyright 2003 - 2009 James J. Figge.
Close #1
Dim pHm(65), SID(65), PCO2(65), Pi(65), Alb(65)
rownum = 1
colnum = 1
rownum = ActiveCell.Row
colnum = ActiveCell.Column
Worksheets("Sheet1").Activate
sum1 = 0
sum2 = 0
sum3 = 0
sum4 = 0
sum5 = 0
For rownum = 1 To 65
pHm(rownum) = ActiveSheet.Cells(rownum, 2)
SID(rownum) = ActiveSheet.Cells(rownum, 3)
PCO2(rownum) = ActiveSheet.Cells(rownum, 4)
Pi(rownum) = ActiveSheet.Cells(rownum, 5)
Alb(rownum) = ActiveSheet.Cells(rownum, 6)
sum1 = sum1 + pHm(rownum)
sum2 = sum2 + SID(rownum)
sum3 = sum3 + PCO2(rownum)
sum4 = sum4 + Pi(rownum)
sum5 = sum5 + Alb(rownum)
Next rownum
Const kw = 0.000000000000044
Rem: Kc1 is derived from the parameters in the Henderson-Hasselbalch
Rem: equation. pK = 6.1; a = 0.230 mM / kPa; 1 mmHg = 0.13332236842105 kPa
Rem: The value of Kc1 is 2.44E-11 (Eq / L)^2 / mmHg.
Rem: Kc2 is calculated from Harned and Scholes (1941) for 37 degrees C and ionic
Rem: strength 0.15 M. The value of Kc2 is 5.5E-11 mol / L x 2 = 1.1E-10 Eq / L.
Rem: K1, K2, and K3 for the phosphoric acid - phosphate system are from Sendroy and
Rem: Hastings (1927).
Const Kc1 = 0.0000000000244
Const Kc2 = 0.00000000011
Const K1 = 0.0122
Const K2 = 0.000000219
Const K3 = 0.00000000000166
Const LYS1 = 5.8
Const LYS2 = 6
Const LYS3 = 7.6
Const LYS4 = 7.8
Const LYS5 = 8
Const LYS6 = 8.2
Const LYS7 = 8.4
Const HIS14 = 5.2
minss = 9999999
For g1 = 680 To 780 Step 10
HIS15 = g1 / 100
For g2 = 550 To 650 Step 10
HIS16 = g2 / 100
For q = 1030 To 1050 Step 10
LYS8 = q / 100
For n1 = 0 To 2
For n2 = 0 To 2
For n3 = 0 To 1
For n4 = 0 To 2
For n5 = 0 To 2
For n6 = 0 To 2
For n7 = 0 To 1
LowTitrate = n1 + n2 + n3 + n4 + n5 + n6 + n7
If LowTitrate > 9 Then GoTo GetNext
ss = 0
s = 0
abvs = 0
sx = 0
sxx = 0
sy = 0
syy = 0
sxy = 0
For j = 1 To 65
High = 14
Low = 1
calculatepH:
pH = (High + Low) / 2
Rem: H is hydrogen ion activity (also used as an approximation of H+ concentration)
H = 10 ^ -pH
HCO3 = Kc1 * PCO2(j) / H
CO3 = Kc2 * HCO3 / H
FNX = K1 * H * H + 2 * K1 * K2 * H + 3 * K1 * K2 * K3
FNY = H * H * H + K1 * H * H + K1 * K2 * H + K1 * K2 * K3
FNZ = FNX / FNY
P = Pi(j) * FNZ
Netcharge = SID(j) + 1000 * (H - kw / H - HCO3 - CO3) - P
Rem: NB accounts for histidine pK shift due to the NB transition
NB = 0.4 * (1 - (1 / (1 + (10 ^ (pH - 6.9)))))
Rem: Calculate charge on albumin
Rem: alb2 accumulates results
Rem: cysteine residue
alb2 = -1 / (1 + (10 ^ (-(pH - 8.5))))
Rem: glutamic acid and aspartic acid residues
alb2 = alb2 - 98 / (1 + (10 ^ (-(pH - 4))))
Rem: tyrosine residues
alb2 = alb2 - 18 / (1 + (10 ^ (-(pH - 11.7))))
Rem: arginine residues
alb2 = alb2 + 24 / (1 + (10 ^ (pH - 12.5)))
Rem: lysine residues
alb2 = alb2 + n1 / (1 + (10 ^ (pH - LYS1)))
alb2 = alb2 + n2 / (1 + (10 ^ (pH - LYS2)))
alb2 = alb2 + n3 / (1 + (10 ^ (pH - LYS3)))
alb2 = alb2 + n4 / (1 + (10 ^ (pH - LYS4)))
alb2 = alb2 + n5 / (1 + (10 ^ (pH - LYS5)))
alb2 = alb2 + n6 / (1 + (10 ^ (pH - LYS6)))
alb2 = alb2 + n7 / (1 + (10 ^ (pH - LYS7)))
alb2 = alb2 + (59 - LowTitrate) / (1 + (10 ^ (pH - LYS8)))
Rem: 16 different histidine residues
Rem: Correction factor to convert HIS pKa from 25 deg C to 37 deg C is approx -0.2
alb2 = alb2 + 1 / (1 + (10 ^ (pH - 7.19 + NB)))
alb2 = alb2 + 1 / (1 + (10 ^ (pH - 7.29 + NB)))
alb2 = alb2 + 1 / (1 + (10 ^ (pH - 7.17 + NB)))
alb2 = alb2 + 1 / (1 + (10 ^ (pH - 7.56 + NB)))
alb2 = alb2 + 1 / (1 + (10 ^ (pH - 7.08 + NB)))
alb2 = alb2 + 1 / (1 + (10 ^ (pH - 7.38)))
alb2 = alb2 + 1 / (1 + (10 ^ (pH - 6.82)))
alb2 = alb2 + 1 / (1 + (10 ^ (pH - 6.43)))
alb2 = alb2 + 1 / (1 + (10 ^ (pH - 4.92)))
alb2 = alb2 + 1 / (1 + (10 ^ (pH - 5.83)))
alb2 = alb2 + 1 / (1 + (10 ^ (pH - 6.24)))
alb2 = alb2 + 1 / (1 + (10 ^ (pH - 6.8)))
alb2 = alb2 + 1 / (1 + (10 ^ (pH - 5.89)))
alb2 = alb2 + 1 / (1 + (10 ^ (pH - HIS14)))
alb2 = alb2 + 1 / (1 + (10 ^ (pH - HIS15)))
alb2 = alb2 + 1 / (1 + (10 ^ (pH - HIS16)))
Rem: amino terminus
alb2 = alb2 + 1 / (1 + (10 ^ (pH - 8)))
Rem: carboxyl terminus
alb2 = alb2 - 1 / (1 + (10 ^ (-(pH - 3.1))))
alb2 = alb2 * 1000 * 10 * Alb(j) / 66500
Netcharge = Netcharge + alb2
If Abs(Netcharge) < 0.0000001 Then GoTo complete
If Netcharge < 0 Then High = pH
If Netcharge > 0 Then Low = pH
GoTo calculatepH
complete:
ss = ss + (pHm(j) - pH) * (pHm(j) - pH)
s = s + (pHm(j) - pH)
abvs = abvs + Abs(pHm(j) - pH)
sx = sx + pHm(j)
sxx = sxx + pHm(j) * pHm(j)
sy = sy + pH
syy = syy + pH * pH
sxy = sxy + pHm(j) * pH
Next j
If ss > minss Then GoTo GetNext
minss = ss
Open "C:\Documents and Settings\James\My Documents\model-results" For Output As #1
Print #1, "Checksum1 =", sum1
Print #1, "Checksum2 =", sum2
Print #1, "Checksum3 =", sum3
Print #1, "Checksum4 =", sum4
Print #1, "Checksum5 =", sum5
Print #1, " "
Print #1, "abvs / n =", abvs / 65, "s= ", s, "ss= ", ss
Print #1, " "
Print #1, "HIS14 =", HIS14, "HIS15 = ", HIS15, "HIS16 = ", HIS16
Print #1, " "
Print #1, "LYS1 = ", LYS1, "n1 = ", n1
Print #1, "LYS2 = ", LYS2, "n2 = ", n2
Print #1, "LYS3 = ", LYS3, "n3 = ", n3
Print #1, "LYS4 = ", LYS4, "n4 = ", n4
Print #1, "LYS5 = ", LYS5, "n5 = ", n5
Print #1, "LYS6 = ", LYS6, "n6 = ", n6
Print #1, "LYS7 = ", LYS7, "n7 = ", n7
Print #1, "LYS8 = ", LYS8
n = 65
Slope = (n * sxy - sx * sy) / (n * sxx - sx * sx)
incpt = (sy * sxx - sx * sxy) / (n * sxx - sx * sx)
vincpt = sy / n - Slope * sx / n
r = (n * sxy - sx * sy) / Sqr(n * sxx - sx * sx) / Sqr(n * syy - sy * sy)
Var = (syy - incpt * sy - Slope * sxy) / (n - 2)
varslope = n * Var / (n * sxx - sx * sx)
stndevslope = Sqr(varslope)
Rem: t(n-2, alpha/2) for n=65 is 2.3870, where alpha=0.02
t = 2.387
Lconfint = Slope - t * stndevslope
Uconfint = Slope + t * stndevslope
Print #1, " "
Print #1, "slope = ", Slope
Print #1, "intercept = ", incpt
Print #1, "intercept = ", vincpt, "(verify)"
Print #1, "r = ", r
Print #1, "r^2 = ", r * r
Print #1, "Variance = ", Var
Print #1, "Variance of slope = ", varslope
Print #1, "Stnd Deviation of slope = ", stndevslope
Print #1, "98% confidence interval for the slope = ", Lconfint, " to ", Uconfint
Close #1
GetNext:
Next n7
Next n6
Next n5
Next n4
Next n3
Next n2
Next n1
Next q
Next g2
Next g1
End Sub
Data from Figge J, Rossing TH, Fencl V. J Lab Clin Med.
1991; 117:453-467 (Table A).
Data must be entered into a spreadsheet for use in the program
DATA 01, 7.388, 49.8, 39.3, 1.1, 7.2
DATA 02, 7.383, 45.4, 40.0, 1.0, 7.0
DATA 03, 7.521, 45.4, 26.1, 1.0, 7.0
DATA 04, 7.389, 45.4, 38.1, 1.0, 7.0
DATA 05, 7.217, 45.4, 62.9, 1.0, 7.0
DATA 06, 7.315, 32.2, 23.4, 1.2, 6.6
DATA 07, 7.194, 32.2, 35.0, 1.2, 6.6
DATA 08, 6.979, 32.2, 68.6, 1.2, 6.6
DATA 09, 7.819, 71.3, 28.9, 1.1, 6.8
DATA 10, 7.716, 71.3, 37.7, 1.1, 6.8
DATA 11, 7.504, 71.3, 65.4, 1.1, 6.8
DATA 12, 7.850, 70.2, 26.4, 1.0, 6.8
DATA 13, 7.719, 70.2, 37.9, 1.0, 6.8
DATA 14, 7.513, 70.2, 65.3, 1.0, 6.8
DATA 15, 7.447, 45.9, 30.8, 1.0, 7.1
DATA 16, 7.375, 45.9, 38.4, 1.0, 7.1
DATA 17, 7.094, 45.9, 85.0, 1.0, 7.1
DATA 18, 7.935, 70.2, 22.5, 1.0, 6.8
DATA 19, 7.716, 70.2, 40.2, 1.0, 6.8
DATA 20, 7.423, 70.2, 83.5, 1.0, 6.8
DATA 21, 7.746, 45.8, 22.1, 1.0, 3.5
DATA 22, 7.518, 45.8, 39.9, 1.0, 3.5
DATA 23, 7.218, 45.8, 85.9, 1.0, 3.5
DATA 24, 7.446, 24.2, 21.9, 0.9, 3.4
DATA 25, 7.226, 24.2, 39.8, 0.9, 3.4
DATA 26, 7.018, 24.2, 69.7, 0.9, 3.4
DATA 27, 7.676, 63.7, 40.2, 1.0, 3.6
DATA 28, 7.369, 63.7, 86.7, 1.0, 3.6
DATA 29, 7.711, 75.5, 38.6, 1.0, 6.7
DATA 30, 7.702, 76.4, 38.2, 1.0, 7.3
DATA 31, 7.630, 65.9, 37.9, 1.0, 7.3
DATA 32, 7.572, 60.2, 35.1, 0.7, 7.6
DATA 33, 7.718, 58.9, 41.0, 1.0, 1.7
DATA 34, 7.510, 58.9, 67.9, 1.0, 1.7
DATA 35, 7.399, 58.9, 88.0, 1.0, 1.7
DATA 36, 7.684, 70.4, 38.2, 1.0, 7.0
DATA 37, 7.477, 70.4, 65.4, 1.0, 7.0
DATA 38, 7.390, 70.4, 85.7, 1.0, 7.0
DATA 39, 7.551, 53.5, 38.7, 1.0, 6.2
DATA 40, 7.348, 53.5, 68.4, 1.0, 6.2
DATA 41, 7.240, 53.5, 86.3, 1.0, 6.2
DATA 42, 7.598, 51.2, 41.2, 0.9, 1.9
DATA 43, 7.378, 51.2, 69.8, 0.9, 1.9
DATA 44, 7.307, 51.2, 87.7, 0.9, 1.9
DATA 45, 7.320, 32.5, 22.5, 1.0, 8.0
DATA 46, 7.144, 32.5, 38.9, 1.0, 8.0
DATA 47, 7.006, 32.5, 59.2, 1.0, 8.0
DATA 48, 7.416, 28.5, 22.7, 1.0, 2.9
DATA 49, 7.213, 28.5, 40.3, 1.0, 2.9
DATA 50, 7.068, 28.5, 58.6, 1.0, 2.9
DATA 51, 7.460, 22.8, 23.1, 1.0, 1.6
DATA 52, 7.246, 22.8, 40.2, 1.0, 1.6
DATA 53, 7.083, 22.8, 60.6, 1.0, 1.6
DATA 54, 7.125, 23.7, 22.6, 1.0, 5.7
DATA 55, 6.968, 23.7, 40.0, 1.0, 5.7
DATA 56, 6.849, 23.7, 58.0, 1.0, 5.7
DATA 57, 7.254, 21.4, 23.0, 1.0, 3.5
DATA 58, 7.051, 21.4, 40.7, 1.0, 3.5
DATA 59, 6.924, 21.4, 58.3, 1.0, 3.5
DATA 60, 7.654, 67.5, 39.7, 1.0, 7.2
DATA 61, 7.508, 67.5, 56.9, 1.0, 7.2
DATA 62, 7.347, 67.5, 87.0, 1.0, 7.2
DATA 63, 7.706, 62.5, 40.1, 1.0, 3.8
DATA 64, 7.561, 62.5, 57.5, 1.0, 3.8
DATA 65, 7.386, 62.5, 91.2, 1.0, 3.8
END
Optimized Model Parameters.
Contents of output file: “model-results”:
Checksum1 = 481.218
Checksum2 = 3194.9
Checksum3 = 3210.8
Checksum4 = 65.1
Checksum5 = 342.8
abvs / n = 2.70805008875636E-02
s= -0.721372312510383
ss = 7.67876879398109E-02
HIS14 = 5.2
HIS15 = 6.8
HIS16 = 5.5
LYS1 = 5.8; n1 = 2
LYS2 = 6.0; n2 = 2
LYS3 = 7.6; n3 = 1
LYS4 = 7.8; n4 = 2
LYS5 = 8.0; n5 = 2
LYS6 = 8.2; n6 = 0
LYS7 = 8.4; n7 = 0
LYS8 = 10.3
slope = 0.998653587250776
intercept = 2.10660055814287E-02
intercept = 2.10660055825596E-02 (verify)
r = 0.991464333427831
r^2 = 0.983001524459492
Variance = 1.09166100868144E-03
Variance of slope = 2.7374422760327E-04
Stnd Deviation of slope = 1.65452176656359E-02
98% confidence interval for the slope = 0.959160152682903 to 1.03814702181865
The sum of squares of the differences between pH (measured) and pH (calculated) is 0.0768.
The optimized parameters are as follows:
The pK(a)’s of two histidine residues not determined by NMR spectroscopy:
HIS15 = 6.80
HIS16 = 5.50
The low-titrating lysine residues were assigned the following pK(a) values:
LYS1: pK(a) = 5.80; N1 = 2
LYS2: pK(a) = 6.00; N2 = 2
LYS3: pK(a) = 7.60; N3 = 1
LYS4: pK(a) = 7.80; N4 = 2
LYS5: pK(a) = 8.00; N5 = 2
LYS6: pK(a) = 8.20; N6 = 0
LYS7: pK(a) = 8.40; N7 = 0
The normally-titrating lysine residues were assigned the following pK(a) value:
LYS8: pK(a) = 10.30
Model Summary.
The model includes the following features for human serum albumin:
1 Cys residue; pK(a) = 8.5
98 Glu and Asp residues; pK(a) = 4.0
18 Tyr residues; pK(a) = 11.7
24 Arg residues; pK(a) = 12.5
59 Lys residues; 2 with pK(a) = 5.80; 2 with pK(a) = 6.00; 1 with pK(a) = 7.60;
2 with pK(a) = 7.80; 2 with pK(a) = 8.00; and 50 with pK(a) = 10.30
16 His residues; with pK(a)'s of 7.19; 7.29; 7.17; 7.56; 7.08; 7.38; 6.82; 6.43; 4.92; 5.83;
6.24; 6.80; 5.89; 5.20; 6.80; and 5.50 (note that the pK(a)'s of the first five His
residues will each downshift by 0.4 pH units due to the structural rearrangement associated
with the N-B transition).
amino terminus; pK(a) = 8.0
carboxyl terminus; pK(a) = 3.1
Charge on Albumin at pH 7.40 as Calculated per the Model.
At pH 7.40, calculations using the model predict that albumin will carry a net negative
charge of -17.8446 Eq / mol. Therefore, in human plasma at pH 7.40 with [Albumin] = 4.4
g / dL, the charge attributed to albumin per direct calculations from the model is -11.8
mEq / L, calculated as follows:
[ ZAlbumin ] = (-17.8446 Eq / mol) x (10 dL / L) x (1000 mEq / Eq) x (4.4 g / dL) / (66500 g / mol) = -11.8 mEq / L;
where 66500 g / mol is the molecular weight of albumin.
Charge on Albumin over the pH Range of 6.9 to 7.9: Linear Regression.
The Figge-Fencl model predicts that the titration curve of human serum albumin (negative
charge displayed by albumin, expressed as mEq per g of albumin, versus pH) is approximately
linear over the pH range of 6.9 to 7.9 [ see the
albumin titration curve ]. Therefore, a standard
least-squares linear regression algorithm can be used to predict the approximate charge
contributed by albumin in human plasma over this pH range:
[ ZAlbumin ] = -10 x [ Albumin ] x (0.1204 x pH - 0.625);
where [ ZAlbumin ] is in mEq / L and [ Albumin ] is in g / dL.
Therefore, at pH 7.40, the charge contributed by 4.40 g / dL of albumin is approximately
-11.7 mEq / L.
Molar Buffer Capacity of Albumin as Calculated per the Model.
The molar buffer capacity of albumin within the pH range of 6.9 to 7.9 can be calculated
from the slope of the linear regression fit given above:
(0.1204 mEq / g / pH unit) x (66500 g / mol) x (Eq / 1000 mEq) = 8.0 Eq / mol / pH unit.
This value is identical to that given by Siggaard-Andersen and Fogh-Andersen [16].
For [ Albumin ] of 4.4 g / dL, the buffer value of albumin at that concentration is:
(0.1204 mEq / g / pH unit) x (4.4 g / dL) x (10 dL / L) = 5.3 mEq / L / pH unit.
As explained in the online supplement to reference 18 [accessible at
http://ajrccm.atsjournals.org/cgi/content/full/162/6/2246/DC1 ] and in reference
16, the buffer capacity of albumin is used in the formulation of the classic van Slyke
equation for human plasma. More information about the van Slyke equation can be found on
O. Siggaard-Andersen's web site at
http://www.osa.suite.dk/.
Formal Mathematical Representation of the Figge-Fencl Quantitative Physicochemical Model
of Human Acid-Base Physiology in Blood Plasma.
Copyright 2003 - 2009 James J. Figge.
Updated 22 December, 2007; Updated 28 December, 2008. Updated version published 15 January, 2009.
SID + 1000 x ( (aH+) - Kw / (aH+) - Kc1 x Pco2 / (aH+)
- Kc1 x Kc2 x Pco2 / (aH+)2 )
- [ Pitot ] x Zp - [ Citratetot ] x Zc
+ { -1 / ( 1 + 10 ^ - ( pH - 8.5 ) )
- 98 / ( 1 + 10 ^ - ( pH - 4.0 ) )
- 18 / ( 1 + 10 ^ - ( pH - 11.7 ) )
+ 24 / ( 1 + 10 ^ + ( pH - 12.5 ) )
+ 2 / ( 1 + 10 ^ + ( pH - 5.80 ) )
+ 2 / ( 1 + 10 ^ + ( pH - 6.00 ) )
+ 1 / ( 1 + 10 ^ + ( pH - 7.60 ) )
+ 2 / ( 1 + 10 ^ + ( pH - 7.80 ) )
+ 2 / ( 1 + 10 ^ + ( pH - 8.00 ) )
+ 50 / ( 1 + 10 ^ + ( pH - 10.3 ) )
+ 1 / ( 1 + 10 ^ + ( pH - 7.19 + NB ) )
+ 1 / ( 1 + 10 ^ + ( pH - 7.29 + NB ) )
+ 1 / ( 1 + 10 ^ + ( pH - 7.17 + NB ) )
+ 1 / ( 1 + 10 ^ + ( pH - 7.56 + NB ) )
+ 1 / ( 1 + 10 ^ + ( pH - 7.08 + NB ) )
+ 1 / ( 1 + 10 ^ + ( pH - 7.38 ) )
+ 1 / ( 1 + 10 ^ + ( pH - 6.82 ) )
+ 1 / ( 1 + 10 ^ + ( pH - 6.43 ) )
+ 1 / ( 1 + 10 ^ + ( pH - 4.92 ) )
+ 1 / ( 1 + 10 ^ + ( pH - 5.83 ) )
+ 1 / ( 1 + 10 ^ + ( pH - 6.24 ) )
+ 1 / ( 1 + 10 ^ + ( pH - 6.80 ) )
+ 1 / ( 1 + 10 ^ + ( pH - 5.89 ) )
+ 1 / ( 1 + 10 ^ + ( pH - 5.20 ) )
+ 1 / ( 1 + 10 ^ + ( pH - 6.80 ) )
+ 1 / ( 1 + 10 ^ + ( pH - 5.50 ) )
+ 1 / ( 1 + 10 ^ + ( pH - 8.0 ) )
- 1 / ( 1 + 10 ^ - ( pH - 3.1 ) ) } x 1000 x 10 x [ Albumin ] / 66500 = 0.
Where:
(aH+) = 10-pH ; (aH+) is the hydrogen ion activity, also
used as an approximation of hydrogen ion concentration, [H+];
Zp = ( K1 x (aH+)2 + 2 x K1 x K2 x (aH+) + 3 x K1 x K2 x K3 ) /
( (aH+)3 + K1 x (aH+)2 + K1 x K2 x (aH+) + K1 x K2 x K3 );
Zc = ( C1 x (aH+)2 + 2 x C1 x C2 x (aH+) + 3 x C1 x C2 x C3 ) /
( (aH+)3 + C1 x (aH+)2 + C1 x C2 x (aH+) + C1 x C2 x C3 );
NB = 0.4 x ( 1 - 1 / ( 1 + 10 ^ ( pH - 6.9 ) ) );
[ Citratetot ] is given in mmol / L;
Strong Ion Difference, SID, is given in mEq / L;
Pco2 is given in mmHg;
Total concentration of inorganic phosphorus-containing species,
[ Pitot ], is given in mmol / L;
[ Albumin ] is given in g / dL;
Kw = 4.4E-14 ( Eq / L )2;
Kc1 = 2.44E-11 ( Eq / L )2 / mmHg;
Kc2 = 1.1E-10 ( Eq / L );
K1 = 1.22E-2 ( mol / L );
K2 = 2.19E-7 ( mol / L );
K3 = 1.66E-12 ( mol / L );
C1 = 1.05E-3 ( mol / L );
C2 = 4.27E-5 ( mol / L );
C3 = 1.62E-6 ( mol / L );
66500 g /mol is the molecular weight of albumin.
The above expression defines a function, fpH, which can be used to calculate the
pH of plasma-like solutions containing albumin for any valid set of values for SID, Pco2, [ Pitot ],
[ Albumin ], and [ Citratetot ]:
pH = fpH { SID, Pco2, [ Pitot ], [ Albumin ], [ Citratetot ] }
The function is too complex to be solved by hand and must be solved via an iterative
approach on a computer. An
application program is available for this purpose.