FULCRUM predicts whether a patient will respond to immune checkpoint inhibitors — and explains why. It measures the balance between two competing dissipative systems: the immune response and the tumour. The structural theory behind it is Generative Geometry — a framework that models any system maintaining itself through energy consumption, from stars to cells to tumours. Because the formula is derived from this theory rather than trained on patient data, it has zero fitted parameters and returns a structural diagnosis, not just a number.
Immune checkpoint inhibitors produce durable remission in 20–30% of patients. The rest experience side effects — sometimes severe — with no clinical benefit. Identifying responders before treatment would reduce unnecessary toxicity, improve trial design, and direct non-responders toward more effective alternatives earlier.
PD-L1 staining is predictive in only 29% of FDA-approved indications. TMB varies wildly. Gene expression signatures (CYT, IFN-γ, GEP) were developed on specific cohorts and fail pan-cancer. TIDE works for melanoma but not lung or bladder. Every model works somewhere and fails somewhere else.
CYT scores how active the immune response is. IFN-γ signature scores how inflamed the tumour is. GEP scores T cell infiltration. None of them ask how fast the tumour is growing. A strong immune response against a slow-growing tumour is a completely different situation from the same response against an aggressive one. The existing scores cannot distinguish them. That is the structural gap FULCRUM fills.
Predicting response is only useful if it changes what happens next. A score that says "this patient will not respond" is not enough — the clinician needs to know why, and what to try instead. If the bottleneck is T cell exhaustion, checkpoint inhibitors may rescue them. If Tregs are dominating, anti-Treg strategies can shift the balance. If the immune system has not recognised the tumour at all, NK cell therapy or oncolytic viruses may be the starting point. FULCRUM was built to provide that level of insight — not to discover new drugs, but to match existing interventions to the specific structural failure in each patient's immune-tumour interaction.
A tumour is a dissipative system: it sustains itself by proliferating, evading detection, and consuming host resources. The immune system is another: it sustains the organism by detecting and eliminating threats. Cancer immunotherapy is the interaction between these two systems.
The structural theory predicts that the outcome of any interaction between two dissipative systems is determined by a ratio: what the agent produces divided by what the target resists. In immunology, that ratio is immune kill rate divided by tumour growth rate. Four effector genes (GZMB, PRF1, IFNG, GZMA) measure the immune system's output. One proliferation marker (MKI67) measures the tumour's output. The ratio tells you which system is winning.
Because the formula follows from the structural theory, there are no parameters to fit. No coefficients learned from data. The formula is identical on every dataset, every cancer type, every platform. This is not a limitation — it is the proof that the derivation works. If the theory is correct, the formula should work without fitting. It does: across 9,966 patients, 33 cancer types, and 13 immunotherapy datasets.
FULCRUM is pre-publication. The paper is in preparation. All code, data, and results are openly available for independent verification. The framework has not yet undergone formal peer review.
Every other prediction model returns a score. FULCRUM returns a report. Because each component of the formula maps to a specific structural position in the dissipative framework, the output tells you not just whether the patient will respond, but where the immune-tumour interaction is failing and what that implies.
When FULCRUM-S ratio inverts on a dataset (AUC below 0.5), the report classifies the tumour-immune interaction as abundance-limited: the immune system's total output is too low to distinguish composition. All populations — including Tregs and exhausted T cells — co-vary with total infiltrate. The bottleneck is immune presence, not quality. In this regime, FULCRUM-S+ still predicts because it learns that high suppression + high exhaustion = high infiltrate = respond.
When the ratio works (AUC above 0.5), the regime is quality-limited: infiltrate is present and the effector-to-suppressor balance determines outcome. FULCRUM-S ratio is directly informative.
This classification is part of every FULCRUM-S report. It tells you not just whether the prediction works, but why — and what to measure next if it does not.
| FULCRUM | FULCRUM-S | FULCRUM-S+ v1 | FULCRUM-S+ v2 | |
|---|---|---|---|---|
| What it is | The base formula | Structural ratio | Foundation model | Foundation + depth |
| Input data | Bulk gene expression 5 genes | scRNA cell fractions 1 ratio from 5 positions | scRNA cell fractions 6 structural features | scRNA cell fractions 7 structural features |
| ML required | None | None | Logistic regression | Logistic regression |
| Parameters fitted | 0 | 0 | 6 per cohort | 7 per cohort |
| Host drain | — | — | — | Inflammatory macrophages |
| Best for | RNA-seq, NanoString, microarray | scRNA, quality-limited cancers | scRNA, any cancer | scRNA with mac subtypes |
| Key result | Pan-cancer HR 0.935 12/12 bulk ICI hi=R | NSCLC 0.780 Melanoma 0.600 | 0.781 / 0.918 / 0.856 | 0.808 / 0.941 7 feat beats 51-feat ML |
TCGA Pan-Cancer Atlas, 9,966 patients, 33 cancer types. Cox proportional hazards, median split. The critical comparison is the last row: remove the MKI67 denominator and the score becomes non-significant. The tumour's dissipative output is the entire structural contribution.
| Score | HR | 95% CI | p-value | Interpretation |
|---|---|---|---|---|
| FULCRUM | 0.935 | 0.903 – 0.969 | 0.000229 | Significantly protective pan-cancer |
| CD8 signature | 0.892 | — | 2.67 × 10⁻¹⁰ | Works — crude proxy for same ratio |
| CYT | 1.029 | — | 0.114 | Not significant |
| IFN-γ | 0.986 | — | 0.442 | Not significant |
| GEP (18-gene) | 1.010 | — | 0.571 | Not significant |
| PD-L1 | 1.048 | — | 0.010 | Significant but wrong direction |
| MKI67 alone | 1.366 | — | 1.7 × 10⁻⁵² | Tumour growth predicts death |
| Effectors without MKI67 | 1.015 | — | 0.402 | Same genes, no denominator → fails |
Strongest single cancer: SKCM (melanoma) HR = 0.686, p = 3.71 × 10⁻⁸.
~1,400 patients across six cancer types, three platforms, both anti-PD-(L)1 and anti-CTLA4. Negative control (sunitinib, no ICI) correctly shows no signal.
| Dataset | n | Cancer | Therapy | AUC | Dir |
|---|---|---|---|---|---|
| Gide 2019 | 91 | Melanoma | PD1±CTLA4 | 0.811 | hi=R |
| Riaz On-tx | 38 | Melanoma | Nivolumab | 0.800 | hi=R |
| Zhang 2025 | 242 | NSCLC | Post-CPI | 0.741 | hi=R |
| Sade-Feldman | 48 | Melanoma | Mixed | 0.740 | hi=R |
| GSE135222 | 27 | NSCLC | Anti-PD1 | 0.714 | hi=R |
| IMmotion150 | 165 | RCC | Atezolizumab | 0.667 | hi=R |
| Van Allen | 42 | Melanoma | Ipilimumab | 0.651 | hi=R |
| Riaz Pre-tx | 33 | Melanoma | Nivolumab | 0.630 | hi=R |
| Rose 2021 | 58 | Urothelial | PD-(L)1 | 0.596 | hi=R |
| IMvigor210 | 298 | Urothelial | Atezolizumab | 0.587 | hi=R |
| GSE93157 | 49 | Mixed | Pembrolizumab | 0.585 | hi=R |
| Hugo 2016 | 27 | Melanoma | Anti-PD1 | 0.533 | hi=R |
| Liu 2019 | 122 | Melanoma | PD1/nivo | 0.530 | hi=R |
In April 2026, FULCRUM was run on the data from EXPRESSO and TIME_ACT — the two largest transcriptomic prediction frameworks for immunotherapy response, both from NCI's Cancer Data Science Laboratory (Ruppin et al.). Same patients, same labels, same cohort definitions. No parameters were adjusted.
EXPRESSO is a supervised LASSO framework trained on 69 cohorts (3,729 patients) using the whole transcriptome with biological priors. Leave-one-cohort-out cross-validation. The largest supervised transcriptomic resource for drug response prediction to date.
FULCRUM uses 5 genes. EXPRESSO uses the whole transcriptome. EXPRESSO requires training on up to 13 cohorts per fold. FULCRUM requires no training. Source: EXPRESSO Zenodo data (10.5281/zenodo.17422273). EXPRESSO paper: bioRxiv 10.1101/2025.10.24.684491v2.
TIME_ACT is an unsupervised 66-gene signature of tumour immune activation. It outperforms 22 established signatures across 15 anti-PD1 cohorts (mean AUC 0.76, OR 6.11). Comparison on the 8 publicly available shared cohorts:
| Cohort | Cancer | n | TIME_ACT | FULCRUM | Winner |
|---|---|---|---|---|---|
| GSE195832 | HNSCC | 20 | 0.790 | 0.933 | FULCRUM +0.143 |
| PRJEB23709 (Gide) | Melanoma | 41 | 0.840 | 0.847 | FULCRUM +0.007 |
| GSE160638 | Melanoma | 28 | 0.820 | 0.839 | FULCRUM +0.019 |
| GSE135222 | NSCLC | 27 | 0.760 | 0.829 | FULCRUM +0.069 |
| GSE159067 | HNSCC | 102 | 0.710 | 0.755 | FULCRUM +0.045 |
| GSE126044 | NSCLC | 16 | 1.000 | 1.000 | Tie |
| PUCH_cohort | Melanoma | 55 | 0.770 | 0.744 | TIME_ACT -0.026 |
| GSE91061 (Riaz) | Melanoma | 49 | 0.660 | 0.649 | TIME_ACT -0.011 |
| Mean | 0.794 | 0.825 | FULCRUM +0.031 |
FULCRUM wins 5 of 8 cohorts. TIME_ACT uses 66 genes (ssGSEA). FULCRUM uses 5 genes (log-ratio). 7 additional TIME_ACT cohorts require dbGaP access and could not be compared. TIME_ACT paper: bioRxiv 10.1101/2025.06.27.661875v2.
Same patients. Same cross-validation folds. Same random seed. Repeated stratified 5-fold CV, 200 repeats. FULCRUM-S+ v1 uses 6 features, v2 adds host Conservation drain as a 7th. Full ML uses all available cell types per dataset (16 to 51). v2 beats full ML on both quality-limited datasets.
Two measurements per patient. No machine learning. Outperforms oncologist clinical estimates (0.72) and PD-L1 staining (0.64) on the Zhang NSCLC cohort.
| Dataset | n | Cancer | AUC | vs. Oncologist | vs. PD-L1 |
|---|---|---|---|---|---|
| Zhang 2025 | 159 | NSCLC | 0.808 | 0.72 | 0.64 |
| Sade-Feldman | 19 | Melanoma | 0.889 | — | — |
| Yost 2019 | 11 | BCC | 0.767 | — | — |
| Model | Approach | Data needed | Params | Transfers | Explains result | Cost |
|---|---|---|---|---|---|---|
| FULCRUM | Structural theory | 5 genes | 0 | 33 types | Yes — profile + regime + bottleneck | Free |
| SCORPIO | ML, clinical | Blood panel | ~1000s | 21 types | No | Blood test |
| LORIS | LR, clinical | Labs + TMB | 6 | 18 types | No | Sequencing |
| COMPASS | Deep learning | RNA-seq | ~100K | Fine-tuning | No | RNA-seq + compute |
| TIDE | Interaction test | RNA-seq | fitted | Melanoma | No | Free |
| CYT | 2-gene mean | 2 genes | 0 | Fails pan-cancer | No | Free |
| PD-L1 | Protein stain | Biopsy | 0 | 29% of indications | No | Lab + pathologist |
| TMB | Mutation count | WES/panel | 0 | Variable | No | $300–5000 |
SCORPIO, LORIS, and FULCRUM all predict immunotherapy response. SCORPIO and LORIS use routine clinical data — no biopsy needed — which is a practical advantage. FULCRUM requires gene expression data but tells you where the immune-tumour interaction is failing and what intervention might address it. The difference is not what they predict, but what you learn when the prediction is made.
Three report functions: report_bulk(), report_scrna(), report_patient(). Returns structured diagnoses, not just scores. No dependencies beyond numpy.
Jupyter notebooks reproducing every result on this page. TCGA survival, 13 bulk datasets, 3 scRNA head-to-heads, patient-level prediction.
Precomputed FULCRUM reports for all public datasets. TCGA (9,966 patients). Three scRNA cohorts. Ready for your analysis.
Head-to-head scripts. Run FULCRUM against CYT, IFN-γ, GEP, TIDE, PD-L1, TMB on any expression dataset. One command, full benchmark.