# The first column of csv must be Temp and CD. # Tminit <- 70 ainit <- -60 binit <- 30 asinit <- 0.1 bsinit <- 0.2 Melt.df <- read.csv(file.choose()) plot (Melt.df) Melt.nls <- nls(CD ~ a + as*Temp + (b + bs*Temp)/(1+exp(Temp - Tm)), data=Melt.df,start=list(Tm=Tminit,a=ainit,b=binit,as=asinit,bs=bsinit)) Tm <- unname(coef(Melt.nls)["Tm"]) a <- unname(coef(Melt.nls)["a"]) b <- unname(coef(Melt.nls)["b"]) as <- unname(coef(Melt.nls)["as"]) bs <- unname(coef(Melt.nls)["bs"]) curve(a+as*x + (b + bs*x)/(1+exp(x - Tm)),min(Melt.df$Temp),max(Melt.df$Temp),add=TRUE) mtext(paste("Tm = ",signif(Tm,digits=4),"+/-",signif(summary(Melt.nls)$parameters[1,2],digits=3)))