Difference between revisions of "Team:Paris Bettencourt/Modeling"
Line 22: | Line 22: | ||
<br /> | <br /> | ||
− | <h3> | + | <h3>Deterministic model</h3> |
<h4>Parameters</h4> | <h4>Parameters</h4> | ||
We conceived a simple model with the minimum number of parameters. | We conceived a simple model with the minimum number of parameters. | ||
Line 32: | Line 32: | ||
<li>\(k_{1}\) : rate constant of the mother cell differentiation.</li> | <li>\(k_{1}\) : rate constant of the mother cell differentiation.</li> | ||
<li>\(k_{2}\) : rate constant of the mother cell doubling time.</li> | <li>\(k_{2}\) : rate constant of the mother cell doubling time.</li> | ||
− | <li>\(k_{3}\) : rate constant of the | + | <li>\(k_{3}\) : rate constant of the differentiated cell doubling time.</li> |
− | <li>\(k_{4}\) : rate constant of the | + | <li>\(k_{4}\) : rate constant of the differentiated cell vitamin production.</li> |
<li>\([MC]_0\) : initial concentration of mother cells in the medium.</li> | <li>\([MC]_0\) : initial concentration of mother cells in the medium.</li> | ||
− | <li>\([DC]_0\) : initial concentration of | + | <li>\([DC]_0\) : initial concentration of differentiated cells in the medium.</li> |
</ul> | </ul> | ||
Line 80: | Line 80: | ||
Simple ordinary differential equations resolution methods are used to find the solutions of the previous equations \((5)\), \((6)\), and \((7)\). | Simple ordinary differential equations resolution methods are used to find the solutions of the previous equations \((5)\), \((6)\), and \((7)\). | ||
<br /> | <br /> | ||
− | We expressed the time evolution of the mother cell, | + | We expressed the time evolution of the mother cell, differentiated cell and vitamin concentrations. |
<br /> | <br /> | ||
\[ | \[ | ||
Line 145: | Line 145: | ||
As you can see, we are able to find the best \(k_{1}\) to optimize the vitamin production. | As you can see, we are able to find the best \(k_{1}\) to optimize the vitamin production. | ||
<br /> | <br /> | ||
− | We noticed that two differents \(k_{1}\) exists to optimize the maximum concentration of | + | We noticed that two differents \(k_{1}\) exists to optimize the maximum concentration of differentiated cell \([DC]\) or the maximum concentration of vitamin |
\([Vitamin]\). | \([Vitamin]\). | ||
<br /> | <br /> | ||
In our case, we chose of course the \(k_{1}\) that optimize the vitamin production <i>ie</i> \(k_{1} = 0.207\). | In our case, we chose of course the \(k_{1}\) that optimize the vitamin production <i>ie</i> \(k_{1} = 0.207\). | ||
− | <h4>Deterministic evolution of mother cell, | + | <h4>Deterministic evolution of mother cell, differentiated cell and vitamin concentrations</h4> |
We wrote a deterministic algorithm with MATLAB using the previous solutions \((8)\), \((9)\) and \((10)\). For those interested, the source code is available <a>here</a>. | We wrote a deterministic algorithm with MATLAB using the previous solutions \((8)\), \((9)\) and \((10)\). For those interested, the source code is available <a>here</a>. | ||
<br /> | <br /> | ||
Line 160: | Line 160: | ||
<img src="https://static.igem.org/mediawiki/2015/f/f7/DeterministicEvolution.png" title="Deterministic evolution of the system" alt="Deterministic evolution of the | <img src="https://static.igem.org/mediawiki/2015/f/f7/DeterministicEvolution.png" title="Deterministic evolution of the system" alt="Deterministic evolution of the | ||
system" style="align:center;"> | system" style="align:center;"> | ||
− | As you can see, the mother cell, | + | As you can see, the mother cell, differentiated cell and vitamin concentrations follow an exponential law of time. |
<br /> | <br /> | ||
This result seems relevant. The model does not take into account the cells death and the nutrients present in the medium. | This result seems relevant. The model does not take into account the cells death and the nutrients present in the medium. | ||
<h3>Stochastic model</h3> | <h3>Stochastic model</h3> | ||
− | + | ||
+ | <h4>Parameters</h4> | ||
+ | We used more parameters than the deterministic model. Indeed, because of the nature of the algorithm, we need a constant rate probability distribution. | ||
+ | <br /> | ||
+ | In order to do a simulation with laboratory data, we modelize the time probability distribution with a normalized gaussian distribution using the <b>normrnd</b> MATLAB function. | ||
+ | <br /> | ||
+ | For each time distribution \(i\), we use the following time probability distribution : | ||
+ | \[ | ||
+ | \begin{align} | ||
+ | \mathcal P_{i}(t) = \frac{1}{\sigma_{i}.\sqrt{2\pi}}.e^{\frac{-(t - \mu_{i})^2}{2.\sigma_{i}^2}} | ||
+ | \end{align} | ||
+ | \] | ||
+ | |||
+ | where | ||
+ | <ul> | ||
+ | <li>\(\mathcal P_{i}(t)\) : time \(t\) probability.</li> | ||
+ | <li>\(\mu_{i}\) : time mean.</li> | ||
+ | <li>\(\sigma_{i}\) : time standard deviation.</li> | ||
+ | </ul> | ||
+ | |||
+ | <br /> | ||
+ | |||
+ | Rate constants for the time distribution \(i\) is calculated using this formula : | ||
+ | \[ | ||
+ | \begin{align} | ||
+ | k_{i} = \frac{ln(2)}{t} | ||
+ | \end{align} | ||
+ | \] | ||
+ | |||
+ | The time \(t\) is a random variable with a probability \(\mathcal P_{i}(t)\) as explained above. | ||
+ | |||
+ | <br /> | ||
+ | The vitamin concentration is computed by numerical integration using the rate constant \(k_{4}\). | ||
+ | <br /> | ||
+ | We have ten parameters for this model. | ||
+ | <br /> | ||
+ | <ul> | ||
+ | <li>\(t\) : fermentation period.</li> | ||
+ | <li>\(\mu_{1}\) : mother cell differentiation time mean.</li> | ||
+ | <li>\(\sigma_{1}\) : mother cell differentiation time standard deviation.</li> | ||
+ | <li>\(\mu_{2}\) : mother cell doubling time mean.</li> | ||
+ | <li>\(\sigma_{2}\) : mother cell doubling time standard deviation.</li> | ||
+ | <li>\(\mu_{3}\) : differentiated cell doubling time mean.</li> | ||
+ | <li>\(\sigma_{3}\) : differentiated cell doubling time standard deviation.</li> | ||
+ | <li>\(k_{4}\) : rate constant of the differentiated cell vitamin production.</li> | ||
+ | <li>\(MC_0\) : initial number of mother cells in the medium.</li> | ||
+ | <li>\(DC_0\) : initial number of differentiated cells in the medium.</li> | ||
+ | </ul> | ||
+ | |||
+ | <h4>Algorithm</h4> | ||
+ | |||
+ | <h5>Introduction</h5> | ||
+ | |||
+ | In the programm, each cell is a structure containing three elements : | ||
+ | <ul> | ||
+ | <li>the cell type : | ||
+ | <ul> | ||
+ | <li>1 : mother cell.</li> | ||
+ | <li>2 : differentiated cell.</li> | ||
+ | </ul> | ||
+ | </li> | ||
+ | <li>the next event type : | ||
+ | <ul> | ||
+ | <li>1 : a mother cell become a differentiated cell.</li> | ||
+ | <li>2 : a mother cell divide into two mother cells.</li> | ||
+ | <li>3 : a differentiated cell divide into two differentiated cells.</li> | ||
+ | |||
+ | </ul> | ||
+ | </li> | ||
+ | <li>the time before the next event.</li> | ||
+ | |||
+ | </ul> | ||
+ | |||
+ | <br /> | ||
+ | The time \(T_{i}\) for an event is chosen thanks to the following formula | ||
+ | \[ | ||
+ | \begin{align} | ||
+ | T_{i} = \frac{r}{k_{i}} | ||
+ | \end{align} | ||
+ | \] | ||
+ | |||
+ | where | ||
+ | <ul> | ||
+ | <li>\(r \in [0,1]\) : random number generated with the <b>rand</b> MATLAB function.</li> | ||
+ | <li>\(k_{i}\) : rate constant found in equation \((12)\).</li> | ||
+ | </ul> | ||
+ | |||
+ | <br /> | ||
+ | There is a competition between the first two events concerning the mother cell. | ||
+ | <br /> | ||
+ | Either the mother cell differentiate, or it divide into two differentiated cells. | ||
+ | <br /> | ||
+ | To do the choice, we compare \(T_{1}\) and \(T_{2}\). The smallest time is the next event time. | ||
+ | <br /> | ||
+ | |||
+ | <h5>Step 1 : Initialize the cells</h5> | ||
+ | First of all we have to generate the first cells in accordance with \(MC_0\) and \(DC_0\). | ||
+ | <br /> | ||
+ | For each cell we set the cell type, the next event and the time before the next event. | ||
+ | |||
+ | <h5>Step 2 : Choose the next event among all cell</h5> | ||
+ | We have an array containing all the cells. Each cell contain the time before his next event (duplicate or differentiate). | ||
+ | <br /> | ||
+ | The next event time processed by the algorithm is the smallest cell next event time. | ||
+ | <h5>Step 3 : Do the next event</h5> | ||
+ | Now that we know the next event type and the concerned cell (only one cell is involved here), we compute this event. | ||
+ | <br /> | ||
+ | As explained above, we have three choices. | ||
+ | If the cell is a mother cell, the cell can duplicate or differentiate. | ||
+ | <br /> | ||
+ | If the cell is a differentiate cell, the cell can only duplicate. | ||
+ | <br /> | ||
+ | <br /> | ||
+ | We define a new event and time event for the cell and for the new cell in case of duplication. | ||
+ | <br /> | ||
+ | We also performed the number of vitamin calculus by numerically integrating the number of \(DC\). We use the following formula. | ||
+ | |||
+ | \[ | ||
+ | \begin{align} | ||
+ | Vitamin(t) = Vitamin(t-T_{i}) + k_{4}.DC(t).T_{i} | ||
+ | \end{align} | ||
+ | \] | ||
+ | |||
+ | where | ||
+ | <ul> | ||
+ | <li>\(Vitamin(t)\) : number of vitamin at the instant \(t\)</li> | ||
+ | <li>\(DC(t)\) : number of differentiated cells in the medium at the instant \(t\).</li> | ||
+ | <li>\(T_{i}\) : time of the next event being performed.</li> | ||
+ | <li>\(k_{4}\) : rate constant of the differentiated cell vitamin production.</li> | ||
+ | </ul> | ||
+ | |||
+ | <h5>Step 4 : Update the simulation time</h5> | ||
+ | For each cell except the concerned cell, define the cell next event time with the following formula : | ||
+ | |||
+ | \[ | ||
+ | \begin{align} | ||
+ | T_{event cell} = T_{event cell} - T_{i} | ||
+ | \end{align} | ||
+ | \] | ||
+ | |||
+ | where | ||
+ | <ul> | ||
+ | <li>\(T_{i}\) : time of the next event being performed.</li> | ||
+ | <li>\(T_{event cell}\) : cell next time event.</li> | ||
+ | </ul> | ||
+ | |||
+ | <h5>Step 5 : Go to step 2 until the simulation time is superior to the fermentation period.</h5> | ||
+ | We do this processus until the simulation time is superior to the fermentation period. | ||
+ | Of course, the number of cells increase with an exponential law. The computational power increase too with the same law. | ||
+ | <br /> | ||
+ | Do not try to processed a long simulation time if your computer is not powerful. | ||
+ | <h5>Step 6 : Show the results.</h5> | ||
+ | Here are a graph generated by the stochastic algorithm. | ||
+ | <br /> | ||
+ | <img src="https://static.igem.org/mediawiki/2015/1/14/StochasticEvolution.png" title="Stochastic evolution of the system" alt="Stochastic evolution of the system" style="align:center;"> | ||
+ | |||
+ | With the following distribution of event time probability. | ||
+ | <br /> | ||
+ | <img src="https://static.igem.org/mediawiki/2015/9/97/StochasticEventTimeProbabilityDistribution.png" title="Distribution of event time probability" alt="Distribution of event time probability" style="align:center;"> | ||
+ | |||
<h3>Conclusion</h3> | <h3>Conclusion</h3> | ||
Work in progress. | Work in progress. | ||
− | <h3> | + | <h3>Bibliography</h3> |
− | + | <ul> | |
− | + | <li>Gillespie, D. T. (1976). A general method for numerically simulating the stochastic time evolution of coupled chemical reactions. Journal of Computational Physics, 22(4), 403–434. http://doi.org/10.1016/0021-9991(76)90041-3</li> | |
+ | <li>Gillespie, D. T. (1977). Exact Stochastic Simulation Of Coupled Chemical-Reactions. Journal of Physical Chemistry, 81, 2340–2361. http://doi.org/10.1021/j100540a008</li>4 | ||
+ | <li>Gillespie, D. T. (1992). A rigorous derivation of the chemical master equation. Physica A: Statistical Mechanics and Its Applications, 188(1-3), 404–425. http://doi.org/10.1016/0378-4371(92)90283-V</li> | ||
+ | <li>Cao, Y., Gillespie, D. T., & Petzold, L. R. (2005). The slow-scale stochastic simulation algorithm. The Journal of Chemical Physics, 122(1), 14116. http://doi.org/10.1063/1.1824902</li> | ||
+ | <li>Gillespie, D. T., Hellander, A., & Petzold, L. R. (2013). Perspective: Stochastic algorithms for chemical kinetics. Journal of Chemical Physics, 138(17). http://doi.org/10.1063/1.4801941</li> | ||
+ | |||
+ | </ul> | ||
</html> | </html> | ||
{{Paris_Bettencourt/footer}} | {{Paris_Bettencourt/footer}} |
Revision as of 15:15, 18 August 2015