Difference between revisions of "Team:Bordeaux/Model"

 
(110 intermediate revisions by 4 users not shown)
Line 10: Line 10:
  
 
         <div class="content_wrapper">
 
         <div class="content_wrapper">
 +
        <div class=column full_size">
 +
 
         <canvas id="myCanvas"></canvas>
 
         <canvas id="myCanvas"></canvas>
 
                 <script src="http://savandara.besse.emi.u-bordeaux.fr/Wiki/bubbles.js"></script>
 
                 <script src="http://savandara.besse.emi.u-bordeaux.fr/Wiki/bubbles.js"></script>
Line 15: Line 17:
 
         <script>
 
         <script>
  
         var myName = "Modeling";
+
         var myName = "Modelling";
  
 
         var red = [0, 100, 63];
 
         var red = [0, 100, 63];
Line 35: Line 37:
  
 
         </script>
 
         </script>
 
+
        <img style="display:block;  
            <div class="column full_size">
+
 
+
            <p align="justify"><br><br>
+
 
+
            <img style="display:block;  
+
 
             margin-left: auto;  
 
             margin-left: auto;  
 
             margin-right: auto;  
 
             margin-right: auto;  
 
             width:40%;
 
             width:40%;
 
             height:auto; float:right"  
 
             height:auto; float:right"  
            src="https://static.igem.org/mediawiki/2016/f/f3/T--Bordeaux--Button.png"  
+
          src="https://static.igem.org/mediawiki/2016/c/c0/T--Bordeaux--ModelCollabToulouse.png"
             title="Sleep with EpiC elegans">                                      
+
             title="Thanks to iGEM Toulouse for creating this picture with Blender">  
 +
 
 +
            <p align="justify"><br><br>
  
 
             <ol style="font-weight:bold">
 
             <ol style="font-weight:bold">
Line 138: Line 137:
 
             <div class="column full_size">
 
             <div class="column full_size">
  
            <p align="justify">All iGEM projects involve modified organisms. When we work with those organisms, the question of confinement is essential to prevent their spreading out of the lab. Even if each team thinks about the best tool to answer this question, our team has decided to think about the worst situations.</p>
+
<p align="justify"><b>Computational modelling</b> has often been sought to solve and predict biological phenomena, and it has notably been applied to bacterial behaviour simulation.
           
+
 
            <h5 style="text-align:center"> What happens when a bacterial population escapes from our test tubes ?</h5>
+
As it is now, almost all iGEM teams use bacteria to engineer their bio-bricks and to make each year even more wonderful projects for the iGEM community. However, we also all have to keep in mind the <b>safety issues</b>, and confine our bacteria properly to avoid letting them spread in the laboratory.</p>
           
+
 
            <p align="justify">To answer this question, we decided to create a computational simulation model in order to see :
+
  <h5 style="text-align:center"> How could we estimate a risk of contamination?</h5>
            <ul>
+
 
                <li><b>the number of bacteria that could proliferate on a lab bench</b></li>
+
<p align="justify">It was while considering this matter that the iGEM Bordeaux Team developed a simulation model aiming to :</p>
                <li><b>what percentage of these bacteria would able to maintain their plasmid</b></li>
+
<ul>
            </ul>
+
<li>estimate the number of bacteria that could proliferate on a lab bench.</li>
            </p>
+
<li>see what percentage of these bacteria were able to maintain their plasmid.</li>
           
+
</ul>
            <p align="justify">The presentation of our work will be done in different sections. First, we are going to explain our approach in choosing a simulation model and our reasons for our choices. In the next section, we will describe how we have created our model and explain its initialization. After this, we will explain our mathematical choices to modelize bacterial growth and plasmid loss. Finally, we will make an assessment of our model, explain how we have validated it and give our perspectives for this project.</p>
+
<p align="justify">This work will be developed in different sections. We will first justify our approach of the simulation, then describe our model and explain <b>bacterial growth and plasmid transmission</b>. We will finally make an assessment of our model, explain our approach to validate it and give our perspectives for this project.</p>
  
 
             </div>
 
             </div>
Line 157: Line 156:
 
     </section>
 
     </section>
 
      
 
      
     <section id="mamodelTarget">
+
     <section>
  
 
         <div class="content_wrapper">
 
         <div class="content_wrapper">
  
             <div class="column full_size">
+
             <div class="column full_size"  id="mamodelTarget">
 
          
 
          
 
             <h2>1.  Multi-agent modelling</h2>
 
             <h2>1.  Multi-agent modelling</h2>
Line 167: Line 166:
 
             <h3>The definition</h3>
 
             <h3>The definition</h3>
 
          
 
          
             <p align="justify">In informatics, a multi-agent system aims to represent intelligent agents which interact with one another and with a specific environment. In our case, our agents are bacteria, dispersed randomly on a grid (our environment).  
