# Hill plot fitting (S-v plot) # For a single data # Written by S. Fushinobu (2019.10.22) # Thanks to Carly Huitema & Geoff P Horsman # Edit the parameters below Hill.df <- read.csv("/Users/fushi/Documents/R/Hill.csv") Mtitle <- "Hill plot" # main title of the plot Substname <- "Substrate" Substunit <- " (mM)" Vunit <- " (units/mg)" Kminit <- 5 # initial values for fitting Vmaxinit <- 10 nHinit <- 4 plot(Hill.df$conc,Hill.df$rate,main=Mtitle,xlim=c(0,max(Hill.df$conc)),ylim=c(0,max(Hill.df$rate)),xlab=paste(Substname,Substunit),ylab=paste("v",Vunit)) Hill.nls <- nls(rate ~ (Vmax * (conc ^ nH) / ((conc ^ nH) + (Km ^ nH))), data=Hill.df, start=list(Km=Kminit, Vmax=Vmaxinit,nH=nHinit)) Km <- unname(coef(Hill.nls)["Km"]) Vmax <- unname(coef(Hill.nls)["Vmax"]) nH <- unname(coef(Hill.nls)["nH"]) curve(Vmax*(x ^ nH)/((x ^ nH)+(Km ^ nH)),0,max(Hill.df$conc),add=TRUE, lty=2) text(0,max(Hill.df$rate),paste("Km = ",signif(Km,digits=3),"±",signif(summary(Hill.nls)$parameters[1,2],digits=3),Substunit,"; Vmax = ",signif(Vmax,digits=3),"±",signif(summary(Hill.nls)$parameters[2,2],digits=3),Vunit,"\nnH = ",signif(nH,digits=3),"±",signif(summary(Hill.nls)$parameters[3,2],digits=3),Substunit),adj=0) text(max(Hill.df$conc),max(Hill.df$rate)/20,expression(italic(v) == over(italic(V)[max] * "([S])"^italic(nH), "([S])"^italic(nH) + (italic(K)[m])^italic(nH))),adj=1)