# 4 parameter logistics - GraphPad

1. Sep 6, 2006

### Hemispasm

Hi guys :)

Dont know mutch about statistics and i thought some of you might be able to help. I hope i am not off topic here.

I am doing research ELISA (I am a medical doctor) and the kit manufacturer says on the manual that i should do 4 parameter logistic analysis of the results i get. I am using GraphPad Prism 4 for the statistics and i cant find anywhere this type of analysis - it simply isnt there.

The data type are simple and straight forward, meaning i get some optical density values from samples of known concentration and from that i interpolate to find the values of samples of unknown concentration (cytokines). Up to now i was using linear regression for getting the values, but according to the manufacturer this is not the correct way to process the data.

I know it belongs in the non linear category (i think) but its not in the drop down menu of available analysis. Does it have any other name (synonym) or is there a specific equation that i can fill in in custom analysis? And if there is one, there are also some A,B,C,D values i have to fill in that i dont know anything about.

I can also use SPSS for the data analysis, but i am not sure whether that choice will be available plus i will have to learn to use the program from scratch.

So basically i have 2 questions:

1. Do i really have to do 4 parameter logistics or linear regression is also fine (the values i get are copmpletely different).
2. Where is the 4 parameter option in GraphPad Prism?

2. Jul 27, 2009

### fcs

I know this post thread is old but my hope is to help others that still have the same question regarding elisa analysis and the 4-parameter logistic equation.

The 4-parameter logistic regression model assumes symmetry around the inflection point of the standard curve. On the other hand, the 5-parameter logistic model equation takes into account the asymmetry that occur in bioassays such as elisas. Here is a blog post that goes into the 5-parameter logistic or 5-PL regression model in more detail.

MasterPlex ReaderFit is software designed specifically for elisa analysis which draws standard curves and does the curve-fitting of your unknown points with multiple options for model equations including the 4-PL and 5-PL.

Allen
MiraiBio

3. Aug 5, 2010

### fcs

The 4 Parameter Logistic or 4PL is sufficient if you know that your sigmoidal curve is symmetrical around the inflection point. If not, then the 5PL would be a better choice.

Here is a post dedicated to the http://www.miraibio.com/blog/2010/08/the-4-parameter-logistic-4pl-nonlinear-regression-model/" and explains everything in much better detail (including lots of diagrams).

I would definitely not recommend a linear curve fit for ELISA analysis as there are inherent limits for this type of application that both the 4PL and 5PL captures nicely.

Allen Liu
MiraiBio

Last edited by a moderator: Apr 25, 2017
4. Jun 29, 2011

### assaywiz

5. Jun 29, 2011

### fcs

Hitachi Solutions just launched a free web application for 4PL and 5PL curve-fitting: http://www.readerfit.com" [Broken]

Just like MasterPlex ReaderFit, the core curve fitting algorithms are 8+ years in the making and also includes weighting algorithms which are a http://www.miraibio.com/blog/2010/05/the-importance-of-weighting-with-the-4pl-and-5pl/".

Here is a http://www.readerfit.com/sample.html" of the results you can get plus there will be MUCH more on the way as far as statistics go. Stay tuned! =)

Allen Liu
Hitachi Solutions America, Ltd.
aliu [at] miraibio [dot] com

Last edited by a moderator: May 5, 2017
6. Aug 30, 2011

### ElisaModel

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"]))

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.

Last edited: Aug 30, 2011
7. Mar 9, 2012

### assaywiz

8. Nov 12, 2012

### sailor1

hello,

this thread is old, but I add this information because it may help someone some day:
I have programmed a sheet that allows automatic optimization of both 4-PL and 5-PL calibration curve fitting for biological ligand binding assays like ELISA.

Feel free to use it!

sailor

9. Dec 5, 2012

### sailor1

You can download a free program for non-commercial use which I wrote in Excel for fitting calibration curves via weighted and unweighted 4- and 5- parameter logistics from here :

http://rheumatologie-neuss.net/index-Dateien/RheumatologieNeuss13.htm [Broken]

Instructions included.

Have fun with it,

Sailor

Last edited by a moderator: May 6, 2017
10. Jan 14, 2013

### elisaanalysis

Hi There,

The following software offers a free online 4PL curve fitting tool for ELISA analysis - www.elisaanalysis.com .