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:
- Obtain a licensed copy of Matlab with a C/C++ compiler (or download a trial version).
- 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
- Open Matlab and run the
neuritetracker_gui
function located in theneuritetracker/trunk/
folder. This will open the GUI interface for neuritetracker. - Select a folder containing your source images for the nucleus channel (1 in the diagram).
- Select a folder containing your source images for the cell body channel (2 in the diagram).
- Select a destination folder where you would like the output to be saved (3 in the diagram).
- Provide a UniqueID string which will uniquely identify the data (4 in the diagram).
- Select the output options you prefer (5 in the diagram).
- Press the Run Neuritetracker button (6 in the diagram).
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:
- Open Matlab and navigate to the
neuritetracker/trunk/
folder. - Modify output settings in
settings.ini
to fit your preferences. - Modify the script
example_batch_script.m
to fit your needs. Change thesourceFolders
variable to point to the root location of your data. Modify theSourceNuc
andSourceBody
strings to reflect your data. Modify theparameters.UniqueID
variable to uniquely identify each sequence. - 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 promptneuritetracker_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
- 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.
- Segmentation of the nucleus using Maximally Stable Extremal Regions (MSER).
- Soma region growing using a fast marching method on geodesic intensity distance to the nucleus.
- Cell tracking using a greedy graph-based optimization.
- Cell filtering and identification of robust tracks.
- Apply Hessian-based filter to get high responses to tubular neurite-like structures
- Use this to model the likelihood each pixel belongs to neuron (sigmoid fitting on geodesic distance from soma)
- Set a likelihood threshold to obtain cell bodies
- Identify candidate neurite terminals (extreme points), use backtracing & minimal spanning trees to reconstruct the neurites
- 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 neuritetrackerneuritetracker_cmd.m
- the main command-line function to run neuritetrackersettings.ini
- contains default parameters and configurations for neuritetrackerneuritetracker_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.
- The vlfeat library available at http://www.vlfeat.org/download/vlfeat-0.9.20-bin.tar.gz
- The Graph Algorithms in Matlab Code (gaimc) available on github at https://github.com/dgleich/gaimc