我的数据包含关于 40 种药物的剂量反应曲线。通过使用drc包,我可以确认每种药物的EC50值,并且需要提取EC50值大于参考药物的药物。在示例中,只有 4 种药物,因此我可以轻松区分哪些药物具有最佳值。然而,40多种药品,没有分拣是不可能的。
如何提取 summary() 的系数并对其进行处理以轻松区分?我这样做分别适合所有药物的 40 drm() 函数。但我认为有一个更合理的过程。
这是我的示例代码
drug_name <- rep(c("A", "B", "C", "D"), times = 1, each = 8)
drug_conc <- rep(c(1e-06, 1e-07, 1e-08, 1e-09, 1e-10, 1e-11, 1e-12, 1e-13), times = 8, each = 1)
result <- c(103.9290648,
92.37710525,
51.00748095,
9.179793842,
0,
1.996017393,
0,
6.731109782,
107.2191305,
78.10471293,
40.5521108,
3.557031123,
1.731565561,
7.481358657,
5.688797044,
6.313685777,
77.83258904,
70.47677041,
71.95714808,
55.37764603,
9.769341654,
1.261834755,
1.640337782,
0.569511534,
91.81329169,
108.3473796,
110.1291696,
49.28101502,
12.58068263,
2.729799426,
0,
0.43526533
)
raw <- data.frame(drug_name, drug_conc, result)
raw
library(drc)
start.LL4 <- drm(result ~ drug_conc,
curveid = drug_name,
fct = LL.4(names = c(b = "slope", c = "basal", d = "max", e = "EC50")),
pmodels = data.frame(slope = drug_name, basal = drug_name, max = drug_name, EC50 = drug_name),
data = raw)
summary(start.LL4)