BodenmillerGroup / ImcSegmentationPipeline

A pixel classification based multiplexed image segmentation pipeline
https://bodenmillergroup.github.io/ImcSegmentationPipeline/
MIT License
83 stars 35 forks source link

Channel order in pre-trained ilastik classifier #88

Closed nilseling closed 2 years ago

nilseling commented 2 years ago

Hi @jwindhager

I'm having issues running the steinbock bash script to produce the output on zenodo (https://zenodo.org/record/6043600) after updating the ilastik classifier from the IMC segmentation pipeline v3 (https://zenodo.org/record/6404960). The probabilities after ilastik training don't make sense and my guess is the following: in the IMC segmentation pipeline v3 you don't order the channels based on metal anymore but how they appear in the panel file. The ilastik stacks exported by steinbock are however ordered by metal tag. This means we can't use an ilastik classifier pre-trained on the output of the IMC segmentation pipeline to predict steinbock ilastik stacks without modifying the channel order in the steinbock panel file post hoc. Do you have any suggestions on how to approach this? Cheers Nils

jwindhager commented 2 years ago

Hi @nilseling

The ilastik stacks exported by steinbock are however ordered by metal tag

That's not true. The Ilastik stacks exported by steinbock are ordered according to the ilastik column, see https://bodenmillergroup.github.io/steinbock/latest/cli/classification/#data-preparation. Does that help?

nilseling commented 2 years ago

Yes, that's correct. The issue comes more from converting the user-specific panel file into a steinbock panel file after calling steinbock preprocess imc panel. In this step, channels are ordered based on metal tag and the ilastik column is filled with indeces 1:n. These indeces do not match the channel order in which the pre-processing script of the IMC segmentation pipline writes out the ilastik stacks.

jwindhager commented 2 years ago

Discussed offline: channels in the IMC Segmentation Pipeline analysis stacks should be sorted by mass