Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Predict patient response to immune checkpoint inhibitors (ICIs) by integrating tumor mutational burden (TMB), microsatellite instability (MSI), PD-L1 expression, HLA status, and immune-related gene expression. Outputs ICI Response Score with drug-specific recommendations and resistance-risk assessment. Use for melanoma/NSCLC/RCC immunotherapy decision support.
.claude/skills/mims-harvard-tooluniverse-immunotherapy-response-prediction/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-12 | ✗→✓ | ▲ Improved | 105% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 305% | 0% |
| case-19 | ✗→✓ | ▲ Improved | 80% | 0% |
| case-22 | ✓→✗ | ▼ Worse | 71% | 0% |
| case-20 | ✓→✗ | ▼ Worse | 97% | 0% |
Predict patient response to immune checkpoint inhibitors (ICIs) using multi-biomarker integration. Transforms a patient tumor profile (cancer type + mutations + biomarkers) into a quantitative ICI Response Score with drug-specific recommendations, resistance risk assessment, and monitoring plan.
Not all tumors respond to checkpoint inhibitors. Reason through the biology before running tools:
Before calling any tool, determine which biomarkers are available for this patient and which are unknown. This determines which phases can be scored with data vs. must use cancer-type priors. Do not default to "moderate" for unknowns — flag them explicitly as missing.
LOOK UP DON'T GUESS: Never assume FDA approval for a biomarker-ICI combination — always verify with fda_pharmacogenomic_biomarkers or FDA_get_indications_by_drug_name. Cancer-specific thresholds differ from pan-cancer approvals.
KEY PRINCIPLES:
When analysis requires computation (statistics, data processing, scoring, enrichment), write and run Python code via Bash. Don't describe what you would do — execute it and report actual results. Use ToolUniverse tools to retrieve data, then Python (pandas, scipy, statsmodels, matplotlib) to analyze it.
Apply when user asks:
Required: Cancer type + at least one of: mutation list OR TMB value Optional: PD-L1 expression, MSI status, immune infiltration data, HLA type, prior treatments, intended ICI
See INPUT_REFERENCE.md for input format examples, cancer type normalization, and gene symbol normalization tables.
Input: Cancer type + Mutations/TMB + Optional biomarkers (PD-L1, MSI, etc.)
Phase 1: Input Standardization & Cancer Context
Phase 2: TMB Analysis
Phase 3: Neoantigen Analysis
Phase 4: MSI/MMR Status Assessment
Phase 5: PD-L1 Expression Analysis
Phase 6: Immune Microenvironment Profiling
Phase 7: Mutation-Based Predictors
Phase 8: Clinical Evidence & ICI Options
Phase 9: Resistance Risk Assessment
Phase 10: Multi-Biomarker Score Integration
Phase 11: Clinical RecommendationsOpenTargets_get_disease_id_description_by_name{gene, variant, type}MyGene_query_genesfda_pharmacogenomic_biomarkers(drug_name='pembrolizumab')UniProt_get_function_by_accessioniedb_search_epitopesfda_pharmacogenomic_biomarkers(biomarker='Microsatellite Instability')HPA_get_cancer_prognostics_by_gene(gene_name='CD274')enrichr_gene_enrichment_analysisFDA_get_indications_by_drug_namesearch_clinical_trials (params: condition, intervention, query_term)OpenTargets_get_drug_mechanisms_of_action_by_chemblIdSee SCORING_TABLES.md for ICI drug profiles and ChEMBL IDs.
civic_search_evidence_itemsTOTAL SCORE = TMB_score + MSI_score + PDL1_score + Neoantigen_score + Mutation_bonus + Resistance_penalty
TMB_score: 5-30 points MSI_score: 5-25 points
PDL1_score: 5-20 points Neoantigen_score: 5-15 points
Mutation_bonus: 0-10 points Resistance_penalty: -20 to 0 points
Floor: 0, Cap: 100Response Likelihood Tiers:
Confidence: HIGH (all 4 biomarkers), MODERATE-HIGH (3/4), MODERATE (2/4), LOW (1), VERY LOW (cancer only)
Save as immunotherapy_response_prediction_{cancer_type}.md. See REPORT_TEMPLATE.md for the full report structure.
BEFORE calling ANY tool, verify parameters. See TOOLS_REFERENCE.md for verified tool parameters table.
Key reminders:
MyGene_query_genes: use query (NOT q)EnsemblVEP_annotate_rsid: use variant_id (NOT rsid)drugbank_* tools: ALL 4 params required (query, case_sensitive, exact_match, limit)cBioPortal_get_mutations: gene_list is a STRING not arrayensembl_lookup_gene: REQUIRES species='homo_sapiens'| Tier | Description | Source Examples | |------|-------------|----------------| | T1 | FDA-approved biomarker/indication | FDA labels, NCCN guidelines | | T2 | Phase 2-3 clinical trial evidence | Published trial data, PubMed | | T3 | Preclinical/computational evidence | Pathway analysis, in vitro data | | T4 | Expert opinion/case reports | Case series, reviews |
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 17,573 | 9,570 | -46% | 1 | 1 | 0% | 3,719 | 3,747 | +1% | 0 | 0 | — |
case-02 | fail→fail | 16,078 | 37,608 | +134% | 1 | 1 | 0% | 3,401 | 3,562 | +5% | 0 | 0 | — |
case-03 | fail→fail | 19,612 | 8,353 | -57% | 1 | 1 | 0% | 3,566 | 3,484 | -2% | 0 | 0 | — |
case-04 | fail→fail | 15,560 | 6,475 | -58% | 1 | 1 | 0% | 3,397 | 3,361 | -1% | 0 | 0 | — |
case-05 | fail→fail | 15,487 | 14,025 | -9% | 1 | 1 | 0% | 3,112 | 4,248 | +37% | 0 | 0 | — |
case-22 | pass→fail | 10,900 | 9,921 | -9% | 1 | 1 | 0% | 2,271 | 3,894 | +71% | 0 | 0 | — |
case-06 | fail→fail | 11,084 | 7,681 | -31% | 1 | 1 | 0% | 2,371 | 3,620 | +53% | 0 | 0 | — |
case-07 | fail→fail | 15,933 | 8,254 | -48% | 1 | 1 | 0% | 3,128 | 3,400 | +9% | 0 | 0 | — |
case-08 | fail→fail | 10,055 | 7,535 | -25% | 1 | 1 | 0% | 2,162 | 3,476 | +61% | 0 | 0 | — |
case-09 | fail→fail | 11,299 | 6,420 | -43% | 1 | 1 | 0% | 2,339 | 3,389 | +45% | 0 | 0 | — |
case-10 | fail→fail | 13,219 | 7,506 | -43% | 1 | 1 | 0% | 2,716 | 3,505 | +29% | 0 | 0 | — |
case-11 | fail→fail | 14,741 | 8,385 | -43% | 1 | 1 | 0% | 2,829 | 3,500 | +24% | 0 | 0 | — |
case-12 | fail→pass | 8,409 | 3,605 | -57% | 1 | 1 | 0% | 1,710 | 3,497 | +105% | 0 | 0 | — |
case-13 | fail→pass | 4,210 | 1,929 | -54% | 1 | 1 | 0% | 769 | 3,118 | +305% | 0 | 0 | — |
case-14 | pass→pass | 4,827 | 2,430 | -50% | 1 | 1 | 0% | 1,038 | 3,260 | +214% | 0 | 0 | — |
case-15 | fail→fail | 7,882 | 11,971 | +52% | 1 | 1 | 0% | 1,562 | 3,522 | +125% | 0 | 0 | — |
case-16 | fail→fail | 11,714 | 6,828 | -42% | 1 | 1 | 0% | 2,194 | 3,283 | +50% | 0 | 0 | — |
case-17 | fail→fail | 13,019 | 7,124 | -45% | 1 | 1 | 0% | 2,532 | 3,470 | +37% | 0 | 0 | — |
case-18 | fail→fail | 11,131 | 15,806 | +42% | 1 | 1 | 0% | 2,100 | 3,974 | +89% | 0 | 0 | — |
case-19 | fail→pass | 10,661 | 2,916 | -73% | 1 | 1 | 0% | 1,865 | 3,366 | +80% | 0 | 0 | — |
case-20 | pass→fail | 9,595 | 10,093 | +5% | 1 | 1 | 0% | 1,766 | 3,484 | +97% | 0 | 0 | — |
case-21 | pass→fail | 4,931 | 9,484 | +92% | 1 | 1 | 0% | 1,056 | 3,564 | +238% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 4 counted toward the lift figure. The other 18 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of 0 percentage points is the difference between those two pass rates over the 4 comparable cases. 13 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.