我正尝试使用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
2条答案
按热度按时间szqfcxe21#
你可以使用approx函数来做线性插值。我用这个函数来做线性插值,使用你的x变量以及你的x变量的对数。用对数插值在对数标度上绘图时是可视化的(就像你做的那样),而用水平插值在水平标度上绘图时是可视化的。我得到的值有些不同:226.1137在水平和194.7934在日志。这是我的代码:
和图片:
希望能有所帮助。
svmlkihl2#
我的错!我忽略了ED函数。我应该简单地使用
ED()
函数与type = 'absolute'
。感谢这篇文章:Inverse prediction using drm package in R的关键线索。