Gradient Biotech

Immuno-oncology response

Stratify checkpoint inhibitor cohorts by immune phenotype, exhaustion state, and signaling patterns to understand responder vs. non-responder biology.

Research question

Why do some patients respond to anti-PD-1 / anti-PD-L1 therapy while others do not? Which immune features — infiltration, exclusion, exhaustion, repertoire diversity — best separate response groups?

Who this is for

  • Immuno-oncology labs studying checkpoint blockade, CAR-T, and T-cell exhaustion
  • Translational teams correlating IO response with transcriptomic and repertoire data
  • Pharma biomarker groups building immunotherapy stratification signatures

Data requirements

DataRequiredPurpose
Bulk RNA-seq expression matrixYesDeconvolution, TIDE phenotype, exhaustion scoring
Sample metadata with response labelsYesResponder/non-responder group comparison
TCR/BCR repertoire tableNoClonotype diversity and clonal expansion analysis
Per-cell expression + metadataNoCell-cell communication and ligand activity IO hypotheses with condition comparison
Clinical endpointsNoOptional survival follow-up by immune phenotype

Register samples with group_label or response_status fields before launching pipelines.

Workflow

Register samples with response labels
  → Immune profile (deconvolution, TIDE, exhaustion)
  → Cell-cell communication (optional, with condition comparison)
  → Ligand activity IO hypotheses (optional, for ligand-target mechanisms)
  → Survival stratified by immune phenotype (optional)
  → AI interpretation

Step 1 — Immune profiling

Launch Run immune profile on the Immune page with bulk expression from pre-treatment or on-treatment biopsies (and optional TCR/BCR repertoire data).

Review deconvolution fractions, TIDE-like phenotype labels (inflamed / excluded / desert), exhaustion scores, and repertoire diversity on the Immune page.

Step 2 — Signaling comparison (optional)

When single-cell data is available, run cell-cell communication with the condition column set to response group. Compare immunosuppressive vs. co-stimulatory axes between responders and non-responders.

See Cell-cell communication.

Step 3 — Ligand-to-target hypotheses (optional)

Run oncology ligand activity inference with IO target presets such as exhaustion, interferon response, antigen presentation, suppression, and cytotoxicity. This is a Python-native port of the NicheNet method against NicheNet's own regulatory-potential prior model — ligands are ranked by AUPR-corrected/Pearson activity with permutation significance, not by raw expression — prioritizing tumor, stromal, myeloid, or endothelial ligands that may explain receiver immune target programs in responder/non-responder or pre/post treatment comparisons.

Step 4 — Outcome correlation (optional)

Export immune phenotype labels or exhaustion scores as a feature matrix and stratify survival analysis by treatment arm or immune subgroup.

See Survival analysis.

Step 5 — Interpretation

Launch interpretation with immune profile (and communication) run IDs for a grounded summary of IO-relevant findings.

Expected outputs

  • Per-sample immune cell fractions and TIDE phenotype classification
  • Exhaustion gene program scores and checkpoint target expression landscape
  • TCR/BCR diversity metrics and top expanded clonotypes (when repertoire provided)
  • Condition-comparison deltas for dominant ligand-receptor axes (when communication run included)
  • Ligand activity rankings with significance (AUPR-corrected, Pearson, p/q-value) and ligand-receptor-target chains for IO target programs
  • AI narrative connecting immune phenotype to therapy response hypotheses

Example insight

The non-responder cohort shows a significantly higher proportion of terminally exhausted CD8 T-cells with suppressive LGALS9-HAVCR2 signaling as the dominant ligand-receptor axis — consistent with immune exclusion and reduced immunotherapy responsiveness.

Related guides