Team:Dundee/Software
From 2012.igem.org
(Difference between revisions)
(72 intermediate revisions not shown) | |||
Line 5: | Line 5: | ||
<img src="https://static.igem.org/mediawiki/igem.org/1/10/Dundee12spacer.png" width = "975px" /> | <img src="https://static.igem.org/mediawiki/igem.org/1/10/Dundee12spacer.png" width = "975px" /> | ||
</a> | </a> | ||
- | </div> | + | </div> |
<link rel="stylesheet" href="https://2012.igem.org/wiki/index.php?title=Team:Dundee/common.css&action=raw&ctype=text/css" type="text/css" /> | <link rel="stylesheet" href="https://2012.igem.org/wiki/index.php?title=Team:Dundee/common.css&action=raw&ctype=text/css" type="text/css" /> | ||
Line 13: | Line 13: | ||
<div id="contentMain" class="drop-shadow raised clearfix"> | <div id="contentMain" class="drop-shadow raised clearfix"> | ||
<div id="menuDiv"> | <div id="menuDiv"> | ||
- | + | <ul> | |
<li class='active '><a href='https://2012.igem.org/Team:Dundee'><span>Home</span></a></li> | <li class='active '><a href='https://2012.igem.org/Team:Dundee'><span>Home</span></a></li> | ||
- | <li class='has-sub '><a href=' | + | <li class='has-sub '><a href='https://2012.igem.org/Team:Dundee/Team'><span>Team</span></a> |
- | + | <ul> | |
- | + | <li><a href='https://2012.igem.org/Team:Dundee/Team'><span>Team Members</span></a></li> | |
- | + | <li><a href='https://igem.org/Team.cgi?year=2012&team_name=Dundee'><span>iGEM team Profile</span></a></li> | |
</ul> | </ul> | ||
- | + | </li> | |
- | <li class='has-sub '><a href=' | + | <li class='has-sub'><a href='https://2012.igem.org/Team:Dundee/Project'><span>Project</span></a> |
<ul> | <ul> | ||
- | <li><a href='https://2012.igem.org/Team:Dundee/Project'><span> | + | <li><a href='https://2012.igem.org/Team:Dundee/Project'><span>The Problem</span></a></li> |
- | + | <li><a href='https://2012.igem.org/Team:Dundee/Solution'><span>Our Solution</span></a></li> | |
- | + | <li><a href="https://2012.igem.org/Team:Dundee/Biobricks"><span>Biobricks</span></a></li> | |
- | + | </ul> | |
- | + | </li> | |
- | + | ||
- | <li class=' | + | <li class='has-sub'><a href='https://2012.igem.org/Team:Dundee/Strategy'><span>Wet Lab</span></a> |
- | <li class=' | + | <ul> |
- | + | <li><a href='https://2012.igem.org/Team:Dundee/Strategy'><span>Strategy</span></a></li> | |
- | + | <li><a href='https://2012.igem.org/Team:Dundee/Results'><span>Experimentation</span></a></li> | |
- | + | </ul> | |
- | + | </li> | |
+ | <li class='has-sub'><a href="#"><span>Dry Lab</span></a> | ||
+ | <ul> | ||
+ | <li><a href='https://2012.igem.org/Team:Dundee/Modelling4'><span>Modelling</span></a></li> | ||
+ | <li><a href='https://2012.igem.org/Team:Dundee/Software'><span>Software</span></a></li> | ||
+ | </ul> | ||
+ | </li> | ||
+ | <li class='has-sub'><a href='#'><span>Human Practices</span></a> | ||
+ | <ul> | ||
+ | <li><a href='https://2012.igem.org/Team:Dundee/Safety'><span>Safety</span></a></li> | ||
+ | <li><a href='https://2012.igem.org/Team:Dundee/Outreach'><span>Outreach</span></a></li> | ||
+ | </ul> | ||
+ | </li> | ||
+ | <li class='has-sub'><a href="#"><span>More</span></a> | ||
+ | <ul> | ||
+ | <li><a href='https://2012.igem.org/Team:Dundee/Collaboration'><span>Collaboration</span></a></li> | ||
+ | <li><a href='https://2012.igem.org/Team:Dundee/Notebook'><span>Notebook</span></a></li> | ||
+ | <li><a href='https://2012.igem.org/Team:Dundee/Song'><span>Song!</span></a></li> | ||
+ | <li><a href='https://2012.igem.org/Team:Dundee/References'><span>References</span></a></li> | ||
+ | </ul> | ||
+ | </li> | ||
+ | |||
+ | <li class='active'><a href='https://2012.igem.org/Team:Dundee/Attributions'><span>Attributions</span></a></li> | ||
+ | </ul> | ||
+ | </div> | ||
+ | |||
<!-- Start Body Content Here --> | <!-- Start Body Content Here --> | ||
- | < | + | <img src="https://static.igem.org/mediawiki/2012/8/84/Softwareheader.png"><br><br> |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | <div class="boxOuter | + | <div class="boxOuter full" style="padding: 0px; border: 1px solid black; background-color: black;"> |
- | <h3 | + | <h3><img src="https://static.igem.org/mediawiki/2012/8/84/Lysistokillheader.png"></h3> |
- | <div class="boxInner | + | <div class="boxInner centre clearfix"> |
- | <div class="pic" style="border-color: transparent; margin: 5px;"> | + | <div class="pic" style="border-color: transparent; margin: 5px 30px 5px 20px;"> |
<a href="https://static.igem.org/mediawiki/igem.org/5/56/Dundee12lysis.png"> | <a href="https://static.igem.org/mediawiki/igem.org/5/56/Dundee12lysis.png"> | ||
<img src="https://static.igem.org/mediawiki/igem.org/5/56/Dundee12lysis.png" width="150px" | <img src="https://static.igem.org/mediawiki/igem.org/5/56/Dundee12lysis.png" width="150px" | ||
Line 56: | Line 77: | ||
</div> | </div> | ||
Lysis To Kill is a game developed for the Android platform. The concept of the game was | Lysis To Kill is a game developed for the Android platform. The concept of the game was | ||
- | inspired by Splashback which was a Flash game developed for the Cartoon Network [1]. | + | inspired by Splashback which was a Flash game developed for the Cartoon Network |
- | The original concept involved adding drops of | + | <a href="https://2012.igem.org/Team:Dundee/References">[1]</a>. |
+ | The original concept involved adding drops of 'goo' to a playing board in order to burst 'blobs', | ||
creating a cascade of bursts. The aim was to clear the playing board in as few clicks as possible. | creating a cascade of bursts. The aim was to clear the playing board in as few clicks as possible. | ||
In a similar fashion, Lysis To Kill draws on the same game concept with a twist to mirror the | In a similar fashion, Lysis To Kill draws on the same game concept with a twist to mirror the | ||
Line 73: | Line 95: | ||
- | <div class="boxOuter | + | <div class="boxOuter full" style="padding: 0px; border: 1px solid black; background-color: black;"> |
- | <h3 | + | <h3><img src="https://static.igem.org/mediawiki/2012/b/b2/Lazyscientist2header.png"></h3> |
- | <div class="boxInner | + | <div class="boxInner centre clearfix"> |
- | <div class="pic" style="border-color: transparent; float:right; margin: 5px;"> | + | <div class="pic" style="border-color: transparent; float:right; margin: 5px 20px 5px 30px;"> |
<a href="https://static.igem.org/mediawiki/igem.org/a/ae/Dundee12lazy.gif"> | <a href="https://static.igem.org/mediawiki/igem.org/a/ae/Dundee12lazy.gif"> | ||
<img src="https://static.igem.org/mediawiki/igem.org/a/ae/Dundee12lazy.gif" width="150px" | <img src="https://static.igem.org/mediawiki/igem.org/a/ae/Dundee12lazy.gif" width="150px" | ||
Line 106: | Line 128: | ||
- | <div class="boxOuter | + | <div class="boxOuter full" style="padding: 0px; border: 1px solid black; background-color: black;"> |
- | <h3 class=" | + | <h3><img src="https://static.igem.org/mediawiki/2012/1/1c/Splicerheader.png"></h3> |
- | <div class="boxInner | + | <div class="boxInner centre clearfix"> |
+ | |||
+ | <br /> | ||
+ | <div class="pic" style="border-color: transparent; margin: 5px 20px 5px 20px;"> | ||
+ | <a href="https://static.igem.org/mediawiki/igem.org/3/37/Dundee12splicer.png"> | ||
+ | <img src="https://static.igem.org/mediawiki/igem.org/3/37/Dundee12splicer.png" width="400px" | ||
+ | alt="Splicer Screenshot" /> | ||
+ | </a> | ||
+ | </div> | ||
+ | Splicer is a short game of six test levels developed for the Windows desktop. The premise is | ||
+ | simple - from a selection of Biobricks, you are tasked with the creation of biological solutions | ||
+ | to given problems. By selecting each Biobrick, you insert it into the plasmid in the centre. Once | ||
+ | you think you have a viable solution, you click on the 'Transcribe & Translate' button to see if | ||
+ | you were right. If you are comfortable with C#, the full source code is included so that you may | ||
+ | add more Biobricks and more levels. | ||
+ | <br /><br /> | ||
+ | The game was developed in Visual Studio using the XNA libraries, and full source code is provided | ||
+ | in the <a href="#dl">download</a> section, along with a full installable version of the game, which | ||
+ | can be removed via the Windows control panel as normal. | ||
+ | </div> | ||
+ | </div> | ||
+ | |||
+ | <div class="boxOuter full" style="padding: 0px; border: 1px solid black; background-color: black;"> | ||
+ | <h3><img src="https://static.igem.org/mediawiki/2012/c/ce/Cellsimheader.png"></h3> | ||
+ | <div class="boxInner centre clearfix"> | ||
From the onset of the project, the modelling team had to carry out investigative research to | From the onset of the project, the modelling team had to carry out investigative research to | ||
understand the biological processes that were involved in the project to ascertain appropriate | understand the biological processes that were involved in the project to ascertain appropriate | ||
Line 117: | Line 163: | ||
to provide a visual representation of the project. | to provide a visual representation of the project. | ||
<br /><br /> | <br /><br /> | ||
- | CellSim is a cross-platform, 2D, cellular automata [4] (CA) modelling tool that was developed | + | <div class="pic" style="border-color: transparent; margin: 5px 20px 5px 20px;"> |
+ | <a href="https://static.igem.org/mediawiki/igem.org/3/32/Dundee12cellsimanimsmall.gif"> | ||
+ | <img src="https://static.igem.org/mediawiki/igem.org/3/32/Dundee12cellsimanimsmall.gif" width="400px" | ||
+ | alt="CellSim Animation" /> | ||
+ | </a> | ||
+ | </div> | ||
+ | CellSim is a cross-platform, 2D, cellular automata | ||
+ | <a href="https://2012.igem.org/Team:Dundee/References" target="_blank">[4]</a> (CA) modelling | ||
+ | tool that was developed | ||
to demonstrate, in a graphical manner, how the synthetically modified E-coli and C.diff cells | to demonstrate, in a graphical manner, how the synthetically modified E-coli and C.diff cells | ||
could interact in a simulated environment. The application was designed to simulate the cellular | could interact in a simulated environment. The application was designed to simulate the cellular | ||
Line 126: | Line 180: | ||
within the download archives for educational purposes as well as encouraging others to build upon | within the download archives for educational purposes as well as encouraging others to build upon | ||
the initial release. | the initial release. | ||
- | < | + | <div class="clearfix"></div> |
+ | <br /> | ||
+ | CellSim initialises the environment by parsing the text data file 'settings.dat' which must | ||
+ | be located within the same folder as the program. The download archive contains an example of the | ||
+ | settings file which provides all the parameters that are available for user modification. | ||
The current development version (1.0) provides an environment in which the following aspects | The current development version (1.0) provides an environment in which the following aspects | ||
can be simulated and defined by the user: | can be simulated and defined by the user: | ||
<br /> | <br /> | ||
<ul style="padding-left: 4%;"> | <ul style="padding-left: 4%;"> | ||
- | <li> | + | <li>Cell Division Rates</li> |
<li>Strains</li> | <li>Strains</li> | ||
<li>Colony Size, Initial Positioning & Colouration</li> | <li>Colony Size, Initial Positioning & Colouration</li> | ||
Line 141: | Line 199: | ||
</ul> | </ul> | ||
<br /> | <br /> | ||
- | <div class="pic" style="border-color: transparent; float:right; margin: 5px;"> | + | <div class="pic" style="border-color: transparent; float:right; margin: 5px 20px 5px 20px;"> |
<a href="https://static.igem.org/mediawiki/igem.org/1/10/Dundee12cellsimcd.png"> | <a href="https://static.igem.org/mediawiki/igem.org/1/10/Dundee12cellsimcd.png"> | ||
- | <img src="https://static.igem.org/mediawiki/igem.org/1/10/Dundee12cellsimcd.png" width=" | + | <img src="https://static.igem.org/mediawiki/igem.org/1/10/Dundee12cellsimcd.png" width="400px" |
alt="CellSim Class Diagram" /> | alt="CellSim Class Diagram" /> | ||
</a> | </a> | ||
</div> | </div> | ||
- | The program was developed around an MVC structural design pattern [3] with a subtle modification. | + | The program was developed around an MVC structural design pattern |
- | The initial design adopted a classic MVC [3] architecture, whereby for each generation, each cell | + | <a href="https://2012.igem.org/Team:Dundee/References" target="_blank">[3]</a> |
+ | with a subtle modification. | ||
+ | The initial design adopted a classic MVC | ||
+ | <a href="https://2012.igem.org/Team:Dundee/References" target="_blank">[3]</a> | ||
+ | architecture, whereby for each generation, each cell | ||
was updated within the model classes, and subsequently rendered within the view classes. Due to | was updated within the model classes, and subsequently rendered within the view classes. Due to | ||
the large number of cells that the program is required to simulate, code profiling highlighted | the large number of cells that the program is required to simulate, code profiling highlighted | ||
Line 155: | Line 217: | ||
of neighbouring cells and their status. To accomplish this through data provided solely within the | of neighbouring cells and their status. To accomplish this through data provided solely within the | ||
model, for each cell, all other cells would require iteration and interrogation leading to a time | model, for each cell, all other cells would require iteration and interrogation leading to a time | ||
- | complexity of at least O( | + | complexity of at least O(n<sup>2</sup>). Due to the mitosis behaviour of cells, the source number of cells |
also increases in a quadratic manner. The quadratic mitosis behaviour cannot be alleviated, as it | also increases in a quadratic manner. The quadratic mitosis behaviour cannot be alleviated, as it | ||
represents the real-world scenario, so a solution was sought to alleviate the compound quadratic | represents the real-world scenario, so a solution was sought to alleviate the compound quadratic | ||
- | time complexity that arose from the classic MVC [3] implementation. | + | time complexity that arose from the classic MVC |
+ | <a href="https://2012.igem.org/Team:Dundee/References" target="_blank">[3]</a> | ||
+ | implementation. | ||
<br /><br /> | <br /><br /> | ||
The solution adopted was to carry out cell interrogation, cell update and rendering in a single | The solution adopted was to carry out cell interrogation, cell update and rendering in a single | ||
Line 165: | Line 229: | ||
memory in conjunction with the co-ordinates of the current cell, a direct memory address could be | memory in conjunction with the co-ordinates of the current cell, a direct memory address could be | ||
calculated and accessed to establish the presence of neighbouring cells, alleviating the need to | calculated and accessed to establish the presence of neighbouring cells, alleviating the need to | ||
- | iterate through all cells. By adopting these measures, the time complexity of the | + | iterate through all cells. By adopting these measures, the time complexity of the 'cell evolution' |
section of code was reduced to a constant, greatly improving the speed and number of cells that | section of code was reduced to a constant, greatly improving the speed and number of cells that | ||
the program could comfortably emulate. | the program could comfortably emulate. | ||
<br /><br /> | <br /><br /> | ||
Cellular movement emulates fluid flow by imposing a circular pressure front that is circular in | Cellular movement emulates fluid flow by imposing a circular pressure front that is circular in | ||
- | nature. This provides a simple model that affects each | + | nature. This provides a simple model that affects each cell's horizontal position by exerting |
a greater force on those nearest to the centre of fluid flow. To enable variable flow rates to be | a greater force on those nearest to the centre of fluid flow. To enable variable flow rates to be | ||
- | simulated, a normalised force was calculated from the | + | simulated, a normalised force was calculated from the cell's co-ordinates (x, y) relative to the |
display screens height (Ymax), multiplied by a user adjustable force factor (f) and utilised to | display screens height (Ymax), multiplied by a user adjustable force factor (f) and utilised to | ||
modify the horizontal position of the cell. By carrying out this calculation on each cell, a | modify the horizontal position of the cell. By carrying out this calculation on each cell, a | ||
realistic, circular flow pressure is simulated. The new horizontal cell position is calculated | realistic, circular flow pressure is simulated. The new horizontal cell position is calculated | ||
from the following formula: | from the following formula: | ||
- | <br /> | + | <br /><br /> |
- | + | <div class="pic clearfix" style="border-color: transparent; padding-left: 150px;"> | |
- | < | + | <a href="https://static.igem.org/mediawiki/igem.org/b/bb/Dundee12flowformula.png"> |
+ | <img src="https://static.igem.org/mediawiki/igem.org/b/bb/Dundee12flowformula.png" width="600px" | ||
+ | alt="CellSim Flow Formula" /> | ||
+ | </a> | ||
+ | </div> | ||
+ | <div class="clearfix"></div> | ||
To provide a realistic and accurate movement of cells within CA environment, each cell contains | To provide a realistic and accurate movement of cells within CA environment, each cell contains | ||
- | co-ordinate members for the respective | + | co-ordinate members for the respective 'x' and 'y' position. These class members are defined as |
float data types as opposed to integers to permit gradual movements to be achieved. To render each | float data types as opposed to integers to permit gradual movements to be achieved. To render each | ||
cell, the co-ordinates are simply cast to integer types before being passed to the graphics | cell, the co-ordinates are simply cast to integer types before being passed to the graphics | ||
Line 188: | Line 257: | ||
<br /><br /> | <br /><br /> | ||
The application adopts the SDL (Simple Directmedia Layer) graphics API that was chosen primarily | The application adopts the SDL (Simple Directmedia Layer) graphics API that was chosen primarily | ||
- | due to its flexibility, and is licensed under GNU LGPL version 2 [2]. Furthermore, the library | + | due to its flexibility, and is licensed under GNU LGPL version 2 |
+ | <a href="https://2012.igem.org/Team:Dundee/References" target="_blank">[2]. </a> | ||
+ | Furthermore, the library | ||
provides binary compilations for a wide variety of operating systems including Windows, Linux | provides binary compilations for a wide variety of operating systems including Windows, Linux | ||
and MacOS. To encourage development of the program, pre-developed Eclipse and Visual Studio 11 | and MacOS. To encourage development of the program, pre-developed Eclipse and Visual Studio 11 | ||
project files have been created, and are free to download and explore. Alternatively, the packages | project files have been created, and are free to download and explore. Alternatively, the packages | ||
- | also include the pre-compiled binary versions of the application within the | + | also include the pre-compiled binary versions of the application within the 'Release' folder of |
the download archive (ZIP) files. | the download archive (ZIP) files. | ||
<br /> | <br /> | ||
Line 199: | Line 270: | ||
- | <div class="boxOuter | + | <div class="boxOuter full" style="padding: 0px; border: 1px solid black; background-color: black;"> |
- | <h3> | + | <h3><img src="https://static.igem.org/mediawiki/2012/8/86/Downloadsheader.png"></h3> |
- | <div class="boxInner | + | <div class="boxInner centre clearfix"> |
<a name = "dl"></a> | <a name = "dl"></a> | ||
- | NOTE: To run | + | NOTE: To run 'CellSim' under Windows, the Visual C++ Redistributable Package must be installed. |
This is free, and can be downloaded from | This is free, and can be downloaded from | ||
- | <a href="https://www.microsoft.com/en-us/download/details.aspx?id=30679"> | + | <a href="https://www.microsoft.com/en-us/download/details.aspx?id=30679" target="_blank"> |
https://www.microsoft.com/en-us/download/details.aspx?id=30679 | https://www.microsoft.com/en-us/download/details.aspx?id=30679 | ||
</a> | </a> | ||
- | Select the file named | + | Select the file named 'vcredist_x86.exe' (6.2MB), and once downloaded, run the program to install |
- | the Visual C++ libraries required prior to running the CellSim program. | + | the Visual C++ libraries required prior to running the 'CellSim' program. |
<br /><br /> | <br /><br /> | ||
<strong>Download Links:</strong><br /> | <strong>Download Links:</strong><br /> | ||
- | Lysis To Kill | + | Lysis To Kill - Android Package [ |
- | Lysis To Kill Eclipse Project Source<br /> | + | <a href="https://dl.dropbox.com/u/52338078/iGEM/Lysis%20To%20Kill.apk">Lysis To Kill.apk</a> |
- | Lazy Scientist II | + | ]<br /> |
- | Lazy Scientist II Eclipse Project Source<br /> | + | Lysis To Kill Eclipse Project - Full Source [ |
- | CellSim Linux x86 Eclipse Project Source<br /> | + | <a href="https://dl.dropbox.com/u/52338078/iGEM/Lysis%20To%20Kill.zip">Lysis To Kill.zip</a> |
- | CellSim Windows x86 Visual Studio 11 Project Source< | + | ]<br /> |
- | < | + | Lazy Scientist II - Android Package [ |
- | + | <a href="https://dl.dropbox.com/u/52338078/iGEM/Lazy%20Scientist%20II.apk">Lazy Scientist II.apk</a> | |
- | + | ]<br /> | |
- | + | Lazy Scientist II Eclipse Project - Full Source [ | |
- | + | <a href="https://dl.dropbox.com/u/52338078/iGEM/Lazy%20Scientist%20II.zip">Lazy Scientist II.zip</a> | |
+ | ]<br /> | ||
+ | CellSim Linux x86 Eclipse Project - Full Program & Source [ | ||
+ | <a href="https://dl.dropbox.com/u/52338078/iGEM/CellSim%20Linux%20x86.zip">CellSim Linux x86.zip</a> | ||
+ | ]<br /> | ||
+ | CellSim Windows x86 Visual Studio 11 Project - Full Program & Source [ | ||
+ | <a href="https://dl.dropbox.com/u/52338078/iGEM/CellSim%20Windows%20x86.zip">CellSim Windows x86.zip</a> | ||
+ | ]<br /> | ||
+ | Splicer Source - Visual Studio 10 XNA Project - Full Program & Source [ | ||
+ | <a href="https://dl.dropbox.com/u/52338078/iGEM/Splicer%20Source.zip">Splicer Source.zip</a> | ||
+ | <br /> | ||
+ | Splicer Installer - Windows x86 Installer - Full Program [ | ||
+ | <a href="https://dl.dropbox.com/u/52338078/iGEM/Splicer%20Installer.zip">Splicer Installer.zip</a> | ||
+ | <br /><br /> | ||
+ | <div class="caption" style="width: 100%; color: #DD0000;"> | ||
+ | All software is provided under the GNU GPL 3 license terms ( | ||
+ | <a href="https://www.gnu.org/licenses/gpl-3.0.txt" target="_blank">full text here</a>), and is | ||
+ | provided 'as-is' without warranty of any kind.<br />By downloading any of the software provided, you | ||
+ | are confirming your agreement to the terms of the license in full. | ||
+ | </div> | ||
+ | <br /> | ||
+ | Some or all of the software provided may see further development by the author. Due to the | ||
+ | Wiki freeze at the end of the competition, future versions will be released through the | ||
+ | author's Blog at <a href="http://nibblesbytes.blogspot.co.uk/">http://nibblesbytes.blogspot.co.uk</a> | ||
+ | <br /><br /> | ||
</div> | </div> | ||
</div> | </div> | ||
- | + | <div class="clearfix"> | |
- | <div class="clearfix"></div> | + | <div class="footerbox"> |
+ | <br> | ||
+ | <center> | ||
+ | <img src="https://static.igem.org/mediawiki/2012/0/04/Sponsorbar2.jpg"> | ||
+ | <center> | ||
+ | </div> | ||
+ | </div> | ||
<!-- End Body Content Here --> | <!-- End Body Content Here --> | ||
Line 234: | Line 335: | ||
</div> | </div> | ||
- | <div id="medialinks" class=" | + | <div id="medialinks" class="raised" style="padding: 0px; width: 34px; top: 0px;"> |
<a href="http://twitter.com/#!/DundeeiGEMTeam" target="_blank"> | <a href="http://twitter.com/#!/DundeeiGEMTeam" target="_blank"> | ||
- | <img src="https://static.igem.org/mediawiki/igem.org/e/e5/Dundee12icont.png" class="icon" width=" | + | <img src="https://static.igem.org/mediawiki/igem.org/e/e5/Dundee12icont.png" style="padding: 2px 0 2px 0;" class="icon" width="30px" title = "Follow Us On Twitter" alt="Follow Us On Twitter" /> |
- | + | ||
- | Twitter" /> | + | |
</a> | </a> | ||
<a href="http://www.facebook.com/pages/Dundee-University-iGEM-Team-2012/384623728265118" target="_blank"> | <a href="http://www.facebook.com/pages/Dundee-University-iGEM-Team-2012/384623728265118" target="_blank"> | ||
- | <img src="https://static.igem.org/mediawiki/igem.org/8/83/Dundee12iconf.png" class="icon" width=" | + | <img src="https://static.igem.org/mediawiki/igem.org/8/83/Dundee12iconf.png" style="padding: 2px 0 2px 0;" class="icon" width="30px" title="Follow Us On Facebook" alt="Follow Us On Facebook" /> |
- | + | ||
- | Facebook" /> | + | |
</a> | </a> | ||
<a href="http://dundeeigem.blogspot.co.uk/" target="_blank"> | <a href="http://dundeeigem.blogspot.co.uk/" target="_blank"> | ||
- | <img src="https://static.igem.org/mediawiki/igem.org/d/df/Dundee12iconb.png" class="icon" width=" | + | <img src="https://static.igem.org/mediawiki/igem.org/d/df/Dundee12iconb.png" style="padding: 2px 0 2px 0;" class="icon" width="30px" title="Follow Our Blog" alt="Follow Our Blog" /> |
</a> | </a> | ||
</div> | </div> | ||
</html> | </html> |
Latest revision as of 21:58, 26 September 2012
Lysis To Kill is a game developed for the Android platform. The concept of the game was
inspired by Splashback which was a Flash game developed for the Cartoon Network
[1].
The original concept involved adding drops of 'goo' to a playing board in order to burst 'blobs',
creating a cascade of bursts. The aim was to clear the playing board in as few clicks as possible.
In a similar fashion, Lysis To Kill draws on the same game concept with a twist to mirror the
iGEM project we have undertaken.
You start the game with 10 clicks. You are in charge of the friendly, synthetically engineered E-coli cells (in green), and each time you click a cell it shrinks and eventually bursts. Your goal is to destroy all the C.diff cells with φCD27 endolysin, which is fired from your E.coli cells whenever they burst. Each level grants you an extra click, and points are awarded for every C.diff cell destroyed. Bonus points are awarded if you finish a level with a clear board. The game is free to download, and the full source code is provided.
You start the game with 10 clicks. You are in charge of the friendly, synthetically engineered E-coli cells (in green), and each time you click a cell it shrinks and eventually bursts. Your goal is to destroy all the C.diff cells with φCD27 endolysin, which is fired from your E.coli cells whenever they burst. Each level grants you an extra click, and points are awarded for every C.diff cell destroyed. Bonus points are awarded if you finish a level with a clear board. The game is free to download, and the full source code is provided.
The Dundee iGEM team of 2011 created an Android application named the Lazy Scientist, and this
year we chose to follow up the application with a suite of useful tools for biology students.
The main goal was to provide some useful applications and to provide access to the source code
to enable developers to add, modify and change the application to suit their needs. The app is
free to download, and the full source code is provided.
The application currently contains the following tools:
The application currently contains the following tools:
- Ratio to Percentage/ Percentage to Ratio Convertor
- OD660 to Cell Count Estimator
- Simple Dilution Calculator
- Serial Dilution Checker
Splicer is a short game of six test levels developed for the Windows desktop. The premise is simple - from a selection of Biobricks, you are tasked with the creation of biological solutions to given problems. By selecting each Biobrick, you insert it into the plasmid in the centre. Once you think you have a viable solution, you click on the 'Transcribe & Translate' button to see if you were right. If you are comfortable with C#, the full source code is included so that you may add more Biobricks and more levels.
The game was developed in Visual Studio using the XNA libraries, and full source code is provided in the download section, along with a full installable version of the game, which can be removed via the Windows control panel as normal.
From the onset of the project, the modelling team had to carry out investigative research to
understand the biological processes that were involved in the project to ascertain appropriate
modelling methodologies to adopt. Due to the unique combination of factors involved in the project,
it became evident that there were considerable quantities of mathematical variables that defined the
behaviour of the cellular interaction. From a software development perspective, it was attractive
to take the mathematical axioms of behaviour, and to wrap them within a bespoke modelling solution
to provide a visual representation of the project.
CellSim is a cross-platform, 2D, cellular automata [4] (CA) modelling tool that was developed to demonstrate, in a graphical manner, how the synthetically modified E-coli and C.diff cells could interact in a simulated environment. The application was designed to simulate the cellular interactions whilst also providing a customisable simulation environment that could enable the tool to be used in other, similar projects. CellSim was developed to enable it to be executed on either Linux or Windows based systems, and is released under the GNU GPL 3 license that permits copying, modification and redistribution of the program. The source code and full class diagram is provided within the download archives for educational purposes as well as encouraging others to build upon the initial release.
CellSim initialises the environment by parsing the text data file 'settings.dat' which must be located within the same folder as the program. The download archive contains an example of the settings file which provides all the parameters that are available for user modification. The current development version (1.0) provides an environment in which the following aspects can be simulated and defined by the user:
The program was developed around an MVC structural design pattern [3] with a subtle modification. The initial design adopted a classic MVC [3] architecture, whereby for each generation, each cell was updated within the model classes, and subsequently rendered within the view classes. Due to the large number of cells that the program is required to simulate, code profiling highlighted the inefficiency if iterating through all cells twice. Furthermore, the status of each cell is partly determined by neighbouring cells, and therefore a method was required to detect the presence of neighbouring cells and their status. To accomplish this through data provided solely within the model, for each cell, all other cells would require iteration and interrogation leading to a time complexity of at least O(n2). Due to the mitosis behaviour of cells, the source number of cells also increases in a quadratic manner. The quadratic mitosis behaviour cannot be alleviated, as it represents the real-world scenario, so a solution was sought to alleviate the compound quadratic time complexity that arose from the classic MVC [3] implementation.
The solution adopted was to carry out cell interrogation, cell update and rendering in a single pass, and establishing the presence of neighbouring cells by direct interrogation of the graphics memory as opposed to model data interrogation. By calculating the base address of the graphics memory in conjunction with the co-ordinates of the current cell, a direct memory address could be calculated and accessed to establish the presence of neighbouring cells, alleviating the need to iterate through all cells. By adopting these measures, the time complexity of the 'cell evolution' section of code was reduced to a constant, greatly improving the speed and number of cells that the program could comfortably emulate.
Cellular movement emulates fluid flow by imposing a circular pressure front that is circular in nature. This provides a simple model that affects each cell's horizontal position by exerting a greater force on those nearest to the centre of fluid flow. To enable variable flow rates to be simulated, a normalised force was calculated from the cell's co-ordinates (x, y) relative to the display screens height (Ymax), multiplied by a user adjustable force factor (f) and utilised to modify the horizontal position of the cell. By carrying out this calculation on each cell, a realistic, circular flow pressure is simulated. The new horizontal cell position is calculated from the following formula:
To provide a realistic and accurate movement of cells within CA environment, each cell contains co-ordinate members for the respective 'x' and 'y' position. These class members are defined as float data types as opposed to integers to permit gradual movements to be achieved. To render each cell, the co-ordinates are simply cast to integer types before being passed to the graphics interface. This permits cell movements to be calculable to fractions of a pixel, and provides an accurate representation of the behaviour required.
The application adopts the SDL (Simple Directmedia Layer) graphics API that was chosen primarily due to its flexibility, and is licensed under GNU LGPL version 2 [2]. Furthermore, the library provides binary compilations for a wide variety of operating systems including Windows, Linux and MacOS. To encourage development of the program, pre-developed Eclipse and Visual Studio 11 project files have been created, and are free to download and explore. Alternatively, the packages also include the pre-compiled binary versions of the application within the 'Release' folder of the download archive (ZIP) files.
CellSim is a cross-platform, 2D, cellular automata [4] (CA) modelling tool that was developed to demonstrate, in a graphical manner, how the synthetically modified E-coli and C.diff cells could interact in a simulated environment. The application was designed to simulate the cellular interactions whilst also providing a customisable simulation environment that could enable the tool to be used in other, similar projects. CellSim was developed to enable it to be executed on either Linux or Windows based systems, and is released under the GNU GPL 3 license that permits copying, modification and redistribution of the program. The source code and full class diagram is provided within the download archives for educational purposes as well as encouraging others to build upon the initial release.
CellSim initialises the environment by parsing the text data file 'settings.dat' which must be located within the same folder as the program. The download archive contains an example of the settings file which provides all the parameters that are available for user modification. The current development version (1.0) provides an environment in which the following aspects can be simulated and defined by the user:
- Cell Division Rates
- Strains
- Colony Size, Initial Positioning & Colouration
- Medium Flow Effects
- Mucus Wall Effects
- Time Calibrated Rendering
- Nutrient Availability, Supply & Absorption
- Low Nutrient Mitosis Suppression
The program was developed around an MVC structural design pattern [3] with a subtle modification. The initial design adopted a classic MVC [3] architecture, whereby for each generation, each cell was updated within the model classes, and subsequently rendered within the view classes. Due to the large number of cells that the program is required to simulate, code profiling highlighted the inefficiency if iterating through all cells twice. Furthermore, the status of each cell is partly determined by neighbouring cells, and therefore a method was required to detect the presence of neighbouring cells and their status. To accomplish this through data provided solely within the model, for each cell, all other cells would require iteration and interrogation leading to a time complexity of at least O(n2). Due to the mitosis behaviour of cells, the source number of cells also increases in a quadratic manner. The quadratic mitosis behaviour cannot be alleviated, as it represents the real-world scenario, so a solution was sought to alleviate the compound quadratic time complexity that arose from the classic MVC [3] implementation.
The solution adopted was to carry out cell interrogation, cell update and rendering in a single pass, and establishing the presence of neighbouring cells by direct interrogation of the graphics memory as opposed to model data interrogation. By calculating the base address of the graphics memory in conjunction with the co-ordinates of the current cell, a direct memory address could be calculated and accessed to establish the presence of neighbouring cells, alleviating the need to iterate through all cells. By adopting these measures, the time complexity of the 'cell evolution' section of code was reduced to a constant, greatly improving the speed and number of cells that the program could comfortably emulate.
Cellular movement emulates fluid flow by imposing a circular pressure front that is circular in nature. This provides a simple model that affects each cell's horizontal position by exerting a greater force on those nearest to the centre of fluid flow. To enable variable flow rates to be simulated, a normalised force was calculated from the cell's co-ordinates (x, y) relative to the display screens height (Ymax), multiplied by a user adjustable force factor (f) and utilised to modify the horizontal position of the cell. By carrying out this calculation on each cell, a realistic, circular flow pressure is simulated. The new horizontal cell position is calculated from the following formula:
To provide a realistic and accurate movement of cells within CA environment, each cell contains co-ordinate members for the respective 'x' and 'y' position. These class members are defined as float data types as opposed to integers to permit gradual movements to be achieved. To render each cell, the co-ordinates are simply cast to integer types before being passed to the graphics interface. This permits cell movements to be calculable to fractions of a pixel, and provides an accurate representation of the behaviour required.
The application adopts the SDL (Simple Directmedia Layer) graphics API that was chosen primarily due to its flexibility, and is licensed under GNU LGPL version 2 [2]. Furthermore, the library provides binary compilations for a wide variety of operating systems including Windows, Linux and MacOS. To encourage development of the program, pre-developed Eclipse and Visual Studio 11 project files have been created, and are free to download and explore. Alternatively, the packages also include the pre-compiled binary versions of the application within the 'Release' folder of the download archive (ZIP) files.
NOTE: To run 'CellSim' under Windows, the Visual C++ Redistributable Package must be installed.
This is free, and can be downloaded from
https://www.microsoft.com/en-us/download/details.aspx?id=30679
Select the file named 'vcredist_x86.exe' (6.2MB), and once downloaded, run the program to install
the Visual C++ libraries required prior to running the 'CellSim' program.
Download Links:
Lysis To Kill - Android Package [ Lysis To Kill.apk ]
Lysis To Kill Eclipse Project - Full Source [ Lysis To Kill.zip ]
Lazy Scientist II - Android Package [ Lazy Scientist II.apk ]
Lazy Scientist II Eclipse Project - Full Source [ Lazy Scientist II.zip ]
CellSim Linux x86 Eclipse Project - Full Program & Source [ CellSim Linux x86.zip ]
CellSim Windows x86 Visual Studio 11 Project - Full Program & Source [ CellSim Windows x86.zip ]
Splicer Source - Visual Studio 10 XNA Project - Full Program & Source [ Splicer Source.zip
Splicer Installer - Windows x86 Installer - Full Program [ Splicer Installer.zip
Some or all of the software provided may see further development by the author. Due to the Wiki freeze at the end of the competition, future versions will be released through the author's Blog at http://nibblesbytes.blogspot.co.uk
Download Links:
Lysis To Kill - Android Package [ Lysis To Kill.apk ]
Lysis To Kill Eclipse Project - Full Source [ Lysis To Kill.zip ]
Lazy Scientist II - Android Package [ Lazy Scientist II.apk ]
Lazy Scientist II Eclipse Project - Full Source [ Lazy Scientist II.zip ]
CellSim Linux x86 Eclipse Project - Full Program & Source [ CellSim Linux x86.zip ]
CellSim Windows x86 Visual Studio 11 Project - Full Program & Source [ CellSim Windows x86.zip ]
Splicer Source - Visual Studio 10 XNA Project - Full Program & Source [ Splicer Source.zip
Splicer Installer - Windows x86 Installer - Full Program [ Splicer Installer.zip
Some or all of the software provided may see further development by the author. Due to the Wiki freeze at the end of the competition, future versions will be released through the author's Blog at http://nibblesbytes.blogspot.co.uk