GeometryAgentsSystemsHuman BodyFULCRUMThe Article
Research
ArticlesEvidencePapersResearch Briefs
Tools
L7 Tools

The first immunotherapy prediction framework derived from structural theory

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.

Zero fitted parameters
Returns a diagnosis, not just a score
Open source
Get FULCRUM on GitHub → Score your cohort →
Install: pip install git+https://github.com/raimovanderklein/fulcrum-score.git · Every result on this page is reproducible from public data.
7 structurally derived features outperform 51-feature machine learning across four cancer types — with zero fitted parameters.
FULCRUM-S+ v2 adds one structural insight: the patient's body maintains the tissue where the fight happens, and that maintenance interferes with the immune attack. Inflammatory macrophages at the encounter site — measurable in scRNA — are the mechanism. Same formula. One additional term. Zero additional parameters.
0.808
NSCLC (n=242) · v2 · beats ML 0.746
0.941
Melanoma (n=19) · v2 · beats ML 0.933
9,966
Pan-cancer survival p=0.0002
4 / 4
Cancer types · v2 direction positive
Why we built FULCRUM
70–80% of patients treated with checkpoint inhibitors do not respond

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.

The biomarkers that exist do not transfer across cancer types

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.

Every published score measures the immune system but ignores the tumour

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.

The goal is better treatment, not just better prediction

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.

score = Σ log₂(effectors) − log₂(MKI67)
Immune kill rate divided by tumour growth rate. Four effector genes (GZMB, PRF1, IFNG, GZMA) minus one proliferation marker (MKI67). High score means the immune system is outpacing the tumour.
Instantiation of the universal formula: Meff = M × (1−D) / (1+D)
How FULCRUM works
A framework built from the structural theory of dissipative systems

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.

What FULCRUM returns
A structural diagnosis, not just a number

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.

Example: bulk expression report
from fulcrum import report_bulk r = report_bulk( gzmb=5.2, prf1=4.8, ifng=3.1, gzma=5.5, mki67=4.9 )
FULCRUM Report
Prediction: likely responder
13.7
BalanceImmune system is outpacing the tumour
Strongest effectorGZMA (5.5)
Weakest effectorIFNG (3.1) — below average
Tumour aggressionMKI67 moderate (4.9)
Immune outputTumour output
Interpretation: Immune output is led by GZMA. IFNG is below average — this effector pathway may be underperforming. Tumour aggression is moderate. The balance favours the immune system.
Example: scRNA structural report
from fulcrum import report_scrna r = report_scrna(cell_fractions)
FULCRUM-S Report
Regime: quality-limited
0.594
Detection (NK cells)0.045
Kill capacity (effector T cells)0.130
Exhaustion (dysfunctional T cells)0.070
Suppression (Tregs)0.110
Renewal (memory / naive T cells)0.090
Primary bottleneck: Suppression exceeds kill capacity — Tregs are dominating. Therapeutic direction: Anti-Treg strategies (anti-CCR8, low-dose cyclophosphamide) may shift the balance.
Regime diagnosis: why a biomarker fails in your cancer type

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.

Three levels of resolution
Use the simplest model that fits your data
FULCRUMFULCRUM-SFULCRUM-S+ v1FULCRUM-S+ v2
What it isThe base formulaStructural ratioFoundation modelFoundation + depth
Input dataBulk 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 requiredNoneNoneLogistic regressionLogistic regression
Parameters fitted006 per cohort7 per cohort
Host drainInflammatory macrophages
Best forRNA-seq, NanoString, microarrayscRNA, quality-limited cancersscRNA, any cancerscRNA with mac subtypes
Key resultPan-cancer HR 0.935
12/12 bulk ICI hi=R
NSCLC 0.780
Melanoma 0.600
0.781 / 0.918 / 0.8560.808 / 0.941
7 feat beats 51-feat ML
Validation
The only immune score that predicts survival pan-cancer

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.

ScoreHR95% CIp-valueInterpretation
FULCRUM0.9350.903 – 0.9690.000229Significantly protective pan-cancer
CD8 signature0.8922.67 × 10⁻¹⁰Works — crude proxy for same ratio
CYT1.0290.114Not significant
IFN-γ0.9860.442Not significant
GEP (18-gene)1.0100.571Not significant
PD-L11.0480.010Significant but wrong direction
MKI67 alone1.3661.7 × 10⁻⁵²Tumour growth predicts death
Effectors without MKI671.0150.402Same genes, no denominator → fails

Strongest single cancer: SKCM (melanoma) HR = 0.686, p = 3.71 × 10⁻⁸.

Immunotherapy response
Correct direction on 12 of 13 ICI datasets

~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.

DatasetnCancerTherapyAUCDir
Gide 201991MelanomaPD1±CTLA40.811hi=R
Riaz On-tx38MelanomaNivolumab0.800hi=R
Zhang 2025242NSCLCPost-CPI0.741hi=R
Sade-Feldman48MelanomaMixed0.740hi=R
GSE13522227NSCLCAnti-PD10.714hi=R
IMmotion150165RCCAtezolizumab0.667hi=R
Van Allen42MelanomaIpilimumab0.651hi=R
Riaz Pre-tx33MelanomaNivolumab0.630hi=R
Rose 202158UrothelialPD-(L)10.596hi=R
IMvigor210298UrothelialAtezolizumab0.587hi=R
GSE9315749MixedPembrolizumab0.585hi=R
Hugo 201627MelanomaAnti-PD10.533hi=R
Liu 2019122MelanomaPD1/nivo0.530hi=R
Head-to-head
Tested on the same patients as the state of the art

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.

vs EXPRESSO (Pal, Ruppin et al. 2025)

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.

ICB-melanoma (8 cohorts, 311 patients)
FULCRUM
0.710
EXPRESSO-B
0.710
ICB non-melanoma (7 cohorts, 350 patients)
FULCRUM
0.768
EXPRESSO-T
0.720

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.

vs TIME_ACT (Mukherjee, Ruppin et al. 2025)

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:

CohortCancernTIME_ACTFULCRUMWinner
GSE195832HNSCC200.7900.933FULCRUM +0.143
PRJEB23709 (Gide)Melanoma410.8400.847FULCRUM +0.007
GSE160638Melanoma280.8200.839FULCRUM +0.019
GSE135222NSCLC270.7600.829FULCRUM +0.069
GSE159067HNSCC1020.7100.755FULCRUM +0.045
GSE126044NSCLC161.0001.000Tie
PUCH_cohortMelanoma550.7700.744TIME_ACT -0.026
GSE91061 (Riaz)Melanoma490.6600.649TIME_ACT -0.011
Mean0.7940.825FULCRUM +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.

Single-cell validation
7 structural features beat 51-feature machine learning

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.

Zhang — NSCLC (n=242)
S+ v2 (7 feat)
0.808
S+ v1 (6 feat)
0.781
Full ML (51)
0.746
CYT
0.513
Sade-Feldman — Melanoma (n=19)
S+ v2 (7 feat)
0.941
S+ v1 (6 feat)
0.918
Full ML (30)
0.933
CYT
0.156
Bassez — Breast cancer (n=29, abundance-limited)
S+ v1 (6 feat)
0.856
Full ML (16)
0.843
T cell frac
0.772
FULCRUM-S
0.089
Patient-level
Predicts individual response with two cell measurements, no ML

Two measurements per patient. No machine learning. Outperforms oncologist clinical estimates (0.72) and PD-L1 staining (0.64) on the Zhang NSCLC cohort.

DatasetnCancerAUCvs. Oncologistvs. PD-L1
Zhang 2025159NSCLC0.8080.720.64
Sade-Feldman19Melanoma0.889
Yost 201911BCC0.767
Landscape
How FULCRUM compares
ModelApproachData neededParamsTransfersExplains resultCost
FULCRUMStructural theory5 genes033 typesYes — profile + regime + bottleneckFree
SCORPIOML, clinicalBlood panel~1000s21 typesNoBlood test
LORISLR, clinicalLabs + TMB618 typesNoSequencing
COMPASSDeep learningRNA-seq~100KFine-tuningNoRNA-seq + compute
TIDEInteraction testRNA-seqfittedMelanomaNoFree
CYT2-gene mean2 genes0Fails pan-cancerNoFree
PD-L1Protein stainBiopsy029% of indicationsNoLab + pathologist
TMBMutation countWES/panel0VariableNo$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.

Download
Everything is open

fulcrum.py

Three report functions: report_bulk(), report_scrna(), report_patient(). Returns structured diagnoses, not just scores. No dependencies beyond numpy.

notebooks/

Jupyter notebooks reproducing every result on this page. TCGA survival, 13 bulk datasets, 3 scRNA head-to-heads, patient-level prediction.

data/

Precomputed FULCRUM reports for all public datasets. TCGA (9,966 patients). Three scRNA cohorts. Ready for your analysis.

validation/

Head-to-head scripts. Run FULCRUM against CYT, IFN-γ, GEP, TIDE, PD-L1, TMB on any expression dataset. One command, full benchmark.

Changelog
Version history
v15April 2026 — current
FULCRUM-S v2: host Conservation drain. The patient's tissue maintenance interferes with the encounter — measurable as inflammatory macrophages (CXCL10, DNAJB1, ISG15, MKI67). 7 features beat 51-feature ML on NSCLC (0.808 vs 0.746) and melanoma (0.941 vs 0.933). Validated on 4 cancer types. External bulk validation: GSE207422 NSCLC AUC 0.822.
v14April 2026
Renamed DISARM → FULCRUM. Report functions added. TCGA pan-cancer survival (n=9,966). Bassez breast cancer (3rd scRNA dataset). Head-to-head table complete. Regime diagnosis formalised.
v13March 2026
DISARM-S architecture. Renewal (TCF7) confirmed at scRNA resolution. Anti-CTLA4 validated. 14 datasets, ~1,400 patients.
v12March 2026
Foundation model. 6 structural features match 51-feature ML on Zhang NSCLC.
v11February 2026
Universal formula: effector/MKI67. Zero fitted parameters. Validated on IMvigor210.
v10February 2026
Patient-level prediction. Meff = M×(1−D)/(1+D)×(1+S). AUC 0.808 on Zhang NSCLC.
Citation
van der Klein, R. (2026). FULCRUM: Predicting immunotherapy response from the structural theory of dissipative systems. Generative Geometry. DOI: 10.5281/zenodo.19399587 @article{vanderklein2026fulcrum, author = {van der Klein, Raimo}, title = {FULCRUM: Predicting immunotherapy response from the structural theory of dissipative systems}, year = {2026}, doi = {10.5281/zenodo.19399587} }