Creating a cell growth model using SimBiology.
5 views (last 30 days)
Show older comments
Mohamad Uzir
on 12 Dec 2020
Edited: Achal Mahajan
on 1 Jun 2022
I have been watching a few webinars and step-by-step tutorials on MathWorks on how to build models using SimBiology. Most of them relate to PK/PD models and there is one on the COVID-19 SIR model. All are very interesting and I even tweaked the model from the uploaded files. However, I am more interested with the cell growth model that involves a cell (which concentration changes with time) and within the cell compartment (which represented by a compartment in SimBiology) are the nutrients, proteins and enzymes that work to produce the energy required by the cell. Thus, the results of the simulation would be an increase in the number of cells (i.e the compartment) and the reduction of nutrients (species). Could we actually make the compartment as one of the active species, where the species also change with time? Hope any of the MathWorks consultants could help. Much thanks.
0 Comments
Accepted Answer
Arthur Goldsipe
on 14 Dec 2020
Hi,
The capacity of a compartment can vary during the course of a simulation. To do this, you must set the Constant property to false (or the ConstantCapacity property in SimBiology versions before R2019b). Then, you can change the compartment capacity using things like repeated assignment rules, rate rules, and events.
You cannot add additional components of any time (compartments, species, parameters, reactions, etc.) during the course of a simulation. So you cannot directly simulate an increasing number of cells if you need to treat each of them as distinct entitites in your model.
However, you may still be able to model cell growth in SimBiology. The feasibility and exact approach will depend on your goals, but let me offer an example:
Create a SimBiology model of a single growing cell and add a parameter to the model that counts the number of times the cell has divided. Add an event to implement cell division. This event divides each compartment volume and the amount of each species by 2, and increments the counter for the number of cell divisions. Then, simulate your model for the desired time and analyze the results.
3 Comments
Arthur Goldsipe
on 15 Dec 2020
I should have mentioned that compartment dimensions must be volume, area, or length. And the dimensions of each species in a compartment must be amount or concentration, where concentration is amount per volume if the compartment dimensions are volume, and so forth.
I do see how it could be useful to normalize a model in some other way (such as by mass or number). The SimBiology team is considering this enhancement for the future. In the mean time, you can still build your model on the basis of 1 gram or 1 cell, even though you can't explicitly include this information in the units.
More Answers (1)
Achal Mahajan
on 1 Jun 2022
Edited: Achal Mahajan
on 1 Jun 2022
Hi Mohamad,
Here is the sample implementation of the idea that Arthur has outlined above. Creating a SimBiology model with an event that model the cell division. In the code as soon as the time hits t = 2 in the simulation, the volume/area of the cell and it constituent's amount is divided by 2 mimicking cell division.
%Testing the solution that Arthur has specified by adding an event where
%the compartment and specie volume is halved when the cell undergoes
%division where cell is a compartment and there are organelles inside the
%cells which are treated as species in SimBio.
clear all;clc;close all;
model = sbiomodel('example');
model.addcompartment('cell', 1, 'CapacityUnits', 'liter', 'Constant', false);
model.addspecies('A', 'InitialAmount', 1);
r1 = addreaction(model,'A -> B');
kl = addkineticlaw(r1,'MassAction');
p1 = addparameter(model,'p1',0.5);
kl.ParameterVariableNames = 'p1';
% Adding the event
e1 = addevent(model,'time>=2','cell = cell/2');
e1 = addevent(model,'time>=2','A = A/2');
e1 = addevent(model,'time>=2','B = B/2');
sd = sbiosimulate(model);
sbioplot(sd);
0 Comments
Communities
More Answers in the SimBiology Community
See Also
Categories
Find more on Scan Parameter Ranges in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!