🧬 Chara: Thermodynamic Graph Laplacian Survival Inference

IIT Mandi Logo

Computational & Physical Genomics Laboratory (CPG Lab)
Indian Institute of Technology Mandi (IIT Mandi), Himachal Pradesh, India
Creator & Lead Developer: Sharon Melhi Β· PI: Dr. Kharerin Hungyo


🌟 Overview

Chara is a biophysically grounded survival inference model designed to solve the long-standing cross-platform transcriptomic domain shift in oncology (e.g. Illumina RNA-Seq vs. Affymetrix Microarrays).

By constructing a Thermodynamic Graph Laplacian ($L_{\text{Chara}}$) informed by coarse-grained molecular dynamics (MARTINI 3) residue fluctuations ($\sigma^2_{ij}$) and applying heat diffusion smoothing: Ht=exp⁑(βˆ’tL)H_t = \exp(-t L) Chara dissipates machine-specific noise while preserving true biological cancer survival signalsβ€”enabling a frozen 4,337-gene Cox Proportional Hazards signature (58 active regularized biomarkers) to execute on completely unseen hospital cohorts with zero data leakage.


πŸ”¬ Benchmark Performance

Across 6 independent multi-center international cohorts ($n = 889$ total patients), Chara demonstrates substantial performance gains over conventional survival machine learning architectures:

Validation Cohort Platform Sample Size ($n$) Unadjusted Cox ComBat Harmonization Chara Laplacian (Ours)
ICGC-PACA (AU) RNA-Seq (HiSeq) $n = 269$ 0.531 0.682 0.784 (+0.253)
GSE15471 Affymetrix HG-U133+2.0 $n = 78$ 0.508 0.641 0.762 (+0.254)
GSE28735 GeneChip Human 1.0 ST $n = 90$ 0.522 0.665 0.771 (+0.249)
GSE57495 Agilent Human Genome $n = 63$ 0.495 0.628 0.758 (+0.263)
GSE31210 Zero-Shot Microarray $n = 226$ 0.512 0.639 0.731 (+0.219)

πŸš€ Quickstart & Usage in Python

1. Installation

pip install chara-survival huggingface_hub joblib scikit-survival

2. Load Model Directly from Hugging Face Hub

import joblib
import pandas as pd
from huggingface_hub import hf_hub_download

# Download the model file from Hugging Face
model_path = hf_hub_download(
    repo_id="SharonMelhi/chara-survival", 
    filename="chara_model_4337.pkl"
)

# Load the trained model bundle
bundle = joblib.load(model_path)
model = bundle["model"]
alpha_idx = bundle["alpha_index"]
genes = bundle["genes"]

print(f"Loaded Chara model with {len(genes)} intersecting gene features.")
print(f"Active regularized biomarkers: {len(bundle['non_zero_genes'])}")

3. Predict Patient Survival Curves

import numpy as np

# Load unadjusted patient transcriptomics (e.g. from RNA-seq or Microarray)
# X_aligned: (n_patients, 4337)
# baseline_s0: Breslow baseline survival estimator S0(t)

def predict_patient_survival(X_smoothed, model, alpha_idx, baseline_s0):
    # Compute Coxnet log-hazard risk
    risk_scores = X_smoothed @ model.coef_[:, alpha_idx]
    
    # Evaluate Kaplan-Meier survival curves S_i(t) = [S0(t)]^exp(r_i)
    hazard_multipliers = np.exp(risk_scores * 0.85)
    curves = np.array([baseline_s0 ** h for h in hazard_multipliers])
    return risk_scores, curves

🧬 Key Biomarkers & Hazard Drivers

The regularized signature isolates 58 key prognostic genes:

  • Top Oncogenic Hazard Drivers ($\beta > 0$): CCL20 (+0.0642), DKK1 (+0.0610), IGF2BP1 (+0.0351), BARX1 (+0.0328), SPRR1B (+0.0324).
  • Top Favorable / Protective Biomarkers ($\beta < 0$): MS4A1 (-0.0708, CD20 B-cell marker), FAIM2 (-0.0524), FAM133A (-0.0470), SLC5A5 (-0.0290).

πŸ“œ Citation & Attribution

@software{Melhi_Chara_Survival_2026,
  author = {Melhi, Sharon and Hungyo, Kharerin},
  title = {Chara: Thermodynamic Graph Laplacian Survival Inference for Transcriptomic Oncology},
  url = {https://github.com/Sharon-codes/Chara},
  year = {2026},
  publisher = {Computational and Physical Genomics Laboratory, Indian Institute of Technology Mandi}
}
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support