Difference between revisions of "Team:Aalto-Helsinki/Modeling synergy"
(Added 2 of the results figures, still one to go) |
m (Added simulation to downloadebles) |
||
(22 intermediate revisions by 4 users not shown) | |||
Line 46: | Line 46: | ||
#sidenav { display: none; } | #sidenav { display: none; } | ||
} | } | ||
+ | /* Background pic */ | ||
+ | .compscreens { | ||
+ | background-repeat: repeat-y; | ||
+ | background-image: url("https://static.igem.org/mediawiki/2015/1/11/Aalto-Helsinki_modeling_background.png"); | ||
+ | background-size: 100%; | ||
+ | } | ||
</style> | </style> | ||
<ul id="sidenav" class="nav nav-stacked"><!-- nav-pills if we want rounded corners --> | <ul id="sidenav" class="nav nav-stacked"><!-- nav-pills if we want rounded corners --> | ||
<li><a href="#" data-scroll="introduction"><h3>Introduction</h3></a></li> | <li><a href="#" data-scroll="introduction"><h3>Introduction</h3></a></li> | ||
+ | <li><a href="#" data-scroll="assumptions"><h3>Assumptions</h3></a></li> | ||
<li><a href="#" data-scroll="model"><h3>The Model</h3></a></li> | <li><a href="#" data-scroll="model"><h3>The Model</h3></a></li> | ||
− | |||
<li><a href="#" data-scroll="results"><h3>Results</h3></a></li> | <li><a href="#" data-scroll="results"><h3>Results</h3></a></li> | ||
<li><a href="#" data-scroll="discussion"><h3>Discussion</h3></a></li> | <li><a href="#" data-scroll="discussion"><h3>Discussion</h3></a></li> | ||
<li><a href="#"><h3 style="border-top:solid;">To the Top</h3></a></li> | <li><a href="#"><h3 style="border-top:solid;">To the Top</h3></a></li> | ||
− | <li><a href="https://2015.igem.org/Team:Aalto-Helsinki/Modeling" ><h3>To the | + | <li><a href="https://2015.igem.org/Team:Aalto-Helsinki/Modeling" ><h3>To the Parent Page</h3></a></li> |
</ul> | </ul> | ||
− | + | <div class="compscreens"> | |
<div class="inner-container"> | <div class="inner-container"> | ||
− | <h1>Synergy | + | <h1>Synergy model</h1> |
<!-- Introduction --> | <!-- Introduction --> | ||
Line 75: | Line 81: | ||
<p>One big concern in our project was the efficiency of propane production. To solve this problem we wanted to use micelles to hold enzymes together and speed up the reactions. By having two of our most inefficient enzymes close together we try to increase the propane yield. Our only question regarding this is: Does it actually work?</p> | <p>One big concern in our project was the efficiency of propane production. To solve this problem we wanted to use micelles to hold enzymes together and speed up the reactions. By having two of our most inefficient enzymes close together we try to increase the propane yield. Our only question regarding this is: Does it actually work?</p> | ||
− | <p>The idea behind this approach is to get the majority of butyraldehyde to ADO and propane production than to other butyraldehyde- | + | <p>The idea behind this approach is to get the majority of butyraldehyde to ADO and propane production than to other butyraldehyde-consuming enzymes. Intuitively this should happen if CAR and ADO are close together.</p> |
− | <p>To address this not so trivial question of feasibility of this approach, the modeling team assembled and thought about the problem. This problem couldn’t be described easily with simple differential equations since then notions of distance, proximity and their relation with enzyme reaction rates would have to be thoroughly researched | + | <p>To address this not so trivial question of feasibility of this approach, the modeling team assembled and thought about the problem. This problem couldn’t be described easily with simple differential equations since then notions of distance, proximity and their relation with enzyme reaction rates would have to be thoroughly researched.</p> |
<p>Instead, the modeling team wondered: Is it possible to model the enzyme reactions like they happen in a cell? In the real world, there are no simple numbers inside the cell: Notions like reaction rate and enzyme kinetics arise from the chaotic fluctuations between molecules inside the cell. Enzyme reactions between enzymes and substrates are dependent on many factors, such as molecules having the right energy and orientation.</p> | <p>Instead, the modeling team wondered: Is it possible to model the enzyme reactions like they happen in a cell? In the real world, there are no simple numbers inside the cell: Notions like reaction rate and enzyme kinetics arise from the chaotic fluctuations between molecules inside the cell. Enzyme reactions between enzymes and substrates are dependent on many factors, such as molecules having the right energy and orientation.</p> | ||
− | <p>As such, this problem is quite | + | <p>As such, this problem is quite difficult and would undoubtedly need a lot of research. Instead, we decided to simplify the situation: Could we simulate enzymes and substrates as particles in a cell and model enzyme reactions by simulating their interactions with each other?</p> |
+ | |||
+ | <p>It just so happens that we can do that. So we did. Our modeling team created a model using Python called the synergy model, as it models the effect of having different enzymes working together.</p> | ||
</section> | </section> | ||
<!-- Introduction end --> | <!-- Introduction end --> | ||
+ | <!-- Assumptions and background --> | ||
+ | <section id="assumptions" data-anchor="assumptions"> | ||
− | < | + | <h2>Assumptions and other background</h2> |
− | < | + | |
− | < | + | <p>The model is built on a big list of assumptions. Some of these assumptions were made to simplify the situation, some of them were made to include some aspects of enzyme activity. Here are some of the most important ones.</p> |
− | < | + | <h3>Fundamental assumptions that are not changeable in the simulation</h3> |
− | <p> | + | <p>Enzymes and substrates are smallish particles floating in the cell. These particles move because of Brownian motion. This motion is affected by the size of the particles.</p> |
+ | <p>Enzymes and substrates only react when they are in close enough proximity with each other. In addition to this, enzymes and substrates only react with the correct type of substrate and enzyme, respectively.</p> | ||
− | < | + | <p>Reactions between enzymes and substrates are difficult to model. Since we don’t have a good way of predicting when a reaction should happen given that an enzyme and a substrate meet, we decide this by giving a reaction a probability to succeed and polling this probability every time a substrate and enzyme meet.</p> |
− | + | ||
− | + | ||
− | </ | + | |
− | <p> | + | <p>Enzyme concentration and therefore particle number stays constant during the simulation. |
+ | </p> | ||
− | <p> | + | <p>Substrate amounts are decided in the beginning of the simulation.They can be set to be constant (good for for example initial substrate) or they can be set to be affected by the enzyme reactions.</p> |
− | <p | + | <p>The model keeps the enzymes and substrates on a 2D plane, as opposed to a 3D space. This is because we assume that the model's behaviour doesn't change much between 2D and 3D space.</p> |
− | <p> | + | <p>To simplify this model, enzymatic reactions do not take into account cofactors or multiple substrates.</p> |
− | < | + | <h3>Optional assumptions that the user can either activate or leave unused</h3> |
− | + | ||
− | + | ||
+ | <p>Enzyme reactions are not instantaneous, instead they take some time that is specific to the enzyme.</p> | ||
− | <p> | + | <p>Some enzymes may be in close proximity with each other, if they are e.g. fused together or in micelles.</p> |
− | <p> | + | <p>Some or all of the substrates can have a constant concentration, even if some enzymes consume them. This is the case if the substrate amount (not necessarily the concentration) is so huge when compared to enzyme amount that the enzyme’s effect on its amount is negligible.</p> |
− | + | ||
− | + | ||
− | + | ||
</section> | </section> | ||
− | <!-- | + | <!-- Assumptions end --> |
− | <!-- | + | <!-- The model --> |
− | <section id=" | + | <section id="model" data-anchor="model"> |
− | <h2> | + | <h2>The Model</h2> |
− | <p> | + | <p>To compare between enzymes being close together and not being close together, the model simulates enzyme reactions inside a cell. The model behaves stochastically, and needs to be ran multiple times to ensure reliable results, as its results will vary according to pseudorandom variables.</p> |
− | < | + | <p>The model is a computer program made with Python that simulates a space filled with enzymes and substrates which react with each other. A simplified flowchart of the program is presented on the side, see <a href="#fig2">Fig. 2.</a></p> |
− | |||
− | < | + | <figure id="fig2" style="float:right;margin-bottom:2%;margin-left:1%;" > |
+ | <img src="https://static.igem.org/mediawiki/2015/4/48/Aalto-Helsinki_particle_model_flowchart.png" style="width:400px;margin-top:40px;" /> | ||
+ | <figcaption><b>Figure 2:</b> Flowchart of the model </figcaption> | ||
+ | </figure> | ||
− | <p> | + | <p>Now, let’s go through the different phases of the simulation:</p> |
− | <p> | + | <p><b>Initialization:</b> The program loads a settings file filled with information concerning the simulation, and creates a simulation according to these specifications. With this file the user can, for example, specify the length of the simulation, the different substrates with their amounts and masses, as well as the different enzymes and the types of substrates and products they either consume or produce.</p> |
− | </p> | + | |
− | <p> | + | <p><b>Particle movement:</b> The model moves particles according to Brownian motion in water. With particles of this size the governing attribute these particles have is their radius.</p> |
− | <p>The | + | <p>The movement of particles under the influence of Brownian motion follows a normal distribution. According to <a href="http://advancedlab.org/mediawiki/index.php/Simulating_Brownian_Motion" target="_blank">this reference</a>, the mean squared displacement of particles experiencing Brownian motion is proportional to the time interval: \[ \left( | r(t + dt) - r(t) |^2 \right) = 2 \cdot d \cdot D \cdot dt \] where \( r(t)\) is the position of the particle, \(d\) is the number of dimensions, \(D\) is the diffusion coefficient and \(dt\) is time interval. For us to generate correct Brownian motion for our particles, we need to set the standard deviation of the normal distribution to \[ k = \sqrt{D \cdot d \cdot dt}, \]which is equal to scaling the distribution by k. For our simulation, \( d=2\) and \( dt\) is a time interval defined by the user. \( D\) or the diffusion coefficient is calculated from the Einstein relation: \[ D = \mu k_BT \] where \(k_B\) is the Boltzmann’s constant and \( T\) is the temperature, and \( \mu \) is the particle’s mobility: \[ \mu = \frac{1}{6 \pi \eta r} \] where \( \eta \) is the dynamic viscosity of the fluid and \( r\) is the particle’s radius.</p> |
− | <p>To | + | <p>Getting the radius of the particles is a bit trickier. To calculate this, we <a href="https://2015.igem.org/Team:Aalto-Helsinki/Modeling_micelle">use the same method as in our Micelle modeling</a>. Based on the information in <a href="http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3055910/" target="_blank">this paper</a> we can calculate the enzymes’ radii from their mass. |
+ | Proteins' approximate density is 1.37 g/ml. Thus, the specific partial volume (or inverse density) is 0.73 ml/g. From this, we can calculate that the volume of an enzyme mainly consisting of amino acids is \[V(nm^3)=\frac{0.73\tfrac{cm^3}{g}10^{21}\tfrac{nm^3}{cm^3}}{6.023\cdot 10^{23} \tfrac{Da}{g}} M(Da).\] Then, if we approximate the enzymes as spheres with a volume \( V(r) = \frac{4}{3} \pi r^3 \), we can calculate the enzymes' radii:\[R_{min(nm)} = \left( \frac{3V}{4\pi} \right)^{1/3}\ = \left( \frac{3\cdot \frac{0.73\tfrac{cm^3}{g}10^{21}\tfrac{nm^3}{cm^3}}{6.023\cdot 10^{23} \tfrac{Da}{g}}}{4\pi} \right)^{1/3} \cdot \left( M(Da) \right) ^{1/3} | ||
+ | = 0.066 \cdot (M(Da))^{1/3} \] For substrates this is not so easy. To simplify the situation we used the same method for calculating the approximate radii for the substrates as well, based on their molar mass.</p> | ||
− | |||
− | <p> | + | <p><b>Reactions:</b> The simulation considers that a reaction is possible only when a right type of substrate and a right type of enzyme are close enough to react. When this happens, the simulation randomly decides if the reaction actually takes place with user-defined probability. If the reaction happened, the simulation changes the substrate to the enzyme’s product and makes both the substrate and enzyme unable to react for a short amount of time.</p> |
− | <p> | + | <p><b>Data logging:</b> the program collects only one type of data, and that is the particle numbers of each substrate at each point in time that the simulation runs. This makes it possible to make figures of the reactions and to determine the different reaction rates.</p> |
− | <p> | + | <p><b>Post-Simulation tasks:</b> |
+ | After the simulation, the program creates a data file from the simulation data it gathered. This data file has data about the amounts of substrates at each point in time.</p> | ||
</section> | </section> | ||
− | <!-- | + | <!-- Model end --> |
Line 167: | Line 174: | ||
<h2 id="results">Results</h2> | <h2 id="results">Results</h2> | ||
− | <p>Our awesome results!</p> | + | <!--<p>Our awesome results!</p>--> |
<p>To get some concrete results from our model, we ran it using different starting settings and different starting conditions, such as the amount of enzymes or substrates in the cell, different amounts of competing enzymes as well as different reaction parameters for the enzymes.</p> | <p>To get some concrete results from our model, we ran it using different starting settings and different starting conditions, such as the amount of enzymes or substrates in the cell, different amounts of competing enzymes as well as different reaction parameters for the enzymes.</p> | ||
− | <p>Settings with both joined enzymes and no joined enzymes were used to get the results presented. In addition to this, the model was tested with settings with competing enzymes to better represent the real-world scenario inside | + | <p>Settings with both joined enzymes and no joined enzymes were used to get the results presented. In addition to this, the model was tested with settings with competing enzymes to better represent the real-world scenario inside <i>E. coli</i>, where there are multiple competing enzymes consuming butyraldehyde.</p> |
− | <p>The simulation space was set to represent a cross section of an | + | <p>The simulation space was set to represent a cross section of an <i>E. coli</i> bacteria. Time resolution of the simulations was set to 1 µs. The simulations considered the initial substrate’s concentration to be constant. The reaction probabilities for different enzymes were set at 15%. Total elapsed simulation time was 0.1 s. The amount of competing enzymes varied from 0% to 1500% of the other enzymes’ amounts between simulations. The other enzymes’ amounts were not varied between simulations. The simulation setting files are available <a href="https://static.igem.org/mediawiki/2015/6/66/Aalto-Helsinki_synergy_model_setting_files.zip">here</a>. The data files that were gotten from the simulations are available <a href="https://static.igem.org/mediawiki/2015/7/72/Aalto-Helsinki_synergy_model_simulation_data.zip">here</a>. The simulation itself can be downloaded <a href="https://static.igem.org/mediawiki/2015/f/f2/Aalto-Helsinki_synergy_model.zip">here</a>.</p> |
<p>The simulation results indicate that simulations with joined enzymes as opposed to unjoined enzymes achieved higher product creation rates. When more competing enzymes were present in the simulation, the difference between joined and unjoined enzymes became more apparent. In some simulations, joined enzymes got up to 400% reaction rate as opposed to non-joined enzymes. In most simulations, joined enzyme reaction rate changed between 150% and 400% of unjoined enzyme reaction rate, depending on how much competing enzymes there were. In all of the simulations joined enzymes performed as well or better than unjoined enzymes.</p> | <p>The simulation results indicate that simulations with joined enzymes as opposed to unjoined enzymes achieved higher product creation rates. When more competing enzymes were present in the simulation, the difference between joined and unjoined enzymes became more apparent. In some simulations, joined enzymes got up to 400% reaction rate as opposed to non-joined enzymes. In most simulations, joined enzyme reaction rate changed between 150% and 400% of unjoined enzyme reaction rate, depending on how much competing enzymes there were. In all of the simulations joined enzymes performed as well or better than unjoined enzymes.</p> | ||
− | |||
− | |||
<figure style="margin-bottom:2%;"> | <figure style="margin-bottom:2%;"> | ||
<img src="https://static.igem.org/mediawiki/2015/e/e9/Aalto-Helsinki_Synergy_model_timecourse_0_80_300.png" style="max-width:100%;" /> | <img src="https://static.igem.org/mediawiki/2015/e/e9/Aalto-Helsinki_Synergy_model_timecourse_0_80_300.png" style="max-width:100%;" /> | ||
− | <figcaption><b>Figure 3:</b>Time course of | + | <figcaption><b>Figure 3:</b>Time course of end product amounts with both joined and unjoined enzymes and different amounts of competition.</figcaption> |
</figure> | </figure> | ||
Line 189: | Line 194: | ||
</figure> | </figure> | ||
+ | <figure style="margin-bottom:2%;"> | ||
+ | <img src="https://static.igem.org/mediawiki/2015/0/08/AaltoHelsinki-particle_model_intermediate_particle_real_scaled_40.png" style="max-width:100%;" /> | ||
+ | <figcaption><b>Figure 5:</b> Substrate time spent as intermediate, comparing between joined enzymes and unjoined enzymes. Competitive enzymes set at 2 times the amount of ADO. The amount of particles' times recorded is scaled so that both add up to 100%.</figcaption> | ||
+ | </figure> | ||
Line 218: | Line 227: | ||
<p>The model has some virtues. One of these is that the model is quite lightweight, and can simulate thousands of particles with the resources of a single machine in a reasonable time. The model is also quite flexible, and can be easily configured through the use of its settings file, in which the user can choose both the general settings concerning the simulation space and timescale as well as set the enzymes and substrates that are relevant to the reactions using a human readable file.</p> | <p>The model has some virtues. One of these is that the model is quite lightweight, and can simulate thousands of particles with the resources of a single machine in a reasonable time. The model is also quite flexible, and can be easily configured through the use of its settings file, in which the user can choose both the general settings concerning the simulation space and timescale as well as set the enzymes and substrates that are relevant to the reactions using a human readable file.</p> | ||
− | <p>All in all, the model can be useful if it's remembered that its predictions should be viewed as guidelines only, and if one remembers the simplifications made in the enzymes’ function. </p> | + | <p style="margin-bottom:0;padding-bottom:10%;">All in all, the model can be useful if it's remembered that its predictions should be viewed as guidelines only, and if one remembers the simplifications made in the enzymes’ function. </p> |
</section> | </section> | ||
<!-- Discussion ends --> | <!-- Discussion ends --> | ||
− | |||
+ | </div> | ||
</div> | </div> | ||
</div></div></div> <!--These are the closing tags for div id="mainContainer" and div id="contentContainer". The corresponding opening tags appear in the template that is {{included}} at the top of this page.--> | </div></div></div> <!--These are the closing tags for div id="mainContainer" and div id="contentContainer". The corresponding opening tags appear in the template that is {{included}} at the top of this page.--> | ||
− | + | <p style="margin-bottom:0;"><!-- there is a /p at the ready wiki footer; it would leave a gap in the page without this --> | |
<!-- Scirpt for beautiful scrolling inside the page: smooth transitions and we show in what section the reader is. --> | <!-- Scirpt for beautiful scrolling inside the page: smooth transitions and we show in what section the reader is. --> | ||
<script src="https://2015.igem.org/Team:Aalto-Helsinki/ResponsiveNavScript?action=raw&ctype=text/javascript"></script> | <script src="https://2015.igem.org/Team:Aalto-Helsinki/ResponsiveNavScript?action=raw&ctype=text/javascript"></script> | ||
− | |||
− | |||
− | |||
− |
Latest revision as of 06:41, 17 September 2015