File size: 7,007 Bytes
1dcc206 95c6b3a 1dcc206 95c6b3a 1dcc206 95c6b3a 1dcc206 756f91c 1dcc206 95c6b3a 1dcc206 95c6b3a 1dcc206 95c6b3a 1dcc206 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 |
---
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> |