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
| Data | Required | Purpose |
|---|---|---|
| Bulk RNA-seq expression matrix | Yes | Deconvolution, TIDE phenotype, exhaustion scoring |
| Sample metadata with response labels | Yes | Responder/non-responder group comparison |
| TCR/BCR repertoire table | No | Clonotype diversity and clonal expansion analysis |
| Per-cell expression + metadata | No | Cell-cell communication and ligand activity IO hypotheses with condition comparison |
| Clinical endpoints | No | Optional 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.
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.