Team:Dundee/Software

From 2012.igem.org

(Difference between revisions)
 
(56 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>
+
<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='#'><span>Team</span></a>
+
       <li class='has-sub '><a href='https://2012.igem.org/Team:Dundee/Team'><span>Team</span></a>
-
              <ul>
+
          <ul>
-
                    <li><a href='https://2012.igem.org/Team:Dundee/Team'><span>Team Profiles</span></a></li>
+
                <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>
+
                <li><a href='https://igem.org/Team.cgi?year=2012&team_name=Dundee'><span>iGEM team Profile</span></a></li>
        </ul>
        </ul>
-
            </li>
+
        </li>
-
       <li class='has-sub '><a href='#'><span>Project</span></a>
+
       <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>Project</span></a></li>
+
               <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/Biobricks'><span>Biobricks</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/Notebook'><span>Notebook</span></a></li>
+
                <li><a href="https://2012.igem.org/Team:Dundee/Biobricks"><span>Biobricks</span></a></li>
-
                    <li><a href='https://2012.igem.org/Team:Dundee/Safety'><span>Safety</span></a></li>
+
          </ul> 
-
          </ul>  
+
</li>
-
            </li> 
+
     
-
       <li class='active '><a href='https://2012.igem.org/Team:Dundee/Modelling'><span>Modelling</span></a></li>
+
<li class='has-sub'><a href='https://2012.igem.org/Team:Dundee/Strategy'><span>Wet Lab</span></a>
-
       <li class='active '><a href='https://2012.igem.org/Team:Dundee/Software'><span>Software</span></a></li>
+
          <ul>
-
            <li class='active '><a href='https://2012.igem.org/Team:Dundee/Attributions'><span>Attributions</span></a></li>
+
              <li><a href='https://2012.igem.org/Team:Dundee/Strategy'><span>Strategy</span></a></li>
-
      <li class='active '><a href='https://2012.igem.org/Team:Dundee/References'><span>References</span></a></li>
+
                <li><a href='https://2012.igem.org/Team:Dundee/Results'><span>Experimentation</span></a></li>
-
    </ul>
+
</ul>
-
</div>
+
        </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 -->
          
          
          
          
-
         <div class="boxOuter rounded full blueBorder" style="padding: 0px;">
+
         <img src="https://static.igem.org/mediawiki/2012/8/84/Softwareheader.png"><br><br>
-
            <div class="boxInner rounded centre" style="padding: 0px 0px 3px 0px;">
+
-
                <center><h2>Software Development</h2></center>
+
-
            </div>
+
-
        </div>
+
        
        
-
         <div class="boxOuter rounded full redBorder" style="padding: 0px;">
+
         <div class="boxOuter full" style="padding: 0px; border: 1px solid black; background-color: black;">
-
             <h3 class="white">Lysis To Kill</h3>
+
             <h3><img src="https://static.igem.org/mediawiki/2012/8/84/Lysistokillheader.png"></h3>
-
             <div class="boxInner rounded centre clearfix">                 
+
             <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 ‘goo’ to a playing board in order to burst ‘blobs’,  
+
                <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 rounded full blackBorder" style="padding: 0px;">
+
         <div class="boxOuter full" style="padding: 0px; border: 1px solid black; background-color: black;">
-
             <h3 class="white">Lazy Scientist II</h3>
+
             <h3><img src="https://static.igem.org/mediawiki/2012/b/b2/Lazyscientist2header.png"></h3>
-
             <div class="boxInner rounded centre clearfix">                 
+
             <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 rounded full blueBorder" style="padding: 0px;">
+
         <div class="boxOuter full" style="padding: 0px; border: 1px solid black; background-color: black;">
-
             <h3 class="white">CellSim</h3>
+
             <h3><img src="https://static.igem.org/mediawiki/2012/1/1c/Splicerheader.png"></h3>
-
             <div class="boxInner rounded centre clearfix">
+
            <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 />
-
                 <div class="pic" style="border-color: transparent; margin: 5px;">
+
                 <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">
                     <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"  
                     <img src="https://static.igem.org/mediawiki/igem.org/3/32/Dundee12cellsimanimsmall.gif" width="400px"  
Line 123: Line 169:
                     </a>                       
                     </a>                       
                 </div>
                 </div>
-
                 CellSim is a cross-platform, 2D, cellular automata [4] (CA) modelling tool that was developed  
+
                 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 134: Line 182:
                 <div class="clearfix"></div>
                 <div class="clearfix"></div>
                 <br />
                 <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>Cellular Mitosis Rates</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 148: 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="400px"  
                     <img src="https://static.igem.org/mediawiki/igem.org/1/10/Dundee12cellsimcd.png" width="400px"  
Line 154: Line 205:
                     </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 162: 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(n2). Due to the mitosis behaviour of cells, the source number of cells  
+
                 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 172: 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 ‘cell evolution’
+
                 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 cell’s horizontal position by exerting  
+
                 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 cell’s co-ordinates (x, y) relative to 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  
Line 193: Line 250:
                 <div class="clearfix"></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 ‘x’ and ‘y’ position. These class members are defined as  
+
                 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 200: 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 ‘Release’ folder of  
+
                 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 211: Line 270:
-
         <div class="boxOuter rounded full redBorder" style="padding: 0px;">
+
         <div class="boxOuter full" style="padding: 0px; border: 1px solid black; background-color: black;">
-
             <h3 class="white">Downloads</h3>
+
             <h3><img src="https://static.igem.org/mediawiki/2012/8/86/Downloadsheader.png"></h3>
-
             <div class="boxInner rounded centre">         
+
             <div class="boxInner centre clearfix">         
                 <a name = "dl"></a>
                 <a name = "dl"></a>
                 NOTE: To run 'CellSim' under Windows, the Visual C++ Redistributable Package must be installed.  
                 NOTE: To run 'CellSim' under Windows, the Visual C++ Redistributable Package must be installed.  
Line 220: Line 279:
                 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 ‘vcredist_x86.exe (6.2MB), and once downloaded, run the program to install  
+
                 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 APK<br />
+
                 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 APK<br />
+
                ]<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 /><br />
