0README

enzyme-kinetics-nonlinear
|-- 0-Old                       directory: old files
|-- 0README                     obvious
|-- Plots                       directory
|   |-- ldh.simpfit.out.sgi         ldh.data, structured for ldhplot.all.s
|   |-- ldhplot.all.s               R commands to generate "fancy" plots
|   |-- ldhplot.lac-6250.ps         "fancy" plot
|   |-- ldhplot.pri.A-6246.ps       "fancy" plot
|   |-- ldhplot.pri.B-6244.ps       "fancy" plot
|   `-- ldhplot.sec-6248.ps         "fancy" plot
|-- ldh.data                    kinetic data for lactate dehyrodgenase
|-- tutorial.txt                long discussion ldh mechanism + fit [OLD! OLD!]
`-- short.txt                   same but short with cut/paste R commands


LACTATE DEHYDROGENASE RATE DATA AND MECHANISM

The file "ldh.data" has 26 steady-state initial-rate data measured
for the enzyme lactate dehydrogenase (LDH) with the cofactor NADH,
the substrate pyruvate, and the product (as inhibitor) lactate.
The model for the LDH reaction is a compulsory-order mechanism,
with binary LDH-NADH and LDH-NAD complexes and ternary substrate
complexes, LDH-NADH-pyruvate and LDH-NAD-lactate.  There are also
ternary abortive complexes, LDH-NADH-lactate and LDH-NAD-pyruvate,
formed from reduced cofactor and reduced substrate and oxidized
cofactor and oxidized substrate, respectively. These are not on the
reaction path and when present inhibit the reaction.


The LDH reaction is described by the mechanism:

        LDH + NADH <--> LDH-NADH
        LDH-NADH + pyruvate <--> LDH-NADH-pyruvate
        (LDH-NADH-pyruvate == LDH-NAD-lactate)
        LDH-NAD-lactate <--> LDH-NAD + lactate
        LDH-NAD <--> LDH + NAD

        LDH-NADH + lactate <--> LDH-NADH-lactate
        LDH-NAD + pyruvate <--> LDH-NAD-pyruvate

which gives the rate equation:

        v0 = Vmax / (1 + C1 * p + KmA/a + 
                KmB/b * (1 + C1 * p) * (1 + C2 * p) +
                KmAB/(a * b) * (1 + C1 * p) + C3 * b)           eq. 1

where:
        v0 is the initial rate of reaction.

        a, b, and p are the concentrations of NADH,
        pyruvate, and lactate, respectively.

        Vmax, KmA, KmB, and KmAB have the usual
        meaning as kinetic constants for a
        two-substrate reaction.

        C1 = KmQ/KmPQ is the kinetic constant that
        describes inhibition by the first product.

        C2 = 1/KiP is the equilibrium constant that
        describes formation of the first abortive
        complex, LDH-NADH-lactate.

        C3 is the kinetic constant that describes
        formation of the LDH-NAD-pyruvate abortive
        complex.  C3 can be shown to be unimportant
        for these data, and so can be fixed at a very
        small value or eliminated from the rate

The model is nonlinear, with, neglecting C3, six variable parameters.
The data overspecify the parameters by a factor of 4, perhaps less
than what would be optimal.



NONLINEAR FIT -- GRADIENT METHOD  

NOTE!
	The file "short.txt" should be read and the code in it used
	for fitting and testing of the fit.  The R commands and
	surrounding text are extracted from the file "tutorial.txt".

NOTE!
	The file "tutorial.txt" has not been adapted to run under
	R (although this would not be hard to do}.  The commands
	in "tutorial.txt" remain somewhat S-specific and SGI-specific.

	Nevertheless, "tutorial.txt", as its name implies, is a
	decent tutorial in fitting enzyme-kinetic data.


The R-language function "nls" fits a nonlinear model.  Commands
given in the file "short.txt" apply this function to the LDH data (file
"ldh.data").  

The principal commands of the fit are:

	ldh.df<-read.table("ldh.data",header=T)
	parameters.ldh<-list(Vmax=1e+00,KmA=1e-03,KmB=1e-02,KmAB=1e-03,
		C1=1e-03,C2=1e-06)
	ldh.out1<-nls(v0 ~ Vmax/(1 + C1*p + KmA/a + 
		(KmB/b)*(1 + C1*p)*(1 + C2*p) + (KmAB/(a*b))*(1 + C1*p)), 
		ldh.df, start=parameters.ldh, trace=TRUE)
	summary(ldh.out1)
	vcov(ldh.out1)



QUALITY OF THE NONLINEAR FIT  

Various test are applied for assessing the quality of the fit (see the files
"short.txt" or "tutorial.txt" for R (or S) language commands):

	1. Are the residuals (deviations between measured and
	calculated values = v0 - v0calc) normally distributed?

	1a. Are the residuals uncorrelated?

	2. Is each parameter significant in influencing the fit?
	What is the confidence level for each of the parameters
	being different from 0?

	3. Is the std. error of the fit reasonable from an experimental
	view?

	4. Are the same parameter estimates (the same fit) obtained
	with different starting values of the parameters?  If not,
	then the fit is suspect.

	5. What is the effect of leaving parameters out of the fit?

	6. What is the effect of introducing the C3 parameter into
	the fit?



GRAPHICS DISPLAYS  

The R language has strong graphics.  Applied here:

	1. pair-wise plots;

	2. standard enzyme-kinetic reciprocal plots;

	3. plots of the distributions of the variables;

	4. perspective and contour plots.


The standard enzyme-kinetic reciprocal plots, in somewhat snazzy
form, are produced also by the following commands:

	source("Plots/ldhplot.all.s")
	ldh.simpfit.out.sgi<-dget("Plots/ldh.simpfit.out.sgi")
	ldhplot(ldh.simpfit.out.sgi$data, ldh.simpfit.out.sgi$coef)
	[X11 device displays are produced]

The command "ldhplot" and those it calls are loaded from the file
"ldhplot.all.s".  The kinetic data and parameter values are in the
file "ldh.simpfit.out.sgi" loaded as the same-name dataframe.  The
graphical output is in the PostScript files of the directory "Plots".
Details are given in the header of the function "ldhplot".



LINEAR FITS

The R-language routines for linear fitting and analysis can be
applied by removing the model factors (and data) with product ("p").
These fits are chiefly of pedagogical interest only.


John Rupley
 rupley@u.arizona.edu -or- jar@rupley.com
 30 Calle Belleza, Tucson AZ 85716 - (520) 325-4533; fax - (520) 325-4991
 Dept. Biochemistry & Molecular Biophysics, Univ. Arizona, Tucson AZ 85721