+
             <p align="justify">In informatics, <b>a multi-agent system</b> aims to represent intelligent agents which interact with one another and with a specific environment. In our case, our agents are bacteria, dispersed randomly on a grid (our environment).  
  
 
             The bacteria are submitted to successive actions such as growth or division, and have specific attributes such as a an individual cell mass, or more importantly a plasmid.  
 
             The bacteria are submitted to successive actions such as growth or division, and have specific attributes such as a an individual cell mass, or more importantly a plasmid.  
             Our model aims to provide friendly users with information about bacterial growth. If you wish to evaluate a risk of contamination, or to experiment with parameters to characterise bacterial plasmid transfer or plasmid maintenance, you are welcome to test it out! </p>
+
             Our model aims to provide friendly users with information about bacterial growth. If you wish <b>to evaluate a risk of contamination</b>, or to experiment with parameters to characterise bacterial plasmid transfer or plasmid maintenance, you are welcome to test it out! </p>
  
 
             <h3> Why have we chosen this model?</h3>
 
             <h3> Why have we chosen this model?</h3>
  
             <p align="justify"> As stated before, our modelling choice was to implement a multi-agent systems. Multi-agent modelling are frequently used to model biological phenomena. It stands out against continuous mathematical modelling, which is often used for predictions at a population level. <br>
+
             <p align="justify"> As stated before, our modelling choice was to implement a multi-agent systems. Multi-agent modelling is frequently used to model biological phenomena. It stands out against continuous mathematical modelling, which is often used for predictions at a population level<a href="#references">[1]</a>. <br>
 
             Multi-agent modelling offers different advantages :  
 
             Multi-agent modelling offers different advantages :  
 
             <ul>
 
             <ul>
 
                 <li><b>Stochasticity</b> : contrary to mathematical deterministic equations, it is much easier to induce randomness in multi-agents models.</li>
 
                 <li><b>Stochasticity</b> : contrary to mathematical deterministic equations, it is much easier to induce randomness in multi-agents models.</li>
 
                 <li><b>Heterogeneity</b> within a population. </li>
 
                 <li><b>Heterogeneity</b> within a population. </li>
                 <li>BLA BLA BLA</li>
+
                 <li><b>Interaction</b> between the different agents</li>
 
             </ul>  
 
             </ul>  
 
          
 
          
Line 190: Line 189:
 
     </section>
 
     </section>
  
     <section id="overviewTarget">
+
     <section>
 
         <div class="content_wrapper">
 
         <div class="content_wrapper">
  
             <div class="column full_size">
+
             <div class="column full_size" id="overviewTarget">
 
             <h2>2.  Overview</h2>
 
             <h2>2.  Overview</h2>
  
 
             <h3>Our programming choices</h3>
 
             <h3>Our programming choices</h3>
 
             <p align="justify">
 
             <p align="justify">
             Our main concern in this project was the rapidity of the simulation. Indeed, bacteria can quickly develop, and our processor may have to face a horde of ever-growing agents. Hence, we chose to implement our simulation in C++. <br><br>
+
             Our main concern in this project was <b>the rapidity of the simulation</b>. Indeed, bacteria can quickly develop, and our processor may have to face a horde of ever-growing agents. Hence, we chose to implement our <b>simulation in C++</b>. <br><br>
  
             As for the interface, we chose a much simpler implementation in Python 2.7. Our program's dependencies are the library gtkm for C++ and for Python Matplotlib. </p>
+
             Our program's <b>dependencies</b> are detailed in the <a href="https://2016.igem.org/Team:Bordeaux/Software">software section</a>.</p>
  
 
             <h3>Creating the agents and environment</h3>
 
             <h3>Creating the agents and environment</h3>
 
             <p align="justify">Initially, an empty lattice is created, containing n number of squares. This number is determined by the height and length of the lattice provided by the user, and set by default at 1000x1000. A square is identified by its id in the lattice and can contain bacteria. If there is more than one bacterium, the bacteria are  piled up in the square, with of course a limit to the piling,also set by the user.<br><br>
 
             <p align="justify">Initially, an empty lattice is created, containing n number of squares. This number is determined by the height and length of the lattice provided by the user, and set by default at 1000x1000. A square is identified by its id in the lattice and can contain bacteria. If there is more than one bacterium, the bacteria are  piled up in the square, with of course a limit to the piling,also set by the user.<br><br>
 
             The bacterial agents are then created, and randomly set in different squares. Each bacterial cell possesses certain characteristics such as a mass, a volume,  an identifier of the square the cell is in etc. </p>  
 
             The bacterial agents are then created, and randomly set in different squares. Each bacterial cell possesses certain characteristics such as a mass, a volume,  an identifier of the square the cell is in etc. </p>  
 +
