AtlasAnalyticsLab/MOOZY

Model

6

stars

2

commits

2

linked in READMEs

Apr 13, 2026

updated

cancer
case-encoder
computational-pathology
CPTAC
digital-pathology
feature-extraction
foundation-model
histopathology
medical-imaging
moozy
multiple-instance-learning
multi-task-learning
mutation-prediction
oncology
pathology
patient-level-representation
pytorch
self-supervised-learning
slide-encoder
slide-level-representation
survival-analysis
TCGA
tissue-classification
transformer
vision-transformer
whole-slide-image
Browse cluster: Digital Pathology & Histopathology AI

README

MOOZY: A Patient-First Foundation Model for Computational Pathology

Project Page arXiv GitHub PyPI License Python 3.10+

MOOZY is a slide and patient-level foundation model for computational pathology. The patient case, not the individual slide, is the core unit of representation. A vision-only slide encoder pretrained with masked self-distillation on 77,134 public slides is aligned with clinical semantics through multi-task supervision over 333 tasks (205 classification, 128 survival) from 56 public datasets spanning 23 anatomical sites. A case transformer explicitly models dependencies across all slides from the same patient, replacing the naive early/late fusion used by prior methods. 85.77M total parameters. Trained entirely on public data.

MOOZY data scale

Table of Contents

Installation

pip install moozy

The checkpoint and task definitions are downloaded automatically from this repository on first use.

Usage

From pre-computed H5 feature files

The faster path. Pass .h5 files containing patch features extracted with lunit_vit_small_patch8_dino at 224x224 patch size. Compatible with AtlasPatch and TRIDENT outputs.

moozy encode slide_1.h5 slide_2.h5 --output case_embedding.h5

From raw whole-slide images

Pass slide files directly (.svs, .tiff, .ndpi, .mrxs, etc.). MOOZY calls AtlasPatch under the hood to segment tissue, extract patches, and compute features. Requires atlas-patch, sam2, and the OpenSlide system library (see the AtlasPatch installation guide).

moozy encode slide_1.svs slide_2.svs --output case_embedding.h5 --target_mag 20

Python API

from moozy.encoding import run_encoding

# From H5 feature files
run_encoding(
    slide_paths=["slide_1.h5", "slide_2.h5"],
    output_path="case_embedding.h5",
)

# From raw slides
run_encoding(
    slide_paths=["slide_1.svs", "slide_2.svs"],
    output_path="case_embedding.h5",
    target_mag=20,
)

Arguments

ArgumentDefaultDescription
SLIDES(required)One or more H5 feature files or raw slide files forming a single case. Cannot mix the two types.
--output, -o(required)Output H5 file path.
--mixed_precisionoffEnable bfloat16 mixed precision.
--target_mag20Magnification for patch extraction from raw slides. Ignored for H5.
--step_size224Stride between patch centers in pixels. Set < 224 for overlap. Ignored for H5.
--mpp_csv-CSV with wsi,mpp columns for microns-per-pixel overrides. Ignored for H5.

Output format

The output H5 file contains a features dataset (768-D float32 case embedding) and a coords dataset with slide metadata.

Architecture

ComponentArchitectureParamsOutput dim
Patch encoderViT-S/8 (Lunit DINO)21.67M384
Slide encoderViT, 6 layers, 768-D, 12 heads, 2D ALiBi42.8M768
Case transformer3 layers, 12 heads21.3M768

Tasks

This repository includes 497 task definitions in the tasks/ directory. Each task has a config.yaml (task type, organ, label mapping) and a task.csv (annotations and splits). MOOZY was trained on 333 of them (205 classification and 128 survival endpoints) across all 32 TCGA cohorts, all 10 CPTAC cohorts, REG, BC-Therapy, BRACS, CAMELYON17, DHMC Kidney, DHMC LUAD, EBRAINS, IMP Colorectum, IMP Cervix, MBC, MUT-HET-RCC, NADT Prostate, NAT-BRCA, and PANDA. The remaining 164 tasks are additional TCGA annotations (AJCC pathologic staging and molecular subtypes), and MOOZY was not trained on any of them.

Citation

