Do the negative values in your data make any sense? Note that if Fb must be >0, Fc must be also.
But I have *not* examined your code/equations in detail, so feel free to ignore if this is irrelevant. Cheers, Bert Bert Gunter "The trouble with having an open mind is that people keep coming along and sticking things into it." -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip ) On Sun, Mar 14, 2021 at 9:46 AM Luigi Marongiu <marongiu.lu...@gmail.com> wrote: > Hello, > I would like to use the Rutledge equation > (https://pubmed.ncbi.nlm.nih.gov/15601990/) to model PCR data. The > equation is: > Fc = Fmax / (1+exp(-(C-Chalf)/k)) + Fb > I defined the equation and another that subtracts the values from the > expectations. I used minpack.lm to get the parameters, but I got an > error: > ``` > > > library("minpack.lm") > > h <- c(120.64, 66.14, 34.87, 27.11, 8.87, -5.8, 4.52, -7.16, -17.39, > + -14.29, -20.26, -14.99, -21.05, -20.64, -8.03, -21.56, -1.28, > 15.01, > + 75.26, 191.76, 455.09, 985.96, 1825.59, 2908.08, 3993.18, 5059.94, > + 6071.93, 6986.32, 7796.01, 8502.25, 9111.46, 9638.01, 10077.19, > + 10452.02, 10751.81, 11017.49, 11240.37, 11427.47, 11570.07, > 11684.96, > + 11781.77, 11863.35, 11927.44, 11980.81, 12021.88, 12058.35, > 12100.63, > + 12133.57, 12148.89, 12137.09) > > high <- h[1:45] > > MaxFluo <- max(high) > > halfFluo <- MaxFluo/2 > > halfCycle = 27 > > find_slope <- function(X, Y) { > + Slope <- c(0) > + for (i in 2:length(X)) { > + delta_x <- X[i] - X[i-1] > + delta_y <- Y[i] - Y[i-1] > + Slope[i] <- delta_y/delta_x > + } > + return(Slope) > + } > > slopes <- find_slope(1:45, high) > > > > rutledge <- function(m, s, M, B, x) { > + divisor = 1 + exp(-1* ((x-m)/s) ) > + y = (M/divisor) + B > + return(y) > + } > > rutledge_param <- function(p, x, y) ((p$M / (1 + exp(-1*(p$x-p$m)/p$s))) > + p$B) - y > > > > > > init = rutledge(halfFluo, slopes, MaxFluo, 0, high) > > points(1:45, init, type="l", col="red") > > estim <- nls.lm(par = list(m = halfFluo, s = slopes, M = MaxFluo, B = > high[1]), > + fn = rutledge_param, x = 1:45, y = high) > Error in nls.lm(par = list(m = halfFluo, s = slopes, M = MaxFluo, B = > high[1]), : > evaluation of fn function returns non-sensible value! > ``` > > Where could the error be? > > > -- > Best regards, > Luigi > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide > http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. > [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.