<center>
 +
            <figure>
 +
              <img src= "https://static.igem.org/mediawiki/2016/1/1d/Grid_with_bacteria.png"
 +
                style="margin-left:auto;
 +
                margin-right:auto;
 +
                height:30%; width:30%"
 +
                title= "Grid with randomly placed bacteria" >
 +
             
 +
            <figcaption><b>Figure 1: Grid with randomly placed bacteria</b></figcaption>
 +
            </figure>
 +
</center>
 +
  
 
             </div>
 
             </div>
Line 211: Line 222:
  
  
     <section id="workTarget">
+
     <section>
  
 
         <div class="content_wrapper">
 
         <div class="content_wrapper">
  
             <div class="column full_size">
+
             <div class="column full_size" id="workTarget">
  
 
             <h2>3. How does it work?</h2>
 
             <h2>3. How does it work?</h2>
 
             <h3> Bacterial growth </h3>
 
             <h3> Bacterial growth </h3>
  
             <p align="justify">This model can de divided into two main parts : the growth of the bacterial population and the transmission and maintenance of plasmids in the population.<br><br>
+
             <p align="justify">This model can de divided into two main parts : <b>the growth of the bacterial population</b> and <b>the transmission and maintenance of plasmids</b> in the population.<br><br>
             For the growth of our bacterium agents, we tried two different implementations. The first one is an adaptation of bacterial growth implemented for the first time in Bacsim and based on Donachie and Robison model for of cell division. The second is adapted from the INDISIM methodology for bacterial growth simulation.</p>
+
             For the growth of our bacterium agents, we tried two different implementations. The first one is an adaptation of bacterial growth implemented for the first time in Bacsim <a href="#references">[2]</a> and based on Donachie and Robison model for cell division. The second is adapted from the Indisim methodology <a href="#references">[3]</a> for bacterial growth simulation.</p>
  
 
             </div>
 
             </div>
Line 227: Line 238:
 
             <div class="column half_size">
 
             <div class="column half_size">
 
             <h4>Bacterial growth based on Donachie's model</h4>
 
             <h4>Bacterial growth based on Donachie's model</h4>
 +
           
  
            <p align="justify">This model follows for each bacterium the following steps :
+
    <p align="justify">Figure 1 shows the schedule of activities bacteria repeat once every time-step and will serve to further explain them.</p>
            <img src= "https://static.igem.org/mediawiki/2016/d/d7/T--Bordeaux--bacsim_flowchart.png"
+
              <center>
            style="height:50%; width:50%;"
+
            <figure>
            title= "Flowchart with the bacterial growth steps" >
+
              <img src= "https://static.igem.org/mediawiki/2016/d/d7/T--Bordeaux--bacsim_flowchart.png"
 +
                style="margin-left:auto;
 +
                margin-right:auto;
 +
                height:90%; width:90%"
 +
                title= "Flowchart with the bacterial growth steps" >
 +
             
 +
            <figcaption><b>Figure 2: Flowchart with the bacterial growth steps</b></figcaption>
 +
            </figure>
 +
          </center>           
  
             </p>
+
             <p align="justify">Donachie's model is based on the dependence of the median cell's volume on growth rate during exponential growth. <b>Each cell volume depends on the cell's growth rate</b>, which itself depends on substrate uptake and metabolism. So the formula we used for the volume is V = V<SUB>&#956;</SUB>&#8727;2<sup>&#956;</sup>&frasl;<sub>ln(2)</sub> where &#956; is the growth rate updated at every step.</p>
 +
 +
<p> Hence, after substrate uptake and metabolism, the growth rate of each bacterium is updated, and its new volume is calculated. </p>
 +
   
 +
   
 +
    <p align="justify">At this point, if the bacterium volume falls below a minimum volume, the bacterium dies and the agent is deleted from the lattice.</p>  
  
            <p align="justify">Donachie's model is based on the dependence of the median cell's volume on growth rate during exponential growth. Each cell volume depends on the cell's growth rate, which itself depends on substrate uptake and metabolism.</p>
+
    <p>On the other side, if the bacterial volume becomes superior to the volume at division, the bacterium divides in one of the unoccupied squares of its "division neighbourhood" if there are any. For example, in figure 2 you can see a representation of one part of the environment/grid with some bacteria in it. The possible squares where the central bacterial cell can give a daughter cell are marked in red. </p>
  
            ADD FIGURE
+
          <center>
 
