Team:BCCS-Bristol/BSim
From 2009.igem.org
iGEM 2009
| | |
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. |
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.
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.
Bacteria
| 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. |
Interactions and actions
| 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. |
Vesicles
| 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. |
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. |
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. |