Cancer Variant Interpretation for Precision Oncology
Comprehensive clinical interpretation of somatic mutations in cancer. Transforms a gene + variant input into an actionable precision oncology report covering clinical evidence, therapeutic options, resistance mechanisms, clinical trials, and prognostic implications.
KEY PRINCIPLES:
- Report-first approach - Create report file FIRST, then populate progressively
- Evidence-graded - Every recommendation has an evidence tier (T1-T4)
- Actionable output - Prioritized treatment options, not data dumps
- Clinical focus - Answer "what should we treat with?" not "what databases exist?"
- Resistance-aware - Always check for known resistance mechanisms
- Cancer-type specific - Tailor all recommendations to the patient's cancer type when provided
- Source-referenced - Every statement must cite the tool/database source
- English-first queries - Always use English terms in tool calls (gene names, drug names, cancer types), even if the user writes in another language. Respond in the user's language
LOOK UP, DON'T GUESS
When uncertain about any scientific fact, SEARCH databases first (PubMed, UniProt, ChEMBL, ClinVar, etc.) rather than reasoning from memory. A database-verified answer is always more reliable than a guess.
COMPUTE, DON'T DESCRIBE
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.
When to Use
Apply when user asks:
- "What treatments exist for EGFR L858R in lung cancer?"
- "Patient has BRAF V600E melanoma - what are the options?"
- "Is KRAS G12C targetable?"
- "Patient progressed on osimertinib - what's next?"
- "What clinical trials are available for PIK3CA E545K?"
- "Interpret this somatic mutation: TP53 R273H"
Input Parsing
Required: Gene symbol + variant notation (e.g., "EGFR L858R", "BRAF p.V600E", "EML4-ALK fusion", "HER2 amplification")
Optional: Cancer type (improves specificity)
Parse the gene symbol and variant separately. For fusions, use the kinase partner as the primary gene. For amplifications/deletions, use the gene name directly. Normalize common aliases: HER2 -> ERBB2, PD-L1 -> CD274, VEGF -> VEGFA.
Phase 0: Tool Parameter Verification (CRITICAL)
BEFORE calling ANY tool for the first time, verify its parameters.
| Tool |
WRONG Parameter |
CORRECT Parameter |
OpenTargets_get_associated_drugs_by_target_ensemblID |
ensemblID |
ensemblId (camelCase) |
OpenTargets_get_drug_chembId_by_generic_name |
genericName |
drugName |
OpenTargets_target_disease_evidence |
ensemblID |
ensemblId + efoId |
MyGene_query_genes |
q |
query |
search_clinical_trials |
disease, biomarker |
condition, query_term (required) |
civic_get_variants_by_gene |
gene_symbol |
gene_id (CIViC numeric ID) |
drugbank_* |
any 3 params |
ALL 4 required: query, case_sensitive, exact_match, limit |
ChEMBL_get_drug_mechanisms |
chembl_id |
drug_chembl_id__exact |
ensembl_lookup_gene |
no species |
species='homo_sapiens' is REQUIRED |
Workflow Overview
Input: Gene symbol + Variant notation + Optional cancer type
Phase 1: Gene Disambiguation & ID Resolution
- Resolve gene to Ensembl ID, UniProt accession, Entrez ID
- Get gene function, pathways, protein domains
- Identify cancer type EFO ID (if cancer type provided)
Phase 2: Clinical Variant Evidence (CIViC)
- Find gene in CIViC (via Entrez ID matching)
- Get all variants for the gene, match specific variant
- Retrieve evidence items (predictive, prognostic, diagnostic)
Phase 3: Mutation Prevalence (cBioPortal)
- Frequency across cancer studies
- Co-occurring mutations, cancer type distribution
Phase 4: Therapeutic Associations (OpenTargets + ChEMBL + FDA + DrugBank)
- FDA-approved targeted therapies
- Clinical trial drugs (phase 2-3), drug mechanisms
- Combination therapies
Phase 5: Resistance Mechanisms
- Known resistance variants (CIViC, literature)
- Bypass pathway analysis (Reactome)
Phase 6: Clinical Trials
- Active trials recruiting for this mutation
- Trial phase, status, eligibility
Phase 7: Prognostic Impact & Pathway Context
- Survival associations (literature)
- Pathway context (Reactome), Expression data (GTEx)
Phase 8: Report Synthesis
- Executive summary, clinical actionability score
- Treatment recommendations (prioritized), completeness checklist
For detailed code snippets and API call patterns for each phase, see ANALYSIS_DETAILS.md.
Clinical Reasoning Strategies
Driver vs Passenger Reasoning
Not every mutation in a tumor is driving the cancer. Before querying databases, form a hypothesis:
- Is this gene a known oncogene or tumor suppressor? Genes like EGFR, BRAF, KRAS, TP53, PIK3CA are well-established cancer drivers. A mutation in one of these warrants deep investigation. A mutation in a gene with no known cancer role is likely a passenger.
- Is this specific mutation recurrent across tumors (hotspot)? Use cBioPortal to check. A mutation seen in hundreds of independent tumors (e.g., BRAF V600E) is almost certainly a driver. A unique, never-before-seen missense in the same gene is less certain.
- What is the predicted functional impact? Truncating mutations (nonsense, frameshift) in tumor suppressors are likely loss-of-function drivers. Missense mutations in oncogenes at known hotspot residues are likely gain-of-function drivers.
- For unique (non-hotspot) missense in driver genes, look at mechanism, not just pathogenicity. AlphaMissense gives a score; the ESMC-6B SAE composite
ESM_explain_variant_mechanism(sequence=wt_protein_seq, position=..., ref_aa=..., alt_aa=..., top_k_features=5) answers how the substitution disrupts function — catalytic / ligand-binding / PTM / structural-stability loss. A unique missense that disrupts the same SAE feature category as a known driver hotspot in the same gene is more likely a driver than a missense that disrupts unrelated features. Requires ESM_API_KEY; missense only.
- Conclusion pattern: A recurrent mutation in a known driver gene is likely actionable. A unique mutation in a gene not associated with cancer is likely a passenger. State your assessment and the reasoning behind it.
Actionability Reasoning
Actionable means a therapy exists that targets this alteration. Think in tiers based on evidence strength:
- Tier 1: FDA-approved drug for this mutation in this cancer type. The standard of care — recommend confidently. Example reasoning: "CIViC returns Level A evidence, FDA label confirms indication."
- Tier 2: FDA-approved for this mutation in a different cancer type, or strong clinical trial evidence (phase 2-3) in this cancer type. Reasonable to consider, especially under tumor-agnostic approvals or with molecular tumor board discussion.
- Tier 3: Preclinical evidence only — cell line data, animal models, or case reports. May justify clinical trial enrollment but not off-label use.
- Tier 4: Biological rationale but no direct evidence — the mutation is in a druggable pathway, or a structurally similar mutation responds to therapy. Hypothesis-generating only.
When synthesizing, state the tier and explain WHY you assigned it based on the evidence you found, not just which database returned a hit.
Resistance Reasoning
If the patient has already been treated, ask: could this mutation be a resistance mechanism?
- On-target resistance: Mutations in the drug target gene itself that restore signaling despite drug binding. These typically emerge at the drug-binding site (e.g., EGFR T790M after erlotinib, EGFR C797S after osimertinib, ABL T315I after imatinib).
- Bypass pathway activation: Mutations in parallel signaling pathways that render the target irrelevant (e.g., MET amplification bypassing EGFR inhibition, BRAF activation bypassing MEK inhibition).
- Phenotypic transformation: Lineage changes (e.g., small cell transformation in EGFR-mutant lung cancer) that eliminate dependence on the original driver.
- Timing matters: If the mutation was detected AFTER treatment, it is more likely a resistance mechanism than if it was present at diagnosis.
When to Use Which Tool
Form your clinical hypothesis FIRST based on gene function and mutation type, THEN use tools to validate:
- CIViC (
civic_search_genes, civic_get_variants_by_gene): Your primary source for clinical evidence. Returns curated evidence items with evidence levels, clinical significance, and associated therapies. Start here for any variant with potential clinical relevance.
- cBioPortal (
cBioPortal_get_mutations): Use to assess mutation prevalence — is this a hotspot? How common is it across cancer types? This informs your driver vs passenger assessment.
- OpenTargets (
OpenTargets_get_associated_drugs_by_target_ensemblID): Use for actionability — what drugs target this gene? Cross-reference with CIViC evidence to assign tiers.
- PubMed (
PubMed_search_articles): Use when CIViC lacks entries for your variant, or to find resistance mechanism reports and recent clinical trial results.
- ClinicalTrials.gov (
search_clinical_trials): Use after establishing the variant is potentially actionable, to find enrollment opportunities.
Tool Reference (Verified Parameters)
Gene Resolution
| Tool |
Key Parameters |
Response Key Fields |
MyGene_query_genes |
query, species |
hits[].ensembl.gene, .entrezgene, .symbol |
UniProt_search |
query, organism, limit |
results[].accession |
OpenTargets_get_target_id_description_by_name |
targetName |
data.search.hits[].id |
ensembl_lookup_gene |
gene_id, species (REQUIRED) |
data.id, .version |
Clinical Evidence
| Tool |
Key Parameters |
Response Key Fields |
civic_search_genes |
query, limit |
data.genes.nodes[].id, .entrezId |
civic_get_variants_by_gene |
gene_id (CIViC numeric) |
data.gene.variants.nodes[] |
civic_get_variant |
variant_id |
data.variant |
Drug Information
| Tool |
Key Parameters |
Response Key Fields |
OpenTargets_get_associated_drugs_by_target_ensemblID |
ensemblId, size |
data.target.drugAndClinicalCandidates.rows[] |
FDA_get_indications_by_drug_name |
drug_name, limit |
results[].indications_and_usage |
drugbank_get_drug_basic_info_by_drug_name_or_id |
query, case_sensitive, exact_match, limit (ALL required) |
results[] |
Mutation Prevalence
| Tool |
Key Parameters |
Response Key Fields |
cBioPortal_get_mutations |
study_id, gene_list |
data[].proteinChange |
cBioPortal_get_cancer_studies |
limit |
[].studyId, .cancerTypeId |
Clinical Trials & Literature
| Tool |
Key Parameters |
Response Key Fields |
search_clinical_trials |
query_term (required), condition |
studies[] |
PubMed_search_articles |
query, limit, include_abstract |
Returns list of dicts (NOT wrapped) |
Reactome_map_uniprot_to_pathways |
id (UniProt accession) |
Pathway mappings |
GTEx_get_median_gene_expression |
gencode_id, operation="median" |
Expression by tissue |
Fallback Strategy
When a primary tool returns no results, fall back rather than reporting "no data found":
- CIViC empty -> search PubMed for "[gene] [variant] clinical evidence"
- OpenTargets no drugs -> try ChEMBL drug search by target
- cBioPortal specific study empty -> try pan-cancer study (msk_impact_2017 or similar)
- Reactome no pathways -> use UniProt function annotation for pathway context
1---2name: tooluniverse-cancer-variant-interpretation3description: Clinical interpretation of somatic cancer mutations for precision oncology. Transforms a gene + variant + cancer-type input into an actionable report: clinical evidence tier (CIViC, OncoKB), therapeutic options (FDA-approved + investigational), resistance mechanisms, prognosis, and matching clinical trials. Use for tumor-board variant calls, somatic-mutation actionability assessment, and treatment selection. Always cancer-type-specific.4---5
6# Cancer Variant Interpretation for Precision Oncology
7
8Comprehensive clinical interpretation of somatic mutations in cancer. Transforms a gene + variant input into an actionable precision oncology report covering clinical evidence, therapeutic options, resistance mechanisms, clinical trials, and prognostic implications.
9
10**KEY PRINCIPLES**:
111. **Report-first approach** - Create report file FIRST, then populate progressively
122. **Evidence-graded** - Every recommendation has an evidence tier (T1-T4)
133. **Actionable output** - Prioritized treatment options, not data dumps
144. **Clinical focus** - Answer "what should we treat with?" not "what databases exist?"
155. **Resistance-aware** - Always check for known resistance mechanisms
166. **Cancer-type specific** - Tailor all recommendations to the patient's cancer type when provided
177. **Source-referenced** - Every statement must cite the tool/database source
188. **English-first queries** - Always use English terms in tool calls (gene names, drug names, cancer types), even if the user writes in another language. Respond in the user's language
19
20---
21
22## LOOK UP, DON'T GUESS
23When uncertain about any scientific fact, SEARCH databases first (PubMed, UniProt, ChEMBL, ClinVar, etc.) rather than reasoning from memory. A database-verified answer is always more reliable than a guess.
24
25---
26
27## COMPUTE, DON'T DESCRIBE
28When 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.
29
30## When to Use
31
32Apply when user asks:
33- "What treatments exist for EGFR L858R in lung cancer?"
34- "Patient has BRAF V600E melanoma - what are the options?"
35- "Is KRAS G12C targetable?"
36- "Patient progressed on osimertinib - what's next?"
37- "What clinical trials are available for PIK3CA E545K?"
38- "Interpret this somatic mutation: TP53 R273H"
39
40---
41
42## Input Parsing
43
44**Required**: Gene symbol + variant notation (e.g., "EGFR L858R", "BRAF p.V600E", "EML4-ALK fusion", "HER2 amplification")
45**Optional**: Cancer type (improves specificity)
46
47Parse the gene symbol and variant separately. For fusions, use the kinase partner as the primary gene. For amplifications/deletions, use the gene name directly. Normalize common aliases: HER2 -> ERBB2, PD-L1 -> CD274, VEGF -> VEGFA.
48
49---
50
51## Phase 0: Tool Parameter Verification (CRITICAL)
52
53**BEFORE calling ANY tool for the first time**, verify its parameters.
54
55| Tool | WRONG Parameter | CORRECT Parameter |
56|------|-----------------|-------------------|
57| `OpenTargets_get_associated_drugs_by_target_ensemblID` | `ensemblID` | `ensemblId` (camelCase) |
58| `OpenTargets_get_drug_chembId_by_generic_name` | `genericName` | `drugName` |
59| `OpenTargets_target_disease_evidence` | `ensemblID` | `ensemblId` + `efoId` |
60| `MyGene_query_genes` | `q` | `query` |
61| `search_clinical_trials` | `disease`, `biomarker` | `condition`, `query_term` (required) |
62| `civic_get_variants_by_gene` | `gene_symbol` | `gene_id` (CIViC numeric ID) |
63| `drugbank_*` | any 3 params | ALL 4 required: `query`, `case_sensitive`, `exact_match`, `limit` |
64| `ChEMBL_get_drug_mechanisms` | `chembl_id` | `drug_chembl_id__exact` |
65| `ensembl_lookup_gene` | no species | `species='homo_sapiens'` is REQUIRED |
66
67---
68
69## Workflow Overview
70
71```
72Input: Gene symbol + Variant notation + Optional cancer type
73
74Phase 1: Gene Disambiguation & ID Resolution
75 - Resolve gene to Ensembl ID, UniProt accession, Entrez ID
76 - Get gene function, pathways, protein domains
77 - Identify cancer type EFO ID (if cancer type provided)
78
79Phase 2: Clinical Variant Evidence (CIViC)
80 - Find gene in CIViC (via Entrez ID matching)
81 - Get all variants for the gene, match specific variant
82 - Retrieve evidence items (predictive, prognostic, diagnostic)
83
84Phase 3: Mutation Prevalence (cBioPortal)
85 - Frequency across cancer studies
86 - Co-occurring mutations, cancer type distribution
87
88Phase 4: Therapeutic Associations (OpenTargets + ChEMBL + FDA + DrugBank)
89 - FDA-approved targeted therapies
90 - Clinical trial drugs (phase 2-3), drug mechanisms
91 - Combination therapies
92
93Phase 5: Resistance Mechanisms
94 - Known resistance variants (CIViC, literature)
95 - Bypass pathway analysis (Reactome)
96
97Phase 6: Clinical Trials
98 - Active trials recruiting for this mutation
99 - Trial phase, status, eligibility
100
101Phase 7: Prognostic Impact & Pathway Context
102 - Survival associations (literature)
103 - Pathway context (Reactome), Expression data (GTEx)
104
105Phase 8: Report Synthesis
106 - Executive summary, clinical actionability score
107 - Treatment recommendations (prioritized), completeness checklist
108```
109
110For detailed code snippets and API call patterns for each phase, see `ANALYSIS_DETAILS.md`.
111
112---
113
114## Clinical Reasoning Strategies
115
116### Driver vs Passenger Reasoning
117
118Not every mutation in a tumor is driving the cancer. Before querying databases, form a hypothesis:
119
120- **Is this gene a known oncogene or tumor suppressor?** Genes like EGFR, BRAF, KRAS, TP53, PIK3CA are well-established cancer drivers. A mutation in one of these warrants deep investigation. A mutation in a gene with no known cancer role is likely a passenger.
121- **Is this specific mutation recurrent across tumors (hotspot)?** Use cBioPortal to check. A mutation seen in hundreds of independent tumors (e.g., BRAF V600E) is almost certainly a driver. A unique, never-before-seen missense in the same gene is less certain.
122- **What is the predicted functional impact?** Truncating mutations (nonsense, frameshift) in tumor suppressors are likely loss-of-function drivers. Missense mutations in oncogenes at known hotspot residues are likely gain-of-function drivers.
123- **For unique (non-hotspot) missense in driver genes, look at mechanism, not just pathogenicity.** AlphaMissense gives a score; the ESMC-6B SAE composite `ESM_explain_variant_mechanism(sequence=wt_protein_seq, position=..., ref_aa=..., alt_aa=..., top_k_features=5)` answers *how* the substitution disrupts function — catalytic / ligand-binding / PTM / structural-stability loss. A unique missense that disrupts the same SAE feature category as a known driver hotspot in the same gene is more likely a driver than a missense that disrupts unrelated features. Requires `ESM_API_KEY`; missense only.
124- **Conclusion pattern**: A recurrent mutation in a known driver gene is likely actionable. A unique mutation in a gene not associated with cancer is likely a passenger. State your assessment and the reasoning behind it.
125
126### Actionability Reasoning
127
128Actionable means a therapy exists that targets this alteration. Think in tiers based on evidence strength:
129
130- **Tier 1**: FDA-approved drug for this mutation in this cancer type. The standard of care — recommend confidently. Example reasoning: "CIViC returns Level A evidence, FDA label confirms indication."
131- **Tier 2**: FDA-approved for this mutation in a different cancer type, or strong clinical trial evidence (phase 2-3) in this cancer type. Reasonable to consider, especially under tumor-agnostic approvals or with molecular tumor board discussion.
132- **Tier 3**: Preclinical evidence only — cell line data, animal models, or case reports. May justify clinical trial enrollment but not off-label use.
133- **Tier 4**: Biological rationale but no direct evidence — the mutation is in a druggable pathway, or a structurally similar mutation responds to therapy. Hypothesis-generating only.
134
135When synthesizing, state the tier and explain WHY you assigned it based on the evidence you found, not just which database returned a hit.
136
137### Resistance Reasoning
138
139If the patient has already been treated, ask: could this mutation be a resistance mechanism?
140
141- **On-target resistance**: Mutations in the drug target gene itself that restore signaling despite drug binding. These typically emerge at the drug-binding site (e.g., EGFR T790M after erlotinib, EGFR C797S after osimertinib, ABL T315I after imatinib).
142- **Bypass pathway activation**: Mutations in parallel signaling pathways that render the target irrelevant (e.g., MET amplification bypassing EGFR inhibition, BRAF activation bypassing MEK inhibition).
143- **Phenotypic transformation**: Lineage changes (e.g., small cell transformation in EGFR-mutant lung cancer) that eliminate dependence on the original driver.
144- **Timing matters**: If the mutation was detected AFTER treatment, it is more likely a resistance mechanism than if it was present at diagnosis.
145
146### When to Use Which Tool
147
148Form your clinical hypothesis FIRST based on gene function and mutation type, THEN use tools to validate:
149
150- **CIViC** (`civic_search_genes`, `civic_get_variants_by_gene`): Your primary source for clinical evidence. Returns curated evidence items with evidence levels, clinical significance, and associated therapies. Start here for any variant with potential clinical relevance.
151- **cBioPortal** (`cBioPortal_get_mutations`): Use to assess mutation prevalence — is this a hotspot? How common is it across cancer types? This informs your driver vs passenger assessment.
152- **OpenTargets** (`OpenTargets_get_associated_drugs_by_target_ensemblID`): Use for actionability — what drugs target this gene? Cross-reference with CIViC evidence to assign tiers.
153- **PubMed** (`PubMed_search_articles`): Use when CIViC lacks entries for your variant, or to find resistance mechanism reports and recent clinical trial results.
154- **ClinicalTrials.gov** (`search_clinical_trials`): Use after establishing the variant is potentially actionable, to find enrollment opportunities.
155
156---
157
158## Tool Reference (Verified Parameters)
159
160### Gene Resolution
161
162| Tool | Key Parameters | Response Key Fields |
163|------|---------------|-------------------|
164| `MyGene_query_genes` | `query`, `species` | `hits[].ensembl.gene`, `.entrezgene`, `.symbol` |
165| `UniProt_search` | `query`, `organism`, `limit` | `results[].accession` |
166| `OpenTargets_get_target_id_description_by_name` | `targetName` | `data.search.hits[].id` |
167| `ensembl_lookup_gene` | `gene_id`, `species` (REQUIRED) | `data.id`, `.version` |
168
169### Clinical Evidence
170
171| Tool | Key Parameters | Response Key Fields |
172|------|---------------|-------------------|
173| `civic_search_genes` | `query`, `limit` | `data.genes.nodes[].id`, `.entrezId` |
174| `civic_get_variants_by_gene` | `gene_id` (CIViC numeric) | `data.gene.variants.nodes[]` |
175| `civic_get_variant` | `variant_id` | `data.variant` |
176
177### Drug Information
178
179| Tool | Key Parameters | Response Key Fields |
180|------|---------------|-------------------|
181| `OpenTargets_get_associated_drugs_by_target_ensemblID` | `ensemblId`, `size` | `data.target.drugAndClinicalCandidates.rows[]` |
182| `FDA_get_indications_by_drug_name` | `drug_name`, `limit` | `results[].indications_and_usage` |
183| `drugbank_get_drug_basic_info_by_drug_name_or_id` | `query`, `case_sensitive`, `exact_match`, `limit` (ALL required) | `results[]` |
184
185### Mutation Prevalence
186
187| Tool | Key Parameters | Response Key Fields |
188|------|---------------|-------------------|
189| `cBioPortal_get_mutations` | `study_id`, `gene_list` | `data[].proteinChange` |
190| `cBioPortal_get_cancer_studies` | `limit` | `[].studyId`, `.cancerTypeId` |
191
192### Clinical Trials & Literature
193
194| Tool | Key Parameters | Response Key Fields |
195|------|---------------|-------------------|
196| `search_clinical_trials` | `query_term` (required), `condition` | `studies[]` |
197| `PubMed_search_articles` | `query`, `limit`, `include_abstract` | Returns **list** of dicts (NOT wrapped) |
198| `Reactome_map_uniprot_to_pathways` | `id` (UniProt accession) | Pathway mappings |
199| `GTEx_get_median_gene_expression` | `gencode_id`, `operation="median"` | Expression by tissue |
200
201---
202
203## Fallback Strategy
204
205When a primary tool returns no results, fall back rather than reporting "no data found":
206- **CIViC empty** -> search PubMed for "[gene] [variant] clinical evidence"
207- **OpenTargets no drugs** -> try ChEMBL drug search by target
208- **cBioPortal specific study empty** -> try pan-cancer study (msk_impact_2017 or similar)
209- **Reactome no pathways** -> use UniProt function annotation for pathway context