+
                ]<br />
-
                 <strong>MD5 Download Checksums:</strong><br />
+
                 Lazy Scientist II - Android Package [
-
                 dbed0061a9ae680368440b43dff8cecd  CellSim Linux x86.zip<br />
+
                    <a href="https://dl.dropbox.com/u/52338078/iGEM/Lazy%20Scientist%20II.apk">Lazy Scientist II.apk</a>
-
                 16b261b82de6a34d8ef8c479a87db760  CellSim Windows x86.zip<br />
+
                ]<br />
-
                efa69777739cbffedc7a7f5055cff49e  Lazy Scientist II.zip<br />
+
                 Lazy Scientist II Eclipse Project - Full Source [
-
                 fffdfd44da9b99c950f2f1ce137ec5cb  Lysis To Kill.zip<br />
+
                    <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 246: Line 335:
</div>
</div>
-
<div id="medialinks" class="drop-shadow raised">
+
<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="45px" title = "Follow Us On Twitter" alt="Follow Us On  
+
     <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="45px" title="Follow Us On Facebook" alt="Follow Us On  
+
     <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="45px" title="Follow Our Blog" alt="Follow Our Blog" />
+
     <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.

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:

  • Ratio to Percentage/ Percentage to Ratio Convertor
  • OD660 to Cell Count Estimator
  • Simple Dilution Calculator
  • Serial Dilution Checker

(** Note: The OD660 calculator is based on a single sample set of data that, for obvious reasons, can only provide an estimate of cell count.
For more accurate OD calculations, in-situ, calibrated laboratory equipment should be used.)


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:
  • 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

All software is provided under the GNU GPL 3 license terms ( full text here), and is provided 'as-is' without warranty of any kind.
By downloading any of the software provided, you are confirming your agreement to the terms of the license in full.

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