用R代码确定斜率

Dr *_*and 1 r curve-fitting

我有许多熔化曲线,我想用R代码确定最小(谷)和最大(峰)之间最陡部分的斜率(拐点处的斜率对应于熔点).我能想象的解决方案是确定每个点的斜率然后找到最大正值,或者通过使用drc包拟合4参数Weibull型曲线来确定拐点(基本上对应于50%响应)最小值和最大值之间的点.在后一种情况下,棘手的部分是必须将每个曲线的拟合限制在最小(谷值)和最大(峰值)荧光响应之间的温度范围.每条曲线的温度范围不同.

感谢任何反馈!

42-*_*42- 5

diff函数在等间距值(最大为常数因子)上完成等效的数值微分,因此找到最大(或最小)值可用于识别最陡上升(或下降)的位置:

z <- exp(-seq(0,3, by=0.1)^2 )
plot(z)
plot(diff(z))
z[ which(abs(diff(z))==max(abs(diff(z))) )]
# [1] 0.6126264
# could have also tested for min() instead of max(abs())
plot(z)
abline( v = which(abs(diff(z))==max(abs(diff(z))) ) )
abline( h = z[which(abs(diff(z))==max(abs(diff(z))) ) ] )
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

x差值为1时,斜率就是该点的差值:

diff(z) [ which(abs(diff(z))==max(abs(diff(z))) )  ]
[1] -0.08533397
Run Code Online (Sandbox Code Playgroud)

......但我怀疑这是否真的很有意思.我原本以为获得指数(这将是受偏差影响的熔点)将是感兴趣的价值.