To control the motion of C.crescentus, we firstly constructed the basic circuits, then we built a agent-based modeling with visualization in. What's more, we also started a new web-based modeling framework.
Gene Circuits
We've constructed several modeling skeleton in Matlab Simbiology Package, they are:
- DgrA/DgrB Circuit in regulating the flagellum movement
- HfiA/HfsJ Circuit in regulating the genesis of composing substances holdfast.
DgrA/DgrB Circuit
You can get some basic information from the project part, we will get a brief illustration.
After some analysis, we constructed a rudimentary gene
Equations
$\frac{d([cdiGMP-DgrA])}{dt} = \frac{(Ka \cdot [cdiGMP] \cdot DgrA - Kf \cdot [cdiGMP-DgrA] \cdot FliL - [Kd_{cdiGMP-DgrA}] \cdot [cdiGMP-DgrA])}{cell}$
$\frac{d([cdiGMP-DgrB])}{dt} = \frac{(Kb \cdot [cdiGMP] \cdot DgrB - [Kd_{cdiGMP-DgrB}] \cdot [cdiGMP-DgrB])}{cell}$
$\frac{d(FliL)}{dt} = \frac{(-Kf \cdot [cdiGMP-DgrA] \cdot FliL + Kg_{FliL})}{cell}$
$\frac{d([cdiGMP-DgrA-FliL])}{dt} = \frac{(Kf \cdot [cdiGMP-DgrA] \cdot FliL)}{cell}$
Results
The fellowing pictures simulated the change of [FliL] and [cdiGMP-DgrB] with time. We can read that with upstream signals, the concentration of protein related to the flagellum functions does change.
HfiA/HfsJ Circuit
From our project design, we can get: Upstream promoter Expression Rate $\rightarrow$ HfiA $\rightarrow$ HfsJ $\rightarrow$ Catalyzing Rate
So, we contracted another gene
Equations
$\frac{d(P_{HfiA})}{dt} = -\frac{Vm_{HfiA} \cdot X^n_{HfiA}/(Kp_{HfiA}+X^n_{HfiA})}{cell}$
$\frac{d([X-P_{HfiA}])}{dt} = \frac{Vm_{HfiA} \cdot X^n_{HfiA}/(Kp_{HfiA}+X^n_{HfiA}) - Kd_{c1 }cdot [X-P_{HfiA}]}{cell}$
$\frac{d(mRNA_{HfiA})}{dt} = \frac{Ktc_{HfiA} \cdot P_{HfiA} - Kd_{mRNA_{HfiA}} \cdot mRNA_{HfiA} }{cell}$
$\frac{d(HfiA)}{dt} = \frac{Ktl_{HfiA} \cdot mRNA_{HfiA} - Kd_{HfiA} \cdot HfiA - Kc \cdot HfiA \cdot HfsJ}{cell}$
$\frac{d(P_{HfsJ})}{dt} = \frac{-Vm_{HfsJ} \cdot P_{HfsJ}^n{_{HfsJ}}/(Kp_{HfsJ}+P_{HfsJ}^{n_{HfsJ}})}{cell}$
$\frac{d([CtrA-P_{HfsJ}])}{dt} = \frac{Vm_{HfsJ} \cdot P_{HfsJ}^n{_{HfsJ}}/(Kp_{HfsJ}+P_{HfsJ}^{n_{HfsJ}}) - Kd_{c2 }cdot [CtrA-P_{HfsJ}]}{cell}$
$\frac{d(mRNA_{HfsJ})}{dt} = \frac{Ktc_{HfsJ} \cdot [CtrA-P_{HfsJ}] - Kd_{mRNA_{HfsJ}} \cdot mRNA_{HfsJ}}{cell}$
$\frac{d(HfsJ)}{dt} = \frac{Ktl_{HfsJ} \cdot mRNA_{HfsJ} - Kd_{HfsJ} \cdot HfsJ - Kc \cdot HfiA \cdot HfsJ - Kf \cdot HfsJ \cdot Sub-Kr \cdot EzCom + Kcat \cdot EzCom}{cell}$
$\frac{d([HfiA-HfsJ])}{dt} = \frac{Kc \cdot HfiA \cdot HfsJ}{cell}$
$\frac{d(Sub)}{dt} = \frac{-Kf \cdot HfsJ \cdot Sub-Kr \cdot EzCom}{cell}$
$\frac{d(Pro)}{dt} = \frac{Kcat \cdot EzCom}{cell}$
$\frac{d(EzCom)}{dt} = \frac{Kf \cdot HfsJ \cdot Sub-Kr \cdot EzCom - Kcat \cdot EzCom}{cell}$
Results
We conducted a sensitive analysis here. We can see that the increased concentration of $X$ has a suppressing effect on the protein catalyst rate.
abm
Compared to traditional modeling methods, such as ODE, PDE and many others, the Agent-Based Modeling (ABM) is based on the modeling of individual behaviors.
In ABM, the agent chooses his next step based on the surrounding circumstance. The most intriguing part of ABM is that the overall phenomenon emerges from a large collection of agents. This gives us the opportunity to discover something beyond the scope of traditional modeling methods.
So In our ABM part, we aimed at:
- Give a comprehensive analysis of the artificial system
- Discover fresh new characteristics
- Visualize the collective behaviors of many cells
NetLogo Prototype
We have constructed a agent-based model based on NetLogo, and conducted two experiments in computer.
Specification
- Agent: C.crescentus
- Environment:
- 2-D Plate: Solid surface (where enough nutrition exists in our definition) and liquid environment lacking nutrition.
- Light: effecting the cell's movement ability
- Behavior: The agent cell have two life-stages: swimmer and attached. In the previous state, the cell will move around the plate in a nearly random way; when it gets near to the solid surface, its holdfast will be attached to the surface so it can intake the nutrition from surface. After accumulating enough energy, the cell will start reproducing.
Visualization
You can see that the C.crescentus goes around and get attached.
Light Control
You can toggle the Light
on, and the cells' growth curve will be greatly affected by light. When the light is on, the cell's movement will be inhabited temporarily.
Bonus: Celllab
Celllab is a bio-computing framework under team member Zhen Zhang's developing, enlightened by NetLogo. It is a web-based, flexible framework which is special in the fellowing aspects:
- Viewer can customize the arguments, options etc.
- Running instantly in web browser
- Heavy computing burden can be leveled to server-side.
Components
- Front-end Drawer -- HTML5 Canvas
- Real-time communication -- Socket.io
- Back-end server -- node.js
- ABM system prototype -- SimPy
If you would like to know more about this project, you are welcomed to visit our Github Repo
Results
NetLogo -- Visualization
This is a dynamic visualization of the C.crescentus behaviors. The white to red region is solid surface, which provides necessary nutrition for cells to reproduce. The cells will consume the nutrition as well, but the nutrition is sustainable in this case.
You may want to notice how crescents is attached to the region.
NetLogo -- Light Control
The above picture is the change of cell population with time. When the light is on, the population will decay; When light is off, the population will grow. So we can get a conclusion that through light induced of cell movement, we can control the growing rate of the whole population. The light will inhabit cell's free moving, which prevent the cells from contacting the surface. And in fact, you can also observe the slight delay, which is a reasonable result the massive amount of cells.
Celllab Demo
This is a screenshot of our framework running in browser. You can also click here to see a live demo.
Our aim is to make modeling work presented in a more dynamic, attractive and easy way.
You can set your argument and click run, which will lead you to a real-time simulation.