Notes On Chevron Plots

From Foldeomics Wiki

Jump to: navigation, search

Contents

Equation Overview

Chevron plots are graphs of folding rate vs concentration of a denaturant. For 'simple' two state proteins the observed relaxation rate constant kobs can be closely fitted to the equation:

ln(kobs) = ln[exp(A + mf[denaturant]/RT) + exp(B + mu[denaturant]/RT)] (eq 1)

Protein folding: Defining a 'standard' set of experimental conditions and a preliminary kinetic data set of two-state proteins; Maxwell et al. 2005

Numerical Curve Fitting

For the purposes of fitting this numerically we simplify the above equation by combining the mu|f/RT terms, fitting the curve, and post multiplying by RT for the reporting stage.

Numerical fitting is done using the 'R' statistics package. An 'R' batch script is run by the php web site.

Initial values are automatically estimated using the slopes of the outer parts of the Chevron 'V' as initial estimates. These initial estimates are required for the numerical least squares fit method used.

Example R Script

The following is an example of curve fitting a simple chevron plot using the 'R' statistical programming language.

set the raw chevron values as matched arrays of ln(k) and concentration values

> lnK <- c(4.836,4.459,4.03,3.61,3.251,2.846,2.468,2.096,1.744,1.128,1.122,1.473,0.621,0.428,0.407,0.671,0.5,0.373,0.34,0.407,0.386,0.538,0.707,0.819,0.9,1.082,1.242,1.449,1.587,1.807,1.992,2.152,2.252)
> conc <- c(0.53,0.65,0.73,0.85,0.94,1.05,1.16,1.25,1.35,1.53,1.53,1.43,1.68,1.82,1.88,1.63,1.75,1.84,1.92,2.03,2.1,2.22,2.3,2.39,2.45,2.55,2.65,2.73,2.83,2.91,3,3.12,3.17)

plot the results as a manual check that the experimental results have been entered correctly

> plot (conc, lnK)

create a sequence of 26 x values from .5 to 3 for our curve fitting

> xfit <- seq(.5, 3.0, 0.1)

do a rough fit by inspection of the slopes of the outlying arms of the Chevron 'V'

> yfit <- log(exp(6-(3*xfit)) + exp(-4 + (2*xfit)))

show the 'rough fit' on the results plot

> lines(spline(xfit, yfit))

Now do the proper plot: set up the least squares function minimising the four unknowns of eqn 1, using the arrays lnK and conc

> fn <- function(p) sum((lnK - (log(exp(p[1] + p[2]*conc) + exp(p[3] + p[4]*conc))))^2)

run R's non linear minimisation function on the least squares function above

> out <- nlm(fn, p = c(6, -3, -4, 2), hessian = TRUE)

print out the resulting estimates

> out$estimate
[1] 6.958113 -3.931185 -3.864067 1.936795

create a fitted line, and display it on the plot to check the fit values

> ln_fit <- log (exp(6.958113 - 3.931185*xfit) + exp(-3.864067 + 1.936795*xfit))
> lines (spline(xfit, ln_fit))

the error is then found using the R command:

sqrt(diag(2*out$minimum/(length(lnK) - 2) * solve(out$hessian)))


See Also


Chris 12:15, 30 August 2006 (EST)

Personal tools