Skip to content

Repository files navigation

Multi-Modal Risk Prediction for EndoVascular Aneurysm Repair

Submission to the MICCAI 2026 MultiTab Workshop.

Paper: not yet published — link coming soon

Multi-modal deep learning for post-operative re-intervention risk prediction in EVAR patients, combining CT volumes, clinical tabular data, and AAA geometry metrics from the RADAR database (542 AAA patients with imaging, 4 sites).

Institution: University of Twente

CI Tests Coverage Last Commit Python 3.11 License


Installation

conda activate tabpredict          # Python 3.11
export HTTPS_PROXY="http://proxy.utwente.nl:3128"   # required on HPC
pip install -r requirements.txt

Quick Start

cd /home/ranema/TabPredict

# Train — MLP clinical backbone
python scripts/train.py --config experiments/mlp.yaml

# Train — SAINT clinical backbone
python scripts/train.py --config experiments/saint.yaml

# Train — TabM clinical backbone
python scripts/train.py --config experiments/tabm.yaml

# Train — classical ML backbones (LR | RF | GBM | XGBoost)
python scripts/train.py --config experiments/v1_logistic_regression.yaml
python scripts/train.py --config experiments/v1_random_forest.yaml
python scripts/train.py --config experiments/v1_gradient_boosting.yaml
python scripts/train.py --config experiments/v1_xgboost.yaml

# Evaluate on test split
python scripts/test.py \
    --config     experiments/mlp.yaml \
    --checkpoint /deepstore/datasets/mia/TabPredict/models/no_complications_MLP/best_stage_b.pt \
    --output_dir /deepstore/datasets/mia/TabPredict/test_results/no_complications_MLP

# Evaluate on all splits × all stage checkpoints
python scripts/test.py \
    --config     experiments/mlp.yaml \
    --output_dir /deepstore/datasets/mia/TabPredict/test_results/no_complications_MLP \
    --split all

# Run tests (421 tests, CPU-only, ~20 s)
~/.conda/envs/tabpredict/bin/python -m pytest tests/ -v

Override any config value at runtime without editing the YAML:

python scripts/train.py \
    --config experiments/mlp.yaml \
    --set training.batch_size=4 training.stages[0].epochs=2 wandb.mode=disabled

Repository Structure

TabPredict/
├── experiments/                          # YAML experiment configs (one per backbone)
│   ├── mlp.yaml      # MLP backbone
│   ├── saint.yaml    # SAINT backbone
│   ├── tabm.yaml     # TabM backbone
│   ├── tabpfn.yaml   # TabPFN backbone
│   ├── v1_logistic_regression.yaml       # Logistic Regression backbone
│   ├── v1_random_forest.yaml             # Random Forest backbone
│   ├── v1_gradient_boosting.yaml         # Gradient Boosting backbone
│   └── v1_xgboost.yaml                   # XGBoost backbone
├── scripts/                              # Entry points
│   ├── train.py                          # Training
│   ├── test.py                           # Evaluation / inference
│   └── submit_slurm.sh                   # SLURM wrapper
├── src/                                  # Core library
│   ├── models/                           # ReinterventionRiskModel + tabular backbones
│   ├── data/                             # MONAI pipeline + loaders
│   ├── training/                         # Losses, stages, trainer
│   ├── xai/                              # Gradient-based explainability
│   └── evaluation/                       # Metrics + per-patient output
├── preprocessing/                        # Data preparation pipeline (00–07)
├── tests/                                # CPU-only pytest suite (421 tests)
└── documentation/                        # Technical documentation

Documentation

Document Contents
Architecture Model branches, FiLM fusion, output heads, forward API
Models Tabular backbone comparison, projection inputs, imputation, per-backbone pipeline
Training 2-stage curriculum, loss functions, optimizer, modality dropout
Data Deepstore layout, clinical JSON, MONAI pipeline
Preprocessing Raw DICOM → training-ready data, step-by-step pipeline
Configuration Full YAML reference, all parameters explained
XAI Explainability methods, full_explain() output, GradCAM
Evaluation Inference, per-patient output files, all metrics
Testing Test suite coverage, gaps, how to run
W&B Integration Logged metrics, tables, offline mode
HPC / SLURM Job submission, cluster setup, monitoring

About

AI-based risk prediction for EVAR patients

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages