【问题标题】:R point-to-point method for calculating x given yR点对点法计算x给定y
【发布时间】:2021-09-30 14:28:11
【问题描述】:

我正在使用包含四种标准品的商业 ELISA 试剂盒。这些标准品用于创建标准曲线,y 轴为 ELISA 读数器的光密度,x 轴为国际单位每英里的浓度。

我现在需要使用这条标准曲线来获取我只有光密度读数的样品的浓度。 ELISA 试剂盒说明书明确规定“使用“点对点”绘图通过计算机计算标准曲线”。

我假设他们的意思是通过查看 y 在标准曲线上的点之间的连线并从那里下降到 x 轴来推导出 x 的值。问题是我不知道如何在 r 中执行此操作(这是我用于完整分析管道的内容)。我徒劳地搜索了与“点对点”相对应的任何 r 包、函数或代码,但找不到任何东西。所有处理 ELISA 数据和/或标准曲线的 R 包(例如 drcELISAtools 似乎做的事情要复杂得多,即拟合对数模型并考虑板间差异等,这不是什么我需要。

请注意,我不需要可视化标准曲线 - 我只需要一种方法来根据点对点线从标准曲线数据中获取浓度。

这是一些示例数据:

# Data for standard curve:
scdt <- data.table(id = c("Cal1", "Cal2", "Cal3", "Cal4"), 
                   conc = c(200, 100, 25, 5), 
                   od = c(1.783, 1.395, 0.594, 0.164))

> scdt
     id conc    od
1: Cal1  200 1.783
2: Cal2  100 1.395
3: Cal3   25 0.594
4: Cal4    5 0.164

# Some example OD values for which I would like to derive concentration:
unknowns <- c(0.015, 0.634, 0.891, 1.510, 2.345, 3.105) 

在我想为 x 求解的示例值中,我还包括了一些超出标准范围的值,因为这也会不时出现在我的真实数据中。试剂盒制造商建议不要报告任何 OD 超过合理的最高标准 (Cal1) 的 IU/mL。

我怎样才能用尺子和方格纸从标准曲线中找到 x 的 R 等效项,这正式称为什么? (我认为我可能没有找到任何东西的一个原因是因为“点对点”不是一个数学术语,但必须有一个用于此的 - 是插值吗?)。

【问题讨论】:

  • 我的猜测是,一旦模型适合,您应该能够反算或至少使用优化程序来找到逆。但是我不熟悉您所指的包/模型,并且没有制作模型的代码,很难提供反馈

标签: r point-to-point


【解决方案1】:

听起来你想要一个简单的线性插值。这是在 R 中使用函数approx 实现的。您将已知的 x 值、已知的 y 值以及您想要相应 y 值的 x 的新值提供给它。 (请注意,您调用哪个变量 x 和调用 y 并不重要,只要您保持一致即可)。

为了获得更易于使用的结果,我们可以将响应转换为具有适当列名的数据框:

new_data <- approx(scdt$od, scdt$conc, xout = unknowns) |> 
  setNames(c("od", "conc")) |> 
  as.data.frame() 

new_data
#>      od      conc
#> 1 0.015        NA
#> 2 0.634  28.74532
#> 3 0.891  52.80899
#> 4 1.510 129.63918
#> 5 2.345        NA
#> 6 3.105        NA

请注意(按照制造商的建议),超出校准点极限范围的光密度将给出NA 浓度值。要获得这些,您需要 extrapolate 而不是 interpolate

为了确认这就是您要查找的内容,让我们在由初始数据形成的曲线上用红色绘制此插值的结果:

plot(scdt$od, scdt$conc, type = "l", lty = 2)
points(scdt$od, scdt$conc)
points(new_data$od, new_data$conc, col = "red")

我们可以看到,每个新光密度处的估计浓度位于连接校准点的线上。

【讨论】:

  • 谢谢,这正是我想要的。出于好奇,| &gt; 在您的回答中是%&gt;% 的另一种管道?
  • @AmyM 是的,从 R 版本 4 开始,R 中内置了一个管道运算符 |&gt;,无需外部依赖
猜你喜欢
  • 1970-01-01
  • 2021-02-02
  • 1970-01-01
  • 2012-04-21
  • 1970-01-01
  • 2020-03-27
  • 1970-01-01
  • 2017-01-23
  • 1970-01-01
相关资源
最近更新 更多