StarDist or Noise2Voide from KNIME

Hi, is there a way to call either StarDist or Noise2Void from KNIME @fjug @frauzufall @uschmidt83? And if there are not yet I’d be very interested to know if you guys are thinking of releasing them. I have successfully used both from fiji and also StarDist from QuPath and I was wondering if once trained I could call them from KNIME just as there is are workflows for the various CARE.
By the way, awesome tools! Thanks a lot for sharing them.

thanks,
Alvaro

1 Like

Hi @acrevenna,

I have briefly looked into the implementations of both approaches:

  • Using Noise2Void is less of a challenge to use in KNIME, since the postprocessing of the NN output is less involved (denormalization)
  • The postprocessing of the NN output in StarDist is more involved and requires a custom implementation to reconstruct the segmentation result from the network output; this would definitely require some implementation effort

Best,
Stefan

I don’t know much about KNIME, but I thought you could run Fiji plugins there (e.g. StarDist)?

Hi @uschmidt83,

While that’s true in general, there are some minor requirements on Commands to be wrapped as KNIME nodes. I honestly haven’t looked a lot into the StarDist2D command, but have used KNIME’s TensorFlow Integration to apply one of your pre-trained networks. Some slight changes, however, have to be made to StarDist2DNMS in order to be picked up by KNIME (see https://github.com/stardist/stardist-imagej/compare/master...stelfrich:knime-compatibility):

  • Commands need to be marked as headless = true explicitly
  • Button parameters are not supported at the moment (and neither are callbacks)
  • In order to make the installation a little easier, I have packaged an uber-jar which requires to checkout the original Clipper repository to install it locally (here’s a version for the curious: https://drive.google.com/file/d/18k6-AkWfRCjImkDUouRVdd56_e5mohaA/view?usp=sharing)

I am just leaving this here for anyone’s information. I’ll pick this up again soonish to figure out a good way forward!

Best,
Stefan


Instructions for sample workflow

Before you can run the workflow below, you will have to add the custom StarDist JAR to your KNIME installation (see link before). Once downloaded, open KNIME and go to File > Preferences > KNIME > Image Processing Plugin > ImageJ2 Plugin Installation. Click add and select the JAR file, Apply and close, and restart KNIME.

Once you have restarted KNIME, check that there is a Community Nodes > KNIME Image Processing > ImageJ2 > Plugins > StarDist category in your Node Repository. If that’s the case, open the workflow: https://kni.me/w/yKQNM7EHLGjOuOQe

It only supports the pre-trained model for stained nuclei at the moment. Also, the images cannot be multi-dimensional nor time-series at the moment. The workflow ships one sample image, so that you should be able to run it out of the box if you have

  • KNIME Deep Learning - Tensorflow Integration
  • KNIME Image Processing (Community Contributions Trusted)
  • KNIME Image Processing - Deep Learning Extension (Community Contributions Trusted)

installed.

2 Likes