Skip to content

Release Notes

0.1.0 [2026-09-28]

Enhancements:

  • Initial release of the lesion-location-classifier gear, which classifies the coarse anatomical site of a lesion on CT using the FMCIB foundation model's fine-tuned Task-1 arm (Pai et al., Nature Machine Intelligence 2024).
  • Accepts a CT series (ct-dicom) and a DICOM RT Structure Set (lesion-rtstruct) as inputs and outputs a per-lesion probability distribution over eight anatomical site classes as CSV and JSON.
  • Supports configurable ROI selection via roi_pattern (regex), minimum lesion volume filtering via min_lesion_volume_mm3, and confidence thresholding via min_confidence.
  • Validates CT inputs against DICOM headers (not just Flywheel metadata), ensuring modality CT is confirmed from the file itself before inference.
  • Cross-checks the RT Structure Set's referenced SeriesInstanceUID against the loaded CT series, failing fast on a mismatched input pair.
  • Derives lesion seed points from RTSTRUCT contours via rasterisation and connected-component analysis, reporting one prediction per component.
  • Runs inference on GPU when available, falling back to CPU automatically.
  • Bakes the FMCIB fine-tuned Task-1 checkpoint (~777 MB) into the Docker image at build time, requiring no network egress at runtime.
  • Outputs are named after the ct-dicom input stem and carry a Research_Use_Only suffix; results include the full 8-class probability distribution alongside predicted_site and confidence.
  • Exits 0 with a status=no_lesions row when no ROI matches roi_pattern or every connected component is below min_lesion_volume_mm3.

Maintenance:

  • Built on pytorch/pytorch:2.8.0-cuda12.6-cudnn9-runtime base image with python 3.11.
  • Uses uv for dependency management and virtual environment setup.
  • Configured CI via .gitlab-ci.yml with coverage threshold and large-runner override for the gear test job.
  • Added pre-commit hooks including ruff, hadolint, pytest, and gearcheck.

Documentation:

  • Added README.md with full gear overview, inputs, config, outputs, workflow diagram, and FAQ.
  • Added CONTRIBUTING.md with setup, dependency management, linting, and merge request guidelines.

0.1.0-rc.1 [2026-08-28]

Initial development release (pre-release).

Enhancements:

  • Create a skeleton of the gear with all components and package fw_gear_nsclc_anatomy_classifier and check all CI-CD steps pass.
  • Dockerfile with the FMCIB inference stack (torch 2.8.0+cu126, torchvision 0.23.0, monai 1.6.0, foundation-cancer-image-biomarker installed --no-deps) and the fine-tuned Task-1 checkpoint (~741MB, CC-BY-4.0) baked into the image.
  • Manifest with ct-dicom and lesion-rtstruct DICOM inputs and debug / min_confidence / min_lesion_volume_mm3 / roi_pattern config options.
  • model.predict returns the full 8-class softmax distribution per lesion rather than an argmax, so results stay relabellable without re-running inference.
  • New sites.py module owning the class vocabulary, so the ordering is stated in one place rather than assumed across model and output.