We recently completed a port of MCMICRO to nf-core (https://nf-co.re/mcmicro/2.0.0). There are minor changes to expected output formats, and the current spatialdata_io.readers.mcmicro reader — written against the original labsyspharm/mcmicro layout — does not read nf-core output.
What changed between the two pipelines:
| Aspect |
labsyspharm/mcmicro |
nf-core/mcmicro |
| Run config |
qc/params.yml (workflow.tma) |
pipeline_info/params*.json (tma_dearray, segmentation) |
| Registration |
registration/<sample>.ome.tif |
registration/ashlar/<sample>.ome.tif |
| Segmentation |
segmentation/<module>-<sample>/{cell,nuclei}.ome.tif |
segmentation/<segmenter>/<sample>_<tool-suffix>.tif |
| Quantification |
quantification/<module>-<sample>_<comp>.csv |
quantification/mcquant/<segmenter>/<sample>.csv |
| TMA cores |
dearray/ + qc/coreograph/centroidsY-X.txt |
tma_dearray/ (plus TMA_MAP.tif) + tma_dearray/centroidsY-X.txt |
| Markers |
markers.csv at root |
input sheet (often not copied to outdir); backsub/<sample>_backsub.csv when backsub runs |
| Samples / segmenters |
single sample, typically one segmenter |
multiple samples and multiple segmenters per run |
Gotchas found while testing against real nf-core/mcmicro output that will need to be considered:
- Segmentation mask filenames are tool-specific, not a uniform
_mask suffix — e.g. 1_cp_masks.tif (cellpose) vs exemplar-002_1_mask.tif (mesmer).
- The segmenter directory name differs between
segmentation/ and quantification/mcquant/ (e.g. deepcell_mesmer vs mesmer), so tables can't be linked to labels by an exact directory-name match.
- With background subtraction, the registration image and the quantification tables carry different marker sets (e.g. 40 image channels vs 37 table markers).
- TMA core numbers must be parsed carefully — the sample name itself can contain digits (
exemplar-002_1_mask → core 1, not 002) — and tma_dearray/ also contains TMA_MAP.tif, which is not a core.
- The
prelude/markers_markersheet_mqc.tsv file is a long-format MultiQC validation report, not a usable wide marker sheet.
Proposal
Update the mcmicro reader to auto-detect the pipeline (with an explicit pipeline= override) and handle both layouts, including multiple samples and segmenters, in WSI and TMA modes. Backwards compatibility with labsyspharm output is preserved.
We recently completed a port of MCMICRO to nf-core (https://nf-co.re/mcmicro/2.0.0). There are minor changes to expected output formats, and the current
spatialdata_io.readers.mcmicroreader — written against the originallabsyspharm/mcmicrolayout — does not read nf-core output.What changed between the two pipelines:
qc/params.yml(workflow.tma)pipeline_info/params*.json(tma_dearray,segmentation)registration/<sample>.ome.tifregistration/ashlar/<sample>.ome.tifsegmentation/<module>-<sample>/{cell,nuclei}.ome.tifsegmentation/<segmenter>/<sample>_<tool-suffix>.tifquantification/<module>-<sample>_<comp>.csvquantification/mcquant/<segmenter>/<sample>.csvdearray/+qc/coreograph/centroidsY-X.txttma_dearray/(plusTMA_MAP.tif) +tma_dearray/centroidsY-X.txtmarkers.csvat rootbacksub/<sample>_backsub.csvwhen backsub runsGotchas found while testing against real nf-core/mcmicro output that will need to be considered:
_masksuffix — e.g.1_cp_masks.tif(cellpose) vsexemplar-002_1_mask.tif(mesmer).segmentation/andquantification/mcquant/(e.g. deepcell_mesmer vs mesmer), so tables can't be linked to labels by an exact directory-name match.exemplar-002_1_mask→ core1, not002) — andtma_dearray/also containsTMA_MAP.tif, which is not a core.prelude/markers_markersheet_mqc.tsvfile is a long-format MultiQC validation report, not a usable wide marker sheet.Proposal
Update the mcmicro reader to auto-detect the pipeline (with an explicit pipeline= override) and handle both layouts, including multiple samples and segmenters, in WSI and TMA modes. Backwards compatibility with labsyspharm output is preserved.