Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

camicroscope-mctile

A parallel tile server for multi-channel/multi-spectrum pathology images (multiplexed immunofluorescence, spectral imaging, multi-optical-path DICOM whole-slide microscopy) -- a peer to caMicroscope's existing iipsrv-based tile server (alt_iip/ca-iip), which only handles single-plane brightfield slides.

Built on Kitware large_image (the same library underlying the Digital Slide Archive/HistomicsTK), which already solves pyramidal tiling math and server-side per-channel style compositing. This repo adds the channel-semantics layer (OME-XML/DICOM-optical-path/OME- NGFF -> a common ChannelDescriptor model) and a small Flask API on top.

  • docs/API.md -- endpoint reference.
  • docs/ADR-0001-spike-findings.md -- what's confirmed-working vs. structural-only in this build, and why (read this before trusting any specific format claim).
  • docs/INTEGRATION.md -- design spec for wiring this into caracal/ distro/camicroscope/slideloader (not yet implemented).

Format support

Format Status
OME-TIFF / plain TIFF Fully implemented and verified end-to-end
OME-NGFF/Zarr Implemented; not verified against a real fixture
Multi-optical-path DICOM Implemented; not verified against a real fixture
QPTIFF, CZI, ND2, LIF Not supported -- see ADR-0001

Development

docker build -t camicroscope-mctile:dev .

# generate a synthetic multi-channel OME-TIFF fixture (already checked in at
# tests/fixtures/synthetic_multichannel.ome.tif -- rerun only if you need a
# different size/channel count)
python3 scripts/make_synthetic_ometiff.py --out tests/fixtures/synthetic_multichannel.ome.tif

# run the server against the fixtures dir
docker run --rm -p 8008:8008 \
  -v "$(pwd)/tests/fixtures:/images:ro" \
  camicroscope-mctile:dev

curl http://localhost:8008/healthz
curl http://localhost:8008/meta/synthetic_multichannel.ome.tif

Tests

Native tile-decode (via large_image's libtiff bridge) segfaults on macOS/ arm64 with a Homebrew-installed libtiff (see ADR-0001) -- run tests inside the project's own Linux image, not a local macOS venv:

docker run --rm -v "$(pwd):/var/www" camicroscope-mctile:dev bash -c \
  "pip3 install --break-system-packages pytest && cd /var/www && python3 -m pytest -q tests/"

34 tests, all passing as of this writing (18 unit + 16 integration).

About

multichannel tile server

Resources

Code of conduct

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages