I am trying to process NanoBRET assay data to analyze competition between Ternary Complex (TC) formation and binary binding between Chimeric Targeted Molecule and weaker affinity interacting species using R. I could not locate the correct library function that helps perform the biphasic dose-response curve fit using the following formula. Can someone direct me to the appropriate R Library if available?
Concn CompoundX CompoundX
0.00001 0.309967 0.28848
0.000004 0.239756 0.386004
0.0000015 0.924346 0.924336
0.00000075 1.409483 1.310479
0.00000025 2.128796 2.007222
0.0000001 2.407227 2.371517
3.75E-08 2.300768 2.203162
1.63E-08 1.826203 1.654133
6.25E-09 0.978104 1.06907
2.5E-09 0.483403 0.473238
1.06E-09 0.235191 0.251971
4.06E-10 0.115721 0.114867
1.56E-10 0.06902 0.053681
6.25E-11 0.031384 0.054416
2.66E-11 0.023007 0.028945
1.09E-11 0.003956 0.020866
Plot generated in GraphPad PRISM using biphasic dose-response equation.
I needed to answer my questions by following further links in the article suggested by @I_O. Apparently the bell-shaped response curve which I thought looked more like the "bell-shaped" model described in the skimpy Prism documentation is precisely what the referenced article was calling "biphasic". See: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4660423/pdf/srep17200.pdf
The R code to do the fitting is in the supplemental material referenced at https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4660423/#S1
dput(dat)
structure(list(Concn = c(1e-05, 4e-06, 1.5e-06, 7.5e-07, 2.5e-07,
1e-07, 3.75e-08, 1.63e-08, 6.25e-09, 2.5e-09, 1.06e-09, 4.06e-10,
1.56e-10, 6.25e-11, 2.66e-11, 1.09e-11), CompoundX = c(0.309967,
0.239756, 0.924346, 1.409483, 2.128796, 2.407227, 2.300768, 1.826203,
0.978104, 0.483403, 0.235191, 0.115721, 0.06902, 0.031384, 0.023007,
0.003956), CompoundX.2 = c(0.28848, 0.386004, 0.924336, 1.310479,
2.007222, 2.371517, 2.203162, 1.654133, 1.06907, 0.473238, 0.251971,
0.114867, 0.053681, 0.054416, 0.028945, 0.020866)), class = "data.frame", row.names = c(NA,
-16L))
> m0<-drm(CompoundX~log(Concn), data = dat, fct = gaussian())
> summary(m0)
Model fitted: Gaussian (5 parms)
Parameter estimates:
Estimate Std. Error t-value p-value
b:(Intercept) 2.031259 0.086190 23.567 9.128e-11 ***
c:(Intercept) 0.012121 0.040945 0.296 0.7727
d:(Intercept) 2.447918 0.067136 36.462 7.954e-13 ***
e:(Intercept) -16.271552 0.045899 -354.509 < 2.2e-16 ***
f:(Intercept) 2.095870 0.195703 10.709 3.712e-07 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error:
0.07894641 (11 degrees of freedom)
> plot(m0, type = "all", col= "black", log = "")
Warning message:
In min(dose[dose > 0]) : no non-missing arguments to min; returning Inf
That Supplement goes on to compare a variety of model variations and constraints, so it should be read, digested and followed more closely than space permits here.