|Author||Nick Perry, Jean-Yves Tinevez, Johannes Schindelin|
|Development status||v3.1.0, stable|
TrackMate is your buddy for your everyday tracking .
Single Particle Tracking
TrackMate provides the tools to perform single particle tracking (SPT). SPT is an image analysis challenge where the goal is to segment and follow over time some labelled, spot-like structures. Each spot is segmented in multiple frames and its trajectory is reconstructed by assigning it an identity over these frames, in the shape of a track. These tracks can then be either visualized or yield further analysis results such as velocity, total displacement, diffusion characteristics, division events, etc...
TrackMate can deal with single particles, or spot-like objects. They are bright objects over a dark background for which the object contour shape is not important, but for which the main information can be extracted from the X,Y,Z coordinates over time. Examples include sub-resolution fluorescent spots, labelled traffic vesicles, nuclei or cells imaged at low resolution.
Though these objects are solely represented by a X,Y,Z,T coordinates array, TrackMate can compute numerical features for each spot, given its coordinates and a radius. For instance, the mean, max, min and median intensity will be computed, as well as the estimated radius and orientation for each spot, allowing to follow how these feature evolves over time for one object.
Its development focuses on achieving two concomitant goals:
TrackMate aims at offering a generic solution that works out of the box, through a simple and sensible user interface.
The tracking process is divided in a series of steps, through which you will be guided thanks to a wizard-like GUI. It privileges tracking schemes where the segmentation step is decoupled from the particle-linking step.
The segmentation / filtering / particle-linking processes and results are visualized immediately in 2D or 3D, allowing to judge their efficiency and adjust their control parameters. The visualization tools are the one shipped with Fiji and interact nicely with others plugin.
Several automated segmentation and linking algorithms are provided. But you are also offered to edit the results manually, or even to completely skip the automatic steps, and perform fully manual segmentation and/or linking.
Some tools for track and spot analysis are included. Various plots can be made directly from the plugin and for instance used to derive numerical results from the tracks. If they are not enough, functions are provided to export the whole results to other analysis software such as MATLAB.
TrackMate relies on several different libraries and plugins for data manipulation, analysis and visualization. This can be a pitfall when distributing a complex plugin, but this is where the Fiji magic comes into play. All dependencies are dealt with by through the Fiji updater. Installing TrackMate is easy as calling the Fiji Updater, and the plugin must work out of the box. If this does not work for you, then it is a bug and we commit to fix it.
A strong emphasis is made on performance, and TrackMate will take advantage of multi-cores hardware.
Have you ever wanted to develop your own segmentation and/or particle-linking algorithm, but wanted to avoid the painful burden to also write a GUI, several visualization tools, analysis tools and exporting facilities? Then TrackMate is for you.
We spent a considerable amount of time making TrackMate extensible in every aspect. It has a very modular design, that makes it easy to extend. You can for instance develop your own segmentation algorithm, extend TrackMate to include it, and benefit from the visualization tools and the GUI already there. Here is a list of the components you can extend and customize:
- detection algorithms
- particle-linking algorithms
- numerical features for spots (such as mean intensity, etc..)
- numerical features for links (such as velocity, orientation, etc..)
- numerical features for tracks (total displacement, length, etc...)
- visualization tools
- post-processing actions (exporting, data massaging, etc...)
You can even modify the GUI, and remove, edit or insert new steps in the wizard. This can be useful for instance if you want to implement a tracking scheme that solves simultaneously the segmentation part and the particle linking part, but still want to take advantage of TrackMate components.
Do you want to make your new algorithms usable by the reviewers of your submitted paper? Upload your extended version of TrackMate to a private update site, as explained here, then send the link to the reviewers. Now that the paper has been accepted (congratulations), you want to make it accessible to anyone? Just put the link to the update site in the article. All of this can happen without us even noticing.
TrackMate was developed to serve as a tool for Life-Science image analysis community, so that new tracking tools can be developed more easily and quickly, and so that end-users can use them to perform their own research. We will support you if need help to reuse it.
Documentation and tutorials
- Getting started with TrackMate is a basic tutorial that explains how TrackMate works on an easy image. You should start here.
- TrackScheme: the tool for the visualization, editing and analysis of tracks.
- Manual tracking with TrackMate
- Manual editing of tracks using TrackMate shows how to manually curate and edit tracking results.
- Track analysis using TrackMate
- TrackMate Algorithms details and documents the automated segmentation algorithms, particle-linking algorithms, etc.. currently implemented in TrackMate.
- Using TrackMate with MATLAB documents the MATLAB functions shipped with Fiji that allows importing data generated with TrackMate into MATLAB.
- TrackMate Performance reports various measures of the performance of its components. Performance reports include execution time and memory usage.
- TrackMate Accuracy reports various measures of the accuracy of its components. Accuracy reports how well TrackMate can generate scientifically correct results, and compare its output to known ground truth.
- Scripting TrackMate shows how to do tracking using a scripting language, e.g. from the Fiji Script Editor. These example scripts will show you how to use TrackMate as a library and familiarize yourself with the API.
- Using TrackMate from MATLAB shows how to use MATLAB as a scripting language for TrackMate, and benefit from MATLAB facilities.
But the really interesting part for developers is the ability to extend TrackMate.
Do you have a tracking or a detection algorithm you want to implement? Of course you can write a whole software from scratch. But at some point you will have to design a model to hold the data, to write code that can load and save the results, visualize them, have even a minimalistic GUI, and allow to manually correct the outcome of your algorithm. This can be long, tedious and boring, while the part that interests you is just the core algorithm.
We propose you to use TrackMate as a home for your algorithm. The framework is already there; it might not be perfect but can get your algorithm integrated very quickly. And then you can benefit from the other modules.
The subject of extending TrackMate is not completely trivial. However, recent advances in the SciJava package, brewed by the Fiji and ImageJ2 teams considerably simplified the task. It should be of no difficulty for an average Java developer.
The following tutorials show how to integrate a module of each kind in TrackMate. They are listed by increasing complexity, and it is a good idea to practice them in this order.
- How to write your own edge feature analyzer algorithm for TrackMate
- How to write your own track feature analyzer algorithm for TrackMate
- How to write your own spot feature analyzer algorithm for TrackMate
- How to write your own viewer for TrackMate
- How to write custom actions for TrackMate
- How to write your own detection algorithm for TrackMate
- How to write your own particle-linking algorithm for TrackMate
TrackMate LoG detector will crash if you have the Mosaic suite update site activated. Apparently they ship something that interferes with the FFT code used by the LoG detector. The bug report can be read on BugZilla.
Who uses TrackMate
We don't know in all honesty, since we did not write a paper specifically for TrackMate. People might use it and cite the Fiji paper, which is fine. A crude search on Google yields this:
- Chen et al. The bacterial carbon-fixing organelle is formed by shell envelopment of preassembled cargo. PLoS ONE (2013) vol. 8 (9) pp. e76127
- Phang et al. POPX2 phosphatase regulates the KIF3 kinesin motor complex. J Cell Sci (2013) pp.
- The influence of dynein processivity control, MAPs, and microtubule ends on directional movement of a localising mRNA. Harish Chandra Soundararajan, Simon L Bullock eLife. 2014; 3: e01596.
- Rabies Virus Hijacks and Accelerates the p75NTR Retrograde Axonal Transport Machinery. Shani Gluska, Eitan Erez Zahavi, Michael Chein, Tal Gradus, Anja Bauer, Stefan Finke, Eran Perlson. 2014
- Homeostatic actin cytoskeleton networks are regulated by assembly factor competition for monomers. Burke TA, Christensen JR, Barone E, Suarez C, Sirotkin V, Kovar DR. Curr Biol. 2014 Mar 3;24(5):579-85. doi:
TrackMate actually depends on many other Fiji plugins or libraries. The Fiji Build System system and the Fiji Updater ensures that these dependencies will not bother you. We list them here, with their author when they are not obviously linked:
- ImgLib2 is used everywhere we need dealing with pixels. Relying on imglib made it trivial to have a plugin that deals indifferently with 2D or 3D images. In particular, we use code from Stephan Preibisch, Stephan Saalfeld, Larry Lindsey and Lee Kamentsky.
- ImageJA is of course the entry point for the plugin. We use it display the images as 2D slices and in the HyperStack displayer.
- The 3D Viewer is used for 3D display.
- Internally, the tracks are represented by a mathematical graph. To manipulate it, we take advantage of the excellent JGraphT library.
- TrackScheme, the TrackMate component that is used to visualize and edit tracks uses JGraphX for its UI.
- To display plots and histograms we use JFreeChart.
- Some algorithm in TrackMate rely on the JAMA matrix package.
- Exporting visualizations and analysis results to SVG, PDF and other formats are made through the Batik and iText libraries.
- The TrackMate file format is plain XML, and is generated or loaded using the JDom library.
- For the icons, as almost every ImageJ plugin with a GUI, we used the silk icon set, by Mark James.
We are extremely thankful for the support of Khuloud Jaqaman while we were implementing in Java a stripped down version of her work on robust LAP tracker, following her seminal paper published in the Danuser group.
JYT acknowledges funding from the European commission FP7 ICT (project “MEMI”) at the beginning of this project. NP was a visiting student thanks to funds provisioned by the Stanford University. JS acknowledges funding from the Laboratory for Optical and Computational Instrumentation at the UW-Madison and National Science Foundation award #1121998.
- Jaqaman et al. Robust single-particle tracking in live-cell time-lapse sequences. Nat Methods (2008) vol. 5 (8) pp. 695-702