Difference between revisions of "Team:Bordeaux/Model"

Line 60: Line 60:
 
                     <li class="menu_item" style="color:#000000">Our programming choices</li>
 
                     <li class="menu_item" style="color:#000000">Our programming choices</li>
 
                         <li class="menu_item" style="color:#000000"></i>Creation of the environment and the agents</li>
 
                         <li class="menu_item" style="color:#000000"></i>Creation of the environment and the agents</li>
                        <li class="menu_item" style="color:#000000">Initialization</li>
 
 
                     </ul>
 
                     </ul>
 
                 </li>
 
                 </li>
Line 66: Line 65:
 
                 <li class="menu_item" id="sleepRegulation" style="color:#1A7799"><a href="#">How does it work?</a>
 
                 <li class="menu_item" id="sleepRegulation" style="color:#1A7799"><a href="#">How does it work?</a>
 
                     <ul class="submenu">
 
                     <ul class="submenu">
                         <li class="menu_item" style="color:#000000">Growth bacteria</li>
+
                         <li class="menu_item" style="color:#000000">Bacterial growth</li>
 
                         <li class="menu_item" style="color:#000000">Plasmid lost</li>
 
                         <li class="menu_item" style="color:#000000">Plasmid lost</li>
 
                     </ul>
 
                     </ul>
Line 74: Line 73:
 
                     <ul class="submenu">
 
                     <ul class="submenu">
 
                         <li class="menu_item" style="color:#000000">Our actual version</li>
 
                         <li class="menu_item" style="color:#000000">Our actual version</li>
                      <li class="menu_item" style="color:#000000">The validity of our model</li>
+
                         <li class="menu_item" style="color:#000000">Prospects</li>
                         <li class="menu_item" style="color:#000000">Our perspectives</li>
+
 
                     </ul>
 
                     </ul>
 
                 </li>
 
                 </li>
Line 156: Line 154:
 
     <h3>Creating the agents and environment</h3>
 
     <h3>Creating the agents and environment</h3>
 
<p>
 
<p>
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. Each square
+
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.
 
</p>
 
</p>
  
 
<p>  
 
<p>  
The bacterial agents are then created, and randomly set in different squares.  
+
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>  
 
</p>  
  

Revision as of 09:45, 8 October 2016

Sleep with EpiC elegans



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.

What happens when a bacterial population escapes from our test tubes ?

To answer this question, we decided to create a computational simulation model in order to see :

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

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.

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 are frequently used to model biological phenomena. It stands out against continuous mathematical modelling, which is often used for predictions at a population level. 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.
  • BLA BLA BLA

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++.

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.

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.