+
             <figure>
             <p align="justify">Hence, after substrate uptake and metabolism, the growth rate of each bacterium is updated, and its new volume is calculated. <br><br>If the bacterium volume becomes superior to the volume at division, the bacterium divides in its "division neighbourhood" » but only if at least one square is unoccupied. </p>
+
              <img src="https://static.igem.org/mediawiki/2016/3/30/T--Bordeaux--bacterial_division.png"
 
+
                                style="margin-left:auto;
            ADD IMAGE
+
                margin-right:auto;
 +
                height:50%; width:50%"
 +
                title= "Flowchart with the bacterial growth steps" >
 +
   
 +
            <figcaption><b>Figure 3: Possible positions for the daughter cell</b></figcaption>
 +
          </center>
  
            <p align="justify">If the bacterium volume falls below a minimum volume, the bacterium dies and the agent is deleted from the lattice.</p>
 
  
 
             </div>
 
             </div>
  
 
             <div class="column half_size">
 
             <div class="column half_size">
 +
         
 +
  <h4>Bacterial growth based on Indisim methodology</h4>
  
             <h4>Bacterial growth based on Indisim methodology</h4>
+
             <p align="justify">Contrary to the precedent model which is based on the cell volume dependence to its growth rate, <b>this model takes into account biomass growth dependence</b>.</p>
  
             <p align="justify">Contrary to the precedent model which is based on the cell volume dependence to its growth rate, this model takes into account biomass growth dependence.</p>
+
             <p> Bacterial growth, as modelled by Indisim, can be divided into different steps : <p>
 +
              <ul>
 +
                    <li> nutrient uptake </li>
 +
                    <li> metabolism </li>
 +
                    <li> eventual reproduction </li>
 +
                    <li> eventual death </li>
 +
              </ul> 
 +
            </p>
 +
 
 +
<p>For nutrient uptake, a bacterium can take nutrients from the square where it is located. Two factors are then taken into consideration : the nutrients capability to reach the cell surface and the cell's ability to metabolize those nutrients.</p>
 +
 
 +
