Creating a cell growth model using SimBiology.
41 views (last 30 days)
Mohamad Uzir on 12 Dec 2020
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.
Arthur Goldsipe on 14 Dec 2020
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.
More Answers (1)
Achal Mahajan on 1 Jun 2022 at 15:21
Edited: Achal Mahajan on 1 Jun 2022 at 15:29
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);
More Answers in the SimBiology Community