Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

4PL and 5PL curve fit? #1

Open
Zireael opened this issue Oct 16, 2019 · 1 comment
Open

4PL and 5PL curve fit? #1

Zireael opened this issue Oct 16, 2019 · 1 comment

Comments

@Zireael
Copy link

Zireael commented Oct 16, 2019

Hi rw;eruch,
is it possible to use your method to perform 4PL and 5PL curve fit?

image

These are used in molecular biology to calculate unknown sample activity from calibration curve in ELISA assay.

I've found examples in R and Python, but was hoping to find / adjust a solution in JS, so I can put a webpage that does a quick calculation and a chart.

For example, for these data:

x y
25 1.7914
12.5 1.682833
6.25 1.500367
3.125 1.179967
1.563 0.822533
0.781 0.501933
0.391 0.301333
0.195 0.187467
0.098 0.130033

plate reader software gives these parameters for 5PL curve fit:

A B C D G
0.0831 1.16 2.44 1.87 1.13

Initial parameters (ABCDG) can be set as follows:
5PL or 4PL
where:
A: Minimum asymptote. In a bioassay where you have a standard curve, this can be thought of as the response value at 0 standard concentration. A = Min(y)

B: Hill's slope. The Hill's slope refers to the steepness of the curve. It could either be positive or negative. B = the slope of the line between highest and lowest point, for example Δy/Δx : (1.7914-0.130033)/(25-0.098)

C: Inflection point. The inflection point is defined as the point on the curve where the curvature changes direction or signs. C is the concentration of analyte where C=(D-A)/2

D: Maximum asymptote. In an bioassay where you have a standard curve, this can be thought of as the response value for infinite standard concentration. D = Max(y)

G: Asymmetry factor. When G=1 we have a symmetrical curve around inflection point and so we have a four-parameters logistic equation. G = 1

Example of 4PL fitting in Python:
https://people.duke.edu/~ccc14/pcfb/analysis.html

R code example for both functions :
https://weightinginbayesianmodels.github.io/poctcalibration/calib_tut4_curve_background.html
or here: https://rdrr.io/cran/ELISAtools/src/R/Regression.R

I'd appreciate your advice on whether these can be computed in JS, or need math/stats packages from R/Python.

@simongiesen
Copy link

Hi,

I did a Java Script. Please have a critical look at https://github.com/simongiesen/5PL

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants