We get this question a lot from customers. Basically, if software capable of generating a 4-Parameter Logistic curve fit is unavailable, a standard curve using linear regression analysis in excel can be used. See our step by step process here.

Also, look at the very bottom that explains why the 4-parameter curve is better.

<<Rajeshwari patel: In my oppiniun, Non- liner fit is suitable for ELISA analysis.>>

Actually, thats a terrible idea for most ELISAs, and if you are doing that, you need to read up and revise!

e.g. When you set up your standards as serial double dilutions, you expect halving absorbance across the range in an ideal situation: thats a linear regression. A4-Parameter (4-PL) logistic curve fit (or a semi-log graph) will help you get a better low end signal out of data points that you would otherwise loose in a linear regression.

The 4 parameter logistic (4PL) curve describes ELISA assays much better than linear curve fits. There are many reasons but basically the 4PL model equation has a maximum and a minimum built into the model which are more reasonable to describe biological systems. There is no biological system that will increase or decrease forever as the curve goes to infinity (basically what a linear curve fit does). In fact, I would go even further and say that a 5PL model can do an even better job because it does not assume symmetry like the 4PL but that is off-topic.

plot(stdcrvdata$logconc, stdcrvdata$OD, main="log standard curve", xlab="x=log(conc)", ylab="y=OD")

When you plot the data you can see the top of the curve which equals parameter a and the bottom is parameter d. The inflection point on the curve is parameter c and b is the degree of curvature. Use these values for seeding your parameters in the next step. Play with the equation in excel to see what changing the numbers does.

Next step is the non-linear fit, the seeded/starting parameters are in start=list(). If you pick bad ones your fit will fail. I am using cc instead of c because I think c is a reserved letter (not sure).

############### fit the data ###############
fit <- nls(OD ~ d+(a-d)/(1+(logconc/cc)^b), data=stdcrvdata, start=list(d=0.2, a=1.5, cc=2, b=-11), trace=TRUE)
summary(fit)

Then lets plot the fit. Look at your original plot and find the lowest and highest x values you want to use. We make a list of numbers (mine go from .5 to 4.5)

############### Plot the results ###############
#this lets you graph your calculated equations nice and pretty
x <- seq(.5,4.5, length=100)
y <- (coef(fit)["d"]+(coef(fit)["a"]-coef(fit)["d"])/(1+(x/coef(fit)["cc"])^coef(fit)["b"]))

Then add a red line showing your fit to your already generated plot
lines(x,y, lty="dotted", col="red")

Next we have our unknowns, you can take the parameters calculated from R and use the equations in excel, or this is the R code.

Using the equation above and the parameters determined from fitting our model (stored in the object fit) we input our measured OD data into a dataframe called samples. Then we solve using the equation, convert the calculated log concentration to concentration and our answer is returned to us. The write.table outputs our data in a .csv format for inputting into excel.

Finally, a little bit of checking, we plot our calculated data on our chart (in blue):
lines(samples$loganswer,samples$OD, type="points", col="blue")

Note that one of my samples (0.19) didn't return a value. This is because an OD of 0.19 lies outside of the curve I calculated.

Some problems that can occur:
You are dividing by zero somewhere, move your numbers around ie take the log and add 10.
stdcrvdata$logconcplus <-stdcrvdata$logconc + 10

You are taking the square root of a negative number - for example when solving for OD's where they lie outside the curve you have generated (i.e. bottom parameter = d = 2 and you are trying to calculate the concentration when an OD = 1.9). In my example I have one of these points and the result is NaN (a complex number).

You don't have enough data points, this will cause a fail in the curve fitting.

You need to pick better seeding/starting values for parameters.

########## cross posting #########

Please feel free to cross post this solution to other forums. R is a free program that anyone can download and run and does all the statistics that is necessary. The solution might be more difficult to implement but in the end can be easily automated and you know - free. Always free. When you move labs it's still free.

The linear regression is a bad way to fit a standard curve as bioassays (like ELISA) nomrally have a sigmoidal curve OD vs. concentration. To fit a good standard curve 2 algorithms have been developed, the 4 parameter logistics for symmetrical curves and the 5 parameter logistics for asymmetrical curves.
Compare the goodness of curve fit of your calibration via the SSE (sum of squared errors) and you will see which model fits your curve best. Do not extrapolate outside the range of your calibrators.

The short answer is either a 4-PL or 5-PL curve are the models that most closely fit most ELISA calibration standards.

The longer answer depends on calibration range being investigated and the ultimate use the assay is intended for. How many times have we all heard some one requesting a highly sensitive ELISA, or I want the maximum dynamic range in my assay? Unfortunately this usually means pushing the reagents to the limits of their capabilities, and at these extremes only a 4-PL or 5-PL curve fit is really the most suitable regression model.

