filter output of Spot Detection (Subpixel localization)

I am using Spot Detection (Subpixel localization) from the FMI update site and have some questions regarding it:

  1. Is this node the implementation of the LoG detector from Fijis TrackMate?
  2. How can I filter the output? Say all spots with a Contrast above 0.5. I struggele here because each table field has multiple values inside, see below.
  3. Is it possible to display the spots on an image and if so, how?

tagging @imagejan as I believe its his node :slight_smile:

I also saw it used in an example workflow of his presented during the KNIME summit 2017 wherer i found a collapsed node “Transform Tracking Data” mentioned, and would be interested to see whats behind it. Thanks so much!

1 Like

Hi Kai,

Yes, currently the ImageJ2 plugin (that auto-generates this KNIME node) is hard-coded to use TrackMate’s LogDetectorFactory, see the source code in the fmi-ij2-plugins repository:

(as you can see from the TODO comment, I wanted to extend this to allow the choice of more TrackMate detectors, but never got around to do it… let me know if it would be useful for you)

The output of the ImageJ2 plugin is double[] (which is presented as a “Collection Cell” in KNIME), since currently the ImageJ integration in KNIME only allows one-to-one row processing (and not one-to-many, which would be needed for mapping one input image to many output spots). I hope this technical limitation will be gone with a newer version of Knime Image Processing (KNIP) in the future, @christian.dietz or @gabriel.einsdorf can certainly provide information on this.

You’ll have to use a Split Collection Column node to split the values. As you have multiple output columns of double[] (and int[]), and each row can contain a different number of spots, this requires using a Transpose or an Unpivoting node to transform the data to a “tidy” format. The mentioned metanode does all this processing, I attached a small workflow file that contains the node:

Tracking minimal nodes.knwf (21.8 KB)

The reason why the metanode is not available via the FMI update site is simply because I don’t know how to serve metanodes via update sites…

Yes, I did this by:

  • using an Image Generator to create a white 1-pixel BitType image that I cross-joined with each spot row,
  • then setting the image offsets (in pixel coordinates, that might have to be computed from the calibrated TrackMate coordinates) using Set Image Metadata,
  • and then using the Compose Labeling aggregation function in the GroupBy node to generate a spot labeling per input image (using the Spot ID as new label for each spot).

I’ll be happy to share an example of this, once I’m back in the office on January 16. Please remind me if I forget.

4 Likes does this help?

1 Like

Hi @imagejan
you can ship meta nodes by registering them via the PersistedMetaNode extension point in your plugin.xml. Take a look here for an example.


1 Like

awesome, thanks @imagejan ! The workflow you provided is brilliant!


This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.