Page history Edit this page How do I edit this website?
This page describes content relating to the Fiji distribution of ImageJ. Click the logo for details.

TrackMate Analyzers

“Features” are numerical values calculated for individual TrackMate objects, such as spots, edges (the individual links between two spots) or tracks. They are scalar and real. They are used for track analysis beyond TrackMate, and in TrackMate they can be used to filter out spurious objects. Analyzers are the TrackMate modules that produce these numerical values. They are of 3 types, depending on whether they operate on spots, edges or tracks.

This page points to the documentation to the currently available TrackMate analyzers.

Spot analyzers

Spot features, such as ‘Max intensity’, ‘Contrast’, etc., are calculated for all spots just after the initial filtering step. They are then used to select spots, based on filters set to retain only spots with a given feature below or above a specified threshold. By the way initial filtering is a good way to limit spot feature calculation time on spots you know to be spurious. With the current features, this not such a reason to do it: most feature analyzer are cheap computationally.

Spot contour and morphological features

With TrackMate version 7, we could have spots that have a contour in 2D. When possible the contour is used to compute feature values For instance, the mean intensity is computed for all pixels inside the spot contour when there is one. When there is not contour for a spot, the mean intensity is computed iterating over the pixels within the spot radius (in a circle in 2D and a sphere in 3D).

The spot contour also enables to add new feature analyzer that measure the spot shape. These morphological analyzers are documented in the page dedicated to the detectors.

Mean, Median, Min, Max, Total intensity and its Standard Deviation

The plain statistical estimates are simply calculated from all the values for pixels within the physical radius from the spot center. One feature value is generated for each of them for each channel of the source image. When a contour is available for the spot, it is used to compute the intensity.

SpotIntensityMultiCAnalyzer code on github

Contrast & Signal/Noise ratio

This contrast followed Michelson contrast#Formula definition:

\[\text{C} = \frac{I_\text{in} - I_\text{out}}{I_\text{in} + I_\text{out} }\]

where \(I_\text{in}\) is the mean intensity inside the spot volume (using the physical radius), and \(I_\text{out}\) is the mean intensity in a ring ranging from its radius to twice its radius.

The spots SNR is computed as

\[\frac{I_\text{in} - I_\text{out}}{\text{std}_\text{in}}\]

where \(\text{std}_\text{in}\) is the standard deviation computed within the spot.

When a contour is avaible for this spot, it is used to compute the intensities. These two values depend greatly on the correctness of the radius or contour of each spot. Negative values might be caused by incorrect radius.

SpotContrastAndSNRAnalyzer code on github

Edge analyzers

Track analyzers

Track features are generated by the track analyzers documented in this section. Of course such features are only available after the tracking step, and just before the track filtering step. Since in TrackMate a track must have at least two spots, it is not possible to define track features for a track that would contain a single spot.


Like for all features values and everywhere in TrackMate, the units of the features are physical units, given by the image calibration.

So if your image as microns as physical units for the pixel size, and seconds as units of the frame interval, any velocity reported by TrackMate computed on this image will be in units of microns/s.

Track branching analyzer

This analyzer focuses on the structure of tracks. It yields the following feature, that are all unitless.

TrackBranchingAnalyzer code on github

Number of spots in track

Simply the number of spots that can be found in the tracks, regardless of branching, gaps, etc.

Number of gaps

The number of gap. A gap is a link between two spots that span more than one frame. In tracking it would correspond to bridging over a missed detection.

Longest gap

The size of the longest gap. That is: the number of frames that are skipped over by the longest gap in the track. For instance, a gap between a spot in frame 2 and a spot in frame 4 would generate a gap of size 1 (the frame 3).

Number of split events

The number of split events in a track. A split event is when a track divides in at least two branches, forward in time. For instance, a spot links to one spot in a previous frame and two spots in the next frame. This corresponds to e.g. cell division.

Number of merge event

This is the opposed event: a spot would merge at least two branches, and would link to one spot in the next frame and at least two spots in the previous frame. This corresponds to object fusion.

Complex points

Complex events are the rest: When a spot link to more than one spot in the previous frame and more than one spot in the next frame.

Track duration analyzer

This feature analyzer focuses on the track “location” in time and it’s displacement.

TrackDurationAnalyzer code on github

Duration of track

Measure the time in physical units (seconds, etc.) between the first spot of the track in time, and the last spot of the track in time.

Track start

Measure at what time (in physical units) the first spot of the track occurs.

Track stop

Same thing for the last spot of the track in time.

Track displacement

Measure the distance (still in physical units) between the last spot of the track and the first spot of the track in time.

Careful: This is different from the track excursion. The value reported here simply measure the length of a straight line that extends between the first spot to the last spot. If the track makes a gigantic excursion but comes back exactly at its starting point, the track displacement will still be 0.

