/neuritetracker

Software for high throughput detection and tracking of migrating neurons and neurites in live cell imaging

Primary LanguageCOtherNOASSERTION

High throughput detection & tracking of neurons in live cell imaging

Neuritetracker is software for high throughput detection, tracking, and segmentation of neurons or neuronal-like cells in live cell imaging. It analyzes image sequences, and stores results as movies and CSV files. It can be run with a GUI interface for single sequences, or using a Matlab script for batch processing.

Installation

To install neuritetracker on your machine follow these steps:

  1. Obtain a licensed copy of Matlab with a C/C++ compiler (or download a trial version).
  2. Clone the neuritetracker repository using the following command line git clone git@github.com:sgbasel/neuritetracker.git or download a zip file of the repository. Unzip the archive file if you downloaded a .zip file.

Running neuritetracker GUI on a single sequence

  1. Open Matlab and run the neuritetracker_gui function located in the neuritetracker/trunk/ folder. This will open the GUI interface for neuritetracker.
  2. Select a folder containing your source images for the nucleus channel (1 in the diagram).
  3. Select a folder containing your source images for the cell body channel (2 in the diagram).
  4. Select a destination folder where you would like the output to be saved (3 in the diagram).
  5. Provide a UniqueID string which will uniquely identify the data (4 in the diagram).
  6. Select the output options you prefer (5 in the diagram).
  7. Press the Run Neuritetracker button (6 in the diagram).

GUI interface

Running neuritetracker on a batch of sequences

The GUI interface does not support batch processing of sequences. To run on a batch of sequences, it is necessary to prepare a batch script and run it from the command prompt. Use the following steps:

  1. Open Matlab and navigate to the neuritetracker/trunk/ folder.
  2. Modify output settings in settings.ini to fit your preferences.
  3. Modify the script example_batch_script.m to fit your needs. Change the sourceFolders variable to point to the root location of your data. Modify the SourceNuc and SourceBody strings to reflect your data. Modify the parameters.UniqueID variable to uniquely identify each sequence.
  4. Save your changes and run the modified example_batch_script.m at the command line.

Troubleshooting

If you encounter an error or have trouble running neuritetracker refer to the following troubleshooting steps

  • Neuritetracker comes with compiled libraries for Windows, Mac OS and Linux. In some cases it might be necessary to compile them on your computer. Open Matlab in the neuritetracker/trunk/ folder and run the setup utility from the matlab command prompt neuritetracker_setup. This will set up the Vlfeat library and compile the Geodesics functions.
  • In order to compile MEX files for Matlab, you need have a compiler installed on your machine and configure Matlab to use it. To see if Matlab recognizes an installed compiler on your computer, type mex -setup at the prompt.
  • To install a compiler for Windows, refer to the Mathworks website for a list of supported compilers for your version of Matlab. Microsoft Windows SDK is a freely available option which works for Windows 7. You can use these instructions from Mathworks to install it. You might also need to install Microsoft Visual Studio C++ 2010 SP1. If you have trouble installing, try the fix suggested here.

Summary of the method

Details of the method are described in the article

  1. L. Fusco, R. Lefort, K. Smith, F. Benmansour, G. Gonzalez, C. Barillari, B. Rinn, F. Fleuret, P. Fua, O. Pertz, Computer vision profiling of neurite outgrowth dynamics reveals spatio-temporal modularity of Rho GTPase signaling, Journal of Cell Biology, under review

The image processing is divided into 9 steps, summarized in the figure. A brief description of each step is provided below.

Image processing pipeline

  1. Segmentation of the nucleus using Maximally Stable Extremal Regions (MSER).
  2. Soma region growing using a fast marching method on geodesic intensity distance to the nucleus.
  3. Cell tracking using a greedy graph-based optimization.
  4. Cell filtering and identification of robust tracks.
  5. Apply Hessian-based filter to get high responses to tubular neurite-like structures
  6. Use this to model the likelihood each pixel belongs to neuron (sigmoid fitting on geodesic distance from soma)
  7. Set a likelihood threshold to obtain cell bodies
  8. Identify candidate neurite terminals (extreme points), use backtracing & minimal spanning trees to reconstruct the neurites
  9. Store the reconstructed neurite model in a HDS graph representation

Contents of the repository

The code has been organised into folders according to the various functions of the code. They are organized in the neuritetracker folder according to the list below followed by a short description.

  • trunk
  • CellsDetection - code to detect neuron cells in static images
  • Common - code shared in several routines
  • FeaturesExtraction - code to extract & organize features describing the cells
  • frangi-filter-version2a - code for the Hessian-based filter to detect neurite-like structures
  • gaimc - 3rd party software with useful graph manipulation functions
  • Geodesics - code to efficiently compute geodesic distances
  • GreedyTracking - code to perform tracking on a graph formed from object detections
  • IO - code for file input/output
  • NeuritesDetection - code for detecting neurites
  • NeuritesTracking - code for tracking the neurites
  • TestData - sample image sequences to test the algorithm
  • vlfeat-0.9.18 - 3rd party code for MSER calculation from the vlfeat library (version 0.9.18)

The neuritetracker/trunk/ folder also contains several files, described below.

  • neuritetracker_setup.m - a setup script. Run it once to compile necessary files.
  • neuritetracker_gui.m - a graphical user interface used to run neuritetracker
  • neuritetracker_cmd.m - the main command-line function to run neuritetracker
  • settings.ini - contains default parameters and configurations for neuritetracker
  • neuritetracker_gui.fig - matlab gui figure file

Dependencies

Neuritetracker makes use of the following 3rd party software. These software packages are included in the neuritetracker repository.

  1. The vlfeat library available at http://www.vlfeat.org/download/vlfeat-0.9.20-bin.tar.gz
  2. The Graph Algorithms in Matlab Code (gaimc) available on github at https://github.com/dgleich/gaimc