大家好,
为了快速引导您:我正在处理 ELISA 数据(剂量反应曲线),因此我的自变量是稀释因子,我的因变量是吸光度,并且我正在查看多个动物的多个时间点。 我希望能够通过非线性、S 形曲线拟合找到 EC50(半最大响应稀释)。 我目前使用 4 参数模型 (Probit 4P)。
基本上,我想编写一个脚本,可以将参数估计中的数据获取到表中,找到每条曲线的上下渐近线之间的中点,然后在自定义逆预测中使用该值来获取EC50。 我很确定如果我能得到该参数的估计值,我可以完成后两部分!
这是我的曲线拟合:
For ( i = 1, i <= N items (Mice), i++,
FC = Fit Curve (
Y ( :Data ),
X (:Dilution ),
Group (:Timepoint),
By(:Animal)
Fit Probit 4P,
Where (:Animal == eval(Mouse_names[i])), //thist isn't referencing the variable the way i expect but using either eval( ) or char( ) seems to be a work-around?...
SendToReport(
Dispatch(
{"Plot"},
"7",
ScaleBox,
{Format( "Fixed Dec", 12, 0 ), Min( 0 ), Max( 4 ), Inc( 2 ),
Minor Ticks( 0 )}
),
Dispatch(
{"Plot"},
"6",
ScaleBox,
{Scale( "Log" ), Format( "Scientific", 12 ), Min( 0.0000001 ),
Max( 0.1 ), Inc( 2 ), Minor Ticks( 0 )}
),
Dispatch(
{"Plot"},
"13",
ScaleBox,
{Format( "Fixed Dec", 12, 0 ), Min( 0 ), Max( 4 ), Inc( 2 ),
Minor Ticks( 0 )}
),
Dispatch(
{"Plot"},
"16",
ScaleBox,
{Scale( "Log" ), Format( "Scientific", 12 ), Min( 0.0000001 ),
Max( 0.1 ), Inc( 2 ), Minor Ticks( 0 )}
),
Dispatch(
{"Probit 4P", "Plot"},
"7",
ScaleBox,
{Format( "Fixed Dec", Use thousands separator( 1 ), 12, 0 ), Min( 0 ),
Max( 4 ), Inc( 2 ), Minor Ticks( 0 )}
),
Dispatch(
{"Probit 4P", "Plot"},
"6",
ScaleBox,
{Scale( "Log" ), Format( "Scientific", 12 ), Min( 0.0000001 ),
Max( 0.1 ), Inc( 2 ), Minor Ticks( 0 )}
),
Dispatch(
{"Probit 4P", "Plot"},
"13",
ScaleBox,
{Format( "Fixed Dec", Use thousands separator( 1 ), 12, 0 ), Min( 0 ),
Max( 4 ), Inc( 2 ), Minor Ticks( 0 )}
),
Dispatch(
{"Probit 4P", "Plot"},
"16",
ScaleBox,
{Scale( "Log" ), Format( "Scientific", 12 ), Min( 0.0000001 ),
Max( 0.1 ), Inc( 2 ), Minor Ticks( 0 )}
)
)
);
FC << journal;
FC << close window;);
这对我来说效果很好,我有每个拟合曲线的日志输出,其中包含模型比较、数据图、模型信息(包括预测模型、拟合摘要、*~*参数估计*~*、估计的相关性) 、估计协方差和建模曲线图)。我可以手动右键单击参数估计和“生成组合数据表”,但不知道如何在脚本中执行此操作。理想情况下,我最后只有一个数据表,其中包含动物、参数(增长率、拐点、下渐近线、上渐近线)组(这些是我的时间点)、估计、标准误差、下 95%、上限的列95%。
任何帮助将不胜感激! 谢谢!
使用
jrn["Correlation of Estimates"][MatrixBox(1)] << Make Combined Data Table;
转至主菜单 > 帮助 > 书籍 > JMP 脚本指南,然后打开 PDF 并滚动至第 11 章,显示树。
JMP 报告是嵌套显示框的列表。这将向您展示如何查找对象和发送消息。
jrn << show tree structure;
//or right click on a reveal button to the left of an outline box
// then select Edit, Show Tree Structure
我在浏览报告窗口方面的经验基本上为零。
我搜索了报告窗口的脚本指南,但没有找到太多内容。 您可以向我指出任何资源吗?
惊人的!非常感谢您的回答 - 它绝对能满足我的需要! 我只是仍在尝试弄清楚您的代码下面发生了什么,以便将来可以在不同的应用程序中使用它。
这是否只是按名称索引期刊,指定我确实想要表格框并创建一个新的数据表?
我看过其他回复,例如
dt2 = bivRep [1] [TableBox(3)] << Make Combined Data Table;
但无法弄清楚到底发生了什么。 这个会获取 bivRep 的第一部分(?)中找到的第三个表框并写入新的 dt 吗?
我正在探索一点但更多,并能够得到适合的摘要
jrn["Summary of Fit"][Table Box (1)] << Make Combined Data Table;
但不知道如何做一些事情,比如获取第 5 周的估计相关性。
我试过:
covar_pre = jrn["Covariance of Estimates"]["Week 5"][Table Box(1)] << Make Combined Table;
并得到错误:
Cannot subscript Display Box{400} in access or evaluation of 'Subscript' , jrn["Covariance of Estimates"]["pre"][/*###*/Table Box( 1 )]
In the following script, error marked by /*###*/
paramEst = jrn["Covariance of Estimates"]["Week 5"][/*###*/Table Box( 1 )] <<
Make Combined Data Table我猜*这个*输出不是一个表格框? 我不确定它是什么类型的数据,也不知道如何弄清楚它。
你好,
一旦您掌握了日记的句柄,您就可以如下所示导航日记(类似于@gzmorgan0 ) 生成组合参数估计的数据表。
jrn = Current Journal();
paramEst = jrn["Parameter Estimates"][Table Box( 1 )] << Make Combined Data Table;
我希望这是有帮助的!
这是一个示例,不完全是您的具体示例(此示例使用 By)。 我不知道您在浏览报告窗口方面的专业知识。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Nonlinear Examples/Bioassay.jmp" );
obj = Fit Curve( Y( :Toxicity ), X( :log Conc ), By( :formulation ) );
obj << Fit Logistic 4P( Custom Inverse Prediction( Response( 0.9 ) ) );
//you can get one table using Make Combined Data Table
est_tbl= report(obj[1])["Parameter Estimates"][TableBox(1)] << Make Combined Data Table;
est_tbl << Set Name("Parameter Estimates");
inv_tbl = report(obj[1])["Inverse Prediction"]["Predicted Values"][TableBox(1)] << Make Combined Data Table;
inv_tbl << Set Name("Inverse Prediction");
希望这可以帮助。