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

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


=Software Validation=
= 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.
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.
Line 21: Line 21:


;[[IGEM:IMPERIAL/2008/Prototype/Drylab/Data_Analysis/Track_Analysis|Validation and Evaluation]]
;[[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. 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]].
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.
 
--[[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'''
 
==Synthetic Video Characteristics==
 
All the videos were generated using Matlab. All the positions of the cells for each frame are know.
 
*'''Synthetic Video 1'''
 
This video consists of a simple ellipse moving about a noisy background
 
[[Image:Video_synth1.tif]]
 
 
 
==Behaviour of the tracking software with real data==
 
*'''Analysis of Video1'''
 
The Spot Tracker software plug-in behaves as expected. It automatically detects the most likely candidate to be a particle. That is the particle having a Gaussian like intensity distribution with the highest peak. Although the video contains more than one likely candidate, the particle having the greatest intensity is selected. It is then tracked over all frames. In this video, the cells or the static circular patterns are suitable candidates. The cells having a greater intensity than the noisy circular patterns, they end up being selected by the software as the particles to be tracked. Only one cell is tracked, i.e. the one with the higher intensity. Note that when the tracked cell comes close to other cells, the software fails to determine its correct track. Similarly when the cell disappears out of the focal plane, the tracking fails.
 
Although the tracking seems quite satisfactory, the images being of poor quality, the generated trajectories will be very unreliable.
 
*'''Analysis of Video2'''
 
 
Again the tracking software behaves as expected. Despite the video being of greater quality than video1, the software fails to detect and track any of the cells. Instead it spots and tracks the static noisy spots that cover all of the images. It track these because they are very bright spot having a Gaussian like distribution. We must get ride of these spots. However, if we manage to do so, the software would be able to track a point from the cell's membrane, as the membrane is brighter than the inside of the cell. Then again the software won't be tracking the same spot over all the frames, it will always be tracking the brightest point amongst all the pixels of the membrane. There will always be an inherent error in the cell's position, as the intensity distribution of the cell's membrane will vary over the frames. Even, if say the inside of the cell was brighter than the cell's wall, the intensity distribution of the inside of the cell would still vary over all frames, reciprocally causing incorrect variations in the cell's position.
 
 
Without editing the images, there is no way that Spot Tracker can track the cells. We applied a threshold on the images so that only the cells appear in white over a black background. We obtain a binary image, with cells appearing in white and the background being black (see image on left). The static circular patterns no longer appear on the binary images. However, Spot Tracker cannot track the cells in these image settings. Gaussian noise of a given standard deviation was added to the binary image (see image in middle). In the unprocessed images the noise characteristics of the cells and the background were different, however in the processed images the same Gaussian noise is applied to the cells and the background. Using the Spot Enhancing filter in the Spot Tracker software we obtain a more suitable image sequence for the Spot Tracker plug-in (see image on right hand side). The images being noisy, the tracking software is able to peak up and track the cells. However, there is still an inherent off-set in the position of the cell, because of how the tracking software works, i.e. tracking the brightest spot frame by frame.
 
[[Image:Binary.tif|300px]][[Image:Noisy_binary.tif|300px]][[Image:Enhanced_noise.jpg|300px]]
 
 
What we need to know is how much precision do we gain or loose by increasing or decreasing the noise ? How big is the variation in the trajectory generated by Spot Tracker and the real trajectory. Using the synthetic data we've generated, we could track the cells over simple paths using Spot Tracker and track them manually over a few frames (the manual tracking would be our reference tracking). We could then compare the results, a use them as the basis for determining the inherent off-set in the cell's position when Spot Tracker is tracking the real cells. 
 
Alternatively, we could tag the cells with fluorescent markers. This might resolve the issue of the spread in intensity of the cell.
 
Which ever method we use, we would still have to deal with the frequent problem of the tracking going wrong when the tracked cell is too close to other cells. This can be remediated manually by inputting the cell's position at the frames where the software fails to track the cell.
 
*'''Conclusion'''
 
In conclusion, Spot Tracker will definitely not give us the accurate results we are hopping to get. We can however do our best to obtain the most accurate positions by estimating the errors that the software will make.  
 
It might be a good idea to opt for an alternative tracking software. One having better segmentation algorithm than Spot Tracker. A suitable candidate would be Volocity Quantitation ( not open source, not free).
 
==Behaviour of the tracking software with synthetic data==
 
*'''Analysis of Synthetic Video1'''
 
The ellipse representing a cell in this very idealised video was tracked using Spot Tracker, Manual Tracking and Particle Tracker plug-ins. The detailed analysis of the tracking outcome can be found in the following file:


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]].




{{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>