incorporate sglt2 inhibition into physiologically based glucose-insulin model using simbiology model builder
this example shows how to add sglt2 inhibition by a hypothetical compound to an existing glucose-insulin model using simbiology model builder.
glucose-insulin model
this model is another simbiology implementation of the glucose-insulin model referenced in the simulate the glucose-insulin response example. the model is based on the publication by dalla man, et al. in their 2007 publication [1], the authors developed a model for the human glucose-insulin response after a meal. this model describes the dynamics of the system using ordinary differential equations. the authors used their model to simulate the glucose-insulin response after one or more meals, for normal human subjects and for human subjects with various kinds of insulin impairments.
sodium-glucose cotransporter-2 (sglt2) inhibition
the sglt2 receptor has been shown to facilitate around 50% of renal glucose reabsorption [3]. this example assumes to have a hypothetical sglt2 inhibitor compound that inhibits sglt2 by 50%. a reasonable dosing regimen and pk properties are also assumed. in this example, you incorporate the pharmacokinetics/pharmacodynamics (pk/pd) of this inhibitor compound into the glucose-insulin model.
incorporate inhibitor pk by adding and configuring reactions
in the following steps, you model the compound absorption and clearance of a hypothetical sglt2 inhibitor compound by using two reactions.
load model
open the simbiology model builder app by clicking simbiology model builder on the apps tab or by typing
simbiologymodelbuilder
at the command line.on the home tab of the app, select open.
navigate to the folder
matlabroot\examples\simbio\data\
. is the folder where you have installed matlab. enteringmatlabroot
at the command line gives you the path to the root folder. select the project file namedsglt2_model_incomplete.sbproj
. click open.
add and configure reactions
note
on macos, use the command key instead of ctrl.
drag and drop two species blocks from the toolbar of the diagram tab. you can place them below the annotation block therapy, which is just a label (text) block.
press ctrl and drag a line from the first species to the second species. a reaction block appears in between. this reaction represents the compound absorption.
edit the default species name by double-clicking it. rename
species_1
togi_sglt2_inhib
andspecies_2
toplasma_sglt2_inhib
.click the reaction block. in the property editor pane on the right, change the reaction name to
compound_absorption
.in the kinetic law section, change the autocreated forward rate parameter kf to
k_compound_absorption
. the model already has the forward rate parameterk_compound_absorption
that was created previously. the app uses green text for parameter names and blue text for species names in the reaction rate expression.tip
to change the default reaction configurations, click preferences on the home tab. in the preferences dialog, click model building. in the reaction building section, there are three options to change the default kinetic law, create parameters for the kinetic law, and change the scope of created parameters.
in the states table, set the units of the two species to
milligram
.drag and drop another reaction block from the diagram toolbar to model the compound clearance.
press ctrl and drag a line from
plasma_sglt2_inhib
to the reaction.tip
if the blocks are not aligned, you can align them using the alignment tools. on the home tab, select diagram tools >
diagram alignment tools
.click the reaction block. in the property editor pane, change the reaction name to
compound_clearance
.update the reaction rate to
cl/vd*plasma_sglt2_inhib
. cl and vd indicate the model parameters for the clearance and volume of distribution, respectively.
tip
the kinetic law for a newly added reaction is configured to massaction by default, and the simbiology model builder app automatically creates and maps the species and parameters needed by the reaction rate. for other kinetic laws, only parameters are created and mapped. you need to create and map the species manually. use the unknown kinetic law to define a custom reaction rate with its own parameters. you must define and add the species and parameters needed by the custom rate.
the massaction and unknown kinetic laws can have different simulation results even when the reaction rate is the same. this can happen when you have a reversible reaction with species in different compartments. the difference in simulation results is because of the volume-scaling performed by simbiology during the dimensional analysis. for details, see . specifically, for massaction, simbiology uses corresponding compartment volumes to multiply the forward and reverse rates. however, for unknown and other built-in kinetic laws, simbiology multiplies the entire rate by only one compartment which contains the reactants. to see exactly what compartment volumes are used for scaling, open the equations tab and check the odes section.
incorporate inhibitor pd using mathematical equation
simbiology lets you define a mathematical expression to define or update the value of a model quantity during simulation. for details, see . in the following steps, you add a repeated assignment rule to incorporate the inhibitor pharmacodynamics by defining the renal threshold at which plasma glucose is excreted based on the compound efficacy.
in the browser pane, click the plus icon on the browser toolbar and select
add repeated assignment
. the app moves the focus to the last empty row in the repeated assignments table.double-click the row and enter the following expression that represents the compound inhibition based on the hill equation:
renal_threshold = basal_renal_threshold*(1-compound_imax*whole_body.plasma_sglt2_inhib^2/(compound_ic50^2 whole_body.plasma_sglt2_inhib^2))
the diagram tab now shows the repeated assignment rule block for the
renal_threshold
parameter.tip
to view the entire model and pan through it, expand model assessment tools in the browser pane and click overview.
note
the app shows only a parameter block for a parameter that is on the left hand side (lhs) of a repeated assignment rule, rate rule, or event function.
the app shows only rule blocks for repeated assignments and rate rules.
the app uses dash-dot lines to connect the quantities on the right hand side of a rule. by default, these lines are not shown. to display the lines, click a rule block. from the property editor pane, in the block section, set expression lines to show.
update renal excretion reaction to incorporate presence of inhibitor compound
the renal excretion reaction of the model is currently defined as plasma_glucose
-> urinary_glucose_excr_auc
with the reaction rate parameter
glucose_excretion
. the rate parameter is defined by a repeated assignment
rule as glucose_excretion =
(plasma_glucose>renal_threshold)*gfr*(plasma_glucose-renal_threshold)
, where
gfr
is a glomerular filtration rate that determines the flux of the reaction
and has impact on sglt2 inhibition effect.
in the following steps, you update the renal excretion reaction to plasma_glucose
plasma_sglt2_inhib -> plasma_sglt2_inhib urinary_glucose_excr_auc_24hr
, where the
inhibitor compound plasma_sglt2_inhib
is both a reactant and product of the
reaction.
in the diagram tab, click the gray square reaction block named
renal excretion
.in the property editor pane, update the reaction string to
plasma_glucose plasma_sglt2_inhib -> plasma_sglt2_inhib urinary_glucose_excr_auc_24hr
. a dashed line now connectsplasma_sglt2_inhib
to the reaction block on the diagram tab.note
simbiology uses a dashed line to indicate that a species is both a reactant and product of a reaction and is not being consumed by the reaction.
split and clone block
when there are multiple references to the same quantity, multiple lines are connected to the block. to make the diagram clearer, you can split the block, that is, create copies of the same block, so that each reference is connected to a different copy of the block. you can also clone a block to add another use for it. for instance, you can first clone a species block to reference in multiple expressions. you can then use each clone in each expression as you build the model.
in the following steps, you clone the plasma_sglt2_inhib
block. these
steps are optional and do not have any effect on the model behavior.
click the
plasma_sglt2_inhib
block in the diagram.in the property editor pane, scroll to the split section.
click clone.
in the diagram tab, a cloned block appears next to the original block. each block now has a clone indicator.
you can now move the dashed line to the cloned block. first click the dashed line. press ctrl and drag the dashed line to the cloned block. a green plus icon appears when the line is near the cloned block. release the mouse to attach the line to the cloned block.
you can now move the cloned block closer to the
renal excretion
reaction block to make the diagram easier to read.
incorporate sudden changes in model behavior using event
you can model sudden changes in model behavior based on a specified condition. for example, you can reset a species amount at a certain time point or when a certain concentration threshold is crossed. simbiology lets you model such changes using a modeling component called an event. an event lets you specify discrete transitions in quantity values that occur when a custom condition becomes true. such a condition is called an event trigger. once the condition becomes true, one or more event functions are executed. for details, see .
in the following steps, you reset the total amount of urinary glucose to zero every 24 hours by adding one event trigger and five event functions.
click the plus icon on the browser toolbar. select
add event
. the app moves the focus to the last empty row in the events table.enter the following event trigger:
time >= (num_day 1)*timeday
.in the next eventfcn row, enter
urinary_glucose_excr_auc_24hr = 0
.to add a second event function to the same event, go to the property editor pane of the event. in the event fcns table, double-click the empty row and enter the following:
num_day = num_day 1
.add three more event functions as follows:
plasma_glucose_conc_auc_24hr = 0
vmax_dep_glucose_util = vmax_dep_glucose_util_baseline
beta_glucose_signal = beta_glucose_signal_baseline
.
add doses
simbiology lets you model the increase in the amount of a species due to a stimulus such as
an oral or intravenous administration of a drug. to model such an increase in a species amount,
use the dose modeling component. in the following steps, you model the intake of
the inhibitor drug, such as one time per day for x numbers of days, by
dosing the gi_sglt2_inhib
species.
in the browser pane, click the show doses icon on the toolbar.
the doses tab appears. in the doses section, each row represents a dose. the type column lets you choose between repeat dose (default) and schedule dose. the active column lets you select which doses to apply when you simulate the model.
double-click the name column in the last empty row and enter
sglt2 inhib qd
.in the properties section, for target name, enter
gi_sglt2_inhib
and selectwhole_body.gi_sglt2_inhib
.in the dose section, enter the following:
amount =
300
rate =
0
starttime =
timebreakfast
interval =
1440
repeatcount =
7
in the units section, enter the following:
amountunits =
milligram
rateunits =
timeunits =
minute
represent biological variability using variants
you can model biological variability using a modeling component called a variant. a variant is a collection of quantities with alternative values. for instance, in this example, you can have a set of parameter values for a type 2 diabetic patient and another set of values for a patient without type 2 diabetes.
for the purposes of this example, the model already has two variants. in the following steps, you open the variants tab, where you can edit or add more variants.
in the browser pane, click the show variants icon on the toolbar.
the variants tab appears. in the variants section, each row represents a variant. the active column lets you select which variants to apply when you simulate the model. you can select multiple variants, and if there are duplicate specifications for a quantity value, the last occurrence for the value in the array of variants is used during simulation. the app applies the variants in the order that they appear in the table from top to bottom. reordering the variants can change the initial conditions because the variants are applied in the new order. make sure that you provide the correct order when you simulate the model in the model analyzer app. the value column in the content section shows the final quantity value after applying all variants that you have selected.
by default, the content section shows only those quantities being modified by the variant. to see all model quantities, select
show all quantities in the model
in the display section.
show model equations and initial conditions
you can view the underlying system of equations, namely, ordinary differential equations (odes) and rules that represent the model. simbiology derives the odes from model reactions, and the odes define what quantities to integrate during model simulation. for details, see .
you can use the model equations and initial conditions to debug a model. for instance, you can check the initial conditions of odes to see if the quantity values are initialized as you expect. you can also see how simbiology corrects the dimensions of odes by dividing the right-hand-sides of equations with compartment volumes. the volume-correction information can help you debug unexpected simulation results, especially when you have a multicompartment model with different compartment volumes.
to view the model equations, click the show model equations icon on the toolbar of the browser pane.
the app opens the equations tab.
reaction fluxes
by default, the app embeds the reaction fluxes when it displays in the model equations. clear the embed fluxes check box to see the fluxes section separately.
generally, reaction fluxes are equivalent to reaction rates except that the dimensions of
fluxes are always amount/time
. the dimensions of reaction rates can be in
concentration/time
or amount/time
. for details, see
.
initial conditions
you can view the initial conditions of model quantities, namely compartments, species, and parameters. the initial conditions are the quantity values at simulation time = 0. on the toolbar of the browser pane, select view model documents options > show model initial conditions.
the app adds a column named initial condition to the compartments and species table and parameters table.
define observable expressions
simbiology lets you perform postsimulation calculations by defining and evaluating custom
expressions. such an expression is called an observable
. in the following steps, you
add observable expressions to the model to calculate the cmax and mean values of the
concentration-time profile of the plasma glucose.
click the plus icon on the browser toolbar. select
add observable
. the app moves the focus to the last empty row in the observables table.double-click the empty row and enter the following expression to get the cmax value:
cmax_plasma_glucose = max(plasma_glucose_conc)
.enter the units of the observable as
milligram/deciliter
in property editor.double-click the next empty row and enter the following expression to get the mean value:
mean_plasma_glucose = mean(plasma_glucose_conc)
.enter the units of the observable as
milligram/deciliter
in property editor.
visualize model behavior using model simulation tool
you can visualize the model dynamics by using the model simulation tool. the tool provides a convenient way to simulate the model and plot the time courses of model quantities or observables, without having to run a simulation program in the model analyzer app.
the model simulation tool is located on the right-hand side of the app
beneath the property editor pane. in the following steps, you plot the time
courses of the species plasma_glucose_conc
and
gi_sglt2_inhib
.
note
if you have not completed the prior model building steps, you can load the completed project instead to continue this tutorial.
open the app.
click open and navigate to the folder
matlabroot\examples\simbio\data\
. matlabroot is the folder where you have installed matlab. select the project file namedsglt2_model.sbproj
.
click the arrow next to the tool name which is located below the property editor pane.
click add plot on the toolbar.
plot1 appears. double-click the cell under component name and type:
plasma_glucose_conc
as you type, the app provides suggestions. select
whole_body.plasma_glucose_conc
.select options >
define active variants for simulation
. it opens the variants tab.select type 2 diabetic in the variants table.
select options >
define active doses for simulation
. it opens the doses tab. select daily breakfast, daily lunch, daily evening, and sglt2 inhib qd in the doses table.click run on the tool bar to see the time course of the species.
to export the plot, point the mouse to the top right corner of the table and click the options menu icon. click export plot from the list.
you can also use the context menu of a model quantity to add them to an existing plot or a new plot in the simulation tool. go to the diagram tab (or in the browser pane), right-click the gi_sglt2_inhib species and select plot state > plot1. the species is now added to the plot.
click run again to update the plot.
export model
simbiology model builder lets you export the model to various file formats. you can:
export the model to the matlab workspace. once the model is in the workspace, you can work on it programmatically. for more command-line examples, see build and verify models.
export the model to an sbml file.
that summarizes the various details of the model.
export just the model diagram.
export the model components to excel® files.
on the home tab, in the model section, select export.
tip
you can find the completed model for this example in
matlabroot\examples\simbio\data\sglt2_model.sbproj
,
where matlabroot is the folder where you installed matlab.
references
[1] dalla man, chiara, robert a. rizza, and claudio cobelli. “meal simulation model of the glucose-insulin system.” ieee transactions on biomedical engineering 54, no. 10 (october 2007): 1740–49. .
[2] dalla man, chiara, m. camilleri, and c. cobelli. “a system model of oral glucose absorption: validation on gold standard data.” ieee transactions on biomedical engineering 53, no. 12 (december 2006): 2472–78. .
[3] wright, ernest m., donald d. f. loo, and bruce a. hirayama. “biology of human sodium glucose transporters.” physiological reviews 91, no. 2 (april 2011): 733–94. .