Track index

This analyzer simply assign an integer number to tracks. It can be the track ID or the track index.

TrackIndexAnalyzer code on github

Track index

The track index is simply an integer number that goes from 0 to the number of tracks minus one, over all the tracks visible or not.

Track ID

The track ID is an integer number that does not necessarily start from 0. It is used internally to identify uniquely a track in a TrackMate session. The absolute value of the track ID is meaningless.

Track location

This analyzer yields feature values about the spatial location of tracks. This location is in physical units, and is defined by taking the mean of the location of spots that compose the track.

TrackLocationAnalyzer code on github

X, Y and Z Location (mean)

The mean of the X, Y and Z position of all the spots in the track.

Track Velocity

Feature values related to velocity. Normally velocity values given by this analyzer are calculated using the link speed. The link speed (or velocity) is defined for a single link between two spots (distance between the two spots divided by the time difference). The feature values are built upon this link feature, and is also referred in TrackMate (somewhat incorrectly) as the instantaneous velocity.

TrackSpeedStatisticsAnalyzer code on github

Mean velocity

The mean of the link velocity over all the links of the track.

Maximal velocity, Minimal velocity, Median velocity and Velocity standard deviation

Same thing, but taking the max, min, median and standard deviation respectively. All these feature values take the link velocities of a track as a distribution they summarize.

Track spot quality

This feature analyzer simply takes the mean of the distribution of the Quality values of all the spots in a track. It can be used to assess the quality of tracks based on the quality of the spots they contain.

TrackSpotQualityFeatureAnalyzer code on github

Motion analysis

This analyzer was written to add track descriptors that would help characterize the track motility type. The features calculated there will help you determine whether a tracked object moves ‘efficiently’ or has an apparently random motion, etc. I simply took some of the feature described in the following paper:

Methods for cell and particle tracking., Meijering E, Dzyubachyk O, Smal I., Methods Enzymol. 2012;504:183-200. link to paper.

They are sunnarized in the graph below.


Please note that the feature values listed in this paragraph are only properly defined bor linear tracks, that is tracks with no fusion nor split events.

TrackMotilityAnalyzer code on github

Total distance traveled

This feature value reports the full distance the particle traveled throughout the track. It is computed by taking the sum of the link distance (distance from the source spot to the target spot of the link, for all links).

It really report how much the particle ‘walked’. For instance, if a particle travels along a equilateral triangle of size 10 µm, going back to its starting point, this feature will return 30 µm. While the Track displacement feature described above will return 0 µm.

\[\text{ total distance travelled } = \sum_{i} d_{i,i+1}\]

where \(di,i+1\) is the distance from one spot to the next spot in the track.

Max distance traveled

This feature reports the distance to the furthest point of the track, with respect to the first spot in time of the track. To get this value we simply computes the straight-line distance between each spot of the track to the first spot of the track, and returns the largest distance.

This distance is a “straight-line” distance. In our example above with the particle that walks over a triangle, this feature value would be 10 µm.

\[\text{max distance traveled} = \text{Max}_{i,j} ( d_{ij} )\]

where \(dij\) is the distance from any spot \(i\) to any spot \(j\) in the track.

Confinement ratio

The confinement ratio tells how “efficient” was a track displacement in getting far away from its starting point. It is defined as the net-displacement divided by the total-distance. The net-displacement is given by the Track displacement feature, and the total distance is given by the Total distance traveled feature.

\[\text{confinement ratio} = \frac{ \text{net distance} }{ \text{ total distance travelled } }\]

It is a unitless value that ranges from 0 to 1. Values close to 0 indicate a confined movement, where the particle would stay close to its starting point. Values close to 1 indicate that the particle travels along a line with a constant orientation.

Sometimes this value is called differently in other papers. For instance in De Pascalis et al., 2018, is called persistence.

Mean straight line speed

The mean straight line speed is the defined as the net displacement (Track displacement feature) divided by the track total time.

\[\text{mean straight line speed} = \frac{ \text{net distance} }{ \text{ total track time } }\]

It is the speed that would have an object that moves at constant speed along a straight line from the first spot to the last spot of the track.

Linearity of forward progression

This value is simply the ratio between the mean straight line speed and the track mean speed.

\[\text{linearity of forward progression} = \frac{ \text{mean straight line speed} }{ \text{ mean speed } }\]

If the track is linear and if the time interval between two spots is always the same, then this value is equal to the confinement ration value.

Mean directional change

This value measure the angle between two succeeding links, averaged over all the links of a track.

\[\text{ mean directional change } = \frac{1}{N} \sum \alpha_{i,i+1}\]

where \(αi,i+1\) is the angle between two succeeding links, in radians.