繁体   English   中英

如何在 R 中绘制此图并得出剂量方程?

[英]How to draw this graph and get dose equation in R?

在此处输入图像描述

我在excel得到这个图和方程,这个方程、图和计算方法怎么得到?

# Raw Data
μM <- c(0.01, 0.03, 0.1, 0.3, 1, 3, 10, 30)
log_μM <- log(c(0.01, 0.03, 0.1, 0.3, 1, 3, 10, 30))
DMSO <- c(97.01, 98.43, 98.29, 97.66, 96.51, 88.39, 38.54, 2.63) # D137
log_DMSO <- log(c(97.01, 98.43, 98.29, 97.66, 96.51, 88.39, 38.54, 2.63))
#DMSO <- c(98.29, 98.35, 99.79, 99.78, 100.43, 100.19, 99.51, 99.16) # STB-D8
dat <- data.frame(μM, DMSO)
log_dat <- data.frame(log_μM, log_DMSO)

我想在R中画图得到R的平方值,方程!

这可能会让你得到你想要的。 与您的示例不同,该方程式是线性的。

R2 <- with(dat, cor(μM, DMSO)^2)
R2
dat.lm <- lm(DMSO~μM, dat)
summary(dat.lm)
x <- seq(min(dat$μM), max(dat$μM), length.out=100)
y <- predict(dat.lm, list(μM=x))
options(scipen=10)  # To prevent x-axis labels from using scientific notation
plot(DMSO~μM, dat, log="xy", main="Dose", pch=16, xlim=c(.01, 100), ylim=c(1, 1000), col="blue", las=1)
grid(col="darkgray")
lines(x, y, lty=3, col="blue")
mtext(bquote(""*R^2 ==.(round(R2, 4))), 3, line=.5, adj=1, cex=.75)
mtext(bquote(""*DMSO == .(round(coeff[1], 2))~"+"~.(round(coeff[2], 2))~"μM"), 3, line=1.3, adj=1, cex=.75)

阴谋

要绘制 S 形曲线,您需要使用nls()和自启动 function SSlogis()

dat.nls <- nls(DMSO ~ SSlogis(μM, Asym, xmid, scal), data = dat)
x <- seq(0, 30, length.out=50)
plot(DMSO~μM, dat)
lines(x, predict(dat.nls, list(μM=x)), lty=2)
coeff <- coef(dat.nls)
mtext(bquote(""*DMSO == .(round(coeff[1], 2))~"/(1 + exp("~.(round(coeff[2], 2))~"- μM)/"~.(round(coeff[3], 2))~")"), 3, line=0, adj=1)

我没有添加 R 平方值,因为对于如何使用渐近 function 计算它存在分歧。

渐近图

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM