Nicholas A. Yager


The enzyme kinetics showdown

27 Oct 2013

Last week, I was asked to review a new case study for W.H. Freeman for their 7th edition of Lenninger's Biochemistry. The study involved using enzyme kinetics to discover the identiy of a poisoner using an unnamed inhibitor. Alas, I had a difficult time getting the correct maximum enzyme velocity and Michaelis constant.

Initially, I did the usual non-linear regression of the kinetics plot in R using nls, but that wasn't right. Next I tried a Hanes-Woolf plot because of it's relative accuracy at finding constants. As a last chance effort I made a Lineweaver-Burk plot which had the "correct" values.

Educationally, the Lineweaver-Burk plot is used as a mostly accurate determination of the kinetics constants while being easy to both construct and read. However, the differences in computed constants between a Lineweaver-Burk, Hanes-Woolf, and basic non-linear regression seems non-trivial. Just how different are they?

Let's start with an example kinetic experiment:

Table 1: Arbitrary concentrations of substrate and products that appear to follow Michaelis-Menton kinetics.

Concentration of Substrate Concentration of Products
1 0.11
3 0.25
5 0.34
10 0.45
30 0.58
50 0.61

and let's plot this out into a nice curve.

Non-linear Regression of Kinetics

Figure 1: Plot of the example kinetics dataset using a non-linear least squares regression. This model is not perfect, but seems to fit the data well visually.

conc_subsrt = c(1,3,5,10,30,50)                                                 
rates = c(0.11,0.25,0.34,0.45,0.58,0.61
fit = nls(rates~v*con_csubsrt/(k+conc_subsrt), start=list("v"=0.5, "k"=5)
model = summary(fit)               
plot(x=conc_subsrt, y=rates, ylim=c(0,model$coefficients[1]),                 
     main="Example Michaelis-Mention kinetics\nusing non-linear regression",    
     xlab="[S]",                                                                
     ylab="Enzyme Velocity",pch=16)                                             
curve(model$coefficients[1]*x / (model$coefficients[2] + x), add=T,col="red"
abline(h=summary$coefficients[1], col="lightgray")  

Following the non-linear least squares regression, the curve has an equation of

This can then be compared to curves derived from Lineweaver-Burk and Hanes-Woolf plots:

Comparision of models

Figure 2: The superposition of all three models with the example kinetics data. On the whole, all three models appear to be very close to the data. The one exception is the Lineweaver-Burk which seems to deviate more at higher concetrations of the substrate.

This figure gives an impression of accuracy, but it doesn't give the whole story. To that end, the standard errors for each model were calculated and tabulated below.

Table 2: The standard error computed for all three tested models. The model with the least error is the non-linear regression. The model with the most error is the Lineweaver-Burk.

Model Type Standard Error
Non-linear Regression 5.85e-6
Lineweaver-Burk 2.29e-5
Hanes-Woolf 6.41e-6

It was said to me by a professor that the best solution isn't the most accurate, but rather the best mix of easy and accurate. The Lineweaver-Burk may be the least accurate derivation tested with my limited dataset, but an error of only ~0.00001 compared to the best model makes it more than accurate enough for quick kinetics work.

Return to home...