How to assess to the simulation data after the parameter estimation in Simbiology

1 visualizzazione (ultimi 30 giorni)
Hello team,
I am using command line sbiofit to fit my simbiology model with my experimental data by parameter estimation.
In addition, after I got the fitting results, I know that I could simply plot the fitted results versus the original data by plot(fitResults);
However, I would like to access the simulated results of my best fit to carry out NCA, but I could not find the results in the SimBiology.fit.OptimResults.
Could you please show me a clue on how to get the piece of the simulated data?
Thank you very much.
Have a nice day.
Best,
Jesse

Risposta accettata

Arthur Goldsipe
Arthur Goldsipe il 19 Ott 2021
Hi Jesse,
You can get access to the SimData results used in the plot method by calling the fitted method (described here). If you want to simulate using the parameter estimates but different conditions (for example, different dosing) you can use the predict method (described here). In both cases, the first output will be a vector of SimData of the results.
-Arthur
  2 Commenti
Jesse Chao
Jesse Chao il 20 Ott 2021
Modificato: Jesse Chao il 20 Ott 2021
Hello Arthur,
Thank you very much, Arthur. I have successfully accessed the simulation data by using fitted method.
However, I could not successfully get the NCA results from the simulated data. I am not sure if I understood something wrong or there's a bug in my code. All the parameters I got from the NCA are all NaN...
Please find my code below. The first half of the codes are from MathWork website. The latter half of the codes are from myself.
Please have a look, and provide me with some feedback. Thank you very much.
Best,
Jesse
%% Code from MathWorks website (url: https://www.mathworks.com/help/simbio/ug/fit-individual-PK-profile-data-to-one-compartment-model.html)
% Load Data and Visualize
load('data15.mat')
plot(data.Time,data.Conc,'b+')
xlabel('Time (hour)');
ylabel('Drug Concentration (milligram/liter)');
% Convert to groupedData Format
gData = groupedData(data);
gData.Properties.VariableUnits = {'hour','milligram/liter'};
gData.Properties
% Construct a One-Compartment Model
pkmd = PKModelDesign;
pkc1 = addCompartment(pkmd,'Central');
pkc1.DosingType = 'Bolus';
pkc1.EliminationType = 'linear-clearance';
pkc1.HasResponseVariable = true;
model = construct(pkmd);
configset = getconfigset(model);
configset.CompileOptions.UnitConversion = true;
% Define Dosing
dose = sbiodose('dose');
dose.TargetName = 'Drug_Central';
dose.StartTime = 0;
dose.Amount = 10;
dose.AmountUnits = 'milligram';
dose.TimeUnits = 'hour';
% Map Response Data to the Corresponding Model Component
responseMap = {'Drug_Central = Conc'};
% Specify Parameters to Estimate
paramsToEstimate = {'log(Central)','log(Cl_Central)'};
estimatedParams = estimatedInfo(paramsToEstimate,'InitialValue',[1 1],'Bounds',[1 5;0.5 2]);
%Estimate Parameters
fitConst = sbiofit(model,gData,responseMap,estimatedParams,dose);
%% Obtain best fitted simulated data for NCA
% Simulation data organization
simData_struct = fitted(fitConst);
simData = array2table(simData_struct.Data);
simData_list = {'Drug_Central'};
simData.Properties.VariableNames = simData_list;
simTime = array2table(simData_struct.Time);
simTime.Properties.VariableNames = {'Time'};
datalength =length(simData_struct.Time);
simGroup = array2table(ones(datalength,1));
simGroup.Properties.VariableNames = {'Group'};
simDose = array2table(zeros(datalength,1));
simDose(1,1) = {dose.Amount};
simDose.Properties.VariableNames = {'Dose'};
simData_table = [simGroup simTime simData simDose];
% Convert to groupedData Format
gData_sim = groupedData(simData_table,'Group','Time');
gData_sim.Properties.VariableUnits = {'Group','hour','milligram/liter','milligram'};
% Categorize the data columns using an NCA options object.
opt = sbioncaoptions;
opt.groupColumnName = 'Group';
opt.concentrationColumnName = simData_list;
opt.timeColumnName = 'Time';
opt.IVDoseColumnName = 'Dose';
% Compute NCA parameters
ncaparameters = sbionca(gData_sim,opt)
Jeremy Huard
Jeremy Huard il 20 Ott 2021
@Jesse Chao Do you mind clicking on my profile and sending me an email so that I have your email address? We can then discuss this offline.

Accedi per commentare.

Più risposte (0)

Community

Più risposte nel  SimBiology Community

Categorie

Scopri di più su Nonlinear Regression in Help Center e File Exchange

Prodotti


Release

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by