Alberto cm98 (Talk | contribs) |
Alberto cm98 (Talk | contribs) |
||
Line 90: | Line 90: | ||
">Index</h4> | ">Index</h4> | ||
<ul class="lateral"> | <ul class="lateral"> | ||
− | <li class="lateral | + | <li class="lateral"> |
<div class="tab__title" style=" | <div class="tab__title" style=" | ||
line-height: 1.3em; | line-height: 1.3em; | ||
"> | "> | ||
− | <a href="# | + | <a href="#models" class="lateral inner-link" style=" |
color: #353535; | color: #353535; | ||
opacity: 1; | opacity: 1; | ||
− | list-style-type: circle; | + | ">Models & Experiments</a> |
− | + | <!--<ul style="list-style-type: circle;"> | |
+ | <li><p> | ||
+ | <a href="#design_process" class="lateral inner-link" style=" | ||
+ | color: #353535; | ||
+ | opacity: 1; | ||
+ | ">Modeling process</a> | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | <a href="#const_models" class="lateral inner-link" style=" | ||
+ | color: #353535; | ||
+ | opacity: 1; | ||
+ | ">Constitutive expression models</a> | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | <a href="#ind_models" class="lateral inner-link" style=" | ||
+ | color: #353535; | ||
+ | opacity: 1; | ||
+ | ">Inducible expression models</a> | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | <a href="#optimization" class="lateral inner-link" style=" | ||
+ | color: #353535; | ||
+ | opacity: 1; | ||
+ | ">Multi-objective parameter optimization</a> | ||
+ | </p></li> | ||
+ | </ul>--> | ||
</div> | </div> | ||
</li> | </li> | ||
Line 105: | Line 130: | ||
line-height: 1.3em; | line-height: 1.3em; | ||
"> | "> | ||
− | <a href="# | + | <a href="#simtool" class="lateral inner-link" style=" |
color: #353535; | color: #353535; | ||
opacity: 1; | opacity: 1; | ||
− | "> | + | ">Simulation Tool</a> |
</div> | </div> | ||
</li> | </li> | ||
Line 115: | Line 140: | ||
line-height: 1.3em; | line-height: 1.3em; | ||
"> | "> | ||
− | <a href="# | + | <a href="#references" class="lateral inner-link" style=" |
color: #353535; | color: #353535; | ||
opacity: 1; | opacity: 1; | ||
− | "> | + | ">References</a> |
</div> | </div> | ||
</li> | </li> | ||
− | + | <!--</ul> | |
− | <ul class="tabs-content"> | + | <ul class="tabs-content">--> |
</ul> | </ul> | ||
</div> | </div> | ||
</div> | </div> | ||
− | <div style=" | + | <div class="col-md-9 col9Attr" style="padding-left: 6em;padding-right: 2em;"> |
− | "> | + | <div> |
− | < | + | <a class="anchorOffset" id="lmModeling"></a> |
− | + | <h2 class="h2Modeling">Modeling</h2> | |
− | + | <p> | |
− | + | <b>Do you think it is possible to mathematically describe a cell? Would you like to know the possibilities that modeling offers you?</b> | |
− | + | </p> | |
− | "> | + | <p> |
− | <p>We | + | One of the fundamental bases of the Printeria project has undoubtedly been <b>mathematical modeling</b>. Thanks to the development and application of new mathematical models, it is possible to <b>quantify the expression of proteins</b> in cells, and therefore <b>characterize</b> through different experiments the parts designed by Printeria. From the Printeria Modeling team, we intend to reach different goals: |
+ | </p> | ||
+ | <ul> | ||
+ | <li><p> | ||
+ | <b>Design simple mathematical models</b> based on differential equations that describe the biochemical processes of a cell. With them, we can simulate the different genetic circuits that Printeria allows us to build. | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | Develop a <b>Simulation Tool</b> that allows the user to visualize a prediction of the results of their experiment before running it in Printeria. | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | <b>Optimize model parameters</b> to match simulation results to experimental data obtained from Printeria constructions. | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | <b><a href="https://2018.igem.org/Team:Valencia_UPV/Experiments#imCharact" target="_blank">Characterize the parts</a>of our <a href="https://2018.igem.org/Team:Valencia_UPV/Part_Collection" target="_blank">Part Collection</a></b> from the optimization results and provide the user with all the information about the Printeria kit. | ||
+ | </p></li> | ||
+ | </ul> | ||
+ | <p> | ||
+ | Although in the development of the project we have dealt with all these aspects, all of them have a single purpose: demonstrate the importance and many applications of <b>describing in a mathematical way the biological processes</b> that take place inside the cell. | ||
+ | </p> | ||
+ | <!--BOTONES PARA MOVERSE POR LA PÁGINA --> | ||
+ | <!--Los enlaces están bien pero los ids a donde apuntan están descuadrados adrede para que al pulsar lleve un poco por encima del contenido --> | ||
+ | <div id="" data-scroll-id="" tabindex="-1" style="outline: none;margin-top: 1em;margin-bottom: 1em;justify-content: center;" class="row"> | ||
+ | <div class="col-md-3" style="text-align: center;margin-right: 2em;"> | ||
+ | <a class="inner-link" href="#models"><img class="fotosModeling" src="https://static.igem.org/mediawiki/2018/c/ca/T--Valencia_UPV--instagramUPV2018.png"></a> | ||
+ | <p style="text-align: center !important; font-weight: bold;">Models & Experiments</p> | ||
+ | </div> | ||
+ | <div class="col-md-3" style="text-align: center;margin-right: 2em;"> | ||
+ | <a class="inner-link" href="#simtool"><img class="fotosModeling" src="https://static.igem.org/mediawiki/2018/c/ca/T--Valencia_UPV--instagramUPV2018.png"></a> | ||
+ | <p style="text-align: center !important; font-weight: bold;">Simulation Tool</p> | ||
+ | </div> | ||
+ | </div> | ||
+ | <!--FIN BOTONES PARA MOVERSE POR LA PÁGINA --> | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | <div> | ||
+ | <a class="anchorOffset" id="models"></a> | ||
+ | <h3>Models & Experiments</h3> | ||
+ | <p><a href=""></a> | ||
+ | The development of <b>new and simple mathematical models</b> has been one of the essential bases of the Printeria project. The models offer us a <b>multitude of applications</b>: to describe the basic biochemical reactions of the cell, to <a href="#charact" class="inner-link">characterize</a> the parts of our Printeria kit by means of different experiments or to elaborate <a href="#simtool" class="inner-link">new tools</a> that facilitate to our user the learning of Synthetic Biology. | ||
+ | </p> | ||
+ | <p> | ||
+ | In Printeria Modeling team, we have grouped the models designed in <b>two fields</b>: <a href="#const_models" class="inner-link"><b>constitutive expression models</b></a> and <a href="#ind_models" class="inner-link"><b>inducible expression models</b></a>. We have also established an <a href="#https://2018.igem.org/Team:Valencia_UPV/Experiments#exp_protocol" class="inner-link"><b>experimental protocol</b></a> and a <a href="#optimization" class="inner-link"><b>multi-objective optimization protocol</b></a> in order to contrast theoretical and experimental results. With them, we can describe practically all the cells modified with Printeria. | ||
+ | </p> | ||
+ | <p align="center"> | ||
+ | <b>Want to find out more about how we did it?</b> | ||
+ | </p> | ||
+ | |||
+ | <a class="anchorOffset" id="design_process"></a> | ||
+ | <h4>Modeling process</h4> | ||
+ | <p> | ||
+ | At the beginning of the design of any mathematical model, we have started from a <b>cell scheme</b> in which all the <b>cellular biochemical reactions</b> we wish to model are represented. From the reactions, a set of equations is deduced. Each of these equations describes the <b>temporal variation of the biochemical species</b> in the cell (DNA, RNA, proteins...), and depends on a set of <b>parameters with a physical meaning</b>. | ||
+ | </p> | ||
+ | <img src="https://static.igem.org/mediawiki/2018/7/7e/T--Valencia_UPV--esq_modelingUPV2018.png"> | ||
+ | <p> | ||
+ | Because they are <b>differential and generally non-linear equations</b>, mathematical models are simulated using software tools such as MATLAB. The results obtained from the <b>simulation</b> reflect the evolution of the <b>concentration of biochemical species over time</b>. These theoretical results can be contrasted with the experimental data obtained in the laboratory and and thereby adjust the parameters so that the model adapts to the data in an optimal way. This process, called <b>multiobjective parameter optimization</b>, is the process that allows us to <b>validate our models</b> and see if they respond to what happens inside the cells. | ||
+ | </p> | ||
+ | <p> | ||
+ | In the development of the set of mathematical models that describe the genetic circuits printed by Printeria, we have prioritized <b>simplicity over complexity</b> of the model. A more complex model may be more precise, but it requires a large number of parameters whose value is often unknown. Therefore, our models are composed of <b>few equations and parameters</b>, and they are all <b>deterministic models</b>, that is, their parameters take a concrete, non-probabilistic value. | ||
+ | </p> | ||
+ | |||
+ | <a class="anchorOffset" id="const_models"></a> | ||
+ | <h4>Constitutive expression models</h4> | ||
+ | <p> | ||
+ | Constitutive expression models are those in which the expression of the <b>cell's messenger RNA (mRNA) is not regulated</b>. The gene does not depend on any inducing biochemical species, so it will produce RNA molecules continuously, and therefore the translation of the protein will also be constant. | ||
+ | </p> | ||
+ | <h5><i>Model design</i></h5> | ||
+ | <p> | ||
+ | A simple scheme that summarizes the cellular transcription and translation processes in a constitutive expression model is shown in the following Figure. We only consider as biochemical species involved in reactions to mRNA and our protein of interest (PoI). | ||
+ | </p> | ||
+ | <img src="https://static.igem.org/mediawiki/2018/5/54/T--Valencia_UPV--const_schemaUPV2018.png"> | ||
+ | |||
+ | <p> | ||
+ | From the cell schema we can deduce the following biochemical reactions. | ||
+ | </p> | ||
+ | <img src="https://static.igem.org/mediawiki/2018/0/08/T--Valencia_UPV--react_constUPV2018.png"> | ||
+ | <table style="width:100%"> | ||
+ | <tr> | ||
+ | <th><p>Parameter</p></th> | ||
+ | <th><p>Description</p></th> | ||
+ | <th><p>Units</p></th> | ||
+ | <th><p>Value</p></th> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>C<sub>R</sub></p></td> | ||
+ | <td><p>Constitutive transcription rate is calculated by multiplying the transcription rate per plasmid K<sub>R</sub> by the mean plasmids copy number in cell c<sub>n</sub> . In our case, we are using the pMBI replication origin, so c<sub>n</sub> <meta charset="utf-8">∼ 500, and C<sub>R</sub> = K<sub>R</sub>·c<sub>n</sub>.</p></td> | ||
+ | <td><p>molecules.min<sup>-1</sup></p></td> | ||
+ | <td><p><a href="">---</a></p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>p</p></td> | ||
+ | <td><p>Translation rate</p></td> | ||
+ | <td><p>min<sup>-1</sup></p></td> | ||
+ | <td><p><a href="">---</a></p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>d<sub>m</sub></p></td> | ||
+ | <td><p>mRNA degradation rate</p></td> | ||
+ | <td><p>min<sup>-1</sup></p></td> | ||
+ | <td><p><a href="">---</a></p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>d<sub>p</sub></p></td> | ||
+ | <td><p>PoI degradation rate</p></td> | ||
+ | <td><p>min<sup>-1</sup></p></td> | ||
+ | <td><p><a href="">---</a></p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p><meta charset="utf-8">μ</p></td> | ||
+ | <td><p>Dilution rate</p></td> | ||
+ | <td><p>min<sup>-1</sup></p></td> | ||
+ | <td><p><a href="">---</a></p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>K<sub>max</sub></p></td> | ||
+ | <td><p>Maximum growth capacity</p></td> | ||
+ | <td><p>cells</p></td> | ||
+ | <td><p><a href="">---</a></p></td> | ||
+ | </tr> | ||
+ | </table> | ||
+ | <a id="LMA" class="anchorOffset"></a> | ||
+ | <p> | ||
+ | With the reactions and approximations already established, we apply the <b>Law of Mass Action kynetics</b>[<a href="#references" class="inner-link">1</a>] (LMA) to deduce the differential equations. The LMA establishes that the variation of the species resulting from a reaction is proportional to the product of the reactants. In our case, to the set of differential equations deduced from the reactions we add a cell growth equation. Biochemical species and our model of equations obtained are shown below. | ||
+ | </p> | ||
+ | <table style="width:100%"> | ||
+ | <tr> | ||
+ | <th><p>Variable</p></th> | ||
+ | <th><p>Biochemical species</p></th> | ||
+ | <th><p>Units</p></th> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>n<sub>1</sub></p></td> | ||
+ | <td><p>mRNA</p></td> | ||
+ | <td><p>Molecules</p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>n<sub>2</sub></p></td> | ||
+ | <td><p>PoI</p></td> | ||
+ | <td><p>Molecules</p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>n<sub>3</sub></p></td> | ||
+ | <td><p>Number of cells</p></td> | ||
+ | <td><p>Cells</p></td> | ||
+ | </tr> | ||
+ | </table> | ||
+ | <img src="https://static.igem.org/mediawiki/2018/e/e1/T--Valencia_UPV--eq_constUPV2018.png"> | ||
+ | <p> | ||
+ | By obtaining the equations, and seeking the simplicity of the model, a series of <b>quasi-steady state approximations</b> [<a href="#references" class="inner-link">2</a>] have been made. We have established that mRNA is generated with a constant C<sub>R</sub> constitutive transcription rate. Another consideration has been to assume that the copy number of plasmids c<sub>n</sub> in cell is a constant. We have also proposed that other species such as ribosomes, which also participate in transcription, are constant over time. | ||
+ | </p> | ||
+ | <p> | ||
+ | After developing the model and raising the reactions and equations, two files have been programmed in MATLAB: the <a href="https://static.igem.org/mediawiki/2018/e/e1/T--Valencia_UPV--mc_simpleUPV2018.txt" target="_blank">mc_simple.m</a> function, which describes the system of differential equations, and the script <a href="https://static.igem.org/mediawiki/2018/4/4e/T--Valencia_UPV--model_const_simpleUPV2018.txt" target="_blank">model_const_simple.m</a> in which the parameters are defined and the model is solved by the <a href="https://es.mathworks.com/help/matlab/ref/ode45.html?searchHighlight=ode45&s_tid=doc_srchtitle" style="padding-right: 0" target="_blank">ode45</a> MATLAB function. The result of the simulation of the model is shown in the following Figure. | ||
+ | </p> | ||
+ | <img src="https://static.igem.org/mediawiki/2018/f/f1/T--Valencia_UPV--model_const_sim_graphUPV2018.png"> | ||
+ | |||
+ | <p> | ||
+ | In the simulation of mRNA and PoI we distinguish two phases in the temporal evolution of the species: the transient phase and the stationary phase. If we perform different simulations varying some parameters of the model, we can observe how the equilibrium value of the stationary phase varies. MATLAB script <a href="https://static.igem.org/mediawiki/2018/4/4d/T--Valencia_UPV--mc_sim_analysisUPV2018.txt" target="_blank">mc_sim_analysis.m</a> repeatedly simulates the model by varying the C<sub>R</sub> and p parameters, and graphs the results. The following Figure shows how an increase in both ratios implies a greater expression of the protein. | ||
+ | </p> | ||
+ | <img src="https://static.igem.org/mediawiki/2018/f/f9/T--Valencia_UPV--mc_sim_analysis_graphUPV2018.png"> | ||
+ | <p> | ||
+ | At this point anyone could ask us: <b>Which are the advantages of a constitutive expression model like this? Why is a model like this really useful to us?</b> Faced with these questions, the Printeria Modeling team has looked for the answers in the great characteristics that the model offers us. | ||
+ | </p> | ||
+ | <ul> | ||
+ | <li><p> | ||
+ | A simple, <b>easy-to-understand model</b> that clearly explains the processes of cellular transcription and translation. | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | It is <b>valid for any Printeria construction</b> that has a constitutive expression promoter. The variation between different constructions occurs in the parameters values, not in the model equations! | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | It has <b>few parameters</b>, with a clear physical meaning, and <b>easily optimizable</b>. | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | As a compact model, <b>simulations and optimizations</b> are performed <b>at high speed</b>. | ||
+ | </p></li> | ||
+ | </ul> | ||
+ | |||
+ | <h5><i>Experiments & Optimization</i></h5> | ||
+ | <p> | ||
+ | The simple model of constitutive expression is a model that characterizes a large number of Printeria Transcriptional Units (TU), specifically, all those constructions whose promoter is constitutive. We know that all these TU follow the <b>same model</b>, but each one has <b>different parameters</b>, and therefore different experimental values of fluorescence and absorbance. Faced with this situation, the Printeria Lab and Modeling teams have designed some experiments, in which we have applied the <a href="#optimization" class="inner-link">multi-objective parameter optimization</a>, and thus check whether the designed constitutive expression model responds to experimental reality. | ||
+ | </p> | ||
+ | |||
+ | |||
+ | <a class="anchorOffset" id="RBS_exp"></a> | ||
+ | <h7><b>Experiments changing RBS</b></h7> | ||
+ | <p> | ||
+ | We have designed <b>two experiments</b> following the same <a href="#https://2018.igem.org/Team:Valencia_UPV/Experiments#exp_protocol" class="inner-link">experimental protocol</a>. In them we have assembled different Printeria TU with the same promoters, CDS (<a href="http://parts.igem.org/Part:BBa_K2656013" target="_blank">sfGFP</a> reporter protein) and transcriptional terminator, but with <b>different RBS</b>. After obtaining the results, and following the <a href="#optimization" class="inner-link">optimization protocol</a>, we have obtained the parameters of the model and have validated our model. | ||
+ | </p> | ||
+ | <a class="anchorOffset" id="RBS_list"></a> | ||
+ | <p><b>Printeria RBS</b>:</p> | ||
+ | <ul> | ||
+ | <li><p> | ||
+ | <b>Strong expression</b>: <a href="http://parts.igem.org/Part:BBa_K2656009" target="_blank" style="padding-right: 0">BBa_K2656009</a>. | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | <b>Medium expression</b>: <a href="http://parts.igem.org/Part:BBa_K2656011" target="_blank" style="padding-right: 0">BBa_K2656011</a>. | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | <b>Low expression</b>: <a href="http://parts.igem.org/Part:BBa_K2656010" target="_blank" style="padding-right: 0">BBa_K2656010</a>. | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | <b>Very low expression</b>: <a href="http://parts.igem.org/Part:BBa_K2656008" target="_blank" style="padding-right: 0">BBa_K2656008</a>, <a href="http://parts.igem.org/Part:BBa_K2656012" target="_blank" style="padding-right: 0">BBa_K2656012</a>. | ||
+ | </p></li> | ||
+ | </ul> | ||
+ | <table style="width:100%"> | ||
+ | <tr> | ||
+ | <th><p>Experiment parameters</p></th> | ||
+ | <th><p>Description</p></th> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>Time</p></td> | ||
+ | <td><p>06:00:00 (HH:MM:SS). Measurement interval: 05:00 (MM:SS)</p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>Number of samples</p></td> | ||
+ | <td><p>8 samples for each TU colony</p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>Number of medium samples</p></td> | ||
+ | <td><p>8 samples of M9 medium</p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>Temperature</p></td> | ||
+ | <td><p>37 ºC</p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>Shake</p></td> | ||
+ | <td><p>Double Orbital. Continuously</p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>Absorbance. Optical Density (OD) measure</p></td> | ||
+ | <td><p>Wavelenght at 600 nm emission</p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>Excitacion wavelength</p></td> | ||
+ | <td><p>Wavelenght at 485 nm</p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>Emission wavelength</p></td> | ||
+ | <td><p>Wavelenght at 528 nm</p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>Gain (G)</p></td> | ||
+ | <td><p>60</p></td> | ||
+ | </tr> | ||
+ | </table> | ||
+ | |||
+ | <table style="width:100%"> | ||
+ | <tr> | ||
+ | <th><p>Optimization specifications</p></th> | ||
+ | <th><p>Description</p></th> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>Parameters</p></td> | ||
+ | <td> | ||
+ | <p>Constitutive transcription rate C<sub>R</sub>: fixed</p> | ||
+ | <p><b>Translation rate p: to optimize</b></p> | ||
+ | <p><b>PoI degradation rate d<sub>p</sub>: to optimize</b></p> | ||
+ | <p>mRNA degradation rate d<sub>m</sub>: fixed</p> | ||
+ | <p><b>Dilution rate <meta charset="utf-8">μ: to optimize</b></p> | ||
+ | <p>Maximum growth capacity K<sub>max</sub>: experimental value</p> | ||
+ | </td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>Objetives to optimize</p></td> | ||
+ | <td> | ||
+ | <p>For each TU, we set 2 objetives: FOD (Fluorescence) and OD (Absorbance). In each experiment we have measured 3 TU, so we are optimizing <b>6 objectives per experiment</b></p> | ||
+ | </td> | ||
+ | <tr> | ||
+ | <td><p>Parameter ranges</p></td> | ||
+ | <td> | ||
+ | <p>Translation rate p: [0.001 - 6] min<sup>-1</sup> </p> | ||
+ | <p>PoI degradation rate d<sub>p</sub>: [0.0058 - 0.0087] min<sup>-1</sup> </p> | ||
+ | <p>Dilution rate <meta charset="utf-8">μ: [0.0058 - 0.035] min<sup>-1</sup> </p> | ||
+ | </td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>MATLAB files</p></td> | ||
+ | <td> | ||
+ | <p><b>spMODEparam.m</b>: it defines the parameters to be optimized, their value ranges, number of objectives, the cost function, the identification and validation experimental data and other spMODE algorithm parameters. When the script is executed, a spMODEDat structure variable is defined. This structure contains all the standardized optimization information that the spMODE algorithm will need for its execution.</p> | ||
+ | <ul> | ||
+ | <li><p> | ||
+ | Experiment 1: <a href="https://static.igem.org/mediawiki/2018/c/c9/T--Valencia_UPV--spMODEparam_exp1sfGFPUPV2018.txt" target="_blank">spMODEparam_exp1sfGFP.m</a> | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | Experiment 2: <a href="https://static.igem.org/mediawiki/2018/0/0d/T--Valencia_UPV--spMODEparam_exp2sfGFPUPV2018.txt" target="_blank">spMODEparam_exp2sfGFP.m</a> | ||
+ | </p></li> | ||
+ | </ul> | ||
+ | <p><a href="https://static.igem.org/mediawiki/2018/4/45/T--Valencia_UPV--spMODEUPV2018.txt"><b>spMODE.m</b></a>: it contains the <a href="https://es.mathworks.com/matlabcentral/fileexchange/39215-multi-objective-differential-evolution-algorithm-with-spherical-pruning" target="_blank" style="padding-right: 0">Multi-objective Differential Evolution Algorithm with Spherical Pruning</a>, which optimizes parameters for our experimental results (to execute spMODE.m file we need also <a href="https://static.igem.org/mediawiki/2018/9/99/T--Valencia_UPV--SphPruningUPV2018.txt">SphPruning.m</a> file).</p> | ||
+ | <p><a href="https://static.igem.org/mediawiki/2018/9/95/T--Valencia_UPV--CostFunction_RBS_RMS_2nUPV2018.txt" target="_blank"><b>CostFunction_RBS_RMS_2n.m</b></a>: it simulates the model with different vector parameters, and calculates the Root Mean Square Error with the identification dataset. Then, it returns the error for each objective and parameter vector.</p> | ||
+ | <p><a href="https://static.igem.org/mediawiki/2018/e/e4/T--Valencia_UPV--levelDiagramUPV2018.txt" target="_blank"><b>levelDiagram.m</b></a>: plots Pareto front and Pareto set that gives us back the algorithm.</p> | ||
+ | <p><a href="https://static.igem.org/mediawiki/2018/3/3f/T--Valencia_UPV--execute_RBS_2nUPV2018.txt" target="_blank"><b>execute_RBS_2n.m</b></a>: this script launches the optimization by executing spMODEparam.m, spMODEm algorithm and levelDiagram.m. Then, allows the user to enter the best parameters, and plots validation experimental data and simulation results in the same graph.</p> | ||
+ | </td> | ||
+ | </tr> | ||
+ | </table> | ||
+ | <img src="https://static.igem.org/mediawiki/2018/b/b1/T--Valencia_UPV--optimization_exp1_RBS_graphUPV2018.png"> | ||
+ | <img src="https://static.igem.org/mediawiki/2018/7/75/T--Valencia_UPV--optimization_exp2sfGFP_all_graphUPV2018.png"> | ||
+ | <img src="https://static.igem.org/mediawiki/2018/4/49/T--Valencia_UPV--optimization_exp2_RBS_2obj_graphUPV2018.png"> | ||
+ | <p> | ||
+ | The results of the graphs have been obtained after an optimization and decision-making process, in which the optimal parameters have been selected and the constituent model for each objective has been simulated and compared with the experimental data. The optimized parameters are summarized in the following table. | ||
+ | </p> | ||
+ | <table style="width:100%"> | ||
+ | <tr> | ||
+ | <th><p>Optimized parameters</p></th> | ||
+ | <th><p>Values</p></th> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>Translation rate <b>p</b></p></td> | ||
+ | <td> | ||
+ | <p><b>Experiment 1</b>:</p> | ||
+ | <ul> | ||
+ | <li><p> | ||
+ | For strong RBS <a href="http://parts.igem.org/Part:BBa_K2656009" target="_blank" style="padding-right: 0">BBa_K2656009</a>: p = 0.2059 min<sup>-1</sup> | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | For medium RBS <a href="http://parts.igem.org/Part:BBa_K2656011" target="_blank" style="padding-right: 0">BBa_K2656011</a>: p = 0.082 min<sup>-1</sup> | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | For low RBS <a href="http://parts.igem.org/Part:BBa_K2656010" target="_blank" style="padding-right: 0">BBa_K2656010</a>: p = 0.01 min<sup>-1</sup> | ||
+ | </p></li> | ||
+ | </ul> | ||
+ | |||
+ | <p><b>Experiment 2</b>:</p> | ||
+ | <ul> | ||
+ | <li><p> | ||
+ | For strong RBS <a href="http://parts.igem.org/Part:BBa_K2656009" target="_blank" style="padding-right: 0">BBa_K2656009</a>: p = 0.9256 min<sup>-1</sup> | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | For very low RBS <a href="http://parts.igem.org/Part:BBa_K2656008" target="_blank" style="padding-right: 0">BBa_K2656008</a>: p = 0.04089 min<sup>-1</sup> | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | For very low RBS <a href="http://parts.igem.org/Part:BBa_K2656012" target="_blank" style="padding-right: 0">BBa_K2656012</a>: p = 0.02889 min<sup>-1</sup> | ||
+ | </p></li> | ||
+ | </ul> | ||
+ | </td> | ||
+ | </tr> | ||
+ | <td><p>PoI degradation rate <b>d<sub>p</sub></b></p></td> | ||
+ | <td> | ||
+ | <p><b>Experiment 1</b>: d<sub>p</sub> = 0.0058 min<sup>-1</sup></p> | ||
+ | <p><b>Experiment 2</b>: d<sub>p</sub> = 0.00818 min<sup>-1</sup></p> | ||
+ | </td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>Dilution rate <b><meta charset="utf-8">μ</b></p></td> | ||
+ | <td> | ||
+ | <p><b>Experiment 1</b>:</p> | ||
+ | <ul> | ||
+ | <li><p> | ||
+ | For strong RBS <a href="http://parts.igem.org/Part:BBa_K2656009" target="_blank" style="padding-right: 0">BBa_K2656009</a>: <meta charset="utf-8">μ = 0.01492 min<sup>-1</sup> | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | For medium RBS <a href="http://parts.igem.org/Part:BBa_K2656011" target="_blank" style="padding-right: 0">BBa_K2656011</a>: <meta charset="utf-8">μ = 0.01631 min<sup>-1</sup> | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | For low RBS <a href="http://parts.igem.org/Part:BBa_K2656010" target="_blank" style="padding-right: 0">BBa_K2656010</a>: <meta charset="utf-8">μ = 0.01641 min<sup>-1</sup> | ||
+ | </p></li> | ||
+ | </ul> | ||
+ | |||
+ | <p><b>Experiment 2</b>:</p> | ||
+ | <ul> | ||
+ | <li><p> | ||
+ | For strong RBS <a href="http://parts.igem.org/Part:BBa_K2656009" target="_blank" style="padding-right: 0">BBa_K2656009</a>: <meta charset="utf-8">μ = 0.01197 min<sup>-1</sup> | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | For very low RBS <a href="http://parts.igem.org/Part:BBa_K2656008" target="_blank" style="padding-right: 0">BBa_K2656008</a>: <meta charset="utf-8">μ = 0.01288 min<sup>-1</sup> | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | For very low RBS <a href="http://parts.igem.org/Part:BBa_K2656012" target="_blank" style="padding-right: 0">BBa_K2656012</a>: <meta charset="utf-8">μ = 0.0118 min<sup>-1</sup> | ||
+ | </p></li> | ||
+ | </ul> | ||
+ | </td> | ||
+ | </table> | ||
+ | <p> | ||
+ | In addition to simulating the optimized models, the Printeria Modeling team has also calculated the relative force between the different RBS, taking <a href="http://parts.igem.org/Part:BBa_K2656009" target="_blank" style="padding-right: 0">BBa_K2656009</a> strong RBS as a reference. The relative force has been defined as the quotient between the values of the protein in equilibrium of the results of the simulation of one RBS and another reference RBS. Likewise, a ratio between <i>p</i> parameters of the different <a href="#RBS_list" class="inner-link">RBS parts</a> and <i>p</i> parameter of the reference RBS has been calculated. The characterization of the RBS parts by their relative strength is shown below. | ||
+ | <img src="https://static.igem.org/mediawiki/2018/d/d7/T--Valencia_UPV--rel_force_eqUPV2018.png"> | ||
+ | </p> | ||
+ | <table style="width:100%"> | ||
+ | <tr> | ||
+ | <th><p>Original BioBrick RBS part</p></th> | ||
+ | <th><p>Printeria RBS part</p></th> | ||
+ | <th><p>Relative strength</p></th> | ||
+ | <th><p>p parameter ratio (p<sub>RBS</sub>/p<sub>ref</sub>)</p></th> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p><a href="http://parts.igem.org/Part:BBa_B0030" target="_blank" style="padding-right: 0">BBa_B0030</a> (<i>Reference</i>)</p></td> | ||
+ | <td><p><a href="http://parts.igem.org/Part:BBa_K2656009" target="_blank" style="padding-right: 0">BBa_K2656009</a> (<i>Reference</i>)</p></td> | ||
+ | <td><p>1</p></td> | ||
+ | <td><p>1</p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p><a href="http://parts.igem.org/Part:BBa_B0034" target="_blank" style="padding-right: 0">BBa_B0034</a></p></td> | ||
+ | <td><p><a href="http://parts.igem.org/Part:BBa_K2656011" target="_blank" style="padding-right: 0">BBa_K2656011</a></p></td> | ||
+ | <td><p>0.371</p></td> | ||
+ | <td><p>0.398</p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p><a href="http://parts.igem.org/Part:BBa_B0032" target="_blank" style="padding-right: 0">BBa_B0032</a></p></td> | ||
+ | <td><p><a href="http://parts.igem.org/Part:BBa_K2656010" target="_blank" style="padding-right: 0">BBa_K2656010</a></p></td> | ||
+ | <td><p>0.045</p></td> | ||
+ | <td><p>0.048</p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p><a href="http://parts.igem.org/Part:BBa_J61100" target="_blank" style="padding-right: 0">BBa_J61100</a></p></td> | ||
+ | <td><p><a href="http://parts.igem.org/Part:BBa_K2656008" target="_blank" style="padding-right: 0">BBa_K2656008</a></p></td> | ||
+ | <td><p>0.042</p></td> | ||
+ | <td><p>0.044</p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p><a href="http://parts.igem.org/Part:BBa_J61101" target="_blank" style="padding-right: 0">BBa_J61101</a></p></td> | ||
+ | <td><p><a href="http://parts.igem.org/Part:BBa_K2656012" target="_blank" style="padding-right: 0">BBa_K2656012</a></p></td> | ||
+ | <td><p>0.031</p></td> | ||
+ | <td><p>0.031</p></td> | ||
+ | </tr> | ||
+ | </table> | ||
+ | |||
+ | <a class="anchorOffset" id="prom_exp"></a> | ||
+ | <h7><b>Experiments changing promoters</b></h7> | ||
+ | <p> | ||
+ | We have designed <b>two experiments</b> following the same <a href="#https://2018.igem.org/Team:Valencia_UPV/Experiments#exp_protocol" class="inner-link">experimental protocol</a>. In them we have assembled different Printeria TU with the same RBS, CDS (<a href="http://parts.igem.org/Part:BBa_K2656022" target="_blank">GFP</a> reporter protein) and transcriptional terminator, and with <b>different promoters</b>. After obtaining the results, and following the <a href="#optimization" class="inner-link">optimization protocol</a>, we have obtained the parameters of the model and have validated our model. | ||
+ | </p> | ||
+ | <a class="anchorOffset" id="promoter_list"></a> | ||
+ | <p><b>Printeria promoters</b>:</p> | ||
+ | <ul> | ||
+ | <li><p> | ||
+ | <b>Strong promoters</b>: <a href="http://parts.igem.org/Part:BBa_K2656005" target="_blank" style="padding-right: 0">BBa_K2656005</a> | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | <b>Medium promoters</b>: <a href="http://parts.igem.org/Part:BBa_K2656007" target="_blank" style="padding-right: 0">BBa_K2656007</a> | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | <b>Low promoters</b>: <a href="http://parts.igem.org/Part:BBa_K2656004" target="_blank" style="padding-right: 0">BBa_K2656004</a> | ||
+ | </p></li> | ||
+ | </ul> | ||
+ | <table style="width:100%"> | ||
+ | <tr> | ||
+ | <th><p>Experiment parameters</p></th> | ||
+ | <th><p>Description</p></th> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>Time</p></td> | ||
+ | <td><p>06:00:00 (HH:MM:SS). Measurement interval: 05:00 (MM:SS)</p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>Number of samples</p></td> | ||
+ | <td><p>8 samples for each TU colony</p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>Number of medium samples</p></td> | ||
+ | <td><p>8 samples of M9 medium</p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>Temperature</p></td> | ||
+ | <td><p>37 ºC</p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>Shake</p></td> | ||
+ | <td><p>Double Orbital. Continuously</p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>Absorbance. Optical Density (OD) measure</p></td> | ||
+ | <td><p>Wavelenght at 600 nm emission</p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>Excitacion wavelength</p></td> | ||
+ | <td><p>Wavelenght at 485 nm</p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>Emission wavelength</p></td> | ||
+ | <td><p>Wavelenght at 528 nm</p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>Gain (G)</p></td> | ||
+ | <td><p>60</p></td> | ||
+ | </tr> | ||
+ | </table> | ||
+ | <table style="width:100%"> | ||
+ | <tr> | ||
+ | <th><p>Optimization specifications</p></th> | ||
+ | <th><p>Description</p></th> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>Parameters</p></td> | ||
+ | <td> | ||
+ | <p><b>Constitutive transcription rate C<sub>R</sub>: to optimize</b></p> | ||
+ | <p>Translation rate p: fixed</p> | ||
+ | <p><b>PoI degradation rate d<sub>p</sub>: to optimize</b></p> | ||
+ | <p>mRNA degradation rate d<sub>m</sub>: fixed</p> | ||
+ | <p><b>Dilution rate <meta charset="utf-8">μ: to optimize</b></p> | ||
+ | <p>Maximum growth capacity K<sub>max</sub>: experimental value</p> | ||
+ | </td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>Objetives to optimize</p></td> | ||
+ | <td> | ||
+ | <p>For each TU, we set 2 objetives: FOD (Fluorescence) and OD (Absorbance). In each experiment we have measured 3 TU, so we are optimizing <b>6 objectives per experiment</b></p> | ||
+ | </td> | ||
+ | <tr> | ||
+ | <td><p>Parameter ranges</p></td> | ||
+ | <td> | ||
+ | <p>Constitutive transcription rate C<sub>R</sub>: [ - ] min<sup>-1</sup> </p> | ||
+ | <p>PoI degradation rate d<sub>p</sub>: [0.0058 - 0.0087] min<sup>-1</sup> </p> | ||
+ | <p>Dilution rate <meta charset="utf-8">μ: [0.0058 - 0.035] min<sup>-1</sup> </p> | ||
+ | </td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>MATLAB files</p></td> | ||
+ | <td> | ||
+ | <p><b>spMODEparam.m</b>: it defines the parameters to be optimized, their value ranges, number of objectives, the cost function, the identification and validation experimental data and other spMODE algorithm parameters. When the script is executed, a spMODEDat structure variable is defined. This structure contains all the standardized optimization information that the spMODE algorithm will need for its execution.</p> | ||
+ | <ul> | ||
+ | <li><p> | ||
+ | Experiment 1: <a href="" target="_blank">--</a> | ||
+ | </p></li> | ||
+ | </ul> | ||
+ | <p><a href="https://static.igem.org/mediawiki/2018/4/45/T--Valencia_UPV--spMODEUPV2018.txt"><b>spMODE.m</b></a>: it contains the <a href="https://es.mathworks.com/matlabcentral/fileexchange/39215-multi-objective-differential-evolution-algorithm-with-spherical-pruning" target="_blank" style="padding-right: 0">Multi-objective Differential Evolution Algorithm with Spherical Pruning</a>, which optimizes parameters for our experimental results (to execute spMODE.m file we need also <a href="https://static.igem.org/mediawiki/2018/9/99/T--Valencia_UPV--SphPruningUPV2018.txt">SphPruning.m</a> file).</p> | ||
+ | <p><a href="t" target="_blank"><b>CostFunction_Prom_RMS_2n.m</b></a>: it simulates the model with different vector parameters, and calculates the Root Mean Square Error with the identification dataset. Then, it returns the error for each objective and parameter vector.</p> | ||
+ | <p><a href="https://static.igem.org/mediawiki/2018/e/e4/T--Valencia_UPV--levelDiagramUPV2018.txt" target="_blank"><b>levelDiagram.m</b></a>: plots Pareto front and Pareto set that gives us back the algorithm.</p> | ||
+ | <p><a href="" target="_blank"><b>execute.m</b></a>: this script launches the optimization by executing spMODEparam.m, spMODEm algorithm and levelDiagram.m. Then, allows the user to enter the best parameters, and plots validation experimental data and simulation results in the same graph.</p> | ||
+ | </td> | ||
+ | </tr> | ||
+ | </table> | ||
+ | |||
+ | <img src=""> GRÁFICAS RESULTADOS 2 EXPERIMENTOS PROMOTORES | ||
+ | |||
+ | <p> | ||
+ | The results of the graphs have been obtained after an optimization and decision-making process, in which the optimal parameters have been selected and the constituent model for each objective has been simulated and compared with the experimental data. The optimized parameters are summarized in the following table. | ||
+ | </p> | ||
+ | <table style="width:100%"> | ||
+ | <tr> | ||
+ | <th><p>Optimized parameters</p></th> | ||
+ | <th><p>Values</p></th> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>Constitutive transcription rate <b>C<sub>R</sub></b></p></td> | ||
+ | <td> | ||
+ | <ul> | ||
+ | <li><p> | ||
+ | For strong promoter <a href="http://parts.igem.org/Part:BBa_K2656005" target="_blank" style="padding-right: 0">BBa_K2656005</a>: C<sub>R</sub> = - min<sup>-1</sup> | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | For medium promoter <a href="http://parts.igem.org/Part:BBa_K2656007" target="_blank" style="padding-right: 0">BBa_K2656007</a>: C<sub>R</sub> = - min<sup>-1</sup> | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | For low promoter <a href="http://parts.igem.org/Part:BBa_K2656004" target="_blank" style="padding-right: 0">BBa_K2656004</a>: C<sub>R</sub> = - min<sup>-1</sup> | ||
+ | </p></li> | ||
+ | </ul> | ||
+ | </td> | ||
+ | </tr> | ||
+ | <td><p>PoI degradation rate <b>d<sub>p</sub></b></p></td> | ||
+ | <td> | ||
+ | <p><b>Experiment 1</b>: d<sub>p</sub> = - min<sup>-1</sup></p> | ||
+ | </td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>Dilution rate <b><meta charset="utf-8">μ</b></p></td> | ||
+ | <td> | ||
+ | <ul> | ||
+ | <li><p> | ||
+ | For strong promoter <a href="http://parts.igem.org/Part:BBa_K2656005" target="_blank" style="padding-right: 0">BBa_K2656005</a>: <meta charset="utf-8">μ = - min<sup>-1</sup> | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | For medium promoter <a href="http://parts.igem.org/Part:BBa_K2656007" target="_blank" style="padding-right: 0">BBa_K2656007</a>: <meta charset="utf-8">μ = - min<sup>-1</sup> | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | For low promoter <a href="http://parts.igem.org/Part:BBa_K2656004" target="_blank" style="padding-right: 0">BBa_K2656004</a>: <meta charset="utf-8">μ = - min<sup>-1</sup> | ||
+ | </p></li> | ||
+ | </ul> | ||
+ | </td> | ||
+ | </table><p> | ||
+ | In addition to simulating the optimized models, the Printeria Modeling team has also calculated the relative force between the different promoters, taking <a href="http://parts.igem.org/Part:BBa_K2656005" target="_blank" style="padding-right: 0">BBa_K2656005</a> promoter as a reference. Likewise, a ratio between <i>C<sub>R</sub></i> parameters of the different <a href="#promoter_list" class="inner-link">promoter parts</a> and <i>C<sub>R</sub></i> parameter of the reference promoter has been calculated. The characterization of the promoter parts by their relative strength is shown below. | ||
+ | </p> | ||
+ | <table style="width:100%"> | ||
+ | <tr> | ||
+ | <th><p>Printeria RBS part</p></th> | ||
+ | <th><p>Relative strength</p></th> | ||
+ | <th><p>p parameter ratio (p<sub>RBS</sub>/p<sub>ref</sub>)</p></th> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p><a href="http://parts.igem.org/Part:BBa_J23102" target="_blank" style="padding-right: 0">BBa_J23102</a> (<i>Reference</i>)</p></td> | ||
+ | <td><p><a href="http://parts.igem.org/Part:BBa_K2656005" target="_blank" style="padding-right: 0">BBa_K2656005</a> (<i>Reference</i>)</p></td> | ||
+ | <td><p>1</p></td> | ||
+ | <td><p>1</p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p><a href="http://parts.igem.org/Part:BBa_J23102" target="_blank" style="padding-right: 0">BBa_J23102</a></p></td> | ||
+ | <td><p><a href="http://parts.igem.org/Part:BBa_K2656007" target="_blank" style="padding-right: 0">BBa_K2656007</a></p></td> | ||
+ | <td><p>-</p></td> | ||
+ | <td><p>-</p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p><a href="http://parts.igem.org/Part:BBa_J23106" target="_blank" style="padding-right: 0">BBa_J23106</a></p></td> | ||
+ | <td><p><a href="http://parts.igem.org/Part:BBa_K2656004" target="_blank" style="padding-right: 0">BBa_K2656004</a></p></td> | ||
+ | <td><p>-</p></td> | ||
+ | <td><p>-</p></td> | ||
+ | </tr> | ||
+ | </table> | ||
+ | |||
+ | <a class="anchorOffset" id="tag_exp"></a> | ||
+ | <h7><b>Experiment to compare reporter proteins with and without LVA tag</b></h7> | ||
+ | <p> | ||
+ | In the following experiment we want to compare the <b>degradation rate</b> of different protein reporters in two Printeria TU with identical promoters, RBS and transcriptional terminators. An <b>LVA degradation tag</b> has been added to one of the protein sequences in one TU. This tag causes an increase in protease activity and, therefore, a <b>faster degradation</b> of the reporter protein in the cell. <i>A priori</i>, we can deduce that the degradation rate in the TU that presents the degradation tag will be higher. | ||
+ | </p> | ||
+ | <p> | ||
+ | With these experiments, our team aims to meet two objectives: | ||
+ | <ul> | ||
+ | <li><p> | ||
+ | To analyze the effect of the protein degradation rate variation on our <a href="#const_models" class="inner-link">constitutive expression model</a>, and determine if the model fits the experimental results of the reporter proteins with LVA degradation tag. | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | Characterize the YFP reporter protein with LVA tag as a new iGEM part and as <a href="https://2018.igem.org/Team:Valencia_UPV/Improve" target="_blank">Improve project</a> . | ||
+ | </p></li> | ||
+ | </ul> | ||
+ | <p> | ||
+ | The main parameters of the experiment and optimization for each reporter protein are described below,. We have followed the usual experimentation procedure and multi-objective optimization protocol. | ||
+ | </p> | ||
+ | |||
+ | </p> | ||
+ | <h8><i>YFP with and without LVA tag</i></h8> | ||
+ | <table style="width:100%"> | ||
+ | <tr> | ||
+ | <th><p>Experiment parameters</p></th> | ||
+ | <th><p>Description</p></th> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>Time</p></td> | ||
+ | <td><p>06:00:00 (HH:MM:SS). Measurement interval: 05:00 (MM:SS)</p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>Number of samples</p></td> | ||
+ | <td><p>8 samples for each TU colony</p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>Number of medium samples</p></td> | ||
+ | <td><p>8 samples of M9 medium</p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>Temperature</p></td> | ||
+ | <td><p>37 ºC</p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>Shake</p></td> | ||
+ | <td><p>Double Orbital. Continuously</p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>Absorbance. Optical Density (OD) measure</p></td> | ||
+ | <td><p>Wavelenght at 600 nm emission</p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>Excitacion wavelength</p></td> | ||
+ | <td><p>Wavelenght at 500 nm</p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>Emission wavelength</p></td> | ||
+ | <td><p>Wavelenght at 540 nm</p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>Gain (G)</p></td> | ||
+ | <td><p>60</p></td> | ||
+ | </tr> | ||
+ | </table> | ||
+ | <table style="width:100%"> | ||
+ | <tr> | ||
+ | <th><p>Optimization specifications</p></th> | ||
+ | <th><p>Description</p></th> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>Parameters</p></td> | ||
+ | <td> | ||
+ | <p>Constitutive transcription rate C<sub>R</sub>: fixed</p> | ||
+ | <p><b>Translation rate p: to optimize</b></p> | ||
+ | <p><b>PoI degradation rate d<sub>p</sub>: to optimize</b></p> | ||
+ | <p>mRNA degradation rate d<sub>m</sub>: fixed</p> | ||
+ | <p><b>Dilution rate <meta charset="utf-8">μ: to optimize</b></p> | ||
+ | <p>Maximum growth capacity K<sub>max</sub>: experimental value</p> | ||
+ | </td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>Objetives to optimize</p></td> | ||
+ | <td> | ||
+ | <p>For each TU, we set 2 objetives: FOD (Fluorescence) and OD (Absorbance). In this experiment we have measured 2 TU, so we are optimizing <b>4 objectives per experiment</b></p> | ||
+ | </td> | ||
+ | <tr> | ||
+ | <td><p>Parameter ranges</p></td> | ||
+ | <td> | ||
+ | <p>Constitutive transcription rate C<sub>R</sub>: [ - ] min<sup>-1</sup> </p> | ||
+ | <p>PoI degradation rate d<sub>p</sub>: [ - ] min<sup>-1</sup> </p> | ||
+ | <p>Dilution rate <meta charset="utf-8">μ: [0.0058 - 0.035] min<sup>-1</sup> </p> | ||
+ | </td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>MATLAB files</p></td> | ||
+ | <td> | ||
+ | <p><b>spMODEparam.m</b>: it defines the parameters to be optimized, their value ranges, number of objectives, the cost function, the identification and validation experimental data and other spMODE algorithm parameters. When the script is executed, a spMODEDat structure variable is defined. This structure contains all the standardized optimization information that the spMODE algorithm will need for its execution.</p> | ||
+ | <p>In this experiment, we have used <a href="" target="_blank">spMODEparam_exp1YFP.m</a></p> | ||
+ | |||
+ | <p><a href="https://static.igem.org/mediawiki/2018/4/45/T--Valencia_UPV--spMODEUPV2018.txt"><b>spMODE.m</b></a>: it contains the <a href="https://es.mathworks.com/matlabcentral/fileexchange/39215-multi-objective-differential-evolution-algorithm-with-spherical-pruning" target="_blank" style="padding-right: 0">Multi-objective Differential Evolution Algorithm with Spherical Pruning</a>, which optimizes parameters for our experimental results (to execute spMODE.m file we need also <a href="https://static.igem.org/mediawiki/2018/9/99/T--Valencia_UPV--SphPruningUPV2018.txt">SphPruning.m</a> file).</p> | ||
+ | <p><a href="https://static.igem.org/mediawiki/2018/7/7d/T--Valencia_UPV--CostFunction_improve_RMS_2nUPV2018.txt" target="_blank"><b>CostFunction_improve_RMS_2n.m</b></a>: it simulates the model with different vector parameters, and calculates the Root Mean Square Error with the identification dataset. Then, it returns the error for each objective and parameter vector.</p> | ||
+ | <p><a href="https://static.igem.org/mediawiki/2018/e/e4/T--Valencia_UPV--levelDiagramUPV2018.txt" target="_blank"><b>levelDiagram.m</b></a>: plots Pareto front and Pareto set that gives us back the algorithm.</p> | ||
+ | <p><a href="" target="_blank"><b>execute.m</b></a>: this script launches the optimization by executing spMODEparam.m, spMODEm algorithm and levelDiagram.m. Then, allows the user to enter the best parameters, and plots validation experimental data and simulation results in the same graph.</p> | ||
+ | </td> | ||
+ | </tr> | ||
+ | </table> | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | <a class="anchorOffset" id="ind_models"></a> | ||
+ | <h4>Inducible expression models</h4> | ||
+ | |||
+ | <p> | ||
+ | Inducible expression models are those in which the expression of the <b>cell's messenger RNA (mRNA) depends on one or more inducing molecules</b>, which can act as <b>activators or repressors</b>. The concentration of the inducing species determines the level of expression of mRNA and protein in the cell.</p> | ||
+ | <p> | ||
+ | Our Printeria device gives us the possibility to create some inducible genetic constructs. Of all of them, we have managed to design and experiment with some models... | ||
+ | </p> | ||
+ | <ul> | ||
+ | <li><p> | ||
+ | <a href="#pBAD" class="inner-link">P<sub>BAD</sub>/araC inducible model</a> | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | <a href="#LuxR_LuxI" class="inner-link">LuxR/LuxI inducible model</a> | ||
+ | </p></li> | ||
+ | </ul> | ||
+ | |||
+ | <a class="anchorOffset" id="pBAD"></a> | ||
+ | <h5>P<sub>BAD</sub>/araC inducible model</h5> | ||
+ | <p> | ||
+ | The inducible promoter P<sub>BAD</sub>/araC [<a href="#references" class="inner-link">5</a>] is a promoter whose expression depends on two inducing molecules: the <b>L-arabinose</b> (activator) and the <b>araC</b> (repressor). The dimeric protein araC binds to the DNA chain forming a DNA loop and thus prevents the binding between DNA and RNA polymerase. However, when two arabinose molecules bind to the araC dimer, the DNA loop is broken and the binding between the RNA polymerase to the promoting region is possible. | ||
+ | </p> | ||
+ | <p> | ||
+ | We have proposed a possible mathematical model describing the P<sub>BAD</sub>/araC mechanism. This <b>theoretical model</b> has been included in the <a href="#simtool" class="inner-link">Simulation Tool</a>, so that with Printeria it is possible to predict the behavior of P<sub>BAD</sub>/araC inducible promoter circuits. | ||
+ | </p> | ||
+ | <h5><i>Model design</i></h5> | ||
+ | <p> | ||
+ | After analyzing the biochemical functioning of the P<sub>BAD</sub>/araC promoter, we propose the following cellular scheme that would describe its behavior. It is worth mentioning that we have assumed a very high concentration of araC in the cell, as we have considered that the gene encoding for the araC protein is found in the cell genome (e.g. in DH5<meta charset="utf-8">α strains). | ||
+ | </p> | ||
+ | |||
+ | <img src="https://static.igem.org/mediawiki/2018/3/3c/T--Valencia_UPV--esq_pbadUPV2018.png"> | ||
+ | |||
+ | <p>From the cell schema we can deduce the following biochemical reactions.</p> | ||
+ | |||
+ | <img src="https://static.igem.org/mediawiki/2018/d/d8/T--Valencia_UPV--react_pbadUPV2018.png"> | ||
+ | |||
+ | <table style="width:100%"> | ||
+ | <tr> | ||
+ | <th><p>Parameter</p></th> | ||
+ | <th><p>Description</p></th> | ||
+ | <th><p>Units</p></th> | ||
+ | <th><p>Value</p></th> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>D</p></td> | ||
+ | <td><p>Diffusion coefficient</p> | ||
+ | <td><p>min<sup>-1</sup></p></td> | ||
+ | <td><p><a href="">---</a></p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>V<sub>c</sub></p></td> | ||
+ | <td><p>Cell volume(<meta charset="utf-8">μL)/External volume(<meta charset="utf-8">μL)</p> | ||
+ | <td><p>adimensional</sup></p></td> | ||
+ | <td><p><a href="">---</a></p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>k<sub>u</sub></p></td> | ||
+ | <td><p>Dissociation rate of (P<sub>BAD</sub>.araC.arabi) complex</p> | ||
+ | <td><p>min<sup>-1</sup></p></td> | ||
+ | <td><p><a href="">---</a></p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>k<sub>d</sub></p></td> | ||
+ | <td><p>Dissociation constant of (P<sub>BAD</sub>.araC.arabi) complex</p> | ||
+ | <td><p>molec<sup>2</sup></p></td> | ||
+ | <td><p><a href="">---</a></p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>k<sub>b</sub></p></td> | ||
+ | <td><p>Association rate of (P<sub>BAD</sub>.araC.arabi) complex</p> | ||
+ | <td><p>molec<sup>-2</sup>min<sup>-1</sup></p></td> | ||
+ | <td><p><a href="">---</a></p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>K</p></td> | ||
+ | <td><p>Transcription rate is calculated by multiplying the transcription rate per plasmid K<sub>t</sub> by the mean number of plasmids in cell c<sub>n</sub> . In our case, we are using the pMBI replication origin, so c<sub>n</sub> <meta charset="utf-8">∼ 500, and C<sub>R</sub> = K<sub>R</sub>·c<sub>n</sub>.</p></td> | ||
+ | <td><p>min<sup>-1</sup></p></td> | ||
+ | <td><p><a href="">---</a></p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p><meta charset="utf-8">α</p></td> | ||
+ | <td><p>(P<sub>BAD</sub>.araC) basal activity constant</p> | ||
+ | <td><p>adimensional</p></td> | ||
+ | <td><p><a href="">---</a></p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>p</p></td> | ||
+ | <td><p>Translation rate</p></td> | ||
+ | <td><p>min<sup>-1</sup></p></td> | ||
+ | <td><p><a href="">---</a></p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>d<sub>arab</sub></p></td> | ||
+ | <td><p>L-arabinose degradation rate</p></td> | ||
+ | <td><p>min<sup>-1</sup></p></td> | ||
+ | <td><p><a href="">---</a></p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>d<sub>m</sub></p></td> | ||
+ | <td><p>mRNA degradation rate</p></td> | ||
+ | <td><p>min<sup>-1</sup></p></td> | ||
+ | <td><p><a href="">---</a></p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>d<sub>p</sub></p></td> | ||
+ | <td><p>PoI degradation rate</p></td> | ||
+ | <td><p>min<sup>-1</sup></p></td> | ||
+ | <td><p><a href="">---</a></p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p><meta charset="utf-8">μ</p></td> | ||
+ | <td><p>Dilution rate</p></td> | ||
+ | <td><p>min<sup>-1</sup></p></td> | ||
+ | <td><p><a href="">---</a></p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>K<sub>max</sub></p></td> | ||
+ | <td><p>Maximum growth capacity</p></td> | ||
+ | <td><p>cells</p></td> | ||
+ | <td><p><a href="">---</a></p></td> | ||
+ | </tr> | ||
+ | </table> | ||
+ | <p> | ||
+ | We apply the <a href="#LMA" class="inner-link">Law of Mass Action kynetics</a> (LMA) to obtain the differential equations. If we consider that the plasmid copy number c<sub>n</sub> is constant, we can <b>reduce the model</b> in a differential equation and add an algebraic equation. Thus, we get a model of <b>six differential equations</b> and <b>one algebraic equation</b>, as shown below. | ||
+ | </p> | ||
+ | <table style="width:100%"> | ||
+ | <tr> | ||
+ | <th><p>Variable</p></th> | ||
+ | <th><p>Biochemical species</p></th> | ||
+ | <th><p>Units</p></th> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>n<sub>1</sub></p></td> | ||
+ | <td><p>(P<sub>BAD</sub>.araC.arab) complex</p></td> | ||
+ | <td><p>Molecules</p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>n<sub>2</sub></p></td> | ||
+ | <td><p>Extracellular L-arabinose</p></td> | ||
+ | <td><p>Molecules</p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>n<sub>3</sub></p></td> | ||
+ | <td><p>Intracellular L-arabinose</p></td> | ||
+ | <td><p>Molecules</p></td> | ||
+ | </tr> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>n<sub>4</sub></p></td> | ||
+ | <td><p>mRNA</p></td> | ||
+ | <td><p>Molecules</p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>n<sub>5</sub></p></td> | ||
+ | <td><p>PoI</p></td> | ||
+ | <td><p>Molecules</p></td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td><p>n<sub>6</sub></p></td> | ||
+ | <td><p>Number of cells</p></td> | ||
+ | <td><p>Cells</p></td> | ||
+ | </tr> | ||
+ | </table> | ||
+ | <img src="https://static.igem.org/mediawiki/2018/c/c4/T--Valencia_UPV--pbad_alg_eqUPV2018.png"> | ||
+ | <img src="https://static.igem.org/mediawiki/2018/4/40/T--Valencia_UPV--pbad_eqsUPV2018.png"> | ||
+ | <p> | ||
+ | Having developed the equation model from the cell schema and biochemical reactions, we have programmed two MATLAB files: the <a href="https://static.igem.org/mediawiki/2018/d/d4/T--Valencia_UPV--mi_araC_simplestUPV2018.txt" target="_blank">mi_araC_simplest.m</a> function, which describes the system of differential equations, and the script <a href="https://static.igem.org/mediawiki/2018/b/b6/T--Valencia_UPV--model_ind_araC_simplestUPV2018.txt" target="_blank">model_inducible_simplest.m</a> in which the parameters are defined and the model is solved by the <a href="https://es.mathworks.com/help/matlab/ref/ode23t.html" style="padding-right: 0" target="_blank">ode23t</a> MATLAB function. The result of the simulation of the model is shown below. | ||
+ | </p> | ||
+ | <img src="https://static.igem.org/mediawiki/2018/5/5a/T--Valencia_UPV--model_ind_araC_graphUPV2018.png"> | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | <a class="anchorOffset" id="LuxR_LuxI"></a> | ||
+ | <h5>LuxR LuxI inducible model</h5> | ||
+ | |||
+ | <a class="anchorOffset" id="HSP"></a> | ||
+ | <h5>HSP inducible model</h5> | ||
+ | |||
+ | |||
+ | <a class="anchorOffset" id="optimization"></a> | ||
+ | <h4>Multi-objective parameter optimization</h4> | ||
+ | <p> | ||
+ | <b>To what extent is our model valid? What values should the parameters take? To what extent do the theoretical results resemble the experimental ones? Is our model able to explain the behaviour of cells in reality?</b> | ||
+ | </p> | ||
+ | <p> | ||
+ | One of the most important phases in the field of Printeria Modeling has been the <b>validation of theoretical models</b> with experimental data. In the Printeria team we wanted to confirm that the models designed are consistent with our experiments. However, we know that the <b>parameters will not take a fixed value</b>, but vary depending on the genetic construction with which we experiment. With this idea in mind, the need to apply an optimization process arises. | ||
+ | </p> | ||
+ | <p> | ||
+ | The process of <b>multiobjective parameter optimization</b> [<a href="#references" class="inner-link">3</a>] consists in finding those parameters of the model that best fit a particular objective, i.e., a particular set of experimental data. From a dataset, and applying a mathematical algorithm, we can find the optimal solutions, also known as <b>Pareto-optimal or Pareto front solutions</b>. These solutions are such that there are no more solutions that do not improve one objective without worsening the rest. | ||
+ | </p> | ||
+ | <p> | ||
+ | From the Printeria Modeling team we have established a protocol that allows us to obtain the optimal solutions of the model parameters for any experiment: | ||
+ | </p> | ||
+ | <ol> | ||
+ | <li><p> | ||
+ | We define the objectives to be optimized. These will be the values of Fluorescence F/Unit of Absorbance OD or FOD, and the cellular growth (OD) of a Transcriptional Unit (TU). Therefore, if we have different <i>n</i> TU in an experiment, we will optimize <i>2n</i> objectives. | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | We choose the parameters to optimize and establish the range of values they can take. | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | We select the identification and validation data. The identification data are those used in the optimization process. The validation data are used to compare the experiment with the simulated theoretical model and the optimized parameters. | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | We define the cost function, which specifies the error function to be minimized, simulates the model with different parameter values, and calculates the error between the simulation data and the experimental identification data. | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | The mathematical optimization algorithm is executed. In our case we use the <a href="https://es.mathworks.com/matlabcentral/fileexchange/39215-multi-objective-differential-evolution-algorithm-with-spherical-pruning" target="_blank" style="padding-right: 0">Multi-objective Differential Evolution Algorithm with Spherical Pruning</a>. This algorithm uses the cost function to test different parameter values and thus search for optimal parameter values. | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | The Pareto set and Pareto Front diagrams and the different solutions of our optimized parameters for the different objectives are obtained. | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | Decision Making is carried out by the designer. The optimal parameters are chosen for our <i>2n</i> objectives. | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | The model is simulated with the optimized parameters and compared with the validation data. | ||
+ | </p></li> | ||
+ | </ol> | ||
+ | <p> | ||
+ | Following this protocol, and particularizing it for each experiment, we have been able to determine the validity of our models and obtain the best parameters for our experiments. | ||
+ | </p> | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | <a class="anchorOffset" id="simtool"></a> | ||
+ | <h3>Simulation Tool</h3> | ||
+ | <p> | ||
+ | One of the main challenges of the Printeria project has been to give the user a chance to really understand what our device is doing when it prints genetic circuits on bacteria. Facing this challenge, we have also sought to provide as much information as possible about the Printeria product. <b>And what better way than to give our user a quantitative, mathematical description of what happens in our cells?</b> | ||
+ | </p> | ||
+ | <p> | ||
+ | In our project we believe that mathematical modeling can be a very powerful tool for transmitting knowledge, so the <b>Printeria Software and Modeling teams</b> have brought together the most outstanding mathematical models in a single <b>Simulation Tool</b>. | ||
+ | </p> | ||
+ | <p> | ||
+ | Our Simulation Tool has been conceived as a <b>mathematical model simulation program</b> that has been <b>perfectly integrated into our <a href="" target="_blank">Printeria Controller</a> software</b>. When our user wants to assemble a genetic construct and selects the parts, the Simulation Tool offers the possibility to <b>experiment <i>in silico</i></b> and predict cell behavior before printing the bacteria. All this, just by pressing the <b><i>Show model results</i></b> button... and instantly! | ||
+ | </p> | ||
+ | <p><b>But how does the Simulation Tool work?</b></p> | ||
+ | <p> | ||
+ | The Printeria Modeling and Software teams have jointly designed a program developed in <b>a single Python script</b> (have a look at our <a href="" target="_blank"><b>simulate.py</b></a> script). The program combines the functions of the main mathematical models of Printeria with the information of the Printeria kit stored in the <a href="" target="_blank"><b> Printeria database</b></a>. In addition, as it is a single Python file, it is stored and run on the <a href="" target="_blank"><b>Raspberry Pi 3 server</b></a>. | ||
+ | </p> | ||
+ | <p><b>Now let's see what happens if the user has chosen the Printeria parts and presses the Simulate button...</b></p> | ||
+ | <img src="https://static.igem.org/mediawiki/2018/2/2b/T--Valencia_UPV--simtool_esqUPV2018.png"> | ||
+ | <ol> | ||
+ | <li><p> | ||
+ | The <b>Printeria client connects to the <a href="" target="_blank">Printeria MongoDB database</a></b> where we store all the information of our Printeria kit. | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | The <b>four parts of the genetic construction (promoter, RBS, CDS and transcriptional terminator) are extracted</b> from the database thanks to their identifiers. | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | The <b>type of model</b> (constitutive or inducible expression) is identified from the type of promoter selected. | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | The <b>model parameters</b> of each construction part are extracted. | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | The <b>initial conditions</b> of the simulation and its <b>duration</b> are established. | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | The <b>model is simulated</b> using Python's <a href="https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.odeint.html" target="_blank" style="padding-right: 0">odeint function</a> | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | A temporary <b>CSV file</b> is generated in which the <b>we store the results of the simulation</b> in a certain format. | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | From the CSV file, the <b>simulation results are represented graphically</b> on the Printeria site. The user can <b>view or download</b> their results. | ||
+ | </p></li> | ||
+ | </ol> | ||
+ | <p><b>And what are the advantages of an application like our Simulation Tool?</b></p> | ||
+ | |||
+ | <ul> | ||
+ | <li><p> | ||
+ | <b>User-friendly</b>. It is very simple to operate for the user. Just select your Printeria parts, press a button... And presto! | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | <b>Integrated</b>. All our software is included in the Raspberry Pi 3 server. You don't need to download the program. | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | <b>Instant experimental data</b>. Our Simulation Tool runs simulations at high speed. In a few seconds you'll have your results. | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | <b>Customizable parameters</b>. You can modify your parameters and adapt them to your experiment, to obtain more precise results. | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | <b>All-in-one</b>. Our Simulation Tool includes several mathematical models, constitutive and inducible, in a single code and solves them particularizing for each Printeria genetic construction. | ||
+ | </p></li> | ||
+ | </ul> | ||
+ | <p> | ||
+ | <b>Would you like to try the Simulation Tool?</b> Go to our <a href="" target="_blank">Printeria Controller </a> site and discover all the possibilities offered by our software. | ||
+ | </p> | ||
+ | <p><b> | ||
+ | What are you waiting for to start discovering it? | ||
+ | </b></p> | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | <a class="anchorOffset" id="references"></a> | ||
+ | <h3>References</h3> | ||
+ | <ol class="references"> | ||
+ | <li><p> | ||
+ | Picó, J., Vignoni, A., Picó-Marco, E., & Boada, Y. (2015). Modelado de sistemas bioquímicos: De la ley de acción de masas a la aproximación lineal del ruido. Revista Iberoamericana de Automática e Informática Industrial RIAI, 12(3), 241-252. | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | Segel, L. A., & Slemrod, M. (1989). The quasi-steady-state assumption: a case study in perturbation. SIAM review, 31(3), 446-477. | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | Boada, Y., Vignoni, A., Reynoso-Meza, G., & Picó, J. (2016). Parameter identification in synthetic biological circuits using multi-objective optimization. Ifac-Papersonline, 49(26), 77-82. | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | Boada, Y., Vignoli, A., & Picó, J. (2017). Reduction of population variability in protein expression: A control engineering approach. Actas de las XXXVIII Jornadas de Automática. | ||
+ | </p></li> | ||
+ | <li><p> | ||
+ | Schleif, R. (2000). Regulation of the L-arabinose operon of Escherichia coli. Trends in Genetics, 16(12), 559-565. | ||
+ | </p></li> | ||
+ | </ol> | ||
+ | |||
+ | </div> | ||
+ | </div> | ||
+ | </div> | ||
+ | </div> | ||
+ | </div> | ||
+ | </section> | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<!--<div class="loader"></div>--> | <!--<div class="loader"></div>--> |
Revision as of 18:52, 12 October 2018
Modeling
Do you think it is possible to mathematically describe a cell? Would you like to know the possibilities that modeling offers you?
One of the fundamental bases of the Printeria project has undoubtedly been mathematical modeling. Thanks to the development and application of new mathematical models, it is possible to quantify the expression of proteins in cells, and therefore characterize through different experiments the parts designed by Printeria. From the Printeria Modeling team, we intend to reach different goals:
Design simple mathematical models based on differential equations that describe the biochemical processes of a cell. With them, we can simulate the different genetic circuits that Printeria allows us to build.
Develop a Simulation Tool that allows the user to visualize a prediction of the results of their experiment before running it in Printeria.
Optimize model parameters to match simulation results to experimental data obtained from Printeria constructions.
Characterize the partsof our Part Collection from the optimization results and provide the user with all the information about the Printeria kit.
Although in the development of the project we have dealt with all these aspects, all of them have a single purpose: demonstrate the importance and many applications of describing in a mathematical way the biological processes that take place inside the cell.
Models & Experiments
The development of new and simple mathematical models has been one of the essential bases of the Printeria project. The models offer us a multitude of applications: to describe the basic biochemical reactions of the cell, to characterize the parts of our Printeria kit by means of different experiments or to elaborate new tools that facilitate to our user the learning of Synthetic Biology.
In Printeria Modeling team, we have grouped the models designed in two fields: constitutive expression models and inducible expression models. We have also established an experimental protocol and a multi-objective optimization protocol in order to contrast theoretical and experimental results. With them, we can describe practically all the cells modified with Printeria.
Want to find out more about how we did it?
Modeling process
At the beginning of the design of any mathematical model, we have started from a cell scheme in which all the cellular biochemical reactions we wish to model are represented. From the reactions, a set of equations is deduced. Each of these equations describes the temporal variation of the biochemical species in the cell (DNA, RNA, proteins...), and depends on a set of parameters with a physical meaning.
Because they are differential and generally non-linear equations, mathematical models are simulated using software tools such as MATLAB. The results obtained from the simulation reflect the evolution of the concentration of biochemical species over time. These theoretical results can be contrasted with the experimental data obtained in the laboratory and and thereby adjust the parameters so that the model adapts to the data in an optimal way. This process, called multiobjective parameter optimization, is the process that allows us to validate our models and see if they respond to what happens inside the cells.
In the development of the set of mathematical models that describe the genetic circuits printed by Printeria, we have prioritized simplicity over complexity of the model. A more complex model may be more precise, but it requires a large number of parameters whose value is often unknown. Therefore, our models are composed of few equations and parameters, and they are all deterministic models, that is, their parameters take a concrete, non-probabilistic value.
Constitutive expression models
Constitutive expression models are those in which the expression of the cell's messenger RNA (mRNA) is not regulated. The gene does not depend on any inducing biochemical species, so it will produce RNA molecules continuously, and therefore the translation of the protein will also be constant.
Model design
A simple scheme that summarizes the cellular transcription and translation processes in a constitutive expression model is shown in the following Figure. We only consider as biochemical species involved in reactions to mRNA and our protein of interest (PoI).
From the cell schema we can deduce the following biochemical reactions.
Parameter |
Description |
Units |
Value |
---|---|---|---|
CR |
Constitutive transcription rate is calculated by multiplying the transcription rate per plasmid KR by the mean plasmids copy number in cell cn . In our case, we are using the pMBI replication origin, so cn ∼ 500, and CR = KR·cn. |
molecules.min-1 |
|
p |
Translation rate |
min-1 |
|
dm |
mRNA degradation rate |
min-1 |
|
dp |
PoI degradation rate |
min-1 |
|
μ |
Dilution rate |
min-1 |
|
Kmax |
Maximum growth capacity |
cells |
With the reactions and approximations already established, we apply the Law of Mass Action kynetics[1] (LMA) to deduce the differential equations. The LMA establishes that the variation of the species resulting from a reaction is proportional to the product of the reactants. In our case, to the set of differential equations deduced from the reactions we add a cell growth equation. Biochemical species and our model of equations obtained are shown below.
Variable |
Biochemical species |
Units |
---|---|---|
n1 |
mRNA |
Molecules |
n2 |
PoI |
Molecules |
n3 |
Number of cells |
Cells |
By obtaining the equations, and seeking the simplicity of the model, a series of quasi-steady state approximations [2] have been made. We have established that mRNA is generated with a constant CR constitutive transcription rate. Another consideration has been to assume that the copy number of plasmids cn in cell is a constant. We have also proposed that other species such as ribosomes, which also participate in transcription, are constant over time.
After developing the model and raising the reactions and equations, two files have been programmed in MATLAB: the mc_simple.m function, which describes the system of differential equations, and the script model_const_simple.m in which the parameters are defined and the model is solved by the ode45 MATLAB function. The result of the simulation of the model is shown in the following Figure.
In the simulation of mRNA and PoI we distinguish two phases in the temporal evolution of the species: the transient phase and the stationary phase. If we perform different simulations varying some parameters of the model, we can observe how the equilibrium value of the stationary phase varies. MATLAB script mc_sim_analysis.m repeatedly simulates the model by varying the CR and p parameters, and graphs the results. The following Figure shows how an increase in both ratios implies a greater expression of the protein.
At this point anyone could ask us: Which are the advantages of a constitutive expression model like this? Why is a model like this really useful to us? Faced with these questions, the Printeria Modeling team has looked for the answers in the great characteristics that the model offers us.
A simple, easy-to-understand model that clearly explains the processes of cellular transcription and translation.
It is valid for any Printeria construction that has a constitutive expression promoter. The variation between different constructions occurs in the parameters values, not in the model equations!
It has few parameters, with a clear physical meaning, and easily optimizable.
As a compact model, simulations and optimizations are performed at high speed.
Experiments & Optimization
The simple model of constitutive expression is a model that characterizes a large number of Printeria Transcriptional Units (TU), specifically, all those constructions whose promoter is constitutive. We know that all these TU follow the same model, but each one has different parameters, and therefore different experimental values of fluorescence and absorbance. Faced with this situation, the Printeria Lab and Modeling teams have designed some experiments, in which we have applied the multi-objective parameter optimization, and thus check whether the designed constitutive expression model responds to experimental reality.
We have designed two experiments following the same experimental protocol. In them we have assembled different Printeria TU with the same promoters, CDS (sfGFP reporter protein) and transcriptional terminator, but with different RBS. After obtaining the results, and following the optimization protocol, we have obtained the parameters of the model and have validated our model.
Printeria RBS:
Strong expression: BBa_K2656009.
Medium expression: BBa_K2656011.
Low expression: BBa_K2656010.
Very low expression: BBa_K2656008, BBa_K2656012.
Experiment parameters |
Description |
---|---|
Time |
06:00:00 (HH:MM:SS). Measurement interval: 05:00 (MM:SS) |
Number of samples |
8 samples for each TU colony |
Number of medium samples |
8 samples of M9 medium |
Temperature |
37 ºC |
Shake |
Double Orbital. Continuously |
Absorbance. Optical Density (OD) measure |
Wavelenght at 600 nm emission |
Excitacion wavelength |
Wavelenght at 485 nm |
Emission wavelength |
Wavelenght at 528 nm |
Gain (G) |
60 |
Optimization specifications |
Description |
---|---|
Parameters |
Constitutive transcription rate CR: fixed Translation rate p: to optimize PoI degradation rate dp: to optimize mRNA degradation rate dm: fixed Dilution rate μ: to optimize Maximum growth capacity Kmax: experimental value |
Objetives to optimize |
For each TU, we set 2 objetives: FOD (Fluorescence) and OD (Absorbance). In each experiment we have measured 3 TU, so we are optimizing 6 objectives per experiment |
Parameter ranges |
Translation rate p: [0.001 - 6] min-1 PoI degradation rate dp: [0.0058 - 0.0087] min-1 Dilution rate μ: [0.0058 - 0.035] min-1 |
MATLAB files |
spMODEparam.m: it defines the parameters to be optimized, their value ranges, number of objectives, the cost function, the identification and validation experimental data and other spMODE algorithm parameters. When the script is executed, a spMODEDat structure variable is defined. This structure contains all the standardized optimization information that the spMODE algorithm will need for its execution.
spMODE.m: it contains the Multi-objective Differential Evolution Algorithm with Spherical Pruning, which optimizes parameters for our experimental results (to execute spMODE.m file we need also SphPruning.m file). CostFunction_RBS_RMS_2n.m: it simulates the model with different vector parameters, and calculates the Root Mean Square Error with the identification dataset. Then, it returns the error for each objective and parameter vector. levelDiagram.m: plots Pareto front and Pareto set that gives us back the algorithm. execute_RBS_2n.m: this script launches the optimization by executing spMODEparam.m, spMODEm algorithm and levelDiagram.m. Then, allows the user to enter the best parameters, and plots validation experimental data and simulation results in the same graph. |
The results of the graphs have been obtained after an optimization and decision-making process, in which the optimal parameters have been selected and the constituent model for each objective has been simulated and compared with the experimental data. The optimized parameters are summarized in the following table.
Optimized parameters |
Values |
---|---|
Translation rate p |
Experiment 1:
Experiment 2:
|
PoI degradation rate dp |
Experiment 1: dp = 0.0058 min-1 Experiment 2: dp = 0.00818 min-1 |
Dilution rate μ |
Experiment 1:
Experiment 2:
|
In addition to simulating the optimized models, the Printeria Modeling team has also calculated the relative force between the different RBS, taking BBa_K2656009 strong RBS as a reference. The relative force has been defined as the quotient between the values of the protein in equilibrium of the results of the simulation of one RBS and another reference RBS. Likewise, a ratio between p parameters of the different RBS parts and p parameter of the reference RBS has been calculated. The characterization of the RBS parts by their relative strength is shown below.
Original BioBrick RBS part |
Printeria RBS part |
Relative strength |
p parameter ratio (pRBS/pref) |
---|---|---|---|
BBa_B0030 (Reference) |
BBa_K2656009 (Reference) |
1 |
1 |
0.371 |
0.398 |
||
0.045 |
0.048 |
||
0.042 |
0.044 |
||
0.031 |
0.031 |
We have designed two experiments following the same experimental protocol. In them we have assembled different Printeria TU with the same RBS, CDS (GFP reporter protein) and transcriptional terminator, and with different promoters. After obtaining the results, and following the optimization protocol, we have obtained the parameters of the model and have validated our model.
Printeria promoters:
Strong promoters: BBa_K2656005
Medium promoters: BBa_K2656007
Low promoters: BBa_K2656004
Experiment parameters |
Description |
---|---|
Time |
06:00:00 (HH:MM:SS). Measurement interval: 05:00 (MM:SS) |
Number of samples |
8 samples for each TU colony |
Number of medium samples |
8 samples of M9 medium |
Temperature |
37 ºC |
Shake |
Double Orbital. Continuously |
Absorbance. Optical Density (OD) measure |
Wavelenght at 600 nm emission |
Excitacion wavelength |
Wavelenght at 485 nm |
Emission wavelength |
Wavelenght at 528 nm |
Gain (G) |
60 |
Optimization specifications |
Description |
---|---|
Parameters |
Constitutive transcription rate CR: to optimize Translation rate p: fixed PoI degradation rate dp: to optimize mRNA degradation rate dm: fixed Dilution rate μ: to optimize Maximum growth capacity Kmax: experimental value |
Objetives to optimize |
For each TU, we set 2 objetives: FOD (Fluorescence) and OD (Absorbance). In each experiment we have measured 3 TU, so we are optimizing 6 objectives per experiment |
Parameter ranges |
Constitutive transcription rate CR: [ - ] min-1 PoI degradation rate dp: [0.0058 - 0.0087] min-1 Dilution rate μ: [0.0058 - 0.035] min-1 |
MATLAB files |
spMODEparam.m: it defines the parameters to be optimized, their value ranges, number of objectives, the cost function, the identification and validation experimental data and other spMODE algorithm parameters. When the script is executed, a spMODEDat structure variable is defined. This structure contains all the standardized optimization information that the spMODE algorithm will need for its execution.
spMODE.m: it contains the Multi-objective Differential Evolution Algorithm with Spherical Pruning, which optimizes parameters for our experimental results (to execute spMODE.m file we need also SphPruning.m file). CostFunction_Prom_RMS_2n.m: it simulates the model with different vector parameters, and calculates the Root Mean Square Error with the identification dataset. Then, it returns the error for each objective and parameter vector. levelDiagram.m: plots Pareto front and Pareto set that gives us back the algorithm. execute.m: this script launches the optimization by executing spMODEparam.m, spMODEm algorithm and levelDiagram.m. Then, allows the user to enter the best parameters, and plots validation experimental data and simulation results in the same graph. |
The results of the graphs have been obtained after an optimization and decision-making process, in which the optimal parameters have been selected and the constituent model for each objective has been simulated and compared with the experimental data. The optimized parameters are summarized in the following table.
Optimized parameters |
Values |
---|---|
Constitutive transcription rate CR |
|
PoI degradation rate dp |
Experiment 1: dp = - min-1 |
Dilution rate μ |
|
In addition to simulating the optimized models, the Printeria Modeling team has also calculated the relative force between the different promoters, taking BBa_K2656005 promoter as a reference. Likewise, a ratio between CR parameters of the different promoter parts and CR parameter of the reference promoter has been calculated. The characterization of the promoter parts by their relative strength is shown below.
Printeria RBS part |
Relative strength |
p parameter ratio (pRBS/pref) |
|
---|---|---|---|
BBa_J23102 (Reference) |
BBa_K2656005 (Reference) |
1 |
1 |
- |
- |
||
- |
- |
In the following experiment we want to compare the degradation rate of different protein reporters in two Printeria TU with identical promoters, RBS and transcriptional terminators. An LVA degradation tag has been added to one of the protein sequences in one TU. This tag causes an increase in protease activity and, therefore, a faster degradation of the reporter protein in the cell. A priori, we can deduce that the degradation rate in the TU that presents the degradation tag will be higher.
With these experiments, our team aims to meet two objectives:
To analyze the effect of the protein degradation rate variation on our constitutive expression model, and determine if the model fits the experimental results of the reporter proteins with LVA degradation tag.
Characterize the YFP reporter protein with LVA tag as a new iGEM part and as Improve project .
The main parameters of the experiment and optimization for each reporter protein are described below,. We have followed the usual experimentation procedure and multi-objective optimization protocol.
Experiment parameters |
Description |
---|---|
Time |
06:00:00 (HH:MM:SS). Measurement interval: 05:00 (MM:SS) |
Number of samples |
8 samples for each TU colony |
Number of medium samples |
8 samples of M9 medium |
Temperature |
37 ºC |
Shake |
Double Orbital. Continuously |
Absorbance. Optical Density (OD) measure |
Wavelenght at 600 nm emission |
Excitacion wavelength |
Wavelenght at 500 nm |
Emission wavelength |
Wavelenght at 540 nm |
Gain (G) |
60 |
Optimization specifications |
Description |
---|---|
Parameters |
Constitutive transcription rate CR: fixed Translation rate p: to optimize PoI degradation rate dp: to optimize mRNA degradation rate dm: fixed Dilution rate μ: to optimize Maximum growth capacity Kmax: experimental value |
Objetives to optimize |
For each TU, we set 2 objetives: FOD (Fluorescence) and OD (Absorbance). In this experiment we have measured 2 TU, so we are optimizing 4 objectives per experiment |
Parameter ranges |
Constitutive transcription rate CR: [ - ] min-1 PoI degradation rate dp: [ - ] min-1 Dilution rate μ: [0.0058 - 0.035] min-1 |
MATLAB files |
spMODEparam.m: it defines the parameters to be optimized, their value ranges, number of objectives, the cost function, the identification and validation experimental data and other spMODE algorithm parameters. When the script is executed, a spMODEDat structure variable is defined. This structure contains all the standardized optimization information that the spMODE algorithm will need for its execution. In this experiment, we have used spMODEparam_exp1YFP.m spMODE.m: it contains the Multi-objective Differential Evolution Algorithm with Spherical Pruning, which optimizes parameters for our experimental results (to execute spMODE.m file we need also SphPruning.m file). CostFunction_improve_RMS_2n.m: it simulates the model with different vector parameters, and calculates the Root Mean Square Error with the identification dataset. Then, it returns the error for each objective and parameter vector. levelDiagram.m: plots Pareto front and Pareto set that gives us back the algorithm. execute.m: this script launches the optimization by executing spMODEparam.m, spMODEm algorithm and levelDiagram.m. Then, allows the user to enter the best parameters, and plots validation experimental data and simulation results in the same graph. |
Inducible expression models
Inducible expression models are those in which the expression of the cell's messenger RNA (mRNA) depends on one or more inducing molecules, which can act as activators or repressors. The concentration of the inducing species determines the level of expression of mRNA and protein in the cell.
Our Printeria device gives us the possibility to create some inducible genetic constructs. Of all of them, we have managed to design and experiment with some models...
PBAD/araC inducible model
The inducible promoter PBAD/araC [5] is a promoter whose expression depends on two inducing molecules: the L-arabinose (activator) and the araC (repressor). The dimeric protein araC binds to the DNA chain forming a DNA loop and thus prevents the binding between DNA and RNA polymerase. However, when two arabinose molecules bind to the araC dimer, the DNA loop is broken and the binding between the RNA polymerase to the promoting region is possible.
We have proposed a possible mathematical model describing the PBAD/araC mechanism. This theoretical model has been included in the Simulation Tool, so that with Printeria it is possible to predict the behavior of PBAD/araC inducible promoter circuits.
Model design
After analyzing the biochemical functioning of the PBAD/araC promoter, we propose the following cellular scheme that would describe its behavior. It is worth mentioning that we have assumed a very high concentration of araC in the cell, as we have considered that the gene encoding for the araC protein is found in the cell genome (e.g. in DH5α strains).
From the cell schema we can deduce the following biochemical reactions.
Parameter |
Description |
Units |
Value |
---|---|---|---|
D |
Diffusion coefficient | min-1 |
|
Vc |
Cell volume(μL)/External volume(μL) | adimensional |
|
ku |
Dissociation rate of (PBAD.araC.arabi) complex | min-1 |
|
kd |
Dissociation constant of (PBAD.araC.arabi) complex | molec2 |
|
kb |
Association rate of (PBAD.araC.arabi) complex | molec-2min-1 |
|
K |
Transcription rate is calculated by multiplying the transcription rate per plasmid Kt by the mean number of plasmids in cell cn . In our case, we are using the pMBI replication origin, so cn ∼ 500, and CR = KR·cn. |
min-1 |
|
α |
(PBAD.araC) basal activity constant | adimensional |
|
p |
Translation rate |
min-1 |
|
darab |
L-arabinose degradation rate |
min-1 |
|
dm |
mRNA degradation rate |
min-1 |
|
dp |
PoI degradation rate |
min-1 |
|
μ |
Dilution rate |
min-1 |
|
Kmax |
Maximum growth capacity |
cells |
We apply the Law of Mass Action kynetics (LMA) to obtain the differential equations. If we consider that the plasmid copy number cn is constant, we can reduce the model in a differential equation and add an algebraic equation. Thus, we get a model of six differential equations and one algebraic equation, as shown below.
Variable |
Biochemical species |
Units |
---|---|---|
n1 |
(PBAD.araC.arab) complex |
Molecules |
n2 |
Extracellular L-arabinose |
Molecules |
n3 |
Intracellular L-arabinose |
Molecules |
n4 |
mRNA |
Molecules |
n5 |
PoI |
Molecules |
n6 |
Number of cells |
Cells |
Having developed the equation model from the cell schema and biochemical reactions, we have programmed two MATLAB files: the mi_araC_simplest.m function, which describes the system of differential equations, and the script model_inducible_simplest.m in which the parameters are defined and the model is solved by the ode23t MATLAB function. The result of the simulation of the model is shown below.
LuxR LuxI inducible model
HSP inducible model
Multi-objective parameter optimization
To what extent is our model valid? What values should the parameters take? To what extent do the theoretical results resemble the experimental ones? Is our model able to explain the behaviour of cells in reality?
One of the most important phases in the field of Printeria Modeling has been the validation of theoretical models with experimental data. In the Printeria team we wanted to confirm that the models designed are consistent with our experiments. However, we know that the parameters will not take a fixed value, but vary depending on the genetic construction with which we experiment. With this idea in mind, the need to apply an optimization process arises.
The process of multiobjective parameter optimization [3] consists in finding those parameters of the model that best fit a particular objective, i.e., a particular set of experimental data. From a dataset, and applying a mathematical algorithm, we can find the optimal solutions, also known as Pareto-optimal or Pareto front solutions. These solutions are such that there are no more solutions that do not improve one objective without worsening the rest.
From the Printeria Modeling team we have established a protocol that allows us to obtain the optimal solutions of the model parameters for any experiment:
We define the objectives to be optimized. These will be the values of Fluorescence F/Unit of Absorbance OD or FOD, and the cellular growth (OD) of a Transcriptional Unit (TU). Therefore, if we have different n TU in an experiment, we will optimize 2n objectives.
We choose the parameters to optimize and establish the range of values they can take.
We select the identification and validation data. The identification data are those used in the optimization process. The validation data are used to compare the experiment with the simulated theoretical model and the optimized parameters.
We define the cost function, which specifies the error function to be minimized, simulates the model with different parameter values, and calculates the error between the simulation data and the experimental identification data.
The mathematical optimization algorithm is executed. In our case we use the Multi-objective Differential Evolution Algorithm with Spherical Pruning. This algorithm uses the cost function to test different parameter values and thus search for optimal parameter values.
The Pareto set and Pareto Front diagrams and the different solutions of our optimized parameters for the different objectives are obtained.
Decision Making is carried out by the designer. The optimal parameters are chosen for our 2n objectives.
The model is simulated with the optimized parameters and compared with the validation data.
Following this protocol, and particularizing it for each experiment, we have been able to determine the validity of our models and obtain the best parameters for our experiments.
Simulation Tool
One of the main challenges of the Printeria project has been to give the user a chance to really understand what our device is doing when it prints genetic circuits on bacteria. Facing this challenge, we have also sought to provide as much information as possible about the Printeria product. And what better way than to give our user a quantitative, mathematical description of what happens in our cells?
In our project we believe that mathematical modeling can be a very powerful tool for transmitting knowledge, so the Printeria Software and Modeling teams have brought together the most outstanding mathematical models in a single Simulation Tool.
Our Simulation Tool has been conceived as a mathematical model simulation program that has been perfectly integrated into our Printeria Controller software. When our user wants to assemble a genetic construct and selects the parts, the Simulation Tool offers the possibility to experiment in silico and predict cell behavior before printing the bacteria. All this, just by pressing the Show model results button... and instantly!
But how does the Simulation Tool work?
The Printeria Modeling and Software teams have jointly designed a program developed in a single Python script (have a look at our simulate.py script). The program combines the functions of the main mathematical models of Printeria with the information of the Printeria kit stored in the Printeria database. In addition, as it is a single Python file, it is stored and run on the Raspberry Pi 3 server.
Now let's see what happens if the user has chosen the Printeria parts and presses the Simulate button...
The Printeria client connects to the Printeria MongoDB database where we store all the information of our Printeria kit.
The four parts of the genetic construction (promoter, RBS, CDS and transcriptional terminator) are extracted from the database thanks to their identifiers.
The type of model (constitutive or inducible expression) is identified from the type of promoter selected.
The model parameters of each construction part are extracted.
The initial conditions of the simulation and its duration are established.
The model is simulated using Python's odeint function
A temporary CSV file is generated in which the we store the results of the simulation in a certain format.
From the CSV file, the simulation results are represented graphically on the Printeria site. The user can view or download their results.
And what are the advantages of an application like our Simulation Tool?
User-friendly. It is very simple to operate for the user. Just select your Printeria parts, press a button... And presto!
Integrated. All our software is included in the Raspberry Pi 3 server. You don't need to download the program.
Instant experimental data. Our Simulation Tool runs simulations at high speed. In a few seconds you'll have your results.
Customizable parameters. You can modify your parameters and adapt them to your experiment, to obtain more precise results.
All-in-one. Our Simulation Tool includes several mathematical models, constitutive and inducible, in a single code and solves them particularizing for each Printeria genetic construction.
Would you like to try the Simulation Tool? Go to our Printeria Controller site and discover all the possibilities offered by our software.
What are you waiting for to start discovering it?
References
Picó, J., Vignoni, A., Picó-Marco, E., & Boada, Y. (2015). Modelado de sistemas bioquímicos: De la ley de acción de masas a la aproximación lineal del ruido. Revista Iberoamericana de Automática e Informática Industrial RIAI, 12(3), 241-252.
Segel, L. A., & Slemrod, M. (1989). The quasi-steady-state assumption: a case study in perturbation. SIAM review, 31(3), 446-477.
Boada, Y., Vignoni, A., Reynoso-Meza, G., & Picó, J. (2016). Parameter identification in synthetic biological circuits using multi-objective optimization. Ifac-Papersonline, 49(26), 77-82.
Boada, Y., Vignoli, A., & Picó, J. (2017). Reduction of population variability in protein expression: A control engineering approach. Actas de las XXXVIII Jornadas de Automática.
Schleif, R. (2000). Regulation of the L-arabinose operon of Escherichia coli. Trends in Genetics, 16(12), 559-565.