# Substrate inhibition fitting by uncompetitive mode (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 Subinh.df <- read.csv("/Users/fushi/Documents/R/Subinh.csv") Mtitle <- "Uncompetitive substrate inhibition plot" # main title of the plot Substname <- "Substrate" Substunit <- " (mM)" Vunit <- " (units/mg)" Kminit <- 4 # initial values for fitting Vmaxinit <- 10 Kiinit <- 10 plot(Subinh.df$conc,Subinh.df$rate,main=Mtitle,xlim=c(0,max(Subinh.df$conc)),ylim=c(0,max(Subinh.df$rate)),xlab=paste(Substname,Substunit),ylab=paste("v",Vunit)) Subinh.nls <- nls(rate ~ (Vmax * conc / (Km + (1+conc/Ki)*conc)), data=Subinh.df, start=list(Km=Kminit, Vmax=Vmaxinit,Ki=Kiinit)) Km <- unname(coef(Subinh.nls)["Km"]) Vmax <- unname(coef(Subinh.nls)["Vmax"]) Ki <- unname(coef(Subinh.nls)["Ki"]) curve(Vmax*x/(Km+(1+x/Ki)*x),0,max(Subinh.df$conc),add=TRUE, lty=2) text(0,max(Subinh.df$rate)/20,paste("Km = ",signif(Km,digits=3),"±",signif(summary(Subinh.nls)$parameters[1,2],digits=3),Substunit,"; Vmax = ",signif(Vmax,digits=3),"±",signif(summary(Subinh.nls)$parameters[2,2],digits=3),Vunit,"\nKi = ",signif(Ki,digits=3),"±",signif(summary(Subinh.nls)$parameters[3,2],digits=3),Substunit),adj=0) text(max(Subinh.df$conc),max(Subinh.df$rate)/6,expression(italic(v) == over(italic(V)[max] * "[S]", italic(K)[m] + (1+"[S]"/italic(K)[i])*"[S]")),adj=1)