IGEM:IMPERIAL/2008/Prototype/Drylab/Validation: Difference between revisions

From OpenWetWare
Jump to navigationJump to search
mNo edit summary
 
(44 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Imperial/StartPage}}
{{Imperial/StartPage2}}


=Validating the Tracking Software=
= Software Validation =


*'''[[User:Yanis Djinnit|Yanis Djinnit]] 13:19, 27 August 2008 (EDT)''':Thinking of deleting this whole section.  
In order to validate our choice of open-source tracking software, a synthetic video based on synthetic data was created. This video was then fed into the software for cell tracking, afterwhich data analysis to obtain bacteria motility characteristics was carried out. The data output was then compared with the synthetic data generated so as to ensure the effectiveness and integrity of the tracking software. The following figure describes our approach in validating the tracking software.


<center>[[Image:Software_Validation.TIF|400px]]</center>


--[[User:SxE00|SxE00]] 09:30, 27 August 2008 (EDT) ''' General Remark on this Section: it is very long. You may want to break it into two or three subsections'''


;[[IGEM:IMPERIAL/2008/Prototype/Drylab/Data_Analysis/BSub_Charac | Generating Bacteria Characteristics]]
Bacteria light intensity or color, shape, size and orientation are being generated in a single m-file. A function leading to the generation of these parameters is then called by the main function which generates synthetic video.


;[[IGEM:IMPERIAL/2008/Prototype/Drylab/Data_Analysis/BSub_Motility| Generating Bacteria Trajectory]]
Distributions of bacteria run velocity, run duration, tumbling angle and tumbling duration were generated using alternative models with arbitrary parameters assumed. Frame-by-frame coordinates are then returned to the main function, allowing the trajectory of bacteria to be plotted.


From the video of the cells obtained via the wiedfield microscope, we determined using the measurement tool of ImageJ the average intensity and standard deviation of a few cells over a different frames. Identical measurements were made for the background. We identified a few static noisy patterns in the background as well. They might be due to optical effects.
;[[IGEM:IMPERIAL/2008/Prototype/Drylab/Data_Analysis/BSub_Video| Generating Synthetic Video]]
A synthetic video of user defined number of bacteria was created using MATLAB. The function calls motility data and bacteria characteristic generating functions, and with these, it plots the trajectory of "motile" bacteria. The background image on which the video is generated also changes with time, introducing an element of noise.


--[[User:SxE00|SxE00]] 09:22, 27 August 2008 (EDT)'''Add images +captions to explain what you mean including zooms on the regions of interest of the image.'''
;[[IGEM:IMPERIAL/2008/Prototype/Drylab/Data_Analysis/Track_Software| Tracking Software]]
The tracking software used will receive the generated synthetic video as an input, and commence cell tracking on a frame-by-frame basis. Bacteria trajectory will then be produced as the data output.


--[[User:SxE00|SxE00]] 09:22, 27 August 2008 (EDT) There also seems to be light blurring effect (Gaussian blurring) due to the microscope being out of focus
;[[IGEM:IMPERIAL/2008/Prototype/Drylab/Data_Analysis/Track_Analysis|Validation and Evaluation]]
Bacteria trajectory data in terms of coordinates are analysed and compared with synthetic data. The errors associated with the resective tracking software are determined via this comparison. Other factors such as the ease of use of software and amount of time used to track cells are also taken into consideration when evaluating the software.


We generated a synthetic video consisting of a low intensity blob of changing shape, moving about a darker background. The SpotTracker failed to track the moving blob. Although it should have spotted the brightest spot first ( which is somewhere on the blob), it wrongly identifies point of coordinates (2,2) in pixels as being the brightest spot. We hypothesised that perhaps the blobs should not be of uniform intensity.
Bacteria motility characteristics such as run velocity, run duration, tumbling angle and tumbling duration will be generated by using algorithms applied to the trajectory data produced by the tracking software. The parameters will then be reconstructed using available[[IGEM:IMPERIAL/2008/Prototype/Drylab/Data_Analysis/Alt_Models| alternative models]].


