Skip to main content
IIT Mandi

Chara Survival

Thermodynamic Graph Laplacian Survival Inference for Transcriptomic Oncology

PyPI version Hugging Face Python Web App License: MIT IIT Mandi

A frozen 4,337-gene thermodynamic intersection signature that transfers across sequencing platforms — zero retraining required.


🌟 The Problem

Standard survival models — Cox proportional hazards, Random Survival Forests, DeepSurv — are trained on RNA-seq cohorts (typically TCGA) and collapse catastrophically when applied to microarray data (GEO). The cause is structural: uncorrected platform variance and feature distribution shift corrupt the learned risk landscape. The concordance index, already noisy at 0.50–0.55 on in-distribution data, degrades to random or sub-random when the platform changes.

This failure is not a modelling artefact. It is a physical problem — raw transcript counts do not encode the molecular interaction topology that determines biological function. Chara corrects this at the feature level, before training even begins.

💡 The Solution

Chara grounds gene expression features in thermodynamic graph Laplacians derived from MARTINI 3 coarse-grained molecular dynamics (MD) simulations. Specifically:

  1. MARTINI 3 MD trajectories are run for key oncogenic protein systems (KRAS, CMYC/MAX, PTPN11, MUT-TP53) across biological replicates.
  2. Exponential heat kernels are computed from the symmetrised graph Laplacian of the STRING protein–protein interaction network, weighted by MD-derived edge variances via the Chara exponential operator: $$W_{\text{Chara}}(i, j) = W_{\text{STRING}}(i, j) \cdot \exp\left(\tau \cdot Z(\sigma^2_{ij})\right)$$
  3. The resulting thermodynamic Laplacian representation produces a platform-invariant feature space via spectral heat diffusion $H_t = \exp(-tL)$ — the spectral geometry of molecular interaction rather than raw transcript abundance.
  4. A frozen CoxNet trained on TCGA-LUAD using these 4,337 thermodynamically-stabilised features (58 active regularized biomarkers) is applied directly to unseen cohorts without fine-tuning.

The result is a model that generalises across the RNA-seq ↔ microarray boundary as a matter of physical principle, not statistical luck.


🔬 Benchmark Performance

Evaluated zero-shot on GSE31210 (Affymetrix Human Genome U133 Plus 2.0, n = 226, completely held-out lung adenocarcinoma microarray cohort — never seen during training):

Model OOD C-Index 1-Year AUC 3-Year AUC 5-Year AUC
Clinical Cox-PH (Age, Gender, Stage) 0.5000 0.5000 0.5000 0.5000
Random Survival Forest (RSF) 0.4041 0.4175 0.3657 0.4842
Elastic Net Coxnet (Raw 5,200 genes) 0.5248 0.4664 0.4081 0.2428
DeepSurv (Deep Neural Network) 0.5537 0.5465 0.3937 0.3122
Chara (Thermodynamic Laplacian) 0.7311 0.7463 0.7826 0.8195

Chara achieves a +0.267 absolute improvement in OOD C-index over the next-best deep learning baseline, with monotonically improving time-horizon AUC — an unusual and clinically meaningful signature of robust calibration rather than threshold overfitting.


🚀 Quickstart: Python Package

Installation

pip install --upgrade chara-survival

1-Line Python Inference (Auto-Downloads from Hugging Face Hub)

import pandas as pd
import chara

# 1. Load the frozen pretrained model (auto-fetches from Hugging Face Hub if needed)
model = chara.load_model()

# 2. Ingest your patient cohort CSV (Rows: Samples, Columns: HGNC Gene Symbols)
df = pd.read_csv("patient_expression.csv", index_col=0)

# 3. Predict full Kaplan-Meier survival curves & patient hazard risk scores
curves, times, risk_scores = model.predict_survival_curves(df)

print(f"Evaluated {len(df)} patients across {len(times)} months.")
print(f"Mean Risk: {risk_scores.mean():.4f} | 5-Year Survival: {curves[:, 60].mean() * 100:.1f}%")

Load Directly from Hugging Face Hub

from huggingface_hub import hf_hub_download
import joblib

model_path = hf_hub_download(repo_id="SharonMelhi/chara-survival", filename="chara_model_4337.pkl")
bundle = joblib.load(model_path)
print(f"Loaded Chara bundle with {len(bundle['genes'])} features and {len(bundle['non_zero_genes'])} biomarkers.")

🌐 Interactive Web Portal & Comparison Sandbox

Try the live, zero-install interactive inference suite and multi-model benchmark sandbox:

👉 https://chara-frontend.vercel.app


🧬 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

@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}
}

👥 Authors & Lab

Dr. Kharerin Hungyo
Dr. Kharerin Hungyo
Principal Investigator
Computational & Physical Genomics Lab
Indian Institute of Technology Mandi

kharerin@iitmandi.ac.in
Sharon Melhi
Sharon Melhi
Computational Biologist
Creator, Chara Survival

LinkedIn · Email

Special thanks to Khushi Mhamane for her constant encouragement, thoughtful discussions, and belief in this research from its earliest stages. — Sharon Melhi


📄 License

Released under the MIT License. © 2026 Sharon Melhi.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

chara_survival-0.1.9.tar.gz (10.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

chara_survival-0.1.9-py3-none-any.whl (9.5 kB view details)

Uploaded Python 3

File details

Details for the file chara_survival-0.1.9.tar.gz.

File metadata

  • Download URL: chara_survival-0.1.9.tar.gz
  • Upload date:
  • Size: 10.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.3

File hashes

Hashes for chara_survival-0.1.9.tar.gz
Algorithm Hash digest
SHA256 0322b4b626dcf614fa53bab40f35a0ade202671927104b4308bdb2a1ce3bcefc
MD5 e87f6b476ed1bc3fa7c4bdb9d5bb9a20
BLAKE2b-256 a8e8483e2e8239918eb30bfebb417a94dd0aa4cc868199b5ce26a7278ff91483

See more details on using hashes here.

File details

Details for the file chara_survival-0.1.9-py3-none-any.whl.

File metadata

  • Download URL: chara_survival-0.1.9-py3-none-any.whl
  • Upload date:
  • Size: 9.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.3

File hashes

Hashes for chara_survival-0.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 b435b23b23f96b22174376989f4fa8e2d18468fe19f7c27f695a1a5dfb0acbdb
MD5 dcbdcfdceda451b306de07869c1c349c
BLAKE2b-256 500abed72f0bb8d01a0e64537398d9a10cc0c58b87d0b30b03c533686c326172

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.9 This release

2 files

0.1.8

2 files

0.1.7

2 files

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page