Mosaic for 3D tracking

Tags: #<Tag:0x00007fb8798be3c0> #<Tag:0x00007fb8798be230>


Hi everyone,
Is anyone familiar with mosaic for 3D tracking?
What algorithm it used for 3D tracking? I am curious about it. Any information would be helpful.

Thank you.


You can find description of algortihm in this paper (chapter 2.2):

Presented equations and all steps (like image restoration, estimation/refinement of points location…) are presented there for 2D case, but to extent it to 3D you can just add another dimension (this is how it was exactly done in code of tracker).


Hi Krzysg,

Thank you so much for information. I am wondering how to localize particle in 3D? Does it use 3D guassian fitting for this?



As described in provided link first all maxima are found in image, and then all their positions are calculated as a brightness-weighted centroid in the (de-noising) filtered image within provided radius.


Did you use mosiac for 3D tracking before? I tried, seems didn’t work. Results are very weird. Do you know how to use mosica for 3D tracking? Thank you for any information.


Yes, I used it quite a lot. And it is one of the most often used plugins from MosaicSuite so I guess it should work. Did you install latest version? installation steps are described here:

Here is a tutorial (little bit outdated but still useful):

If above documentation will not help you need to provide some more info about ‘what you get’ and ‘what you expect to get’, what parameter’s value you are using and provide some input movie for tracking.


Thank you so much for information. One more question, when you import images for Particle tracker 3D, did you convert it to hyperstack image or just 2D frame series (xyzt)? Now I have 400 time series 3D images (9 steps along z), the import image series is 9x400 frames, then I use hyperstack to convert image series to hyperstack, then it seems couldn’t discriminate 2D or 3D data. If mosiac doesn’t need convert to hyperstack image, how it know how many time stacks and z stacks?



I have checked and it works correctly with both - stacks and hyperstacks. But of course you need to have correct settings for image and you can check it (and change) with menu command “Image->Properties…”. You should have there number of Slices (z) setup correctly and same applies to Frames(t). I am not sure completely but probably number of channels used must be 1.


Hi Krzysg,

Thank you so much for information. Now I have hyperstack data from my experiment, and I tried with Mosiac 3D tracking, but it seems not right. If it’s possible, can I send you my data, you help me to check it with 3D tracking, and see if we get same results? Can you give me your email address, so it’s easier to contact.

Thanks again.

Kind regards,


You can find contact data here.
Anyway I encourage you to post your problem here in forum so it (and its solution) might be found by other people having same issue.
Can you provide more info problem? So far you have mentioned that you have some troubles with ParticleTracker without explaining:

  1. What you get as a output from ParticleTracker and why you think this is bad?
  2. What you expect to get as a output?
  3. What are your input data and input parameters for plugin?


Thank you, Krzysg. My data is large, so please find the link for it.

My data is hyperStack data, 9 slice (z) and 500 frames (t). I expect to get trajectory of particles in 3D volume, means the trajectory also should be show as hyperStack. But when I used Particle Tracker 3D to analyze it, some trajectories are weird, some are normal. Some trajectories weren’t show as hyperStack, it just show as slice, like 2D data. I don’t know how to interpret output. Maybe I miss something. Please let me know if I interpret wrong.

Thank you.



Hi, I have checkd your data and I must say that it is not easy for tracking particles (at least the upper ‘cluster of things’). But at least for cluster at the bottom of movie Particle Tracker gave me quite good data. Parameters I have used: radius=4, cutoff=0.02 percentile=0.6 displacement=3 linkrange=3, dynamics=brownian.

Of course there will be always bad looking trajectories and it is an effect of wrongly or not detected particles in consecutive frames. One way to minimize that effect is to find best values or radius/cutoff/percentile to exclude noisy bright spots, and then set up nice parameters for linkrange/displacement. You could also crop your image since technically you have only two clusters of particles in a huge data. For some tests I have created two set of images from both clusters and it works way much faster. Just play with above values and let know if this is somehow better for you.


Hi, thank you so much, it’s really helpful. I tried your setting, it works better than before. You are right, all these particles are not uniform, some even has severe distortion because of aberration. I have one question with particle detection in 3D.
As you can see from this figure, when I use your setting, it detected 6 particles in this plane, but result seems doesn’t make sense, it detected some area which are super weak, some particles are much brighter, but can’t detect. I think I miss something. Can you please tell me what this six circles mean in this figure? Maybe they are six particles from other plane?
Does 3D Particle tracker use 3D Gaussian fitting to get centroid of single particle in 3D?

Thank you,



Thanks for attaching image wiht output of ParticleTracker. As a first step I would suggest to update your MosaicSuite since this Particle Tracker looks like 3 years old. Please remove your old jar file from your Fiji/ImageJ plugins direcotry (or install fresh new Fiji) and install MosaicSuite via update sites as described in detail here.

As described in above posts ParticleTracker first filters your input image with Gaussian blur + box car averaging and then detects maxima which are further filtered (basing on your Cutoff input). Finally brightness-weighted centroid are calculated within provided radius to get final particle location.


I have a question Please. I wanted to extract statistical data.
when you choose all trajectory to table option, it give a table. I do not know what the m0 to m4 means on the table. Do you know what they stand for?
Or if this is the right option at all. I just need to get the track displacement, duration and speed.
Thank you very much


m0 to m4 are intensity moments, they have no relation with track displacement, duration and speed, they are parameters for Guassian fitting. You can calculate displacement, and speed based on positions on each frames. The frame column tell you duration.