Team:BCCS-Bristol/BSim

From 2009.igem.org

(Difference between revisions)
(Added link to google code guides for code setup)
 
(15 intermediate revisions not shown)
Line 2: Line 2:
{| class="panel"  align="center" width="90%"
{| class="panel"  align="center" width="90%"
-
|width="33%" padding="3px"| <html><center><a href="https://2009.igem.org/Team:BCCS-Bristol/Modeling/HowBSimWorks">
+
|width="33%" padding="3px"| <html><center><a href="https://2009.igem.org/Team:BCCS-Bristol/BSim/Tutorials">
<img src="https://static.igem.org/mediawiki/2009/8/8c/BCCS_Tutorial_button.jpg" border="0">
<img src="https://static.igem.org/mediawiki/2009/8/8c/BCCS_Tutorial_button.jpg" border="0">
</a></center></html>
</a></center></html>
Line 12: Line 12:
</a></center></html>
</a></center></html>
|-
|-
-
|width="33.3%"|<center><b>[[Team:BCCS-Bristol/Modeling/HowBSimWorks|Tutorials]]</b></center>
+
|width="33.3%"|<center><b>[[Team:BCCS-Bristol/BSim/Tutorials|Tutorials]]</b></center>
|width="33.3%"|<center><b>[http://code.google.com/p/bsim-bccs/downloads Download]</b></center>
|width="33.3%"|<center><b>[http://code.google.com/p/bsim-bccs/downloads Download]</b></center>
|width="33.3%"|<center><b>[[Team:BCCS-Bristol/BSim/Case_studies|Case Studies]]</b></center>
|width="33.3%"|<center><b>[[Team:BCCS-Bristol/BSim/Case_studies|Case Studies]]</b></center>
Line 22: Line 22:
|}
|}
-
== Features ==
+
 
The original BSim package from the BCCS Bristol team competing in iGEM 2008 was designed primarily for analysis of the specific problem at the time i.e. chemotactic behaviour of bacteria and basic quorum signalling. Although it was robust and powerful, it was felt that adding new features required a very in-depth knowledge of Java as the biological and physical aspects of the program were very closely intertwined with performance and system related code. Motivated by the wet lab work and this year's project, we decided to take the best features of BSim 2008 and create a new, more modular platform, where only a basic programming background is required to create advanced simulations.
The original BSim package from the BCCS Bristol team competing in iGEM 2008 was designed primarily for analysis of the specific problem at the time i.e. chemotactic behaviour of bacteria and basic quorum signalling. Although it was robust and powerful, it was felt that adding new features required a very in-depth knowledge of Java as the biological and physical aspects of the program were very closely intertwined with performance and system related code. Motivated by the wet lab work and this year's project, we decided to take the best features of BSim 2008 and create a new, more modular platform, where only a basic programming background is required to create advanced simulations.
Line 28: Line 28:
BSim 2009 has been designed from the ground up to allow for advanced agent-based modelling. All parameters used throughout the package demonstrate physical and biological plausibility and are fully referenced. By completely basing BSim on the literature, it is easy to ensure that all modules remain reliably synchronised and work correctly together, as well as minimising the effort required to create new simulations.
BSim 2009 has been designed from the ground up to allow for advanced agent-based modelling. All parameters used throughout the package demonstrate physical and biological plausibility and are fully referenced. By completely basing BSim on the literature, it is easy to ensure that all modules remain reliably synchronised and work correctly together, as well as minimising the effort required to create new simulations.
-
The main features of BSim 2009 are summarised below.  
+
The main features of BSim 2009 are summarised below. For more detailed information on features, please see the <html><a href="http://bsim-bccs.googlecode.com/files/manual.pdf">extensive user manual <img src="https://static.igem.org/mediawiki/2009/0/08/Pdf-logo.jpg" style="width:50px" /></a></html>.  
 +
BSim is available as a standalone pre-compiled library which can be compiled against like any other Java library, or as archived source code (for more details please see [http://code.google.com/p/bsim-bccs/wiki/BSimSummary here]). A brief tutorial for one method of obtaining BSim using SVN is also provided [http://code.google.com/p/bsim-bccs/wiki/BSimEclipse here].
 +
 +
 +
== Features ==
<center>
<center>
-
=== Bacteria ===
+
=== Accurate model of ''E. coli'' motility ===
</center>
</center>
{|  align="center" width="90%"
{|  align="center" width="90%"
Line 43: Line 47:
<center>
<center>
-
=== [[Team:BCCS-Bristol/BSim/Features/Interactions|Interactions and actions]] ===
+
 
 +
=== Flexible interactions ===
</center>
</center>
{|  align="center" width="90%"
{|  align="center" width="90%"
Line 69: Line 74:
{|  align="center" width="90%"
{|  align="center" width="90%"
|width="33%" padding="3px"| <html><center>
|width="33%" padding="3px"| <html><center>
-
<img src="https://static.igem.org/mediawiki/2009/5/59/Bccs-bristol-features3.png" border="0">
+
<img src="https://static.igem.org/mediawiki/2009/a/a9/Bccs-bristol-features4.png" border="0">
</center></html>
</center></html>
|width="66%" padding="3px"| All of the dynamics and motion in BSim is calculated based on the forces acting on each particle. This applies to many of the other features such as Brownian motion, where any motions are added as a force to the particle.  
|width="66%" padding="3px"| All of the dynamics and motion in BSim is calculated based on the forces acting on each particle. This applies to many of the other features such as Brownian motion, where any motions are added as a force to the particle.  
Line 80: Line 85:
{|  align="center" width="90%"
{|  align="center" width="90%"
|width="33%" padding="3px"| <html><center>
|width="33%" padding="3px"| <html><center>
-
<img src="https://static.igem.org/mediawiki/2009/5/59/Bccs-bristol-features3.png" border="0">
+
<img src="https://static.igem.org/mediawiki/2009/d/db/Bccs-bristol-features5.png" border="0">
</center></html>
</center></html>
-
|width="66%" padding="3px"| If an update to one of a particle's Cartesian coordinates causes the particle to stray beyond a solid boundary, the coordinate is updated again to place the particle an the same distance inside the boundary as it was outside. Wrap-
+
|width="66%" padding="3px"| If an update to one of a particle's Cartesian coordinates causes the particle to stray beyond a solid boundary, the coordinate is updated again to place the particle an the same distance inside the boundary as it was outside. Wrapping boundaries cause the particle to reappear an same distance away from the opposing face of the box. Boundaries wrap by default. This can be modified to have solid boundaries instead.
-
ping boundaries cause the particle to reappear an same distance away from the opposing face of the box.
+
-
Boundaries wrap by default. This can be modified to havwe solid boundaries instead.
+
|}
|}
Line 93: Line 96:
{|  align="center" width="90%"
{|  align="center" width="90%"
|width="33%" padding="3px"| <html><center>
|width="33%" padding="3px"| <html><center>
-
<img src="https://static.igem.org/mediawiki/2009/5/59/Bccs-bristol-features3.png" border="0">
+
<img src="https://static.igem.org/mediawiki/2009/f/f7/Bccs-bristol-features6.png" border="0">
</center></html>
</center></html>
|width="66%" padding="3px"| Brownian motion is handled by including a Brownian force in the sum of external forces acting upon all of the specified particles in the simulation.  
|width="66%" padding="3px"| Brownian motion is handled by including a Brownian force in the sum of external forces acting upon all of the specified particles in the simulation.  
Line 99: Line 102:
-
=== Vesicles ===
+
<center>
 +
=== Vesiculation ===
 +
</center>
 +
{|  align="center" width="90%"
 +
|width="33%" padding="3px"| <html><center>
 +
<img src="https://static.igem.org/mediawiki/2009/9/91/Bccs-bristol-features7.png" border="0">
 +
</center></html>
 +
|width="66%" padding="3px"| Many bacteria naturally produce outer membrane vesicles, and the size and rate of production seems to be based on rate of change of bacterial surface area. BSim includes physically based OMV production dynamics which were incorporated into our main iGEM project to allow us to analyse the effectiveness of OMV based communication.
 +
|}
-
Many bacteria naturally produce outer membrane vesicles, and the size and rate of production seems to be based on rate of change of bacterial surface area. BSim includes physically based OMV production dynamics which were incorporated into our main iGEM project to allow us to analyse the effectiveness of OMV based communication.
+
 
 +
<center>
=== Chemical fields ===
=== Chemical fields ===
 +
</center>
 +
{|  align="center" width="90%"
 +
|width="33%" padding="3px"| <html><center>
 +
<img src="https://static.igem.org/mediawiki/2009/4/41/Bccs-bristol-features8.png" border="0">
 +
</center></html>
 +
|width="66%" padding="3px"|Chemical fields play an important part in many biological systems. BSim allows the user to specify an arbitrary chemical field and use this to realistically interact with the bacterial behaviour. It is also possible to simulate the diffusion of larger molecules as particle fields, as well as allowing bacteria to move along a chememotactic gradient.
 +
|}
-
Chemical fields play an important part in many biological systems. BSim allows the user to specify an arbitrary chemical field and use this to realistically interact with the bacterial behaviour. It is also possible to simulate the diffusion of larger molecules as particle fields.
 
-
=== Growth ===
+
<center>
 +
=== Growth and Replication ===
 +
</center>
 +
{|  align="center" width="90%"
 +
|width="33%" padding="3px"| <html><center>
 +
<img src="https://static.igem.org/mediawiki/2009/e/ef/Bccs-bristol-features9.png" border="0">
 +
</center></html>
 +
|width="66%" padding="3px"| BSim features a basic model of bacterial growth where bacteria grow according to a surface area parameter. Bacteria in the simulations can be defined to replicate when reaching a set threshold radius.
 +
|}
-
BSim features a basic model of bacterial growth where bacteria grow according to a surface area parameter.
 
-
 
-
===Replication ===
 
-
 
-
Bacteria in the simulations can be defined to replicate when reaching a set threshold radius.
 
 +
<center>
=== Multiple populations ===
=== Multiple populations ===
 +
</center>
 +
{|  align="center" width="90%"
 +
|width="33%" padding="3px"| <html><center>
 +
<img src="https://static.igem.org/mediawiki/2009/0/0a/Bccs-bristol-features10.png" border="0">
 +
</center></html>
 +
|width="66%" padding="3px"| Multiple bacteria or other particles can be defined in one simulation. This is done by defining a list for each different particle type, this allows for defining custom behaviours for the different populations.
 +
|}
-
Multiple bacteria or other particles can be defined in one simulation. This is done by defining a list for each different particle type, this allows for defining custom behaviours for the different populations.
 
-
=== [[Team:BCCS-Bristol/Modeling/GRN|GRN modelling]] ===
+
<center>
 +
=== [[Team:BCCS-Bristol/BSim/Features/GRNs|GRN modelling]] ===
 +
</center>
 +
{|  align="center" width="90%"
 +
|width="33%" padding="3px"| <html><center>
 +
<img src="https://static.igem.org/mediawiki/2009/6/6a/Bccs-bristol-features11.png" border="0">
 +
</center></html>
 +
|width="66%" padding="3px"| BSim allows the user to specify complex GRNS based on ODEs and apply these to individual bacteria to analyse GRN effects on a population level. It is now possible to analyse the effects of individual GRNs on a population level, all within the same context.
 +
|}
-
BSim allows the user to specify complex GRNS based on ODEs and apply these to individual bacteria to analyse GRN effects on a population level. It is now possible to analyse the effects of individual GRNs on a population level, all within the same context.
 
-
=== [[Team:BCCS-Bristol/BSim/Features/Magnetotaxis|Magnetotaxis]] ===
 
-
Some bacteria are sensitive to externally applied magnetic fields and can therefore be influenced to move along the direction of specific magnetic field lines. BSim currently implements a model of a constant magnetic field that can be specified by the user and can be used to simulate the effect of such a field on the motility of magnetotactic bacteria.
+
 
 +
<center>
=== Robust, modular components ===
=== Robust, modular components ===
 +
</center>
 +
{|  align="center" width="90%"
 +
|width="33%" padding="3px"| <html><center>
 +
<img src="https://static.igem.org/mediawiki/2009/3/39/Bccs-bristol-features13.png" border="0">
 +
</center></html>
 +
|width="66%" padding="3px"| BSim 2009 has been designed to allow maximum flexibility in simulation design while keeping the deep coding behind-the-scenes. All components can be used individually or in arbitrary combinations allowing the end user to quickly create advanced simulations without necessarily having previous Java programming experience. The source code is freely available and extensively referenced and commented, so new modules can quickly be addded if necessary for a specific simulation.
 +
|}
-
BSim 2009 has been designed to allow maximum flexibility in simulation design while keeping the deep coding behind-the-scenes. All components can be used individually or in arbitrary combinations allowing the end user to quickly create advanced simulations without necessarily having previous Java programming experience. The source code is freely available and extensively referenced and commented, so new modules can quickly be addded if necessary for a specific simulation.
 
 +
<center>
=== Versatile, customisable logging and visual output ===
=== Versatile, customisable logging and visual output ===
-
 
+
</center>
-
Everything that can be specified by the user within a simulation can be logged to a file readable by MATLAB, Excel and other numerical analysis packages. The user can specify time intervals, formatting and what to output for all types of loggers. In addition, visual output is available, both directly to the screen and to image/movie files.
+
{|  align="center" width="90%"
 +
|width="33%" padding="3px"| <html><center>
 +
<img src="https://static.igem.org/mediawiki/2009/e/e5/Bccs-bristol-features14.png" border="0">
 +
</center></html>
 +
|width="66%" padding="3px"|Everything that can be specified by the user within a simulation can be logged to a file readable by MATLAB, Excel and other numerical analysis packages. The user can specify time intervals, formatting and what to output for all types of loggers. In addition, visual output is available, both directly to the screen and to image/movie files.
 +
|}

Latest revision as of 14:40, 20 July 2010

BCCS-Bristol
iGEM 2009

Tutorials
[http://code.google.com/p/bsim-bccs/downloads Download]
Case Studies
Interested in finding out more about the creation of BSim simulations? Click here for a selection of tutorial examples. Want to use the BSim software yourself? Click here to download the core libraries and source code (available freely under the MIT licence). The BSim platform has already been used in a number of other projects! Read more about these projects here.


The original BSim package from the BCCS Bristol team competing in iGEM 2008 was designed primarily for analysis of the specific problem at the time i.e. chemotactic behaviour of bacteria and basic quorum signalling. Although it was robust and powerful, it was felt that adding new features required a very in-depth knowledge of Java as the biological and physical aspects of the program were very closely intertwined with performance and system related code. Motivated by the wet lab work and this year's project, we decided to take the best features of BSim 2008 and create a new, more modular platform, where only a basic programming background is required to create advanced simulations.

BSim 2009 has been designed from the ground up to allow for advanced agent-based modelling. All parameters used throughout the package demonstrate physical and biological plausibility and are fully referenced. By completely basing BSim on the literature, it is easy to ensure that all modules remain reliably synchronised and work correctly together, as well as minimising the effort required to create new simulations.

The main features of BSim 2009 are summarised below. For more detailed information on features, please see the extensive user manual .

BSim is available as a standalone pre-compiled library which can be compiled against like any other Java library, or as archived source code (for more details please see [http://code.google.com/p/bsim-bccs/wiki/BSimSummary here]). A brief tutorial for one method of obtaining BSim using SVN is also provided [http://code.google.com/p/bsim-bccs/wiki/BSimEclipse here].


Contents

Features

Accurate model of E. coli motility

A versatile bacterium model is specified in the BSim core libraries. The default BSim bacterium exhibits physically correct run-and-tumble motion powered by a flagellar motor, and can be made to replicate and produce outer membrane vesicles in a biologically realistic manner.


Flexible interactions

BSim allows the user to specify the actions and interactions present between different elements in the simulation. The specification allows for easily specified and adaptable behaviour based on what is actually required for a specific simulation. Everything can interact!


Delivery

Another common type of collision is the delivery of a small particle (a molecule or a vesicle) to the collision partner (a bacterium). This can be easily added to the simulations.


Force based dynamics

All of the dynamics and motion in BSim is calculated based on the forces acting on each particle. This applies to many of the other features such as Brownian motion, where any motions are added as a force to the particle.


Choice of boundary types

If an update to one of a particle's Cartesian coordinates causes the particle to stray beyond a solid boundary, the coordinate is updated again to place the particle an the same distance inside the boundary as it was outside. Wrapping boundaries cause the particle to reappear an same distance away from the opposing face of the box. Boundaries wrap by default. This can be modified to have solid boundaries instead.


Brownian motion

Brownian motion is handled by including a Brownian force in the sum of external forces acting upon all of the specified particles in the simulation.


Vesiculation

Many bacteria naturally produce outer membrane vesicles, and the size and rate of production seems to be based on rate of change of bacterial surface area. BSim includes physically based OMV production dynamics which were incorporated into our main iGEM project to allow us to analyse the effectiveness of OMV based communication.


Chemical fields

Chemical fields play an important part in many biological systems. BSim allows the user to specify an arbitrary chemical field and use this to realistically interact with the bacterial behaviour. It is also possible to simulate the diffusion of larger molecules as particle fields, as well as allowing bacteria to move along a chememotactic gradient.


Growth and Replication

BSim features a basic model of bacterial growth where bacteria grow according to a surface area parameter. Bacteria in the simulations can be defined to replicate when reaching a set threshold radius.


Multiple populations

Multiple bacteria or other particles can be defined in one simulation. This is done by defining a list for each different particle type, this allows for defining custom behaviours for the different populations.


GRN modelling

BSim allows the user to specify complex GRNS based on ODEs and apply these to individual bacteria to analyse GRN effects on a population level. It is now possible to analyse the effects of individual GRNs on a population level, all within the same context.



Robust, modular components

BSim 2009 has been designed to allow maximum flexibility in simulation design while keeping the deep coding behind-the-scenes. All components can be used individually or in arbitrary combinations allowing the end user to quickly create advanced simulations without necessarily having previous Java programming experience. The source code is freely available and extensively referenced and commented, so new modules can quickly be addded if necessary for a specific simulation.


Versatile, customisable logging and visual output

Everything that can be specified by the user within a simulation can be logged to a file readable by MATLAB, Excel and other numerical analysis packages. The user can specify time intervals, formatting and what to output for all types of loggers. In addition, visual output is available, both directly to the screen and to image/movie files.