Parameter unit setting problem

3 views (last 30 days)
I observed that the units of the parameters obtained from the literature model are in pg/µl*10^15 *cell^2 *d. When I try to implement it using SimBiology, the system raises an error, and I am unsure how to resolve it.
m2 = sbiomodel('CART1201');
P_IL6 = addparameter(m2, 'P_IL6', 'Units','picogram/(microliter*1e5*cell*cell*day)','ConstantValue',false);
set(P_IL6,'Notes','CART induced IL6 secretion');
m2 = sbiomodel('CART1201');
P_IL6 = addparameter(m2, 'P_IL6', 'Units','picogram/(microliter*10^5*cell*cell*day)','ConstantValue',false);
set(P_IL6,'Notes','CART induced IL6 secretion');
  1 Comment
David Goodmanson
David Goodmanson on 1 Dec 2023
Hi Bohao,
Their 10^15 does not agree with your 10^5, but that is an aside to what I want to ask about. I don't use the units feature of Matlab so I don't know the rules, but would it be possible to create a dimensionless variable called, say, ten15, whose value is 10^15?

Sign in to comment.

Accepted Answer

Arthur Goldsipe
Arthur Goldsipe on 1 Dec 2023
Edited: Arthur Goldsipe on 4 Dec 2023
Hi Bohao,
SimBiology's units functionality does not support embedding numeric multipliers like 10^15. And even after you address that issue, you will probably see that SimBiology warns you because there is no unit called "cell".
My recommendation is to define your own custom units (and possibly a custom unit prefix) to support this set of units. When you do this, your custom definitions are stored in a unit library rather than in your model. This means that if you share your model with someone else, you will also need to share any custom units or unit prefixes that this model references. You can read more about the SimBiology user-defined library here.
To make my answer more concrete, here's sample code that defines a unit for cell and another unit for 10^15:
cell = sbiounit('cell','dimensionless');
sbioaddtolibrary(cell);
times1e15 = sbiounit('times1e15','dimensionless',1e15);
sbioaddtolibrary(times1e15);
m2 = sbiomodel('CART1201');
P_IL6 = addparameter(m2, 'P_IL6');
P_IL6.Units = 'picogram/(microliter*times1e15*cell*cell*day)';
P_IL6.ConstantValue = false;
P_IL6.Notes = 'CART induced IL6 secretion';

More Answers (0)

Communities

More Answers in the  SimBiology Community

Categories

Find more on Extend Modeling Environment in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!