--[[User:SxE00|SxE00]] 09:22, 27 August 2008 (EDT)'''same remark: images please!!!!! and captions of course'''
--[[User:SxE00|SxE00]] 09:22, 27 August 2008 (EDT)Justify your hypothesis
Using the measure command of ImageJ we have acquired the following properties for the background: mean intensity, standard deviation of intensity, skewness and kurtosis.Similarly the same properties were extracted for a set of cells taken randomly over different frames. Additionally, from the contour of the cells, we obtained the dimensions of the ellipses that would best fit each cell's shape. This data can be found HERE.
--[[User:SxE00|SxE00]] 09:22, 27 August 2008 (EDT) Create little picture to explain your demarch
--[[User:SxE00|SxE00]] 09:22, 27 August 2008 (EDT) Comment on the relevance of the properties you have computed
The second synthetic video had a noisy Gaussian distributed background. We centred the synthetic background intensity to the mean intensity of the background of the microscope video. The standard deviation of the synthetic background's intensity was made to be the same as that of the background from the microscope video. We attempted to accurately model one cell as seen from the microscope. We represented it by 2 concentric ellipses: the inner one of brighter intensity, the outer one of darker intensity. Furthermore the ellipses were made to change shape, so as to mimic the fact that the cells in the microscope video swim away from the focal plane.
--[[User:SxE00|SxE00]] 09:30, 27 August 2008 (EDT) '''Image please'''
In theory when the Spot Tracker algorithm is launched it should spot the brightest spot in the image sequence. In practice using our experimental data (microscope video) we notice that it does actually the brightest spot. The software will then track the spot along all the frames. However, using our synthetic data the software spots the ellipse (representing a cell) but fails to spot the brightest part of the ellipse. Instead it is spotting a random point of the ellipse.
--[[User:SxE00|SxE00]] 09:30, 27 August 2008 (EDT) '''Images please'''
--[[User:SxE00|SxE00]] 09:30, 27 August 2008 (EDT) What do you think your results mean?
==Approach==
The following figure describes our approach in validating the tracking software.
<center>[[Image:Validation_Approach.JPG|400px]]</center>
--[[User:SxE00|SxE00]] 09:31, 27 August 2008 (EDT)''' Explain what the various phases of the validation imply'''
Shouldn't this picture be at the top of the page????
==How does Spot Tracker work ?==
Spot Tracker was written specifically for the tracking of fluorescent markers in time lapse microscopy. We intend to use it to track swimming Bacillus Subtilis cells filmed using a wiedfield microscope. The software’s algorithm is optimised to track a single particle over a sequence of noisy images. The software performs both the detecting and tracking of the cell simultaneously. The method is inspired from techniques developed in contours extractions from very noisy ultra sound images. It is has been demonstrated to be very reliable, as it relies on all the frames in the image stack. However, it can only track one particle at a time. Should the images contain more than one particle, than these should be sufficiently distant from each other, so that they can each be individually tracked accurately.
The tracking algorithm is actually implemented in three steps:
*First, a sequence alignment algorithm  is executed so as to compensate for the movement of the structures under investigation. Basically, it is looking for a reference structure in all the images, and use it to determine all other structures. It can even accommodate for changing shape as long as their curve are within some parametric family  (e.g. circle, ellipse, or parametric snake).
*Secondly, the images are filtered so that the background noise is attenuated and the particles of interest are enhanced. The particles of interest should have Gaussian distributed intensities, as it is generally the case for fluorescent markers. More detail on the working of that filter can be found in the linked paper.
*Finally, once the images have been aligned and filtered, the actual tracking algorithm is executed. Note, that it can only track one particle at a time, having a limited displacement frame by frame. It will favor positions where the intensity is bright, or where the response to the spot-enhancing filter is strong. Because of this, it might give incorrect results if two particles come too close to each other.
*To account for the fact that the particle might be dim or even disappear in some parts of the sequence, it assumes the most probable position of the particle from the rest of the known positions. Additionally, the user can manually input nodes at the desired positions. The tracking algorithm recomputes the trajectory only on the segments adjacent to the new nodes so as it improve the speed of the process.
--[[User:SxE00|SxE00]] 09:36, 27 August 2008 (EDT)'''General Remark: it is a very dense paragraph - images would help to understand'''
--[[User:SxE00|SxE00]] 09:41, 27 August 2008 (EDT) '''I guess all sections below will be significantly changed and oved so I am not commenting on them'''
==Microscope Experimental Setup==
==Microscope Video Characteristics==
From our experience on the microscope, we observe the following:
-Bacteria are rod shaped. As the bacteria transverse across the plate, it may change shape and orientation.
- Due to tumbling in the z-direction, bacteria may go in and out of focus. This leads to change in light intensity
- Background noise is also present
* '''Video 1'''
Our first video.The cells are out of focus.
[[Image:Video1.tif|400px]]
Notice (see below) the presence of some noisy circular patterns. These patterns are found at fixed positions over all frames.
[[Image:Noise1.tif]]
Intensity properties for the background, cells and noisy circular patterns can be found below
[http://openwetware.org/wiki/Image:Background1.doc Background]
* '''Video 2'''
This video was recorded with higher contrast and with a better focus than for Video1. The video was shot at 12 fps for a duration of 1 min. The cells and their wall can clearly be seen over all frames.
[[Image:Video2.jpg|400px]]
Notice (see below) the presence of some noisy circular patterns. These patterns are found at fixed positions over all frames.
[[Image:Noisy patterns video 2.jpg]]
--[[User:SxE00|SxE00]] 09:37, 27 August 2008 (EDT)Shouldn't this section be at the start of the page since it backs your choice of synthetic data?????
==Behaviour of the tracking software with real data==
==Behaviour of the tracking software with synthetic data==
==Bacteria Motility==
Bacteria motility comprises of periods of "runs", referring to movement in a single direction at relatively constant velocity, and periods of "tumbles", where the bacteria changes its orientation and thus direction. During runs, the flagellum of the bacteria are bundled together and turn in an anti-clockwise direction, propelling the bacteria forward. Tumbling is caused when one or more flagellar flare up and break away from the bundle, turning in a clockwise direction. Runs usually last for ~1 seconds, while tumbles last for ~0.1 seconds.
The assumptions are used in generating synthetic motility data:
*Run velocity is Maxwell distributed.
*Tumbling Angle is Von Mises distributed.
*Run Duration and Tumbling Duration are Exponentially Distributed with parameter lamda of 1.0 and 10.0 respectively.
==Synthetic Video==
A synthetic video will be generated with MATLAB. A function is written to create the video. This function will call upon two other functions which return motility data and bacteria characteristic data which are used as inputs for the bacteria to be drawn on a plot.


{{Imperial/EndPage}}
{{Imperial/EndPage}}

Latest revision as of 13:02, 16 September 2008

<html> <style type="text/css"> .firstHeading {display: none;} </style> </html> <html> <style type="text/css">

   table.calendar          { margin:0; padding:2px; }

table.calendar td { margin:0; padding:1px; vertical-align:top; } table.month .heading td { padding:1px; background-color:#FFFFFF; text-align:center; font-size:120%; font-weight:bold; } table.month .dow td { text-align:center; font-size:110%; } table.month td.today { background-color:#3366FF } table.month td {

   border:2px;
   margin:0;
   padding:0pt 1.5pt;
   font-size:8pt;
   text-align:right;
   background-color:#FFFFFF;
   }
  1. bodyContent table.month a { background:none; padding:0 }

.day-active { font-weight:bold; } .day-empty { color:black; } </style> </html>

<html><script language="JavaScript">

var timeout = 250; var closetimer = 0; var ddmenuitem = 0;

// open hidden layer function mopen(id) { // cancel close timer mcancelclosetime(); // close old layer if(ddmenuitem) ddmenuitem.style.visibility = 'hidden'; // get new layer and show it ddmenuitem = document.getElementById(id); ddmenuitem.style.visibility = 'visible'; } // close showed layer function mclose() { if(ddmenuitem) ddmenuitem.style.visibility = 'hidden'; } // go close timer function mclosetime() { closetimer = window.setTimeout(mclose, timeout); } // cancel close timer function mcancelclosetime() { if(closetimer) { window.clearTimeout(closetimer); closetimer = null; } } // close layer when click-out //document.onclick = mclose; </script> <table background="http://i59.photobucket.com/albums/g305/Timpski/ToolbarBackground.png" style="color:#ffffff;" link="#ffffff" cellpadding="0" cellspacing="1" border="0" bordercolor="#ffffff" align="center" width="100%"><tr><td colspan="6" class="wetlab"><br><br><br></td></tr> <tr><td align="center" width="10%" valign="bottom"><ul id="sddm"><a href="http://openwetware.org/wiki/IGEM:IMPERIAL/2008/New/Home"> Home </a></ul> </td><td align="center" width="20%" valign="bottom"><ul id="sddm"><a href="#"

       onclick="mopen('m1')" 
       onmouseover="mopen('m1')" 
       onmouseout="mclosetime()">Biofabricator Subtilis</a>
       <div id="m1" 
           onmouseover="mcancelclosetime()" 
           onmouseout="mclosetime()">
       <a href="http://openwetware.org/wiki/IGEM:IMPERIAL/2008/New/Project">Project Specifications</a>
       <a href="http://openwetware.org/wiki/IGEM:IMPERIAL/2008/New/Chassis_1">Why B. subtilis?</a>
       <a href="http://openwetware.org/wiki/IGEM:IMPERIAL/2008/New/Chassis_2">B. subtilis: Benefits vs Challenges</a>
       </div></ul>

</td><td align="center" width="18%" valign="bottom"><ul id="sddm"><a href="#"

       onclick="mopen('m2')" 
       onmouseover="mopen('m2')" 
       onmouseout="mclosetime()">Wet Lab</a>
       <div id="m2" 
           onmouseover="mcancelclosetime()" 
           onmouseout="mclosetime()">
       <a href="http://openwetware.org/wiki/IGEM:IMPERIAL/2008/New/Wet_Lab">Wet Lab Hub</a>
       <a href="http://openwetware.org/wiki/IGEM:IMPERIAL/2008/New/Cloning_Strategy">Cloning Strategy</a>
       <a href="http://openwetware.org/wiki/IGEM:IMPERIAL/2008/New/Protocols">Experiments & Protocols</a>
       <a href="http://openwetware.org/wiki/IGEM:IMPERIAL/2008/New/Major_Results">Experimental Results</a>
       <a href="http://openwetware.org/wiki/IGEM:IMPERIAL/2008/New/BioBricks">BioBricks & Characterisation</a>
       </div></ul>

</td><td align="center" width="18%" valign="bottom"><ul id="sddm"><a href="#"

       onclick="mopen('m3')" 
       onmouseover="mopen('m3')" 
       onmouseout="mclosetime()">Dry Lab</a>
       <div id="m3" 
           onmouseover="mcancelclosetime()" 
           onmouseout="mclosetime()">
       <a href="http://openwetware.org/wiki/IGEM:IMPERIAL/2008/New/Dry_Lab">Dry Lab Hub</a>
       <a href="http://openwetware.org/wiki/IGEM:IMPERIAL/2008/New/Growth_Curve">Growth Curves</a>
       <a href="http://openwetware.org/wiki/IGEM:IMPERIAL/2008/New/Genetic_Circuit">Genetic Circuits</a>
       <a href="http://openwetware.org/wiki/IGEM:IMPERIAL/2008/New/Motility">Motility Analysis</a>
       <a href="http://openwetware.org/wiki/IGEM:IMPERIAL/2008/New/Appendices">Appendices - Code etc.</a>
       </div></ul>

</td><td align="center" width="17%" valign="bottom"><ul id="sddm"><a href="http://2008.igem.org/Team:Imperial_College/Notebook"> Notebook </a></ul> </td><td align="center" width="17%" valign="bottom"><ul id="sddm"><a href="http://openwetware.org/wiki/IGEM:IMPERIAL/2008/New/Team"> Our Team </a></ul> </td></tr></table></html>

<html><style type="text/css">

div.Section { font:11pt/16pt Calibri, Verdana, Arial, Geneva, sans-serif; background-image: url(http://openwetware.org/images/a/a0/Background.PNG); background-size: 100%; background-origin: content; }

/* Text (paragraphs) */ div.Section p { font:11pt/16pt Calibri, Verdana, Arial, Geneva, sans-serif; text-align:justify; margin-top:0px; margin-left:30px; margin-right:30px; }

/* Headings */ div.Section h1 { font:22pt Calibri, Verdana, Arial, Geneva, sans-serif; text-align:left; color:#3366FF; font-weight:bold; }

/* Subheadings */ div.Section h2 { font:18pt Calibri, Verdana, Arial, Geneva, sans-serif; color:#3366FF; margin-left:5px; font-weight:bold; }

/* Subsubheadings */ div.Section h3 { font:22pt Calibri, Verdana, Arial, sans-serif; color:#E5EBFF; margin-left:10px; font-weight:bold; }

/* Subsubsubheadings */ div.Section h4 { font:22pt Calibri, Verdana, Arial, sans-serif; color:#2B48B3; margin-left:10px; font-weight:bold; }

/* Subsubsubsubheadings */ div.Section h5 { font:12pt Calibri, Verdana, Arial, sans-serif; color:#3366FF; margin-left:20px; }

/* References */ div.Section h6 { font:12pt Calibri, Verdana, Arial, sans-serif; font-weight:bold; font-style:italic; color:#3366FF; margin-left:25px; }

/* Hyperlinks */ div.Section a { }

div.Section a:hover { }

/* Tables */ div.Section td { font:11pt/16pt Calibri, Verdana, Arial, Geneva, sans-serif; text-align:justify; vertical-align:top; padding:2px 4px 2px 4px; }

/* Lists */ div.Section li { font:11pt/16pt Calibri, Verdana, Arial, Geneva, sans-serif; text-align:left; margin-top:0px; margin-left:30px; margin-right:0px; }

/* TOC stuff */ table.toc { margin-left:10px; }

table.toc li { font: 11pt/16pt Calibri, Verdana, Arial, Geneva, sans-serif; text-align: justify; margin-top: 0px; margin-left:2px; margin-right:2px; }

/* [edit] links */ span.editsection { color:#BBBBBB; font-size:10pt; font-weight:normal; font-style:normal; vertical-align:bottom; }

span.editsection a { color:#BBBBBB; font-size:10pt; font-weight:normal; font-style:normal; vertical-align:bottom; }

span.editsection a:hover { color:#3366FF; font-size:10pt; font-weight:normal; font-style:normal; vertical-align:bottom; }

/* Drop-down Menu */

  1. sddm {

margin: 0; padding: 0; z-index: 30 margin: 0; padding: 0; float: center; font: bold 12pt Calibri, Verdana, Arial, Geneva, sans-serif; border: 0px; list-style: none; }

  1. sddm a {

display: block; margin: 0px 0px 0px 0px; padding: 0 0 12px 0; color: #FFFFFF; text-align: center; text-decoration: none; }

  1. sddm a:hover {

border: 0px }

  1. sddm div {

position: absolute; visibility: hidden; margin: 0; padding: 0; background: #66aadd; border: 1px solid #66aadd } #sddm div a { position: relative; left: 0; display: block; margin: 0; padding: 5px 10px; width: auto; white-space: nowrap; text-align: left; text-decoration: none; background: #FFFFFF; color: #2875DE; font: 11pt Calibri, Verdana, Arial, Geneva, sans-serif } #sddm div a:hover { background: #66aadd; color: #FFFFFF } </style></html>

Software Validation

In order to validate our choice of open-source tracking software, a synthetic video based on synthetic data was created. This video was then fed into the software for cell tracking, afterwhich data analysis to obtain bacteria motility characteristics was carried out. The data output was then compared with the synthetic data generated so as to ensure the effectiveness and integrity of the tracking software. The following figure describes our approach in validating the tracking software.


Generating Bacteria Characteristics

Bacteria light intensity or color, shape, size and orientation are being generated in a single m-file. A function leading to the generation of these parameters is then called by the main function which generates synthetic video.

Generating Bacteria Trajectory

Distributions of bacteria run velocity, run duration, tumbling angle and tumbling duration were generated using alternative models with arbitrary parameters assumed. Frame-by-frame coordinates are then returned to the main function, allowing the trajectory of bacteria to be plotted.

Generating Synthetic Video

A synthetic video of user defined number of bacteria was created using MATLAB. The function calls motility data and bacteria characteristic generating functions, and with these, it plots the trajectory of "motile" bacteria. The background image on which the video is generated also changes with time, introducing an element of noise.

Tracking Software

The tracking software used will receive the generated synthetic video as an input, and commence cell tracking on a frame-by-frame basis. Bacteria trajectory will then be produced as the data output.

Validation and Evaluation

Bacteria trajectory data in terms of coordinates are analysed and compared with synthetic data. The errors associated with the resective tracking software are determined via this comparison. Other factors such as the ease of use of software and amount of time used to track cells are also taken into consideration when evaluating the software.

Bacteria motility characteristics such as run velocity, run duration, tumbling angle and tumbling duration will be generated by using algorithms applied to the trajectory data produced by the tracking software. The parameters will then be reconstructed using available alternative models.



<html><center><table style="color:#ffffff;background-color:#66aadd;" cellpadding="3" cellspacing="1" border="0" bordercolor="#ffffff" align="center"> <tr><td><ul id="sddm"></html>[[IGEM:IMPERIAL/2008/New/{{{1}}}|< Previous]]<html></ul> </td><td><ul id="sddm"><a href="#">Back to top</a></ul> </td><td><ul id="sddm"></html>[[IGEM:IMPERIAL/2008/New/{{{2}}}|Next >]]<html></ul> </td></tr></table> </center></html>