|
|
--- |
|
|
language: en |
|
|
license: cc-by-nc-sa-4.0 |
|
|
tags: |
|
|
- survival-analysis |
|
|
- multiple-instance-learning |
|
|
- optimal-transport |
|
|
- medical-imaging |
|
|
- deep-learning |
|
|
- pytorch |
|
|
model-index: |
|
|
- name: OTSurv |
|
|
results: |
|
|
- task: |
|
|
type: survival-analysis |
|
|
name: Survival Prediction |
|
|
dataset: |
|
|
type: TCGA |
|
|
name: TCGA (BLCA, BRCA, LUAD, STAD, COADREAD, KIRC) |
|
|
metrics: |
|
|
- type: c-index |
|
|
value: 0.646 |
|
|
--- |
|
|
|
|
|
<div align="center"> |
|
|
|
|
|
<img src="assets/otsurv_logo.png" alt="OTSurv Logo" width="300"/> |
|
|
|
|
|
<h2>OTSurv: A Novel Multiple Instance Learning Framework for Survival Prediction with Heterogeneity-aware Optimal Transport</h2> |
|
|
<h4>π MICCAI 2025 π</h4> |
|
|
|
|
|
<br> |
|
|
|
|
|
<p> |
|
|
<a href="https://scholar.google.com.hk/citations?user=Tcg-9DcAAAAJ">Qin Ren</a><sup>1 β
</sup> |
|
|
<a href="https://yfwang.me/">Yifan Wang</a><sup>1</sup> |
|
|
<a href="https://lab-smile.github.io/">Ruogu Fang</a><sup>2</sup> |
|
|
<a href="https://scholar.google.com/citations?hl=en&user=v3w4IYUAAAAJ">Haibin Ling</a><sup>1</sup> |
|
|
<a href="https://chenyuyou.me/">Chenyu You</a><sup>1 β
</sup> |
|
|
</p> |
|
|
|
|
|
<p> |
|
|
<sup>1</sup> Stony Brook University |
|
|
<sup>2</sup> University of Florida <br> |
|
|
β
Corresponding authors |
|
|
</p> |
|
|
|
|
|
<p align="center"> |
|
|
<a href="https://arxiv.org/abs/2506.20741"> |
|
|
<img src="https://img.shields.io/badge/π‘%20Paper-MICCAI-blue?style=flat-square" alt="Paper"> |
|
|
</a> |
|
|
<a href="https://huggingface.co/Y-Research-Group/OTSurv"> |
|
|
<img src="https://img.shields.io/badge/Hugging%20Face-Model-yellow?style=flat-square&logo=huggingface" alt="Hugging Face Model"> |
|
|
</a> |
|
|
<a href="https://huggingface.co/datasets/Y-Research-Group/OTSurv_Dataset"> |
|
|
<img src="https://img.shields.io/badge/Hugging%20Face-Dataset-green?style=flat-square&logo=huggingface" alt="Hugging Face Dataset"> |
|
|
</a> |
|
|
<a href="#"> |
|
|
<img src="https://img.shields.io/badge/PyTorch-2.3-EE4C2C?style=flat-square&logo=pytorch" alt="PyTorch 2.3"> |
|
|
</a> |
|
|
</p> |
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
## π§ DL;TR |
|
|
|
|
|
<p> |
|
|
Welcome to the official repository of <b>OTSurv</b>, a novel framework that integrates |
|
|
<b>Multiple Instance Learning (MIL)</b> with <b>Heterogeneity-aware Optimal Transport (OT)</b> |
|
|
to tackle the challenges of survival prediction in medical imaging and clinical data. |
|
|
</p> |
|
|
|
|
|
<blockquote> |
|
|
π <b>To be presented at MICCAI 2025</b><br> |
|
|
π§ <b>Focus</b>: Survival Analysis Β· Multiple Instance Learning Β· Optimal Transport |
|
|
</blockquote> |
|
|
|
|
|
<div align="center"> |
|
|
<img src="docs/OTSurv_main.png" alt="OTSurv Framework Overview" width="800"/> |
|
|
</div> |
|
|
|
|
|
## π Data Organization |
|
|
|
|
|
### Project Structure |
|
|
``` |
|
|
OTSurv/ |
|
|
βββ checkpoints/ |
|
|
β βββ model_blca_fold0.pth |
|
|
β βββ model_blca_fold1.pth |
|
|
β βββ ... |
|
|
β |
|
|
βββ data/ |
|
|
β βββ tcga_blca/ |
|
|
β βββ tcga_brca/ |
|
|
β βββ tcga_coadread/ |
|
|
β βββ tcga_kirc/ |
|
|
β βββ tcga_luad/ |
|
|
β βββ tcga_stad/ |
|
|
β |
|
|
βββ result/ |
|
|
β βββ exp_otsurv_test/ |
|
|
β βββ exp_otsurv_train/ |
|
|
β βββ visualization/ |
|
|
β |
|
|
βββ src/ |
|
|
β βββ scripts/ |
|
|
β βββ analysis/ |
|
|
β βββ ... |
|
|
β |
|
|
βββ docs/ |
|
|
β βββ OTSurv_main.png |
|
|
β βββ OTSurv_heatmap.png |
|
|
``` |
|
|
|
|
|
### Feature Format |
|
|
- **H5 Format**: Features are stored in `.h5` files (directories ending with `feats_h5/`) |
|
|
|
|
|
For patch feature extraction, please refer to [CLAM](https://github.com/mahmoodlab/CLAM). |
|
|
|
|
|
You can download the preprocessed features from [this link](https://huggingface.co/datasets/Y-Research-Group/OTSurv_Dataset). |
|
|
|
|
|
<br> |
|
|
|
|
|
## π Quick Start |
|
|
|
|
|
### Prerequisites |
|
|
|
|
|
- Python 3.8+ |
|
|
- GPU or CPU-only |
|
|
- Conda package manager |
|
|
|
|
|
### Installation |
|
|
|
|
|
```bash |
|
|
# Clone the repository |
|
|
git clone https://github.com/Y-Research-SBU/OTSurv.git |
|
|
cd OTSurv |
|
|
|
|
|
# Create conda environment |
|
|
conda env create -f env.yaml |
|
|
conda activate otsurv |
|
|
``` |
|
|
|
|
|
### Training |
|
|
|
|
|
```bash |
|
|
# Training results will be saved under result/exp_otsurv_train |
|
|
|
|
|
cd src |
|
|
# Train on all datasets |
|
|
bash scripts/train_otsurv.sh |
|
|
|
|
|
# Train on TCGA-BLCA dataset specifically |
|
|
bash scripts/train_blca.sh |
|
|
``` |
|
|
|
|
|
### Evaluation |
|
|
|
|
|
You can download all trained checkpoints from [this link](https://huggingface.co/Y-Research-Group/OTSurv). |
|
|
|
|
|
```bash |
|
|
# Test results will be saved under result/exp_otsurv_test |
|
|
|
|
|
cd src |
|
|
# Test on all datasets |
|
|
bash scripts/test_otsurv.sh |
|
|
|
|
|
# Test on TCGA-BLCA dataset specifically |
|
|
bash scripts/test_blca.sh |
|
|
``` |
|
|
|
|
|
```bash |
|
|
cd src |
|
|
# Calculate performance metrics |
|
|
python analysis/calculate_CIndex_mean_std.py |
|
|
``` |
|
|
|
|
|
```bash |
|
|
# Generated figures will be saved under result/visualization |
|
|
|
|
|
cd src |
|
|
# Generate survival curves |
|
|
python analysis/plot_survival_curv.py |
|
|
``` |
|
|
|
|
|
|
|
|
## π Performance Results |
|
|
|
|
|
Below are the C-Index performance results of OTSurv across different cancer types: |
|
|
|
|
|
| Cancer Type | Mean C-Index | Std Dev | |
|
|
|-------------|-------------|---------| |
|
|
| **BRCA** | 0.621 | Β±0.071 | |
|
|
| **BLCA** | 0.637 | Β±0.065 | |
|
|
| **LUAD** | 0.638 | Β±0.077 | |
|
|
| **STAD** | 0.565 | Β±0.057 | |
|
|
| **COADREAD** | 0.667 | Β±0.111 | |
|
|
| **KIRC** | 0.750 | Β±0.149 | |
|
|
|
|
|
**Overall Performance**: Average C-Index across all datasets is **0.646** |
|
|
|
|
|
> π‘ **Note**: C-Index (Concordance Index) is a commonly used performance metric in survival analysis, where values closer to 1.0 indicate better prediction performance. |
|
|
|
|
|
<br> |
|
|
|
|
|
## π Citation |
|
|
|
|
|
If you find this work useful, please cite our paper: |
|
|
|
|
|
```bibtex |
|
|
@misc{ren2025otsurvnovelmultipleinstance, |
|
|
title={OTSurv: A Novel Multiple Instance Learning Framework for Survival Prediction with Heterogeneity-aware Optimal Transport}, |
|
|
author={Qin Ren and Yifan Wang and Ruogu Fang and Haibin Ling and Chenyu You}, |
|
|
year={2025}, |
|
|
eprint={2506.20741}, |
|
|
archivePrefix={arXiv}, |
|
|
primaryClass={cs.CV}, |
|
|
url={https://arxiv.org/abs/2506.20741}, |
|
|
} |
|
|
``` |
|
|
|
|
|
> π **Note**: This paper has been accepted at MICCAI 2025. The citation details will be updated once the paper is officially published. |
|
|
> |
|
|
|
|
|
<br> |
|
|
|
|
|
## π Acknowledgements |
|
|
|
|
|
This work builds upon the excellent research from: |
|
|
- [PANTHER](https://openaccess.thecvf.com/content/CVPR2024/html/Song_Morphological_Prototyping_for_Unsupervised_Slide_Representation_Learning_in_Computational_Pathology_CVPR_2024_paper.html) |
|
|
- [MMP](https://github.com/mahmoodlab/MMP) |
|
|
- [CLAM](https://github.com/mahmoodlab/CLAM) |
|
|
- [PPOT](https://github.com/rhfeiyang/PPOT) |
|
|
|
|
|
<br> |
|
|
|
|
|
## π License |
|
|
|
|
|
This project is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License - see the [LICENSE.md](LICENSE.md) file for details. |
|
|
|
|
|
<br> |
|
|
|
|
|
## π€ Contributing |
|
|
|
|
|
We welcome contributions to **OTSurv**! If you have suggestions, bug reports, or want to add features or experiments, feel free to: |
|
|
|
|
|
- π Submit an issue |
|
|
- π§ Open a pull request |
|
|
- π¬ Start a discussion |
|
|
|
|
|
--- |
|
|
|
|
|
<p align="center"> |
|
|
β <strong>If you find this repository helpful, please consider starring it!</strong> β |
|
|
</p> |