john Chandler in MATLAB Answers
Letzte Aktivitätam 20 Mai 2022

Hi, I am studying drug pharmacokinetics. I would like to model how enzyme activity (cytochrome p450) and absoprtion would affect the PK profile. I am new to the simbiology and pk/pd modeling. I was loooking through the matlab tutorials but didn't find how these two parameters can be changed. If anyone has insights on how I can create these models, I would appreciate it. Thanks, John
Brandon in MATLAB Answers
Letzte Aktivitätam 15 Apr. 2022

Does anyone have a simple working example of code that uses simbiology to estimate parameters for a simple nonlinear pharamacodynamic model? I would like to first simulate data using a simple PKPD model, then estimate model parameters from the data. The code below creates the PK model. However, I have had no success trying to create the PD part. In the code below, the estimation is based on observing the drug concentrations over time. What I'd like to do instead is to pass the concentration values through a Hill function, i.e. if x is the concentration, then I want the observations to be y = R*x^g/(x^g+c^g) where R, g, and c are constants. I would like to allow the estimation routine to "see" only these nonlinearly transformed y values, and to estimate both the PK values (as is done in the code below), and also the parameters of the Hill equation, namely R, g, and c. Can anyone show me how to do this? Thanks in advance! Brandon ------------------------------------ %********************************* % *** simulate the data ********** %********************************* m1=sbiomodel('onecomp') r1=addreaction(m1,'Drug_Central -> null') % elimination k1 = addkineticlaw(r1,'MassAction') k1val = lognrnd(0, 0.2 , 1,1); p1 = addparameter(k1,'ke','Value',k1val,'ValueUnits','1/hour') k1.ParameterVariableNames='ke' % cannot seem to get the following part to work % r2=addreaction(m1,'Drug_Central -> x') % nonlinear observation % k2 = addkineticlaw(r2, 'Hill-Kinetics'); % k2.KineticLaw = 'Unknown'; % r2.ReactionRate = 'Rmax*x^gamma / ( x^gamma+A^gamma)'; % p2 = addparameter(k2, 'Rmax', 2.3); % p3 = addparameter(k2,'A',5); % p4 = addparameter(k2,'gamma',3); % set(p4, 'ValueUnits', 'dimensionless'); %% info for each constant rate interval % start time, end time, rate [figure out intermediate: amount] RateInfo=[2 4 10; 6 12 50; 12 20 90; 22 24 150; 25 27 200; 30 31 50]; d=[]; for i=1:size(RateInfo,1); dt = sbiodose('dt'); dt.TargetName = 'Drug_Central'; dt.RateUnits = 'milligram/hour'; dt.AmountUnits='milligram'; dt.TimeUnits = 'hour'; dt.Rate = RateInfo(i,3); t0=RateInfo(i,1); t1=RateInfo(i,2); amount=(t1-t0)*RateInfo(i,3); dt.Amount = amount; dt.StartTime=t0 dt.Active = true; d=[d dt]; end dose=d; %% run simulation cs = getconfigset(m1) cs.StopTime=48 cs.TimeUnits='hour' [t,sd,species]=sbiosimulate(m1,d) plot(t,sd); legend(species); xlabel('Hours'); ylabel('Drug Concentration'); % throw out some data to simulate sparse sampling in an experiment t=t(1:5:end); sd=sd(1:5:end); data=table(t,sd); % convert to table data.Properties.VariableNames{'t'}='Time'; data.Properties.VariableNames{'sd'}='Conc'; %% convert to groupedData object -- required for fitting with sbiofit gData=groupedData(data) gData.Properties.VariableUnits={'hour','milligram/liter'} gData.Properties %********************************* % *** estimate model from data *** %********************************* pkmd = PKModelDesign pkc1 = addCompartment(pkmd,'Central') pkc1.DosingType = 'Infusion' pkc1.EliminationType='linear-clearance' pkc1.HasResponseVariable=true [model,map]=construct(pkmd) configset = getconfigset(model) configset.CompileOptions.UnitConversion=true configset.SolverOptions.AbsoluteTolerance=1e-9 configset.SolverOptions.RelativeTolerance=1e-5 dose=d; % look at map to see variables responseMap = {'Drug_Central = Conc'}; paramsToEstimate = {'log(Central)','log(Cl_Central)'} estimatedParams = estimatedInfo(paramsToEstimate,'InitialValue',[1 1]) paramsToEstimate = {'log(Central)','log(Cl_Central)'}; estimatedParams = estimatedInfo(paramsToEstimate,'InitialValue',[1 1]); %% estimate the parameters fitConst = sbiofit(model,gData,responseMap,estimatedParams,dose) %% plot results fitConst.ParameterEstimates figure(1); plot(fitConst); %% compare estimate to truth disp('****************') fitConst.ParameterEstimates.Estimate(2) k1val
MathWorks SimBiology Team in File Exchange
Letzte Aktivitätam 1 Apr. 2021

SimBiology implementation of a generic PBPK model. Human fasted, Human fed and Rat physiologies.
MathWorks SimBiology Team in File Exchange
Letzte Aktivitätam 1 Jun. 2018

SimBiology model describing the effect of anticancer drugs on tumor growth kinetics
SeungHyun Lee in MATLAB Answers
Letzte Aktivitätam 8 Dez. 2017

I estimated 8 parameters of my glucose-insulin kinetics model(modified model of 'insulindemo.sbproj') using glucose concentration data as response and glucose, insulin doses as input dose data. The estimation was done by 'Fit Data' task of SimBiology. However, there was warning with details; *"Simulation with phi = [222.249598314537 144.778388565053 2.3665676931561 0.00609950427451014 0.156172487611996 0.0142886095746218 0.00444912107474936 1.27397631652191] could not be completed because: Integration Tolerance Not Met. Empty results have been returned for this simulation."* I used 'ode15s(stiff/NDF) solver with RelativeTolerance value of 1.0E-6. and estimation method was 'ga(Constrained optimization using genetic algorithm)' with TerminationTolerance of 1.0E-10 and MaximumGeneration of 800. What is the meaning of this warning message? and how could I treat it? Thank you for your interest.
Jeremy Huard in File Exchange
Letzte Aktivitätam 1 Sep. 2016

Functions to import SBML files containing function definitions into SimBiology.
Fulden Buyukozturk in File Exchange
Letzte Aktivitätam 3 Apr. 2014

Tool to automate the process of creating standalone, model-exploration apps for SimBiology model