short URL

From Fiji

Jump to: navigation, search
TrackMate_ (Fiji)
Author Nick Perry, Jean-Yves Tinevez, Johannes Schindelin
Maintainer Jean-Yves Tinevez
Source on gitweb
Initial release 10/05/2012
Development status v2.0.0, active
Category Segmentation, Tracking



TrackMate is your buddy for your everyday tracking .


The first 2 hours of a C.elegans embryo development, followed in 3D over time using TrackMate (strain: AZ212)

A detail of the corresponding unannotated lineage visualized in TrackScheme. The full lineage of this one hour of imaging is there.

TrackMate can be set to detect and deal with gap-closing events, splitting events and merging events.

TrackMate can also be used for basic track analysis. Here is plotted the estimated diameter of a C.elegans cell as it divides over time.

A movie following one cell of a C.elegans embryo tracked over 3 hours, as it divides. The track follows the lineage from cell AB to ABaraapap.

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, estimated morphology and orientation for each spot, allowing to follow how these feature evolves over time for one object.

TrackMate goals

Its development focuses on achieving two concomitant goals:

For users

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.

For developers

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:

  • segmentation algorithms
  • particle-linking algorithms
  • numerical features for spots (such as mean intensity, 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

For users

For developers

Extending TrackMate is not completely trivial. However, it should be of no difficulty for an average Java developer. Rather than sending you to the API, we propose you some tutorials using dummy examples.

TrackMate components

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 facilities provided by the Commons-Math Apache library and 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 her work on robust LAP tracker, following her seminal paper published in the Danuser group[1].

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.

Version history

Bug fixes are not mentioned here, and do not get their own release number.

  • 10/05/2012 - v.10: Initial release
  • 22/05/2012 - v1.1:
    • TrachScheme can change of display style.
    • De-activated folding branches in TrackScheme, as it was non-functional.
    • Fix bugs when loading invisible tracks.
  • 13/06/2012 - v1.2:
    • Far better memory management and speed improvement in LAP trackers when dealing with gap-closing only.
    • Renamed the "Fast LAP tracker" and "Simple Fast LAP tracker" to "LAP tracker" and "Simple LAP tracker". Also removed the old "LAP tracker" and "Simple LAP tracker". They give the same results, but are just way slower.
    • Replaced the ISBI challenge exporter by a simple track exporter.
    • New action: capture the spot images along a track.
  • 25/02/2013 - v2.0.0: Major update:
    • TrackMate now uses ImgLib2 internally, and is therefore ready to be moved to ImageJ2.
    • TrackMate now computes edge features (on top of spot and track features). These features enable the immediate measure of velocity, displacement, etc...
    • Tracks can be colored in the Hyperstack displayer, in the 3D viewer and in TrackScheme using indifferently track or edge features.
    • All spot, edge and track features are computed automatically and kept in sync even versus manual modifications.
    • All spot, edge and track features are saved in the XML file.
    • All spot, edge and track features can be exported as ImageJ results tables. Then they can be exported to text files, readable by let's say Excel. (Please note that the authors of the plugin do not deem Excel as a proper solution for scientific analysis and recommend more professional solutions.)
    • All spot, edge and track features can be plotted as specialized graphs, thanks to a dedicated GUI panel.
    • Tracks can be named in TrackScheme. These names are used to sort alphanumerically the tracks as they are laid out. To change the name of a track, just double-click its current name in the TrackScheme view.
    • We use semantic versioning for release numbers from now on. The rules about backward incompatible changes - described below - required a major version change. However, we reserve the right to make a major number change only when there is backward incompatible changes to the user only. API changes might not trigger a major version change.
    • The XML file format changed and is therefore not compatible anymore between major versions. However, XML files generated with the previous version (v1.2) can be imported in v2.0.0. and are converted on the fly.
    • In linear-assignment-problem trackers (LAP tracker and simple LAP tracker), the time interval to bridge gaps is specified in frame interval instead of time interval.
    • In LAP trackers, detection of split and merge events are constrained to two consecutive frames.
    • The spot morphology analyzer is disabled.
    • Removed the spot intensity kurtosis, skewness and variance features.
    • Much better memory management in LAP tracker: Tracking on large number of spots will consume much less memory if tracks are not branching.
    • Speed up considerably the loading of large xml files.
    • Better GUI refreshing when performing heavy calculations.
    • All major operations are now multi-threaded, notably computing spot, edge and track features.
    • Track layout in TrackScheme is now deterministic: when branching, branches are sorted left to right using the name of the first spot in the branches.
    • Spots added manually are added in TrackScheme live in a dedicated column, to facilitate manual tracking.
    • In TrackScheme, added menu items to select tracks downward or upward in time from current selection.
    • In TrackScheme, the selection table can be exported as an ImageJ results table.
    • Better track layout in TrackScheme for tree-like structures.
    • Improved the performance of several track analyzers.
    • Full keyboard navigation.
    • The filter panels that appear in the GUI can have their threshold entered by keyboard: Set the focus to the histogram panel (press tab until the threshold value is displayed in dark red instead of orange, or click the panel), and type a number - possibly decimal, wait 1 s. You can also use the arrow keys to change it by 10% (left/right) or set it to a max or min value (up/down).
    • Fix a nasty and dangerous bug in LoG detector: We were not converting the filter sigma to pixel coordinates, yielding different filter strengths depending on the spatial calibration entered, even if the user-specified radius was the same. This generated a weirdness in spot coordinates that Alison Twelvetrees noted.
    • Fix the bug that caused the GUI to often hang after the initial filtering step.
    • Fix a bug when rendering tracks in the 3D viewer: the filtered-out tracks were displayed anyway. Noticed by David Mason.
    • Fix a bug causing TrackScheme and XML files to sometimes receive empty tracks.
    • Numerous minor bugfixes.

  1. Jaqaman et al. Robust single-particle tracking in live-cell time-lapse sequences. Nat Methods (2008) vol. 5 (8) pp. 695-702