Team:Newcastle/Modeling/Population/Pseudo

From 2009.igem.org

(Difference between revisions)
Line 7: Line 7:
=== Bacterial simulation overview ===
=== Bacterial simulation overview ===
[[Image:Newcastle Java Coding Example.png|thumb|An example of the Java programming in this project, showing the Subtilis.java class file.]]
[[Image:Newcastle Java Coding Example.png|thumb|An example of the Java programming in this project, showing the Subtilis.java class file.]]
 +
==== Bacterial cells ====
For the actual simulation of the bacterial life cycles, we decided to allow each bacterial cell to run as a separate thread. The phenotype of a bacterial cell changes depending on what state they are in, so we decided to have a number of different classes to represent these states. These classes have some common attributes, which can be represented as a superclass in object orientated computing.
For the actual simulation of the bacterial life cycles, we decided to allow each bacterial cell to run as a separate thread. The phenotype of a bacterial cell changes depending on what state they are in, so we decided to have a number of different classes to represent these states. These classes have some common attributes, which can be represented as a superclass in object orientated computing.
Line 16: Line 17:
* Biofilm - represents the biofilm phenotype of the cells.
* Biofilm - represents the biofilm phenotype of the cells.
* Motile - represents motility of the cells
* Motile - represents motility of the cells
 +
 +
==== Other classes ====
 +
To split off the code that connects to the JSim application, which runs bio-chemical models, such as the ones that we have written in CellML, we put this code into it's own class, ModelSims. Currently this just uses the Sin Operon Model for influencing sporulation, but this can be easily expanded to cover other aspects of our project which have been modelled, such as metal intake.
 +
 +
This code calls a command line application, jsbatch, with parameters from the bacterial agent cell, parses the JSim output and returns a value which is used by the cell to make decisions. This code is run for each cell thread when it wants to run the appropriate model for the decision that it is currently making.
== Appendix ==
== Appendix ==
-
;Computing Definitions
+
; Computing Definitions
Throughout this article some programming knowledge is assumed, but here are some selected definitions of terminology:
Throughout this article some programming knowledge is assumed, but here are some selected definitions of terminology:
Line 24: Line 30:
* ''A Thread of Execution'' - Inside a computer program or process there may be two or more concurrently running tasks, these tasks, called threads. These threads each compete for time on the computer processor and can communicate with shared objects.
* ''A Thread of Execution'' - Inside a computer program or process there may be two or more concurrently running tasks, these tasks, called threads. These threads each compete for time on the computer processor and can communicate with shared objects.
* ''Java'' - One of many object orientated programming languages. Java allows the same code to be run on lots of different types of machines (eg. Windows, Mac or Linux).
* ''Java'' - One of many object orientated programming languages. Java allows the same code to be run on lots of different types of machines (eg. Windows, Mac or Linux).
 +
{{:Team:Newcastle/Footer}}
{{:Team:Newcastle/Footer}}
{{:Team:Newcastle/Right}}
{{:Team:Newcastle/Right}}

Revision as of 00:48, 22 October 2009


Contents

Population modelling overview

This page provides an overview of the code which the Newcastle team has developed for their population simulation model.

Bacterial simulation overview

An example of the Java programming in this project, showing the Subtilis.java class file.

Bacterial cells

For the actual simulation of the bacterial life cycles, we decided to allow each bacterial cell to run as a separate thread. The phenotype of a bacterial cell changes depending on what state they are in, so we decided to have a number of different classes to represent these states. These classes have some common attributes, which can be represented as a superclass in object orientated computing.

Superclass:

  • Cell - contains the common attributes, such as levels of cadmium and nutrients. The Cell class also provides access to the database.

Subclasses:

  • Subtilis - represents vegetative cells. From here cells can make various life choices and enter other states accordingly.
  • Spore - represents the spore stage of the life cycle. Note that in our project the cells have to choose whether they are going to become a "metal sequestering" spore which cannot germinate.
  • Biofilm - represents the biofilm phenotype of the cells.
  • Motile - represents motility of the cells

Other classes

To split off the code that connects to the JSim application, which runs bio-chemical models, such as the ones that we have written in CellML, we put this code into it's own class, ModelSims. Currently this just uses the Sin Operon Model for influencing sporulation, but this can be easily expanded to cover other aspects of our project which have been modelled, such as metal intake.

This code calls a command line application, jsbatch, with parameters from the bacterial agent cell, parses the JSim output and returns a value which is used by the cell to make decisions. This code is run for each cell thread when it wants to run the appropriate model for the decision that it is currently making.

Appendix

Computing Definitions

Throughout this article some programming knowledge is assumed, but here are some selected definitions of terminology:

  • Class - In object orientated programming, such as Java, it is a collection of computer code which is dedicated to one idea or entity. For example a student class may contain information about a student such as their name, date of birth, etc.
  • A Thread of Execution - Inside a computer program or process there may be two or more concurrently running tasks, these tasks, called threads. These threads each compete for time on the computer processor and can communicate with shared objects.
  • Java - One of many object orientated programming languages. Java allows the same code to be run on lots of different types of machines (eg. Windows, Mac or Linux).



News

Events

Social Net

  • Newcastle iGEM Twitter
  • Newcastle on Facebook
  • Newcastle Youtube Channel