I am in need of help editing a script originally developed to pull microbial growth parameters from a Logistic 4P model (Fit Curve Platform). I would like to edit the script to pull parameters from each treatment "strain, media, replicate", see desired output for what I would like. I am obviously missing some important language in the script but I am not clear how to do this. A scripting answer would be great! Please help!
This is the error I am getting:
"Subscript problem in access or evaluation of 'r[Outline Box(Parameter Estimates"),Number Col Box("Estimate",1)]', r]/*###*/Outline Box( "Parameter Estimates" ), Number Col Box( "Estimate", 1 )]
Script I would like to edit - "Extract Critical Values"
Script for desired output table - "Desired Output"
Extract Critical Values
Names Default To Here(1);
// Determine coefficients of Logistic 4P model, for estimation of growth parameters.
// This assumes that the current data table contains the data of interest, and that:
// the column containing the time values is labeled "Time (h)"
// the column containing the data values is labeled "Ln OD600"
// the column containing “strain” and “media” and “replicate” are grouping columns
//
// The names can be changed in the lines below,
// or the code can be changed to add a file dialog and a column selection,
// or the code can be changed to loop through multiple Y columns.
// First step: Fit Logistic 4P curve to data, store results in object Test.
Test = Fit Curve(
Y( :Ln OD600 ),
X( :Name( "Time (h)" ) ),
By( :Strain, :Media, :Replicate ),
Fit Logistic 4P
);
// 2nd step: Send report to variable r.
r = Test<<report;
// 3rd step: Interrogate variable r to retrieve fit parameters from report table of estimates:
a = GrowthRate = r[outlinebox("Parameter Estimates"),NumberColBox("Estimate",1)] << get(1);
b = InflectionPoint = r[outlinebox("Parameter Estimates"),NumberColBox("Estimate",1)] << get(2);
c = LowerAsym = r[outlinebox("Parameter Estimates"),NumberColBox("Estimate",1)] << get(3);
d = UpperAsym = r[outlinebox("Parameter Estimates"),NumberColBox("Estimate",1)] << get(4);
// 4th step: Find roots of 3rd derivative of Logistic 4P function (see word doc)
root1 = TimeOfLagPhase = (a*b + ln(2-sqrt(3)))/a;
root2 = TimeOfStationaryPhase = (a*b + ln(2+sqrt(3)))/a;
show(GrowthRate);
Show(InflectionPoint);
show(LowerAsym);
show(UpperAsym);
show(TimeOfLagPhase);
show(TimeOfStationaryPhase);
// Save in new data table
dt=New Table("summary stats",
Add Rows(1),
New Column ("Strain",Character,Nominal),
New Column ("Media",Character,Nominal),
New Column ("Replicate",Character,Nominal),
New Column ("Growth Rate", Continuous),
New Column ("Inflection Point", Continuous),
New Column ("Lower Asymptote", Continuous),
New Column ("Upper Asymptote", Continuous),
New Column ("Time of Lag Phase", Continuous),
New Column ("Time of Stationary Phase", Continuous)
);
:Growth Rate[1]=GrowthRate;
:Inflection Point[1]=InflectionPoint;
:Lower Asymptote[1]=LowerAsym;
:Upper Asymptote[1]=UpperAsym;
:Time of Lag Phase[1]=TimeOfLagPhase;
:Time of Stationary Phase[1]=TimeOfStationaryPhase;