Any progress on relaxing the constraints on species units?

In SimBiology, there is a limited set of units one case use. Amount, or concentration.
This is often inconvenient, as (for example) I might want to use timers (units of time), or surrogates for concentration (like MFI for nanomoles/milliliter). Too, many sbml models use units that aren't in the set of acceptable ones.
One can use user-defined units, but these generally link with defined units and this means that one could have unit conversions that have no bearing on reality.
What is the recommended work-around for this?
What progress has been made with respect to allowing species units that are neither amounts nor concentrations?
Thanks!

 Accepted Answer

I'd love to pick your brain about exactly what you need and expect from such functionality!
Which is to say that today species in SimBiology are still constrained to have units of amount/mass or concentration. The two most common workarounds I can think of are to use parameters and rate rules instead of species and reactions or to reformulate your problem so that species can be written with units of amount or concentration. For example, I've seen models where species amounts are scaled by body mass (with units of mg/kg). In such cases, I've recommended writing the model (namely, species and reactions) on the basis of 1 kg of body mass, and then rescaling the results as needed either via post-processing or via repeated assignment rules and/or observables.
And let me give you some insight into why this is such a challenge. Today, SimBiology needs to be able to perform mass balances for all species. We need to know whether the units of a species are in extensive (amount) or intensive (concentration) units, and how to convert between the two. For example, we know we can a species concentration by the corresponding compartment volume to determine the amount. We also need to know how to convert all reaction rates to amount/time. Or in the case of most reactions that span multiple compartments, we need to ensure that the user-specified reaction rate is explicitly in amount/time (unless it's clear which compartment volume we need to multiply by). And this is related to why we don't allow one species in a reaction to use mass units (like kilogram or kilogram/liter) while another uses amount (mole, molecule, molar, etc.), since we don't yet have a way to explicitly specify the molecular weight of a species.
Anyway, here are some of the things I'd like know from you: What is MFI? What does the larger modeling approach look like in cases where you want more flexible units? Will you have one or multiple compartments? Will you mix extensive and intensive units for species? For reaction rates? Any concrete examples you can share would be extremely helpful. Feel free to reach out to me via email to follow up on this.
Thanks,
Arthur

10 Comments

MFI -- I wonder if that is intended to be mean fluorescence intensities ?
Arthur, your answers are always so informative and spot-on. Many thanks. So, to address one point that may serve as an example, MFI is mean fluorescence intensity. Stealing from ResearchGate: "Mean Fluorescent Intensity (MFI) is often used to compare expression of target of interest (TOI) across samples/ cell populations in Flow cytometry. It gives reliable information about expression/ presence of TOI within the experiment." So I could be setting this up a model including cell-surface receptors. I could (I guess) include a cell compartment, and use a proportion as a unit, but the original model I'm using as a basis assumes that the number of receptors can be expressed as a separate differential equation. So I have a d[MFI]/dt expression in the model. I could assume a conversion function to get number of receptors from the MFI (there is a linear, or log-log linear relationship) but this 1) changes the client's equation and 2) requires a conversion function with at least 1 and perhaps more parameters.
I've also used expressions to run timers, and also to simulate people (nuimber of people in the US, number of people with diabetes, number of people diagnosed, etc).
Don't know if this helps, or just highlights my cluelessness. Hope its the former.
Without any additional information to go on, I'd suggest using parameters and rate rules for things like MFI. Then, you can use whatever units you want for the parameter. The only down side is that you don't get the automatic bookkeeping of assembling all the appropriate flux terms across multiple species and multiple reactions. Since reactions are still the big challenge for me, please share any larger examples you can that illustrate what would be helpful to model via reactions rather than rate rules. I know it's not always possible to share customer models, but if you see anything relevant in the literature please pass it along.
Hi Arthur, Sorry to not get back to you very promptly. I hope that you are well. The issue was just re-presented to my attention. So here's some scenerii (?). These would be units that pop up in a) client models, b) published models in sbml.
1) Units of MFI (Mean Fluorescent Intensity - a surrogate for concentration of cells)
2) quantity/kg body weight. A scaled quantity.
The problem is that if I'm trying to import a model from sbml (or a matlab file) the ability to not import these units, and having to scratch my head to fool simbiology into accepting some surrogate unit (farquhars per square furlong... no, wait, that wouldn't work either) in which I can integrate a legitimate state and ensure that the units conversion is correct, precludes the use of simbiology for the problem.
It would be nice to have a flag on species that would basically say "No unit conversion - user verifies units" would be nice. Then I could import/translate from matlab some models to sbml. Having been a software product manager though, I know that an idea sounds simple may not be very easy to code...
I understand the workaround - to use amount units and to create a normalization variable (bodyweight or psuedoweight=1kg) - for this. But if I have to import, test, and evaluate 3 sbml models and they all use mg/kg for 15 or twenty variables, and I have to go through all the rate equations manually to substitute the variable with the correct units in it, it gets .... tedious! And error prone. So its a barrier to use.
Best regards.
Thanks. I'm still struggling to understand how these species are used in the larger context of the model, specificly in reactions or other rate equations. You mentioned published models in SBML. Can you point me to any such models? Or any other complete/standalone examples?
For MFI, a client used MFI as a surrogate for cell density, and so had an expression for d (MFI)/dt in the model. Sorry, can't show you this!
For an instance where the modelers chose to model some states as weight-normalized, I cite the following paper on glucose and TG. Several states are in milligram/kilogram. And just changing those states to "pseudo mg/kg" means that I have to create new parameters that ARE in mg/kg, and set those equal to the state/kg, and then change parameter units - several dozen (not sure how exact that is - I'm still slogging through this). What it means is that I take several days to implement a model in SB when (if a perfectly reasonable set of units could be accepted) it should take a couple of hours. This is already having me use libroadrunner rather than SB on several projects. So it's a real downside.
Citation is:
Model-Based Quantification of the Systemic Interplay between Glucose and Fatty Acids in the Postprandial State, Fianne L. P. Sips, et al., PLOS ONE, 2015
Thanks for the concrete examples. That's very helpful.
Arthur,
This issue came up again. I'm looking at Miyano et al. 2021 "A Mathematical Model to Identify Optimal Combinations of Drug Targets..." In the model, concentrations of endogenous compounds are given in "fold" over the original concentration. One reason to like this is that all initial conditions are 1, and the variables scaling is inherent in the model!
One can write the model in Matlab or Python with these units, or one can just ignore the units and not enter anything, which kind of defeats the purpose of having units.
Is no one else finding this a barrier to using SimBiology?
Thanks,
Jim
Thanks for sharing this reference. I'll add a note to our enhancement database. I hope you and other SimBiology users continue to share what's making it harder for you to use SimBiology. That feedback makes it much easier for us to figure out what we should be working on next. And in particular, it would be helpful to know how common a problem the unit limitations are for our users.
I guess not a common problem. But a couple of cases could use more flexible units. Perhaps a special flag so that units checking is turned off for that species. But here you go:
1) units of cells. Often used in biomodels. I can define cells as a new unit (an "item": is that best).
2) units based upon assays. Like an amount in MFI (above) or in Arginase I units (relating to the amount of the enzyme that can produce a certain amount of Urea). The moles and molar concentraiton of Arg 1 enzyme is not certain, but the reaction rate is. Essentially defining the species as Enzyme_Amount*rate_constant units.
3) time. I can think of situations where I want to initiate a timer. I can workaround I guess (timer1 = time - start_timer1). But I found the lack of ability to create my own time states less than optimal.

Sign in to comment.

More Answers (0)

Communities

More Answers in the  SimBiology Community

Categories

Products

Release

R2021b

Community Treasure Hunt

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

Start Hunting!