如何在使用R绘制的剂量React曲线中找到所需Y轴(React)值处的X轴值(剂量)?

kjthegm6  于 2022-12-20  发布在  React
关注(0)|答案(2)|浏览(158)

我正尝试使用R绘制剂量-响应曲线(降解)。我想在选定的底物剩余百分比值(即Y值,例如Y = 50)处获得X轴插值(剂量浓度值),因为可以在GraphPad PRISM中插值。
我使用下面给出的代码预测拐点处的EC 50。使用R和GraphPad PRISM获得的EC 50值与拐点处的EC 50相同。使用GraphPad PRISM,我能够获得插值的X轴Y = 50时的(剂量浓度)值为195.391 nM。然而,使用R I无法获得选定Y轴值(Y = 50)时的X轴值。
但是,我无法使用R进行此操作。我使用drc包中的艾德()函数获得的值与拐点处的EC 50值相同,如以下代码所示。不同剂量降解剂的响应值基于DMSO值归一化为100%。有人能告诉我遗漏了什么吗?

拐点时的EC 50和50%时的EC 50(Y = 50),使用R

library(drc)

df <- data.frame(
  x = c(1,3.2,10,32,100,320,1000,3200,10000113.891531792259),
  y = c(108.505,119.305,98.01,89.275,65.305,39.87,21.95,7.32,8.695))

model <- drm(y~x, data=df, fct=LL.4(names = c("Slope", "Lower Limit", "Upper Limit", "EC50 at IP")))
plot(model, type="all", col = "blue", ylab = "% Remaining", xlab = "Concentration (nM)")
axis(2, at = seq(0, 120, 5), labels = F)
axis(1, at = seq(100, 1000, 100), labels = F)

summary(model)

Model fitted: Log-logistic (ED50 as parameter) (4 parms)

Parameter estimates:

                         Estimate Std. Error t-value     p-value    
Slope:(Intercept)         0.82802    0.16507  5.0160    0.004049 ** 
Lower Limit:(Intercept)   3.47712    6.15672  0.5648    0.596627    
Upper Limit:(Intercept) 115.18939    5.38586 21.3874 0.000004144 ***
EC50 at IP:(Intercept)  129.99815   32.25388  4.0305    0.010017 *  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error:

 5.507845 (5 degrees of freedom)

ED(model, 50)

Estimated effective doses

       Estimate Std. Error
e:1:50  129.998     32.254
szqfcxe2

szqfcxe21#

你可以使用approx函数来做线性插值。我用这个函数来做线性插值,使用你的x变量以及你的x变量的对数。用对数插值在对数标度上绘图时是可视化的(就像你做的那样),而用水平插值在水平标度上绘图时是可视化的。我得到的值有些不同:226.1137在水平和194.7934在日志。这是我的代码:

summary(model)

par(mfrow = c(1, 2))

answer <- approx(model$predres[, 1], df$x, 50)
answer
plot(df$x, model$predres[, 1], typ = "b", xlim = c(50, 500))
points(answer[[2]], answer[[1]], col = "red", pch = 19, cex = 2)

answer2 <- approx(model$predres[, 1], log(df$x), 50)
exp(answer2$y)
plot(df$x, model$predres[, 1], typ = "b", log = "x")
points(exp(answer2[[2]]), answer[[1]], col = "red", pch = 19, cex = 2)

和图片:

希望能有所帮助。

svmlkihl

svmlkihl2#

我的错!我忽略了ED函数。我应该简单地使用ED()函数与type = 'absolute'。感谢这篇文章:Inverse prediction using drm package in R的关键线索。

ED(object = model, respLev = 50, type = c("absolute"))

        Estimate  Std. Error
e:1:50  195.379     52.166

ED(object = model, respLev = 50, type = c("relative"))

        Estimate  Std. Error
e:1:50  129.998     32.254

相关问题