
A State-of-the-Art Multimodal Survival Prediction Framework
Features β’ Quick Start β’ Documentation β’ Citation
EAGLE is a multimodal deep learning framework designed for survival prediction in cancer patients. By integrating imaging, clinical, and textual data through attention-based fusion, EAGLE provides a survival predictions with interpretability through attribution analysis.
- π State-of-the-Art Performance: Achieves superior C-index scores across multiple cancer types
- π Interpretable AI: Attribution analysis reveals which modalities drive predictions
- β‘ Efficient Architecture: 99.96% dimensionality reduction while maintaining competitive performance
- π₯ Clinical Ready: Designed with healthcare practitioners in mind, providing actionable insights
- π Comprehensive Evaluation: Built-in comparison with traditional survival models (RSF, CoxPH, DeepSurv)
|
|
|
|
- Python 3.8+
- PyTorch 2.0+
- CUDA-capable GPU (recommended)
- 16GB+ RAM
# Clone the repository
git clone https://github.com/lab-rasool/EAGLE.git
cd EAGLE
# Create a virtual environment (recommended)
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Run survival analysis on GBM dataset
python main.py --dataset GBM
# Enable attribution analysis for interpretability
python main.py --dataset NSCLC --comprehensive-attribution
# Run with custom configuration
python main.py --dataset IPMN \
--epochs 150 \
--batch-size 24 \
--lr 5e-5 \
--comprehensive-attribution
# Compare with baseline models
python main.py --mode baseline --dataset GBM
# Run complete analysis (EAGLE + all baselines)
python main.py --mode all --comprehensive-attribution
# Use MedGemma embeddings
python main.py --dataset NSCLC \
--data-path data/NSCLC/medgemma.parquet
from eagle import UnifiedPipeline, GBM_CONFIG, ModelConfig
# Configure model
model_config = ModelConfig(
imaging_encoder_dims=[512, 256, 128],
clinical_encoder_dims=[128, 64, 32],
text_encoder_dims=[256, 128],
fusion_dims=[256, 128, 64],
dropout=0.35,
batch_size=32,
learning_rate=1e-4,
num_epochs=100
)
# Create pipeline
pipeline = UnifiedPipeline(GBM_CONFIG, model_config)
# Run analysis
results, risk_df, stats = pipeline.run(
n_folds=5,
n_risk_groups=3,
enable_attribution=True
)
# Display results
print(f"Mean C-index: {results['mean_cindex']:.4f}")
print(f"Std C-index: {results['std_cindex']:.4f}")
from eagle import ModalityAttributionAnalyzer
# Analyze modality contributions
analyzer = ModalityAttributionAnalyzer(model, dataset)
contributions = analyzer.analyze_cohort()
# Analyze specific patient
patient_attr = analyzer.analyze_patient(patient_idx=42)
print(f"Imaging contribution: {patient_attr['imaging']:.2%}")
print(f"Clinical contribution: {patient_attr['clinical']:.2%}")
print(f"Text contribution: {patient_attr['text']:.2%}")
from eagle import DatasetConfig, UnifiedPipeline
# Define custom dataset configuration
custom_config = DatasetConfig(
name="MyDataset",
data_path="path/to/data.parquet",
imaging_modality="MRI",
imaging_embedding_dim=1000,
clinical_features=["age", "gender", "stage", "biomarker"],
text_columns=["radiology_report", "pathology_report"],
survival_time_col="survival_months",
event_col="status",
patient_col="patient_id"
)
# Run pipeline
pipeline = UnifiedPipeline(custom_config, model_config)
results, risk_df, stats = pipeline.run()
EAGLE/
β
βββ π eagle/ # Core library
β βββ __init__.py # Main API and pipeline
β βββ data.py # Data loading and preprocessing
β βββ models.py # Neural network architectures
β βββ train.py # Training logic
β βββ eval.py # Evaluation and metrics
β βββ attribution.py # Interpretability analysis
β βββ viz.py # Visualization utilities
β
βββ π data/ # Dataset directory
β βββ GBM/ # Glioblastoma data
β βββ IPMN/ # Pancreatic cyst data
β βββ NSCLC/ # Lung cancer data
β
βββ π results/ # Output directory
β βββ [Dataset]/[Timestamp]/ # Experiment results
β
βββ π main.py # CLI interface
βββ π requirements.txt # Dependencies
βββ π README.md # This file
EAGLE supports three cancer datasets out of the box:
Dataset | Cancer Type | Imaging | Key Features |
---|---|---|---|
GBM | Glioblastoma | MRI | MGMT status, age, gender |
IPMN | Pancreatic Cysts | CT | Cyst size, location, morphology |
NSCLC | Lung Cancer | CT | TNM staging, histology, smoking |
βββββββββββββββ ββββββββββββββββ βββββββββββββββ
β Imaging β β Clinical β β Text β
β Embeddings β β Features β β Embeddings β
ββββββββ¬βββββββ ββββββββ¬ββββββββ βββββββ¬ββββββββ
β β β
βΌ βΌ βΌ
βββββββββββββββ ββββββββββββββββ βββββββββββββββ
β Imaging β β Clinical β β Text β
β Encoder β β Encoder β β Encoder β
ββββββββ¬βββββββ ββββββββ¬ββββββββ βββββββ¬ββββββββ
β β β
βββββββββββββββββββββΌββββββββββββββββββββ
β
ββββββββΌβββββββ
β Attention β
β Fusion β
ββββββββ¬βββββββ
β
ββββββββΌβββββββ
β Survival β
β Prediction β
βββββββββββββββ
Each experiment generates a comprehensive set of outputs:
results/[Dataset]/[Timestamp]/
βββ π figures/ # Visualizations
β βββ kaplan_meier_curves.png
β βββ risk_distribution.png
β βββ risk_vs_survival.png
βββ π§ models/ # Trained models
β βββ best_model_fold1.pth
β βββ ...
βββ π results/ # Metrics and predictions
β βββ risk_scores.csv
βββ π attribution/ # Interpretability
β βββ modality_contributions.png
β βββ patient_attribution.csv
βββ π run_info.txt # Experiment configuration
Argument | Description | Default |
---|---|---|
--dataset |
Dataset to use (GBM, IPMN, NSCLC) | Required |
--mode |
Run mode (eagle, baseline, all) | eagle |
--epochs |
Number of training epochs | 200 |
--batch-size |
Batch size for training | 16 |
--lr |
Learning rate | 1e-4 |
--comprehensive-attribution |
Enable attribution analysis | False |
--top-patients |
Number of patients for detailed analysis | 5 |
--output-dir |
Output directory | results/ |
EAGLE has been designed for various research applications:
- π₯ Clinical Decision Support: Risk stratification for treatment planning
- 𧬠Biomarker Discovery: Understanding which features drive outcomes
- π Comparative Studies: Built-in baseline comparisons
- π Interpretable AI Research: Advanced attribution methods
- π― Precision Medicine: Patient-specific risk assessment
We welcome contributions! Please see our Contributing Guidelines for details.
# Install development dependencies
pip install -r requirements-dev.txt
# Run code formatting
black eagle/
isort eagle/
# Run linting
flake8 eagle/
# Run tests (when available)
pytest
For detailed documentation, please visit our Documentation Site.
If you use EAGLE in your research, please cite our paper:
... Pending publication ...
This project is licensed under the MIT License - see the LICENSE file for details.
- Medical imaging embeddings powered by RadImageNet
- Clinical text embeddings via GatorTron
- Multimodal embeddings from MedGemma
Built with β€οΈ for advancing healthcare through interpretable AI
GitHub β’ Documentation β’ Issues β’ Discussions