User Tools

Site Tools


Particle Tracker (2D) Extended

Particle Tracking and Using Results in ImageJ


Kota Miura
Centre for Molecular and Cellualr Imaging (CMCI), EMBL Heidelberg
miura at embl dot de Tel: +49 6221 387 404


10-11-19 First release




Download and place it in the ImageJ plugin folder.

By [Help > Refresh Menu] or by re-launching ImageJ, you will find new menu items under [Plugins > Particle Tracker Classic >].

(following not working at the moment 20131107) If you are using Fiji: Instead of installing manually, you could also set automatic download & updates by registering our update site.

For managing update site, see this page.


ImageJ ver 1.44h or higher (ImageJ, upgrade page).


ParticleTracker plugin written by Guy Levy (Computational Biophysics Lab, ETH Zurich) added with interactive export of segmentation and tracking results to ImageJ results table. Original web site is HERE

As of Nov. 2013, there is a much up-to-date version from MOSAIC group, which also integrated the extensions I made. I leave this page just to keep the classic version or the particle tracker.

When you use this plugin, please cite:

I. F. Sbalzarini and P. Koumoutsakos.
Feature point tracking and trajectory analysis for video imaging in cell biology.
J. Struct. Biol., 151(2): 182-195, 2005.

Work Flow

Fig. 1 ParticleTracker Results window
Fig. 2 Focus on trajectory, selected by clicking and surrounded by a ROI
Fig. 3 Results table with trajectory data from Particle Tracker plugin
Fig. 4 Results table with selected trajectory data from particle tracking
  • 1. Segmentation and Tracking
  • 2. Transferring all trajectory data
    • In the ParticleTracking Results window (see Fig.1), click “All Trajectory to Table” button. All trajectory data will be then transferred to the results table of ImageJ, which then could be directly accessed using ImageJ macro and other scripting languages (Fig. 3).
  • 3. Transferring all segmented particle data
    • Similarly, all particles segmented in the initial particle detection module could be transferred to the Results window by clicking “All Segmented to Table”
  • 4. Transferring Specific Trajectory data
    • You could export only a specific trajectory. First, visualize trajectories by clicking “Visualize all trajectories”. In the window overlaid with color-coded trajectories, choose one manually by clicking the trajectory of interest (Fig. 2). ROI will then appear surrounding that trajectory. Then click “Selected Trajectory to Table”. Coordinates of that trajectory will be transferred to ImageJ results table (Fig. 4).

Application: Directionality analysis

Tracking results should be analyzed… and the best convenient way is to analyze the tracked data statistically using R.

A tutorial that was given in EMBO cell biology course is on of such. If you are interested, follow the link below:

IJ Macro and Scripting

If you want to use ParticleTracker silently (not perfectly but) then you could write a javascript that does this. Then this script can be directly executed, or called from your ImageJ macro by

jsstr = File.openAsString("C:\\js\\particleTracker2results.js");
eval("script", jsstr);

// javascript to be called from macro. Does the particle tracking by particle tracker plugin. 
// works only with the plugin downloadable from 
// Usage: modify line 7 to 11 to set your parameter.
// this JS could be called from ImageJ macro by:
//   jsstr = File.openAsString("<filepath>");
//   eval("script", jsstr);
// Kota Miura (, CMCI, EMBL Germany
// lastupdate: 20110825
rad = 3;
coff = 3;
ptl = 0.10000;
lik = 2
disp = 10;

imp = IJ.getImage();

// set macro options in the current thread 
options = "radius="+ rad +" cutoff="+ coff +" percentile=" + ptl+ 
          " link=" + lik + " displacement=" + disp;
thread = Thread.currentThread();
original_name = thread.getName();
Macro.setOptions(Thread.currentThread(), options);

// run the tracker
pt = IJ.runPlugIn(imp, "ParticleTracker_", "");

// try killing the particle tracker results window
frames = WindowManager.getNonImageWindows();
for (var i = 0; i < frames.length; i++){
	if (frames[i].getTitle() == "ParticleTracker Results") frames[i].dispose();

You could test this by directly executing the script by

jsstr =File.openUrlAsString("");
eval("script", jsstr);
downloads/particletracker2d.txt · Last modified: 2020/11/26 09:11 by

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki