Team:Newcastle/Modeling/Population

= Population modelling = One of the models which we have produced is one concerning the population numbers of our bacteria. It looks at how our additions to the DNA may affect the growth of the bacterial population.

This model has been implemented in the Java programming language, and connects to other models which we have written in CellML, using the JSim application. Due to the design of the program, the team has enlisted the help of some very powerful computers, and final iteration of the program has been to use distributed computing and the "Amazon Cloud" to extend the size of the bacterial population.

Distributed Computing
Distributed Computing (also known as Cloud or Grid computing) is the use of multiple computing processors, which can be distributed around the world, to accomplish a single given task. The processes on the machines may also communicate with each other, instead of simply acting independently.

Due to early versions of our bacterial population simulation program using a lot of CPU time and RAM, we attempted to think of ways to be able to speed up the processing times and expand the simulation. Although these early simulations were fairly small scale, each bacterial cell runs as an independent thread, so every system that we ran it on began to slow down dramatically.

Newcastle's School of Computing Science Integrative Bioinformatics Research Group has developed a software system for grid computing applications in the scientific field, called Microbase. The Microbase project is a grid-based system that uses web-service-based technologies to integrate distributed components and ensure that they interoperate.[3] Funded by the BBSRC and the DTI, Microbase has been used in Microbial Genome Comparison and Analysis.[1] Microbase works by splitting a task into a number of 'Jobs' and managing how these Jobs are run on grid-based systems.[2]

Keith Flanagan, a Researcher at Newcastle University and member of the Microbase Project, suggested that Microbase could aid us in the development of a distributed version of our bacterial population simulation. Using Microbase meant that almost all of the programming concerned with the smooth running of our modelling was simple to carry out, and we were easily able to convert our single machine program to a distributed one.

Using Microbase we are running our simulation on the Amazon Elastic Compute Cloud, a service provided by the e-commerce company Amazon.com, which gives users access to a large number of powerful machines. The development of Microbase for use on Amazon's web services has been a part of the Microbase project to provide further processing capacity.[4] Prior to running our simulations using Amazon's computers, we tested our program using some of the machines in some of the University's computer clusters.



Code
Advice about the code for our population simulation model is available on request. Please the model requires specific libraries, database setup and Microbase setup, etc to build and run correctly. Please email Morgan Taschuk, one of our advisors, and visit the Microbase homepage for more information.

The Java source code for our model is available here:
 * Image:Newcastle Distributed Microbase Population src.zip

Pseudo code
Please click here to see an overview of our population simulation.

Results
The results from various runs of our population simulation have been fed back into the development of other parts of our project, namely tuning sporulation. We have used the outputs to more closely determine how much of the population we can allow to become non-germinating metal sequestering spores.

Visualisation
Alongside the actual simulation we are developing an application to visualise the output of our simulation in a three dimensional environment.

Below is a basic visualisation of one of the early versions of our simulation, where the different states of the bacterial cells are represented by differing colours. This early graphic was produced by feeding the output of our population simulations into another program which we have developed in Java, using the Java3D technology.



In this animation, a population of cells is seen to proliferate in three dimensions from a single cell. Vegetative cells are represented by white spheres. There is cadmium in the environment (not shown), and also sufficient food to allow proliferation. Cells can make choices either to grow and proliferate, or to sporulate due to the cadmium. If cells choose to sporulate, they make a further choice whether or not to sequester cadmium. Since there is sufficient food in the environment, ordinary spores (represented in black) germinate immediately after sporulation. Spores that cannot germinate because they have sequestered cadmium are shown as red spheres. Germinating spores (that have previously been non-sequestering spores) are shown in green.

Also below is an image of the more sophisticated graphical output which we have been producing. The Graphics package Autodesk 3ds Max has been used in the production of these graphics.



Further work
The current version of the model provides the basis of a bacterial population simulator, which can be improved and adapted for use by other people and projects in the future. Currently parts of the model are highly focused on our project, but it can easily be generalised. We have developed a framework for integrating agent based and biochemical models on a distributed grid system. The way in which the bacterial threads run in the program makes it very easy to customise and improve the behaviour of the bacteria throughout their simulated life cycles.