Difference between revisions of "Team:UNOTT/Software"

Line 330: Line 330:
 
<p> &nbsp; </p>
 
<p> &nbsp; </p>
  
<p> <a href="https://2017.igem.org/Team:UNOTT/Modelling">To find out more about how we developed this software using models, click here</a> </p>
+
<p> <a href="https://2017.igem.org/Team:UNOTT/Modelling">To find out more about how we developed this software using models, click here </a> </p>
 
<p> &nbsp; </p>
 
<p> &nbsp; </p>
  
Line 356: Line 356:
 
<h5 style="color: #C0C0C0; font-weight: bold; font-size: 20px;"> Generating random numbers from our randomly constructed colonies </h5>
 
<h5 style="color: #C0C0C0; font-weight: bold; font-size: 20px;"> Generating random numbers from our randomly constructed colonies </h5>
 
       <div id="clear6" style="display: none;">
 
       <div id="clear6" style="display: none;">
<p> When speaking to our industry contacts about Key.Coli, they were very interested in seeing Key.Coli's capabilities as a Random Number Generation tool. After gaining results from the random constructions, the team set to finding out if the values could be used to generate a string of random numbers. The results are as shown. </p>
+
<p> When speaking to our industry contacts about Key.Coli, they were very interested in seeing Key.Coli's capabilities as a Random Number Generation tool. After gaining results from the random constructions, the team set to finding out if the values could be used to generate a string of random numbers. The importance of Key.Coli's core value of informational security is the ability to produce a persistent but randomly generated state. </p>
 
<br> </br>
 
<br> </br>
 +
<p> There were two ways to generate a string of random numbers from the colonies: either try to generate a string of numbers from a three colonies (one acting as a Minimum and another as a Maximum for range) or treat each colony as a random number by itself </p>
 +
<br> </br>
 +
<p> On investigating the first method, out of 3 colonies, one was assigned the role of being the Minimum, having the lowest fluorescence intensity, and another a Maximum, having the highest. Using the equation: INT((MED[...] - MIN[...]) / MAX[...]) * 255), the team could generate a string of random numbers by inputting the fluorescence values over time. The INT(..) command sets the number to an Integer value, so no decimal points would appear. The MIN colony returns the colony with the lowest intensity, MAX returns the highest, and MED returns the median. The result was multiplied by 255 to produce a number out of 255, which is the largest value of a byte. The results are shown on Figure 8 </p>
 
<p style="text-align: center;" > Figure 8 </p>  
 
<p style="text-align: center;" > Figure 8 </p>  
 
<p style="text-align: center;" > <img src="https://static.igem.org/mediawiki/2017/0/01/T--UNOTT--RandomPoints.png" class="border" width="600" height="400" > </p>  
 
<p style="text-align: center;" > <img src="https://static.igem.org/mediawiki/2017/0/01/T--UNOTT--RandomPoints.png" class="border" width="600" height="400" > </p>  
 
<br> </br>
 
<br> </br>
 
<p> For comparison, the other values are taken from other pseudo-random and random number generators <sup> 1 </sup> </p>  
 
<p> For comparison, the other values are taken from other pseudo-random and random number generators <sup> 1 </sup> </p>  
<p> However, when checking for a normal distribution, it was found the set of numbers were biased to the the top and bottom of the set ranges, which suggests that a single colony can not be used to generate a set of numbers but rather, one colony can be used for one number (in our case, it was 18, 128 and 125.) This is because the colonies were constructed in a random fashion using Brownian Motion <sup> 2 </sup> </p>
+
<p> Looking at the graph, it shows that Key.Coli generated numbers tend to a lower range of numbers. This was confirmed when checking for a normal distribution; it was found the set of numbers were biased to the the top and bottom of the set ranges, which suggests that three colonies scaled over time cannot be used to generate a set of numbers. </p>
 +
 
 +
<br> </br>
 +
<p> In the other method, the team found that one colony can be used for one number (in our case, it was 18, 128 and 125.) Theoretically, these are random as the colonies were constructed in a random fashion using Brownian Motion <sup> 2 </sup>. However, due to time and resource constraints, it would be impossible to create 200,000 colonies required for testing currently but this maybe achievable through automation. </p>
  
 
<p> This is still very useful: it means it can be used as a random seed value for a random number generator. Furthermore, one way to get a set of numbers from one colony is to break it up. The team did this and found each colony, despite being genetically similar, had varying levels of fluorescence from each other. </p>  
 
<p> This is still very useful: it means it can be used as a random seed value for a random number generator. Furthermore, one way to get a set of numbers from one colony is to break it up. The team did this and found each colony, despite being genetically similar, had varying levels of fluorescence from each other. </p>  
  
<p> However, this hasn't been tested yet as an enormous number of colonies (200,000) would be needed to evaluate the Normal Distribution. However, future projects can feel free to use Key.Coli to generate true random numbers. </p>
+
<p> However, future projects can feel free to use Key.Coli to generate true random numbers. In the future, the team  would like to investigate the random nature of the key.coli system more thoroughly. </p>
 
<br> </br>
 
<br> </br>
 
<p> <sup> 1 </sup> RAND was generated using =INT(NORM.INV(RAND(),XX,XX)) on Excel, Atmospheric Noise was taken from Random.org and Fortuna is used in some Unix based OS to generate security keys </p>
 
<p> <sup> 1 </sup> RAND was generated using =INT(NORM.INV(RAND(),XX,XX)) on Excel, Atmospheric Noise was taken from Random.org and Fortuna is used in some Unix based OS to generate security keys </p>

Revision as of 18:50, 1 November 2017





SOFTWARE

Overview

About our software and why iGEM Nottingham chose to produce it

Image Comparison Software

Comparing images of spectra from two different colonies to check for similiarity

Key.Coli Verification

Comparing the raw data of two different colonies straight from the fluorescence reader

Fluorescence Spectra Simulation

Simulating fluorescence spectra from given protein concentrations

Random Number Generation

Generating random numbers from our randomly constructed colonies

Linux Key.Coli Security Layer

Porting our comparison software to low end hardware to safeguard a system