@misc{kotp2026moozypatientfirstfoundationmodel,
      title={MOOZY: A Patient-First Foundation Model for Computational Pathology},
      author={Yousef Kotp and Vincent Quoc-Huy Trinh and Christopher Pal and Mahdi S. Hosseini},
      year={2026},
      eprint={2603.27048},
      archivePrefix={arXiv},
      primaryClass={cs.CV},
      url={https://arxiv.org/abs/2603.27048},
}

License

CC BY-NC-SA 4.0. Research and non-commercial use only.

Contributors

yousefkotp

2 commits

AtlasAnalyticsLab/MOOZY

Model

6

stars

2

commits

2

linked in READMEs

Apr 13, 2026

updated

cancer
case-encoder
computational-pathology
CPTAC
digital-pathology
feature-extraction
foundation-model
histopathology
medical-imaging
moozy
multiple-instance-learning
multi-task-learning
mutation-prediction
oncology
pathology
patient-level-representation
pytorch
self-supervised-learning
slide-encoder
slide-level-representation
survival-analysis
TCGA
tissue-classification
transformer
vision-transformer
whole-slide-image
Browse cluster: Digital Pathology & Histopathology AI

README

MOOZY: A Patient-First Foundation Model for Computational Pathology

Project Page arXiv GitHub PyPI License Python 3.10+

MOOZY is a slide and patient-level foundation model for computational pathology. The patient case, not the individual slide, is the core unit of representation. A vision-only slide encoder pretrained with masked self-distillation on 77,134 public slides is aligned with clinical semantics through multi-task supervision over 333 tasks (205 classification, 128 survival) from 56 public datasets spanning 23 anatomical sites. A case transformer explicitly models dependencies across all slides from the same patient, replacing the naive early/late fusion used by prior methods. 85.77M total parameters. Trained entirely on public data.

MOOZY data scale

Table of Contents

Installation

pip install moozy

The checkpoint and task definitions are downloaded automatically from this repository on first use.

Usage

From pre-computed H5 feature files

The faster path. Pass .h5 files containing patch features extracted with lunit_vit_small_patch8_dino at 224x224 patch size. Compatible with AtlasPatch and TRIDENT outputs.

moozy encode slide_1.h5 slide_2.h5 --output case_embedding.h5

From raw whole-slide images

Pass slide files directly (.svs, .tiff, .ndpi, .mrxs, etc.). MOOZY calls AtlasPatch under the hood to segment tissue, extract patches, and compute features. Requires atlas-patch, sam2, and the OpenSlide system library (see the AtlasPatch installation guide).

moozy encode slide_1.svs slide_2.svs --output case_embedding.h5 --target_mag 20

Python API

from moozy.encoding import run_encoding

# From H5 feature files
run_encoding(
    slide_paths=["slide_1.h5", "slide_2.h5"],
    output_path="case_embedding.h5",
)

# From raw slides
run_encoding(
    slide_paths=["slide_1.svs", "slide_2.svs"],
    output_path="case_embedding.h5",
    target_mag=20,
)

Arguments

ArgumentDefaultDescription
SLIDES(required)One or more H5 feature files or raw slide files forming a single case. Cannot mix the two types.
--output, -o(required)Output H5 file path.
--mixed_precisionoffEnable bfloat16 mixed precision.
--target_mag20Magnification for patch extraction from raw slides. Ignored for H5.
--step_size224Stride between patch centers in pixels. Set < 224 for overlap. Ignored for H5.
--mpp_csv-CSV with wsi,mpp columns for microns-per-pixel overrides. Ignored for H5.

Output format

The output H5 file contains a features dataset (768-D float32 case embedding) and a coords dataset with slide metadata.

Architecture

ComponentArchitectureParamsOutput dim
Patch encoderViT-S/8 (Lunit DINO)21.67M384
Slide encoderViT, 6 layers, 768-D, 12 heads, 2D ALiBi42.8M768
Case transformer3 layers, 12 heads21.3M768

Tasks

This repository includes 497 task definitions in the tasks/ directory. Each task has a config.yaml (task type, organ, label mapping) and a task.csv (annotations and splits). MOOZY was trained on 333 of them (205 classification and 128 survival endpoints) across all 32 TCGA cohorts, all 10 CPTAC cohorts, REG, BC-Therapy, BRACS, CAMELYON17, DHMC Kidney, DHMC LUAD, EBRAINS, IMP Colorectum, IMP Cervix, MBC, MUT-HET-RCC, NADT Prostate, NAT-BRCA, and PANDA. The remaining 164 tasks are additional TCGA annotations (AJCC pathologic staging and molecular subtypes), and MOOZY was not trained on any of them.

Citation

@misc{kotp2026moozypatientfirstfoundationmodel,
      title={MOOZY: A Patient-First Foundation Model for Computational Pathology},
      author={Yousef Kotp and Vincent Quoc-Huy Trinh and Christopher Pal and Mahdi S. Hosseini},
      year={2026},
      eprint={2603.27048},
      archivePrefix={arXiv},
      primaryClass={cs.CV},
      url={https://arxiv.org/abs/2603.27048},
}

License

CC BY-NC-SA 4.0. Research and non-commercial use only.

Contributors

yousefkotp

2 commits