In other areas only a linear curve fit, or linear portion of the regression model, is acceptable (eg GMP potency assay's [not my area of expertise, so forgive me if my understanding is wrong]), this needs the assay to be optimised to work in this region of the analyte concentration range. So I would argue that stating it is a "terrible idea for most ELISAs" is outside the question being asked, and would agree if the question was "how should I set up my assay to give accuracy and precision across the calibration range".

As with all things, there is no perfect solution. Data tends to be messy and so we need to fit the best model available to make it work.

Although I agree it depends on the data. If you don't already have software for 4PL. I found a couple of really useful online tools to allow you to compare different fits and easily :

http://www.mycurvefit.com - this is good for comparing fits - though not many instructions - just paste your data in and see http://www.myassays.com - preconfigured for microplate assays - so if you can find your assay on there already it will save you a lot of messing around

In most cases the 4 parameter logistic or 5 parameter logistic curve is the best for ELSA data.You can try the 4 parameter logistic and 5 parameter logistic curve fitting free and online on http://www.assayfit.com.This service works with ELISA data and can be used online from a web page as well as in Excel, R, Python.By looking at the smallest possible sum of squares you can identify which fucntion fits your data best.When the analyte you analyse is the limiting factor in your assay and not the amount of binding sites of your antibody, the curve can theoretically be a straigth line. This however is a rare situation and because of that in most cases the 4 parameter logistic or 5 parameter logistic curve is preferred.

We get this question a lot from customers. Basically, if software capable of generating a 4-Parameter Logistic curve fit is unavailable, a standard curve using linear regression analysis in excel can be used. See our step by step process here.

Also, look at the very bottom that explains why the 4-parameter curve is better.

*I am affiliated with MD Biosciences.

In my oppiniun,

Non- liner fit is suitable for ELISA analysis.

<<Rajeshwari patel: In my oppiniun, Non- liner fit is suitable for ELISA analysis.>>

Actually, thats a terrible idea for most ELISAs, and if you are doing that, you need to read up and revise!

e.g. When you set up your standards as serial double dilutions, you expect halving absorbance across the range in an ideal situation: thats a

linear regression.A4-Parameter (4-PL) logistic curve fit(or a semi-log graph) will help you get a better low end signal out of data points that you would otherwise loose in a linear regression.The 4 parameter logistic (4PL) curve describes ELISA assays much better than linear curve fits. There are many reasons but basically the 4PL model equation has a maximum and a minimum built into the model which are more reasonable to describe biological systems. There is no biological system that will increase or decrease forever as the curve goes to infinity (basically what a linear curve fit does). In fact, I would go even further and say that a 5PL model can do an even better job because it does not assume symmetry like the 4PL but that is off-topic.

For more details regarding the 4PL and it's parameters, please refer to my blog post: The 4 Parameter Logistic (4PL) nonlinear regression model.

If you are interested in the 5PL model equation, please refer to my blog post: Bioassay Analysis with the 5 Parameter Logistic (5PL) Nonlinear regression model.

If you have any questions, please let me know.

Allen Liu

* I am affiliated with Hitachi Solutions America.

You can fit an ELISA curve using free software called R.

The 4 parameter model is:

y = (a-d)/[1+(x/c)^b]+d

You can solve for x:

x = c ((-a + y)/(d - y))^(1/b)

x is log concentrations, y is OD signal read from your instrument.

Get your data into a dataframe and take the log of the concentration (R code in red):

############ Clears All Data ############

rm(list=ls())

############# Data input ##############

#input the data

stdcrvdata<-data.frame(conc=c(3,10,30,100,300,1000,3000,10000,30000), OD=c(.2,.22,.41,.75,1.07,1.18,1.2,1.27,1.29))

stdcrvdata$logconc <-log10(stdcrvdata$conc)

plot(stdcrvdata$logconc, stdcrvdata$OD, main="log standard curve", xlab="x=log(conc)", ylab="y=OD")

When you plot the data you can see the top of the curve which equals parameter a and the bottom is parameter d. The inflection point on the curve is parameter c and b is the degree of curvature. Use these values for seeding your parameters in the next step. Play with the equation in excel to see what changing the numbers does.

Next step is the non-linear fit, the seeded/starting parameters are in start=list(). If you pick bad ones your fit will fail. I am using cc instead of c because I think c is a reserved letter (not sure).

############### fit the data ###############

fit <- nls(OD ~ d+(a-d)/(1+(logconc/cc)^b), data=stdcrvdata, start=list(d=0.2, a=1.5, cc=2, b=-11), trace=TRUE)

summary(fit)

Then lets plot the fit. Look at your original plot and find the lowest and highest x values you want to use. We make a list of numbers (mine go from .5 to 4.5)

############### Plot the results ###############

#this lets you graph your calculated equations nice and pretty

x <- seq(.5,4.5, length=100)

y <- (coef(fit)["d"]+(coef(fit)["a"]-coef(fit)["d"])/(1+(x/coef(fit)["cc"])^coef(fit)["b"]))

Then add a red line showing your fit to your already generated plot

lines(x,y, lty="dotted", col="red")

Next we have our unknowns, you can take the parameters calculated from R and use the equations in excel, or this is the R code.

Using the equation above and the parameters determined from fitting our model (stored in the object fit) we input our measured OD data into a dataframe called samples. Then we solve using the equation, convert the calculated log concentration to concentration and our answer is returned to us. The write.table outputs our data in a .csv format for inputting into excel.

############# Calculate unknowns #############

samples<-data.frame(OD=c(.27,.19,1.2))

samples$loganswer<-coef(fit)["cc"]*(((-1*coef(fit)["a"]+samples$OD)/(coef(fit)["d"]-samples$OD))^(1/coef(fit)["b"]))

samples$conc <- 10^samples$loganswer

samples

write.table(samples,file="mydata.csv",sep=",")

Finally, a little bit of checking, we plot our calculated data on our chart (in blue):

lines(samples$loganswer,samples$OD, type="points", col="blue")

Note that one of my samples (0.19) didn't return a value. This is because an OD of 0.19 lies outside of the curve I calculated.

Some problems that can occur:

You are dividing by zero somewhere, move your numbers around ie take the log and add 10.

stdcrvdata$logconcplus <-stdcrvdata$logconc + 10

You are taking the square root of a negative number - for example when solving for OD's where they lie outside the curve you have generated (i.e. bottom parameter = d = 2 and you are trying to calculate the concentration when an OD = 1.9). In my example I have one of these points and the result is NaN (a complex number).

You don't have enough data points, this will cause a fail in the curve fitting.

You need to pick better seeding/starting values for parameters.

########## cross posting #########

Please feel free to cross post this solution to other forums. R is a free program that anyone can download and run and does all the statistics that is necessary. The solution might be more difficult to implement but in the end can be easily automated and you know - free. Always free. When you move labs it's still free.

Hello,

The linear regression is a bad way to fit a standard curve as bioassays (like ELISA) nomrally have a sigmoidal curve OD vs. concentration. To fit a good standard curve 2 algorithms have been developed, the 4 parameter logistics for symmetrical curves and the 5 parameter logistics for asymmetrical curves.

Compare the goodness of curve fit of your calibration via the SSE (sum of squared errors) and you will see which model fits your curve best. Do not extrapolate outside the range of your calibrators.

You can download a free program which I wrote from here for non-commercial use:

http://rheumatologie-neuss.net/index-Dateien/RheumatologieNeuss13.htmInstructions included.

Have fun with it,

ExcelSolverSolutions

The short answer is either a 4-PL or 5-PL curve are the models that most closely fit most ELISA calibration standards.

The longer answer depends on calibration range being investigated and the ultimate use the assay is intended for. How many times have we all heard some one requesting a highly sensitive ELISA, or I want the maximum dynamic range in my assay? Unfortunately this usually means pushing the reagents to the limits of their capabilities, and at these extremes only a 4-PL or 5-PL curve fit is really the most suitable regression model.

In other areas only a linear curve fit, or linear portion of the regression model, is acceptable (eg GMP potency assay's [not my area of expertise, so forgive me if my understanding is wrong]), this needs the assay to be optimised to work in this region of the analyte concentration range. So I would argue that stating it is a "terrible idea for most ELISAs" is outside the question being asked, and would agree if the question was "how should I set up my assay to give accuracy and precision across the calibration range".

As with all things, there is no perfect solution. Data tends to be messy and so we need to fit the best model available to make it work.

It would also be helpful if people suggest that we "read up and revise" that they list some specific references to justify their position

Thanks - this is really helpful.

Although I agree it depends on the data. If you don't already have software for 4PL. I found a couple of really useful online tools to allow you to compare different fits and easily :

http://www.mycurvefit.com - this is good for comparing fits - though not many instructions - just paste your data in and see

http://www.myassays.com - preconfigured for microplate assays - so if you can find your assay on there already it will save you a lot of messing around

please how i polt this data in y axis

collapse;width:528pt">

width:48pt">0.124

0.131

0.142

0.150

0.167

0.171

0.186

0.191

0.201

0.206

0.208

0.124

0.132

0.191

0.231

0.251

0.271

0.291

0.309

0.332

0.341

0.351

0.121

0.201

0.254

0.301

0.322

0.381

0.462

0.521

0.568

0.570

0.579

0.132

0.141

0.194

0.241

0.262

0.321

0.402

0.461

0.508

0.510

0.603

0.138

0.154

0.187

0.238

0.252

0.371

0.401

0.422

0.458

0.460

0.534

0.144

0.151

0.162

0.170

0.201

0.223

0.264

0.281

0.303

0.312

0.321

0.144

0.156

0.211

0.172

0.181

0.250

0.291

0.301

0.378

0.489

0.508

In most cases the 4 parameter logistic or 5 parameter logistic curve is the best for ELSA data.You can try the 4 parameter logistic and 5 parameter logistic curve fitting free and online on http://www.assayfit.com.This service works with ELISA data and can be used online from a web page as well as in Excel, R, Python.By looking at the smallest possible sum of squares you can identify which fucntion fits your data best.When the analyte you analyse is the limiting factor in your assay and not the amount of binding sites of your antibody, the curve can theoretically be a straigth line. This however is a rare situation and because of that in most cases the 4 parameter logistic or 5 parameter logistic curve is preferred.