simFunction anf dose Array from an input file
Hi. After fitting my model (fitting was successful using sbiofit) I wrote the code below to generate simfunction to run the model with estimated values and the parmetr in the gData for each case.In gData the doses has been detemined and they are diffent rated doses for each patient applied at diffent time points. I was not able to pass dosesForFit = createDoses(gData, ‘DOSE’, ‘dose_rate’, d3) to simfunction because Invalid dosing information. Specify doses as a row vector. and then I used dosesForFit = reshape(dosesForFit, 1, []); % Ensure dosesForFit is a row vector and the problem solved and simFunction was executed but the dose considered the same for all of the cases and was combinatin of all of the doses. How can I solve this problem. I attached input file and the code is below: Thanks
%% Update Parameters with Estimated Values and Running the Model
d3 = sbiodose(‘DOSE’);
d3.TargetName = ‘plasma.A1’;
d3.LagParameterName = ”;
d3.AmountUnits = ‘nanomole’;
d3.RateUnits = ‘nanomole/day’;
d3.TimeUnits=configsetObj.TimeUnits;
dosesForFit = createDoses(gData, ‘DOSE’, ‘dose_rate’, d3);
dosesForFit = reshape(dosesForFit, 1, []); % Ensure dosesForFit is a row vector
doseTable = getTable(dosesForFit);
% getTable(dosesForFit)
% Extract Observables and Experimental Data
for i = 1:length(fitResults.EstimatedParameterNames)
paramObj = sbioselect(model, ‘Name’, fitResults.EstimatedParameterNames{i});
paramObj.Value = fitResults.ParameterEstimates.Estimate(i);
end
% Define parameter names to extract
variantParams = {‘BW’, ‘SLD’, ‘HSCR’, ‘FRAPS’};
% Extract IDs in the order they appear in the input file
idsInOrder = exp_data.ID; % Retain original ID order
[uniqueIDs, ~, idOrder] = unique(idsInOrder, ‘stable’); % Preserve order from input file
% Initialize paramMatrix with zeros
numIDs = length(uniqueIDs);
paramMatrix = zeros(numIDs, length(variantParams)); % Rows for IDs, columns for parameters
% Populate paramMatrix with parameter values based on the input file order
for i = 1:numIDs
% Filter data for the current ID
currentID = uniqueIDs(i);
idData = exp_data(exp_data.ID == currentID, :);
% Assign parameter values (assume these are constant per ID)
paramMatrix(i, 🙂 = [idData.BW(1), idData.SLD(1), idData.HSCR(1), idData.FRAPS(1)];
end
% Observables for the simulation
obs = {‘CAb_plasma’, ‘CADC_plasma’, ‘CPLun_plasma’}; % Observables to track
% Create SimFunction
sfxn = createSimFunction(model, variantParams, obs, dosesForFit,’UseParallel’, true, ‘AutoAccelerate’, true);
% Simulate Using the Parameter Matrix
% Create dose table from dosesForFit
% Simulate the model using the parameter matrix
simData = sfxn(paramMatrix, [], doseTable, time);Hi. After fitting my model (fitting was successful using sbiofit) I wrote the code below to generate simfunction to run the model with estimated values and the parmetr in the gData for each case.In gData the doses has been detemined and they are diffent rated doses for each patient applied at diffent time points. I was not able to pass dosesForFit = createDoses(gData, ‘DOSE’, ‘dose_rate’, d3) to simfunction because Invalid dosing information. Specify doses as a row vector. and then I used dosesForFit = reshape(dosesForFit, 1, []); % Ensure dosesForFit is a row vector and the problem solved and simFunction was executed but the dose considered the same for all of the cases and was combinatin of all of the doses. How can I solve this problem. I attached input file and the code is below: Thanks
%% Update Parameters with Estimated Values and Running the Model
d3 = sbiodose(‘DOSE’);
d3.TargetName = ‘plasma.A1’;
d3.LagParameterName = ”;
d3.AmountUnits = ‘nanomole’;
d3.RateUnits = ‘nanomole/day’;
d3.TimeUnits=configsetObj.TimeUnits;
dosesForFit = createDoses(gData, ‘DOSE’, ‘dose_rate’, d3);
dosesForFit = reshape(dosesForFit, 1, []); % Ensure dosesForFit is a row vector
doseTable = getTable(dosesForFit);
% getTable(dosesForFit)
% Extract Observables and Experimental Data
for i = 1:length(fitResults.EstimatedParameterNames)
paramObj = sbioselect(model, ‘Name’, fitResults.EstimatedParameterNames{i});
paramObj.Value = fitResults.ParameterEstimates.Estimate(i);
end
% Define parameter names to extract
variantParams = {‘BW’, ‘SLD’, ‘HSCR’, ‘FRAPS’};
% Extract IDs in the order they appear in the input file
idsInOrder = exp_data.ID; % Retain original ID order
[uniqueIDs, ~, idOrder] = unique(idsInOrder, ‘stable’); % Preserve order from input file
% Initialize paramMatrix with zeros
numIDs = length(uniqueIDs);
paramMatrix = zeros(numIDs, length(variantParams)); % Rows for IDs, columns for parameters
% Populate paramMatrix with parameter values based on the input file order
for i = 1:numIDs
% Filter data for the current ID
currentID = uniqueIDs(i);
idData = exp_data(exp_data.ID == currentID, :);
% Assign parameter values (assume these are constant per ID)
paramMatrix(i, 🙂 = [idData.BW(1), idData.SLD(1), idData.HSCR(1), idData.FRAPS(1)];
end
% Observables for the simulation
obs = {‘CAb_plasma’, ‘CADC_plasma’, ‘CPLun_plasma’}; % Observables to track
% Create SimFunction
sfxn = createSimFunction(model, variantParams, obs, dosesForFit,’UseParallel’, true, ‘AutoAccelerate’, true);
% Simulate Using the Parameter Matrix
% Create dose table from dosesForFit
% Simulate the model using the parameter matrix
simData = sfxn(paramMatrix, [], doseTable, time);Â Hi. After fitting my model (fitting was successful using sbiofit) I wrote the code below to generate simfunction to run the model with estimated values and the parmetr in the gData for each case.In gData the doses has been detemined and they are diffent rated doses for each patient applied at diffent time points. I was not able to pass dosesForFit = createDoses(gData, ‘DOSE’, ‘dose_rate’, d3) to simfunction because Invalid dosing information. Specify doses as a row vector. and then I used dosesForFit = reshape(dosesForFit, 1, []); % Ensure dosesForFit is a row vector and the problem solved and simFunction was executed but the dose considered the same for all of the cases and was combinatin of all of the doses. How can I solve this problem. I attached input file and the code is below: Thanks
%% Update Parameters with Estimated Values and Running the Model
d3 = sbiodose(‘DOSE’);
d3.TargetName = ‘plasma.A1’;
d3.LagParameterName = ”;
d3.AmountUnits = ‘nanomole’;
d3.RateUnits = ‘nanomole/day’;
d3.TimeUnits=configsetObj.TimeUnits;
dosesForFit = createDoses(gData, ‘DOSE’, ‘dose_rate’, d3);
dosesForFit = reshape(dosesForFit, 1, []); % Ensure dosesForFit is a row vector
doseTable = getTable(dosesForFit);
% getTable(dosesForFit)
% Extract Observables and Experimental Data
for i = 1:length(fitResults.EstimatedParameterNames)
paramObj = sbioselect(model, ‘Name’, fitResults.EstimatedParameterNames{i});
paramObj.Value = fitResults.ParameterEstimates.Estimate(i);
end
% Define parameter names to extract
variantParams = {‘BW’, ‘SLD’, ‘HSCR’, ‘FRAPS’};
% Extract IDs in the order they appear in the input file
idsInOrder = exp_data.ID; % Retain original ID order
[uniqueIDs, ~, idOrder] = unique(idsInOrder, ‘stable’); % Preserve order from input file
% Initialize paramMatrix with zeros
numIDs = length(uniqueIDs);
paramMatrix = zeros(numIDs, length(variantParams)); % Rows for IDs, columns for parameters
% Populate paramMatrix with parameter values based on the input file order
for i = 1:numIDs
% Filter data for the current ID
currentID = uniqueIDs(i);
idData = exp_data(exp_data.ID == currentID, :);
% Assign parameter values (assume these are constant per ID)
paramMatrix(i, 🙂 = [idData.BW(1), idData.SLD(1), idData.HSCR(1), idData.FRAPS(1)];
end
% Observables for the simulation
obs = {‘CAb_plasma’, ‘CADC_plasma’, ‘CPLun_plasma’}; % Observables to track
% Create SimFunction
sfxn = createSimFunction(model, variantParams, obs, dosesForFit,’UseParallel’, true, ‘AutoAccelerate’, true);
% Simulate Using the Parameter Matrix
% Create dose table from dosesForFit
% Simulate the model using the parameter matrix
simData = sfxn(paramMatrix, [], doseTable, time); simfunction and array doses MATLAB Answers — New Questions
​