Team:BCCS-Bristol/BSim
From 2009.igem.org
(→Chemical fields) |
(Added link to google code guides for code setup) |
||
(24 intermediate revisions not shown) | |||
Line 1: | Line 1: | ||
{{:Team:BCCS-Bristol/Header}} | {{:Team:BCCS-Bristol/Header}} | ||
- | |||
- | |||
- | |||
{| 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/ | + | |width="33%" padding="3px"| <html><center><a href="https://2009.igem.org/Team:BCCS-Bristol/BSim/Tutorials"> |
- | <img src=" | + | <img src="https://static.igem.org/mediawiki/2009/8/8c/BCCS_Tutorial_button.jpg" border="0"> |
</a></center></html> | </a></center></html> | ||
- | |width="33%" padding="3px"| <html><center> | + | |width="33%" padding="3px"| <html><center><a href="http://code.google.com/p/bsim-bccs/downloads"> |
- | <img src=" | + | <img src="https://static.igem.org/mediawiki/2009/3/38/BCCS_Download_button.jpg" border="0"></a> |
</center></html> | </center></html> | ||
- | |width="33%" padding="3px"| <html><center><a href="https://2009.igem.org/Team:BCCS-Bristol/ | + | |width="33%" padding="3px"| <html><center><a href="https://2009.igem.org/Team:BCCS-Bristol/BSim/Case_studies"> |
- | <img src=" | + | <img src="https://static.igem.org/mediawiki/2009/b/bf/BCCS_Casestudies_button.jpg" border="0"> |
</a></center></html> | </a></center></html> | ||
|- | |- | ||
- | |width="33.3%"|<center><b>[[Team:BCCS-Bristol/ | + | |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/ | + | |width="33.3%"|<center><b>[[Team:BCCS-Bristol/BSim/Case_studies|Case Studies]]</b></center> |
|- | |- | ||
|Interested in finding out more about the creation of BSim simulations? Click here for a selection of tutorial examples. | |Interested in finding out more about the creation of BSim simulations? Click here for a selection of tutorial examples. | ||
Line 25: | Line 22: | ||
|} | |} | ||
- | + | ||
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 31: | 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 == | |
- | === [[Team:BCCS-Bristol/BSim | + | <center> |
+ | === Accurate model of ''E. coli'' motility === | ||
+ | </center> | ||
+ | {| align="center" width="90%" | ||
+ | |width="33%" padding="3px"| <html><center> | ||
+ | <img src="https://static.igem.org/mediawiki/2009/5/57/Bccs-bristol-features1.png" border="0"> | ||
+ | </center></html> | ||
+ | |width="66%" padding="3px"| 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 [[Team:BCCS-Bristol/BSim#Vesicles|outer membrane vesicles]] in a biologically realistic manner. | ||
+ | |} | ||
- | |||
- | + | <center> | |
- | + | === Flexible interactions === | |
+ | </center> | ||
+ | {| align="center" width="90%" | ||
+ | |width="33%" padding="3px"| <html><center> | ||
+ | <img src="https://static.igem.org/mediawiki/2009/8/85/Bccs-bristol-features2.png" border="0"> | ||
+ | </center></html> | ||
+ | |width="66%" padding="3px"| 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! | ||
+ | |} | ||
+ | |||
+ | <center> | ||
+ | ===Delivery=== | ||
+ | </center> | ||
+ | {| align="center" width="90%" | ||
+ | |width="33%" padding="3px"| <html><center> | ||
+ | <img src="https://static.igem.org/mediawiki/2009/5/59/Bccs-bristol-features3.png" border="0"> | ||
+ | </center></html> | ||
+ | |width="66%" padding="3px"| 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. | ||
+ | |} | ||
+ | |||
+ | |||
+ | <center> | ||
=== Force based dynamics === | === Force based dynamics === | ||
+ | </center> | ||
+ | {| align="center" width="90%" | ||
+ | |width="33%" padding="3px"| <html><center> | ||
+ | <img src="https://static.igem.org/mediawiki/2009/a/a9/Bccs-bristol-features4.png" border="0"> | ||
+ | </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. | ||
+ | |} | ||
- | |||
+ | <center> | ||
=== Choice of boundary types === | === Choice of boundary types === | ||
+ | </center> | ||
+ | {| align="center" width="90%" | ||
+ | |width="33%" padding="3px"| <html><center> | ||
+ | <img src="https://static.igem.org/mediawiki/2009/d/db/Bccs-bristol-features5.png" border="0"> | ||
+ | </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. 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. | ||
+ | |} | ||
- | |||
- | |||
- | |||
+ | <center> | ||
=== Brownian motion === | === Brownian motion === | ||
+ | </center> | ||
+ | {| align="center" width="90%" | ||
+ | |width="33%" padding="3px"| <html><center> | ||
+ | <img src="https://static.igem.org/mediawiki/2009/f/f7/Bccs-bristol-features6.png" border="0"> | ||
+ | </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. | ||
+ | |} | ||
- | |||
- | === | + | <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. | ||
+ | |} | ||
- | |||
- | + | <center> | |
- | 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. | + | === 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. | ||
+ | |} | ||
- | |||
- | BSim features a basic model of bacterial growth where bacteria grow according to a surface area parameter. | + | <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. | ||
+ | |} | ||
- | |||
- | |||
- | |||
+ | <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. | ||
+ | |} | ||
- | |||
- | === [[Team:BCCS-Bristol/ | + | <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. | ||
+ | |} | ||
- | |||
- | |||
- | + | ||
+ | <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. | ||
+ | |} | ||
- | |||
+ | <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
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. |
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].
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. |