Export initial conditions of parameters​/compartme​nts/specie​s into workspace

4 vues (au cours des 30 derniers jours)
Hello,
I have built a PBPK on Simbiology (2023b), with numerous parameters and compartments whose values are mostly defined by initial assignements. I nicely see the initial conditions in the model builder app after activating the initial conditions button in the toolbox. I usually have 1 by default in the value column and my calculated value based on the initial assignements in the initial conditions column.
However, when exporting the model to MATLAB Workspace (via Model tab > Export > Export Model to MATLAB Workspace), I cannot retrieve the initial values, but only the default 1 values appear.
Is there a way to access the initial values in the MATLAB workspace to do some calculations? (both for parameters and compartments)
Or, maybe even better, is there a way to transfer the initial conditions to values, as they remain constant ?
Thank you very much in advance!

Réponse acceptée

Jeremy Huard
Jeremy Huard le 4 Jan 2024
Modifié(e) : Jeremy Huard le 10 Jan 2024
Dear @Justine,
there is currently no built-in command line interface to get the initial conditions.
However, you could simulate the model with StopTime=0 to get these values.
I have attached an implementation of this approach (sbiogetInitialValues.m) that returns both a table and a variant with the computed initial values.
Here is an example:
s = sbioloadproject('lotka.sbproj');
modelObj = s.m1;
modelObj.Species
ans =
SimBiology Species Array Index: Compartment: Name: Value: Units: 1 unnamed x 1 2 unnamed y1 900 3 unnamed y2 900 4 unnamed z 0
% let's now add initial assignments and check the initial values
addrule(modelObj,'x = z','initialAssignment');
addrule(modelObj,'z = 100','initialAssignment');
[tableOut, variantOut] = sbiogetInitialValues(modelObj)
tableOut = 8×4 table
Type Name Property Value _______________ ________________ _________ _____ {'compartment'} {'unnamed' } {'Value'} 1 {'species' } {'x' } {'Value'} 100 {'species' } {'y1' } {'Value'} 900 {'species' } {'y2' } {'Value'} 900 {'species' } {'z' } {'Value'} 100 {'parameter' } {'Reaction1.c1'} {'Value'} 10 {'parameter' } {'Reaction2.c2'} {'Value'} 0.01 {'parameter' } {'Reaction3.c3'} {'Value'} 10
variantOut =
SimBiology Variant - Initial values (inactive) ContentIndex: Type: Name: Property: Value: 1 compartment unnamed Value 1.0 2 species x Value 100.0 3 species y1 Value 900.0 4 species y2 Value 900.0 5 species z Value 100.0 6 parameter Reaction1.c1 Value 10.0 7 parameter Reaction2.c2 Value .01 8 parameter Reaction3.c3 Value 10.0
I hope this helps.
Best regards,
Jérémy

Plus de réponses (0)

Communautés

Plus de réponses dans  SimBiology Community

Catégories

En savoir plus sur Import Data dans Help Center et File Exchange

Tags

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by