--- license: cc-by-nc-sa-4.0 library_name: moozy pipeline_tag: feature-extraction base_model: 1aurent/vit_small_patch8_224.lunit_dino tags: - pathology - computational-pathology - digital-pathology - foundation-model - whole-slide-image - vision-transformer - self-supervised-learning - slide-encoder - case-encoder - histopathology - medical-imaging - multiple-instance-learning - slide-level-representation - patient-level-representation - multi-task-learning - survival-analysis - cancer - oncology - tissue-classification - mutation-prediction - TCGA - CPTAC - pytorch - transformer datasets: - MahmoodLab/Patho-Bench metrics: - f1 - roc_auc - accuracy language: - en model-index: - name: MOOZY results: - task: type: image-classification name: Residual Cancer Burden Classification dataset: type: bc_therapy name: BC Therapy metrics: - type: f1 value: 0.56 name: Weighted F1 - type: roc_auc value: 0.74 name: Weighted ROC-AUC - type: accuracy value: 0.51 name: Balanced Accuracy - task: type: image-classification name: TP53 Mutation Prediction dataset: type: cptac_brca name: CPTAC-BRCA metrics: - type: f1 value: 0.87 name: Weighted F1 - type: roc_auc value: 0.86 name: Weighted ROC-AUC - type: accuracy value: 0.86 name: Balanced Accuracy - task: type: image-classification name: BAP1 Mutation Prediction dataset: type: cptac_ccrcc name: CPTAC-CCRCC metrics: - type: f1 value: 0.89 name: Weighted F1 - type: roc_auc value: 0.79 name: Weighted ROC-AUC - type: accuracy value: 0.78 name: Balanced Accuracy - task: type: image-classification name: ACVR2A Mutation Prediction dataset: type: cptac_coad name: CPTAC-COAD metrics: - type: f1 value: 0.91 name: Weighted F1 - type: roc_auc value: 0.91 name: Weighted ROC-AUC - type: accuracy value: 0.90 name: Balanced Accuracy - task: type: image-classification name: Histologic Grade Classification dataset: type: cptac_lscc name: CPTAC-LSCC metrics: - type: f1 value: 0.78 name: Weighted F1 - type: roc_auc value: 0.75 name: Weighted ROC-AUC - type: accuracy value: 0.77 name: Balanced Accuracy - task: type: image-classification name: KRAS Mutation Prediction dataset: type: cptac_luad name: CPTAC-LUAD metrics: - type: f1 value: 0.85 name: Weighted F1 - type: roc_auc value: 0.80 name: Weighted ROC-AUC - type: accuracy value: 0.79 name: Balanced Accuracy - task: type: image-classification name: IDH Status Classification dataset: type: ebrains name: EBRAINS metrics: - type: f1 value: 0.97 name: Weighted F1 - type: roc_auc value: 0.99 name: Weighted ROC-AUC - type: accuracy value: 0.97 name: Balanced Accuracy - task: type: image-classification name: Treatment Response Prediction dataset: type: mbc name: MBC metrics: - type: f1 value: 0.58 name: Weighted F1 - type: roc_auc value: 0.68 name: Weighted ROC-AUC - type: accuracy value: 0.48 name: Balanced Accuracy --- # MOOZY: A Patient-First Foundation Model for Computational Pathology
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.  ## Table of Contents - [Installation](#installation) - [Usage](#usage) - [From pre-computed H5 feature files](#from-pre-computed-h5-feature-files) - [From raw whole-slide images](#from-raw-whole-slide-images) - [Python API](#python-api) - [Arguments](#arguments) - [Output format](#output-format) - [Architecture](#architecture) - [Tasks](#tasks) - [Citation](#citation) - [License](#license) ## Installation ```bash 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](https://github.com/AtlasAnalyticsLab/AtlasPatch) and [TRIDENT](https://github.com/mahmoodlab/TRIDENT) outputs. ```bash 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](https://github.com/AtlasAnalyticsLab/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](https://github.com/AtlasAnalyticsLab/AtlasPatch#installation)). ```bash moozy encode slide_1.svs slide_2.svs --output case_embedding.h5 --target_mag 20 ``` ### Python API ```python 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 | Argument | Default | Description | |----------|---------|-------------| | `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_precision` | off | Enable bfloat16 mixed precision. | | `--target_mag` | 20 | Magnification for patch extraction from raw slides. Ignored for H5. | | `--step_size` | 224 | Stride 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 | Component | Architecture | Params | Output dim | |-----------|-------------|--------|------------| | Patch encoder | ViT-S/8 (Lunit DINO) | 21.67M | 384 | | Slide encoder | ViT, 6 layers, 768-D, 12 heads, 2D ALiBi | 42.8M | 768 | | Case transformer | 3 layers, 12 heads | 21.3M | 768 | ## Tasks This repository includes 333 task definitions in the `tasks/` directory. Each task has a `config.yaml` (task type, organ, label mapping) and a `task.csv` (annotations and splits). The tasks cover 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. ## Citation ```bibtex @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](https://creativecommons.org/licenses/by-nc-sa/4.0/). Research and non-commercial use only.