Notes on Equilibrium Plots

From Foldeomics Wiki

Jump to: navigation, search

Contents

Equation Overview

Equilibrium plots are graphs of flourescence vs concentration of a denaturant, the flourescence being proportional to the amount of denatured protein. For 'simple' two state proteins the observed flourescence f' can be closely fitted to the equation:

‎(eq 1)

(ref: 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 meq /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 Sigmoidal curve, and the slope of the curve at the central point, to generate 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 equilibrium values as matched arrays of flourescence f and concentration conc values

> f <- c( <your values here> )
> conc <- c( <your values here> )

create a sequence of 61 x values from 0 to 6 for our curve fitting xfit <- seq(0, 6.0, 0.1)

notes

  • p1 & p3 are intercepts at low and high concentrations, p2 & p4 are the slopes.
  • p5 = denaturant concentration where 50% is unfolded; e.g. midpoint of graph
  • p6 = -p5 * the 50% denaturant concentration.

These are estimated roughly by making linear fits of the raw data at the beginning, middle and end, and these estimates used to initialise the numerical curve fitting equation.


set up the least squares function minimising the six unknowns of eqn 1, using the arrays f and conc

> fn <- function(p) sum((eq_f - (p[1] + p[2]*eq_conc + (p[3] + p[4]*eq_conc)*exp(p[5]*eq_conc-p[6]))/(1 + exp(p[5]*eq_conc - p[6])))^2)


run R's non linear minimisation function on the least squares function above using estimated parameters (-13, .1, 0, .1, 12 and 36 in this example)

> out <- nlm(fn, p = c(-13, 0.1, 0, 0.1, 12, 36), hessian = TRUE)

print out the resulting estimates

> out$estimate


the error is then found using the R command:

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


See Also


Chris 12:15, 30 August 2006 (EST)

Personal tools