How sinatabakhi/magnet works
MAGNET classifies cancer subtypes from multimodal patient data when some modalities are missing. The workflow preprocesses TCGA data, creates paired/unpaired train-validation-test splits with training-only feature selection, then loads each split, encodes modalities, attends across available modalities, and classifies patients on a similarity graph. Inference evaluates and saves results; a separate Ray Tune workflow searches hyperparameters. Preprocessing details and some runtime behavior are documented but not sampled, so those links are shown only where the README supports them.
Main entry points: main_inference.py Inference runner · main_tune.py Tuning runner · trainer.py MAGNET training · dataloader.py Multimodal dataset
Components 17
Data preparation
- TCGA preprocessing
preprocess/tcga_preprocessing.ipynb - Split and select
main_data_split.py - Feature selection
preprocess/feature_selection.py - Prepared splits
data/split_data
Training and inference
- Configuration
configs/config.py - Inference runner
main_inference.py - Tuning runner
main_tune.py
MAGNET model
- Multimodal dataset
dataloader/dataloader.py - Data and metrics utilities
utils.py - Modality encoders
model/base_models.py - Patient-modality attention
model/base_models.py - Graph decoder
model/base_models.py - MAGNET training
trainer/trainer.py
Experiment outputs
- Metrics and plots
utils.py
Other components
- TCGA data
- Ray Tune
- Comet ML
Connections 27
- TCGA data → TCGA preprocessing: provides data
README.md - TCGA preprocessing → Split and select: prepares inputs
README.md - Split and select → Feature selection: selects features
main_data_split.py - Split and select → Prepared splits: writes splits
main_data_split.py - Inference runner → Configuration: loads defaults
main_inference.py - Tuning runner → Configuration: loads defaults
main_tune.py - Inference runner → Prepared splits: loads split path
- Tuning runner → Prepared splits: loads split path
- Inference runner → Multimodal dataset: constructs dataset
main_inference.py - Tuning runner → Multimodal dataset: constructs dataset
main_tune.py - Multimodal dataset → Data and metrics utilities: loads and aligns data
dataloader/dataloader.py - Inference runner → Modality encoders: builds encoders
main_inference.py - Inference runner → Patient-modality attention: builds attention
main_inference.py - Inference runner → Graph decoder: builds decoder
main_inference.py - Inference runner → MAGNET training: constructs trainer
main_inference.py - Tuning runner → Modality encoders: builds encoders
main_tune.py - Tuning runner → Patient-modality attention: builds attention
main_tune.py - Tuning runner → Graph decoder: builds decoder
main_tune.py - Tuning runner → MAGNET training: constructs trainer
main_tune.py - MAGNET training → Multimodal dataset: builds graph data
trainer/trainer.py - MAGNET training → Modality encoders: encodes modalities
trainer/trainer.py - MAGNET training → Patient-modality attention: fuses embeddings
trainer/trainer.py - MAGNET training → Graph decoder: classifies graph
trainer/trainer.py - Inference runner → Data and metrics utilities: saves and plots results
main_inference.py - Tuning runner → Ray Tune: runs search
main_tune.py - Inference runner → Comet ML: logs experiments
README.md - Tuning runner → Comet ML: logs experiments
README.md