sptPALM - using ThunderSTORM and TrackMate

I have been trying to establish a pipeline for data analysis of sptPALM using open source softwares. I have been using ThunderSTORM+HAWK (very much impressed with the options it provides for detections and post processing) to detect localizations and clean up. For the single particle tracking part, i have been using TrackMate (thanks to Dr. Tinevez) by importing the localization co-ordinates in the csv format using TrackMate CSV importer (thanks again). Final Idea is to use the tracking power of TrackMate to generate tracks (and other track related info) and overlay it on the bacterial cells. However, I have not been able to do so.

After importing, it does not overlay the detected spots from the csv on the opened hyperstack and also skips the HyperStack Displayer stage. Finally it fails to create any tracks. But when I use TrackMate with the same hyperstack and parameters (radius,DoG, initial search radius, max search radius and max frame gap) I have been able to generate tracks using the built in detector of the TrackMate. Anyone else having the same problem and how did you solved it? Any help will be greatly appreciated!

1 Like

Hi @TanM07

Looks like a bug but I don’t have any idea yet.
Could you share the data so that I can investigate?

Thanks for your help and time! Here is the csv file and the video.Trial1.csv (179.5 KB)


Found it!

It is a simple spatial units conflict.
The image is calibrated in µm, but the csv file contains locations in nm. So there is a factor 1000 about where they appear.

To circumvent the issue, just resave the image file using nm as spatial units.
I get this:

1 Like

Thank you so much! Thank you making these two awesome plugins!

1 Like

Can you mark post as solution?

Hi TanM07,

If I understand it correctly, HAWK creates a processed image sequence by wavelet filtering, creating more frames than in the original dataset. How do you not loose time information with this method?
Velocity and diffusion coefficients should be all altered if the same displacement is detected over more frames.




I have one question about the compute all features option:

Here TanM07 checks “compute all features”, but in the log window all of his computations show 0 ms compute.

If I import my very similar dataset (single molecule data form Thunderstorm) and I don’t import a quality descriptor (“dont use” instead of sigma) and I check “compute all features” the quality descriptor of the spots is still not calculated. (it is set to 1 on all spots)

Which edge features does “compute all features” calculate?

Thanks in advance,


Hello again @adameordogh

It does compute all features expect:

  • the QUALITY, which is provided by the detector at detection time. When you import spots from elsewhere, the quality is arbitrarily set to 1 or -1 and does not change.
  • the manual features (spot color etc)