<p>Nutrient are consumed in accordance to the following formula :  U<SUB>(max)</SUB> = Z(cm<SUP>&#945;</SUP>), where :
 +
    <ul>
 +
        <li><b>U<SUB>(max)</b> is the maximum number of nutrient particles that can be taken by the bacterium.</li>
 +
        <li><b>Z</b> is a <b>random variable</b> with mean <span style="text-decoration: overline;">U</span><SUB>max</SUB> and standard deviation &#963;.  </li>
 +
        <li> c is a constant</li>
 +
        <li> m is the mass of the bacterium </li>
 +
    </ul>
 +
</p>
 +
 
 +
<p>If U &ge; kS , where <b>k</b> is the percentage of nutrients that will <b>actually be consummed by the cell</b> ,then the actual uptake by the bacterium is U = kS. On the other hand, if kS < U then only S − U nutrient particles remain in the square.</p>
 +
 
 +
<p>The nutrients absorbed are then metabolized into biomass. For modelling metabolism, we use a metabolism constant, Y, which represents the rate of synthetized biomass units per metabolised nutrient particles. After metabolism, the bacterium grows, and the new bacterial mass is m+B, where B = UY.</p>
  
            TO BE CONTINUED
+
<p>The reproduction step in Indisim differs from the precedent one, as the bacterium won't divide instantly when reaching a specific mass. There will be a time-lapse before the bacterium can divide. </p>
  
 +
<p>For our simulations, we set the default parameters found in the Indisim simulation on the growth of bacteria on agar plates, but these <b>parameters can be modified by the user</b>.</p>
 +
       
 
             </div>
 
             </div>
  
Line 269: Line 324:
 
             <h3>Plasmid loss</h3>
 
             <h3>Plasmid loss</h3>
  
             <p>Bacterial plasmids are extra-chromosomal genetic elements that can be transferred from one bacterium to another.  We chose with this model to implement the horizontal and vertical transfer of genes between these bacteria.</p>
+
             <p>Bacterial plasmids are <b>extra-chromosomal genetic elements</b> that can be transferred from one bacterium to another.  We chose with this model to implement the horizontal and vertical transfer of genes between these bacteria.</p>
  
             <p>The vertical transfer of genes is the transmission of a plasmid from a cell to its daughter cell after division. During the division, it is assumed that the daughter bacterium can fail to receive the plasmid with a given probability : this phenomenon is known as segregative loss.  As the probability is directly taken from data from the scientific press (« Modelling the spatial dynamics of plasmid transfer and persistence »), and as its source doesn't take into account the copy number of plasmid, we also chose not to.</p>  
+
             <p><b>The vertical transfer of genes</b> is the transmission of a plasmid from a cell to its daughter cell after division. During the division, it is assumed that the daughter bacterium can fail to receive the plasmid with a given probability <b>p</b> : this phenomenon is known as segregative loss.  As the probability is directly taken from data from the scientific press <a href="#references">[4]</a>, and as its source doesn't take into account the copy number of plasmid, we also chose not to.</p>  
  
             <p>Horizontal gene transfer, also known as conjugation is the direct transfer of genetic material between two bacterium located near each other. Conjugation happens for each plasmid-bearing cell at each time-step. If there is a plasmid free cell in a neighbour square, conjugation can occurs at a rate also taken from press to fit experimental data. It is also considered as an instantaneous event, thus being a simplification of the real process.</p>
+
       
 +
             <p><b>Horizontal gene transfer</b>, also known as conjugation is the direct transfer of genetic material between two bacterium located near each other. Conjugation happens for each plasmid-bearing cell at each time-step. If there is a plasmid free cell in a neighbour square, conjugation can occurs at a rate also taken from press to fit experimental data. It is also considered as an instantaneous event, thus being a simplification of the real process.</p>
  
             <p>We also consider plasmid cost for a bacterium. Indeed, when there is no antibiotic in the environment, plasmid-free bacteria have an advantage over plasmid-bearing ones.</p>
+
             </div>
 +
     
 +
            <div class="column half_size">
  
             TO BE CONTINUED
+
             <figure>
 +
              <img src= "https://static.igem.org/mediawiki/2016/0/03/Segregation_loss_figure.png"
 +
                style="display:block;margin-left:auto;margin-right:auto; height:auto; width:65%"
 +
                title= "Bacterial segregation loss" >
 +
            <figcaption style="text-align:center"><b>Figure 4: Segregation loss</b></figcaption>
 +
            </figure>
 +
 
 +
            </div>
 +
 
 +
            <div class="column half_size">
 +
 
 +
            <figure>
 +
              <img src= "https://static.igem.org/mediawiki/2016/6/61/T--Bordeaux--grid_with_s_bacteria_conjugation.png"
 +
                style="display:block;margin-left:auto;margin-right:auto;  height:auto; width:65%"
 +
                title= "Bacterial conjugation" >
 +
            <figcaption style="text-align:center"><b>Figure 5: Conjugation at rate c</b></figcaption>
 +
            </figure>
 +
            </div>
 +
 
 +
            <div class="column full_size">
 +
 
 +
            <p>We also consider <b>plasmid cost</b> for a bacterium. Indeed, when there is no antibiotic in the environment, plasmid-free bacteria have an advantage over plasmid-bearing ones.</p>
  
 
             </div>
 
             </div>
Line 283: Line 362:
 
         </div>
 
         </div>
 
      
 
      
 +
    </section>
 +
 +
    <section>
 +
        <div class="content_wrapper">
 +
 +
            <div class="column full_size" id="assessmentTarget">
 +
            <h2>4.  Assessment</h2>
 +
 +
            <h3>Our actual version</h3>
 +
            <p align="justify"> Our actual version implements in a simple way bacterial growth and plasmid transmission and loss. A graphical interface allows the user to set different parameters and to run a simulation which outputs a figure plotting the number of bacteria as a function of time (as you can see below):</p>
 +
<center>
 +
            <figure>
 +
              <img src= "https://static.igem.org/mediawiki/2016/d/d4/Indisim_sim_10e4_init.png"
 +
                style="display:block;margin-left:auto;
 +
                margin-right:auto;
 +
                height:50%; width:50%"
 +
                title= "Simulation, 10000 bacteria" >
 +
             
 +
            <figcaption><b>Figure 6: Simulation using the Indisim-method based on bacterial growth. Parameters were : simulation time = 600 min, time-step = 4.19 min, initial number of bacteria = 10000. Others parameters were the ones set by default.</b></figcaption>
 +
            </figure>
 +
</center>
 +
 +
            <p>Furthermore, we also tried to put to the test the data given by the simulation. We used for that experimental data <a href="#references">[5]</a> of different densities of donor bacteria and recipients on agar slides at stationnary phase in function of initial cell densities.</p>
 +
 +
            <p>Unfortunately, the figures obtained were not conclusive. We did not obtain similar curves between simulation and experimental data. This could be due to two main facts :</p>
 +
<ul>
 +
<li>first, the simulation time chosen (10 hours ) was not important enough to see likeness between the two sets of data.</li>
 +
<li>second, we set our bacteria into two states ( donors or recipients ) and didn't take into account the « transconjugant » state.</li>
 +
</ul>
 +
<p>A bacterium becomes a transconjugant when it acquires a plasmid. Its properties are then different from a donor bacterium.</p>
 +
 +
 +
            <h3>Prospects</h3>
 +
            <p align="justify">
 +
 +
As for now, we created <b>a simple multi-agent model for bacterial growth and interactions</b>. This model can be used as a base to more specific simulations on those subjects. Nevertheless, if we could continue this project we would tackle a few issues, such as :</p>
 +
<ul>
 +
<li>Create a <b>transconjugant</b> state and its repercussions.</li>
 +
<li>Create a plasmid agent with its own properties, that would allow to test more specific cases.</li>
 +
<li>Optimize the memory allocation to obtain results more quickly.</li>
 +
</ul>
 +
 +
<p>We hope that this project can help future Igem teams to develop bacterial simulation models! If one of you fellow igemer end up on this page (and if you are interested by this project), you are welcome to contact us!</p>
 +
 +
<p> Our code can be found on <a href="https://github.com/igemsoftware2016/iGEM-Bordeaux-modeling">github</a>, and installation instructions on the <a href="https://2016.igem.org/Team:Bordeaux/Software">software section</a>.</p>
 +
 +
<br><br>
 +
 +
<p> We would also like to thanks fellow iGEM teams for helping us on our model, and providing us with the 3D illustrations! You can find their wikis below : </p>
 +
 +
<br><br>
 +
 +
  <div style="display:block">
 +
                <p style="text-align:center">
 +
                <a href="https://2016.igem.org/Team:INSA-Lyon"><img src="https://static.igem.org/mediawiki/2016/7/71/T--Bordeaux--INSA-Lyon.png" style="padding-right:10px;width:20%;height:auto" title="INSA-Lyon"></a>
 +
                <a href="https://2016.igem.org/Team:Aix-Marseille"><img src="https://static.igem.org/mediawiki/2016/3/35/T--Bordeaux--Aix-Marseille.png" style="padding-right:10px;width:30%;height:auto" title="Aix-Marseille"></a>
 +
                <a href="https://2016.igem.org/Team:Toulouse_France"><img src="https://static.igem.org/mediawiki/2016/1/19/Toulouse_France_logo2.png" style="width:20%;height:auto" title="Toulouse_France"></a>
 +
                </p>
 +
                </div>
 +
 +
<h5> Thank you iGEM Insa-Lyon, iGEM Aix-Marseille and iGEM Toulouse! </h5>
 +
 +
 +
            </div>
 +
        </div>
 +
    </section>
 +
 +
 +
    <section>
 +
    <div class="content_wrapper">
 +
 +
        <div class="column full_size">
 +
 +
        <div id="references">
 +
 +
          <h1>References</h1>
 +
  <ol>
 +
 +
            <li id="one"><a href="http://oa.upm.es/10478/">A first approach to individual-based modeling of the bacterial conjugation dynamics. ,</a> Prestes Garcia, Antonio (2011), Thesis (Master thesis), Facultad de Informática (UPM). </li>
 +
 +
            <li id="two"><a href="https://www.ncbi.nlm.nih.gov/pubmed/9884219">BacSim, a simulator for individual-based modelling of bacterial colony growth,</a> Kreft JU, Booth G, Wimpenny JW - <u>Microbiology</u> (Volume 144, pp. 3275-87, December 1998)</li>
 +
          <li id="three"><a href="https://www.ncbi.nlm.nih.gov/pubmed/11812180">INDISIM, an individual-based discrete simulation model to study bacterial cultures</a>, Ginovart M, López D, Valls J. - <u>Theor Biol.</u> (Volume 214, pp. 305-19, January 2002)</li>
 +
 +
          <li id=four"><a href="https://www.ncbi.nlm.nih.gov/pubmed/17660444">Modelling the spatial dynamics of plasmid transfer and persistence.</a>, Krone SM1, Lu R, Fox R, Suzuki H, Top EM.- <u> Microbiology</u> 2007 Aug;153(Pt 8):2803-16.</li>
 +
 +
          <li id="five"><a href="https://www.ncbi.nlm.nih.gov/pubmed/2200839">Dynamics of plasmid transfer on surfaces</a>, Simonsen L. - <u> J Gen Microbiol.</u> (Volume 136(6), pp. 1001-1007, June 1990)</li>
 +
          </ol>
 +
        </div>
 +
 +
        </div>
 +
 +
        </div>
 +
 
     </section>
 
     </section>
  

Latest revision as of 01:42, 20 October 2016

Sleep with EpiC elegans



Computational modelling has often been sought to solve and predict biological phenomena, and it has notably been applied to bacterial behaviour simulation. As it is now, almost all iGEM teams use bacteria to engineer their bio-bricks and to make each year even more wonderful projects for the iGEM community. However, we also all have to keep in mind the safety issues, and confine our bacteria properly to avoid letting them spread in the laboratory.

How could we estimate a risk of contamination?

It was while considering this matter that the iGEM Bordeaux Team developed a simulation model aiming to :

  • estimate the number of bacteria that could proliferate on a lab bench.
  • see what percentage of these bacteria were able to maintain their plasmid.

This work will be developed in different sections. We will first justify our approach of the simulation, then describe our model and explain bacterial growth and plasmid transmission. We will finally make an assessment of our model, explain our approach to validate it and give our perspectives for this project.

1. Multi-agent modelling

The definition

In informatics, a multi-agent system aims to represent intelligent agents which interact with one another and with a specific environment. In our case, our agents are bacteria, dispersed randomly on a grid (our environment). The bacteria are submitted to successive actions such as growth or division, and have specific attributes such as a an individual cell mass, or more importantly a plasmid. Our model aims to provide friendly users with information about bacterial growth. If you wish to evaluate a risk of contamination, or to experiment with parameters to characterise bacterial plasmid transfer or plasmid maintenance, you are welcome to test it out!

Why have we chosen this model?

As stated before, our modelling choice was to implement a multi-agent systems. Multi-agent modelling is frequently used to model biological phenomena. It stands out against continuous mathematical modelling, which is often used for predictions at a population level[1].
Multi-agent modelling offers different advantages :

  • Stochasticity : contrary to mathematical deterministic equations, it is much easier to induce randomness in multi-agents models.
  • Heterogeneity within a population.
  • Interaction between the different agents

2. Overview

Our programming choices

Our main concern in this project was the rapidity of the simulation. Indeed, bacteria can quickly develop, and our processor may have to face a horde of ever-growing agents. Hence, we chose to implement our simulation in C++.

Our program's dependencies are detailed in the software section.

Creating the agents and environment

Initially, an empty lattice is created, containing n number of squares. This number is determined by the height and length of the lattice provided by the user, and set by default at 1000x1000. A square is identified by its id in the lattice and can contain bacteria. If there is more than one bacterium, the bacteria are piled up in the square, with of course a limit to the piling,also set by the user.

The bacterial agents are then created, and randomly set in different squares. Each bacterial cell possesses certain characteristics such as a mass, a volume, an identifier of the square the cell is in etc.

Figure 1: Grid with randomly placed bacteria

3. How does it work?

Bacterial growth

This model can de divided into two main parts : the growth of the bacterial population and the transmission and maintenance of plasmids in the population.

For the growth of our bacterium agents, we tried two different implementations. The first one is an adaptation of bacterial growth implemented for the first time in Bacsim [2] and based on Donachie and Robison model for cell division. The second is adapted from the Indisim methodology [3] for bacterial growth simulation.

Bacterial growth based on Donachie's model

Figure 1 shows the schedule of activities bacteria repeat once every time-step and will serve to further explain them.

Figure 2: Flowchart with the bacterial growth steps

Donachie's model is based on the dependence of the median cell's volume on growth rate during exponential growth. Each cell volume depends on the cell's growth rate, which itself depends on substrate uptake and metabolism. So the formula we used for the volume is V = Vμ∗2μln(2) where μ is the growth rate updated at every step.

Hence, after substrate uptake and metabolism, the growth rate of each bacterium is updated, and its new volume is calculated.

At this point, if the bacterium volume falls below a minimum volume, the bacterium dies and the agent is deleted from the lattice.

On the other side, if the bacterial volume becomes superior to the volume at division, the bacterium divides in one of the unoccupied squares of its "division neighbourhood" if there are any. For example, in figure 2 you can see a representation of one part of the environment/grid with some bacteria in it. The possible squares where the central bacterial cell can give a daughter cell are marked in red.

Figure 3: Possible positions for the daughter cell

Bacterial growth based on Indisim methodology

Contrary to the precedent model which is based on the cell volume dependence to its growth rate, this model takes into account biomass growth dependence.

Bacterial growth, as modelled by Indisim, can be divided into different steps :

  • nutrient uptake
  • metabolism
  • eventual reproduction
  • eventual death

For nutrient uptake, a bacterium can take nutrients from the square where it is located. Two factors are then taken into consideration : the nutrients capability to reach the cell surface and the cell's ability to metabolize those nutrients.

Nutrient are consumed in accordance to the following formula : U(max) = Z(cmα), where :

  • U(max) is the maximum number of nutrient particles that can be taken by the bacterium.
  • Z is a random variable with mean Umax and standard deviation σ.
  • c is a constant
  • m is the mass of the bacterium

If U ≥ kS , where k is the percentage of nutrients that will actually be consummed by the cell ,then the actual uptake by the bacterium is U = kS. On the other hand, if kS < U then only S − U nutrient particles remain in the square.

The nutrients absorbed are then metabolized into biomass. For modelling metabolism, we use a metabolism constant, Y, which represents the rate of synthetized biomass units per metabolised nutrient particles. After metabolism, the bacterium grows, and the new bacterial mass is m+B, where B = UY.

The reproduction step in Indisim differs from the precedent one, as the bacterium won't divide instantly when reaching a specific mass. There will be a time-lapse before the bacterium can divide.

For our simulations, we set the default parameters found in the Indisim simulation on the growth of bacteria on agar plates, but these parameters can be modified by the user.

Plasmid loss

Bacterial plasmids are extra-chromosomal genetic elements that can be transferred from one bacterium to another. We chose with this model to implement the horizontal and vertical transfer of genes between these bacteria.

The vertical transfer of genes is the transmission of a plasmid from a cell to its daughter cell after division. During the division, it is assumed that the daughter bacterium can fail to receive the plasmid with a given probability p : this phenomenon is known as segregative loss. As the probability is directly taken from data from the scientific press [4], and as its source doesn't take into account the copy number of plasmid, we also chose not to.

Horizontal gene transfer, also known as conjugation is the direct transfer of genetic material between two bacterium located near each other. Conjugation happens for each plasmid-bearing cell at each time-step. If there is a plasmid free cell in a neighbour square, conjugation can occurs at a rate also taken from press to fit experimental data. It is also considered as an instantaneous event, thus being a simplification of the real process.

Figure 4: Segregation loss
Figure 5: Conjugation at rate c

We also consider plasmid cost for a bacterium. Indeed, when there is no antibiotic in the environment, plasmid-free bacteria have an advantage over plasmid-bearing ones.

4. Assessment

Our actual version

Our actual version implements in a simple way bacterial growth and plasmid transmission and loss. A graphical interface allows the user to set different parameters and to run a simulation which outputs a figure plotting the number of bacteria as a function of time (as you can see below):

Figure 6: Simulation using the Indisim-method based on bacterial growth. Parameters were : simulation time = 600 min, time-step = 4.19 min, initial number of bacteria = 10000. Others parameters were the ones set by default.

Furthermore, we also tried to put to the test the data given by the simulation. We used for that experimental data [5] of different densities of donor bacteria and recipients on agar slides at stationnary phase in function of initial cell densities.

Unfortunately, the figures obtained were not conclusive. We did not obtain similar curves between simulation and experimental data. This could be due to two main facts :

  • first, the simulation time chosen (10 hours ) was not important enough to see likeness between the two sets of data.
  • second, we set our bacteria into two states ( donors or recipients ) and didn't take into account the « transconjugant » state.

A bacterium becomes a transconjugant when it acquires a plasmid. Its properties are then different from a donor bacterium.

Prospects

As for now, we created a simple multi-agent model for bacterial growth and interactions. This model can be used as a base to more specific simulations on those subjects. Nevertheless, if we could continue this project we would tackle a few issues, such as :

  • Create a transconjugant state and its repercussions.
  • Create a plasmid agent with its own properties, that would allow to test more specific cases.
  • Optimize the memory allocation to obtain results more quickly.

We hope that this project can help future Igem teams to develop bacterial simulation models! If one of you fellow igemer end up on this page (and if you are interested by this project), you are welcome to contact us!

Our code can be found on github, and installation instructions on the software section.



We would also like to thanks fellow iGEM teams for helping us on our model, and providing us with the 3D illustrations! You can find their wikis below :



Thank you iGEM Insa-Lyon, iGEM Aix-Marseille and iGEM Toulouse!

References

  1. A first approach to individual-based modeling of the bacterial conjugation dynamics. , Prestes Garcia, Antonio (2011), Thesis (Master thesis), Facultad de Informática (UPM).
  2. BacSim, a simulator for individual-based modelling of bacterial colony growth, Kreft JU, Booth G, Wimpenny JW - Microbiology (Volume 144, pp. 3275-87, December 1998)
  3. INDISIM, an individual-based discrete simulation model to study bacterial cultures, Ginovart M, López D, Valls J. - Theor Biol. (Volume 214, pp. 305-19, January 2002)
  4. Modelling the spatial dynamics of plasmid transfer and persistence., Krone SM1, Lu R, Fox R, Suzuki H, Top EM.- Microbiology 2007 Aug;153(Pt 8):2803-16.
  5. Dynamics of plasmid transfer on surfaces, Simonsen L. - J Gen Microbiol. (Volume 136(6), pp. 1001-1007, June 1990)