Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Provide actionable treatment recommendations for cancer patients based on molecular profile. Interprets tumor mutations, identifies FDA-approved therapies, finds resistance mechanisms, matches clinical trials. Use when oncologist asks about treatment options for specific mutations (EGFR, KRAS, BRAF, etc.), therapy resistance, or clinical trial eligibility.
.claude/skills/tooluniverse-precision-oncology/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-08 | ✗→✓ | ▲ Improved | — | — |
| case-10 | ✗→✓ | ▲ Improved | — | — |
| case-13 | ✗→✓ | ▲ Improved | — | — |
| case-20 | ✗→✓ | ▲ Improved | — | — |
| case-01 | ✗→✓ | ▲ Improved | — | — |
Provide actionable treatment recommendations for cancer patients based on their molecular profile using CIViC, ClinVar, OpenTargets, ClinicalTrials.gov, and structure-based analysis.
KEY PRINCIPLES:
Apply when user asks:
CRITICAL: Verify tool parameters before first use.
| Tool | WRONG | CORRECT | |------|-------|---------| | civic_get_variant | variant_name | id (numeric) | | civic_get_evidence_item | variant_id | id | | OpenTargets_* | ensemblID | ensemblId (camelCase) | | search_clinical_trials | disease | condition |
Input: Cancer type + Molecular profile (mutations, fusions, amplifications)
Phase 1: Profile Validation
├── Validate variant nomenclature
├── Resolve gene identifiers
└── Confirm cancer type (EFO/ICD)
Phase 2: Variant Interpretation
├── CIViC → Evidence for each variant
├── ClinVar → Pathogenicity
├── COSMIC → Somatic mutation frequency
├── GDC/TCGA → Real tumor data
├── DepMap → Target essentiality
├── OncoKB → FDA actionability levels (NEW)
├── cBioPortal → Cross-study mutation data (NEW)
├── Human Protein Atlas → Expression validation (NEW)
├── OpenTargets → Target-disease evidence
└── OUTPUT: Variant significance table + target validation + expression
Phase 2.5: Tumor Expression Context (NEW)
├── CELLxGENE → Cell-type specific expression in tumor
├── ChIPAtlas → Regulatory context
├── Cancer-specific expression patterns
└── OUTPUT: Expression validation
Phase 3: Treatment Options
├── Approved therapies (FDA label)
├── NCCN-recommended (literature)
├── Off-label with evidence
└── OUTPUT: Prioritized treatment list
Phase 3.5: Pathway & Network Analysis (NEW)
├── KEGG/Reactome → Pathway context
├── IntAct → Protein interactions
├── Drug combination rationale
└── OUTPUT: Biological context for combinations
Phase 4: Resistance Analysis (if prior therapy)
├── Known resistance mechanisms
├── Structure-based analysis (NvidiaNIM)
├── Network-based bypass pathways (IntAct)
└── OUTPUT: Resistance explanation + strategies
Phase 5: Clinical Trial Matching
├── Active trials for indication + biomarker
├── Eligibility filtering
└── OUTPUT: Matched trials
Phase 5.5: Literature Evidence (NEW)
├── PubMed → Published evidence
├── BioRxiv/MedRxiv → Recent preprints
├── OpenAlex → Citation analysis
└── OUTPUT: Supporting literature
Phase 6: Report Synthesis
├── Executive summary
├── Treatment recommendations (prioritized)
└── Next stepspythondef resolve_gene(tu, gene_symbol): """Resolve gene to all needed IDs.""" ids = {} # Ensembl ID (for OpenTargets) gene_info = tu.tools.MyGene_query_genes(q=gene_symbol, species="human") ids['ensembl'] = gene_info.get('ensembl', {}).get('gene') # UniProt (for structure) uniprot = tu.tools.UniProt_search(query=gene_symbol, organism="human") ids['uniprot'] = uniprot[0].get('primaryAccession') if uniprot else None # ChEMBL target target = tu.tools.ChEMBL_search_targets(query=gene_symbol, organism="Homo sapiens") ids['chembl_target'] = target[0].get('target_chembl_id') if target else None return ids
pythondef get_civic_evidence(tu, gene_symbol, variant_name): """Get CIViC evidence for variant.""" # Search for variant variants = tu.tools.civic_search_variants(query=f"{gene_symbol} {variant_name}") evidence_items = [] for var in variants: # Get evidence items for this variant evi = tu.tools.civic_get_variant(id=var['id']) evidence_items.extend(evi.get('evidence_items', [])) # Categorize by evidence type return { 'predictive': [e for e in evidence_items if e['evidence_type'] == 'Predictive'], 'prognostic': [e for e in evidence_items if e['evidence_type'] == 'Prognostic'], 'diagnostic': [e for e in evidence_items if e['evidence_type'] == 'Diagnostic'] }
pythondef get_cosmic_mutations(tu, gene_symbol, variant_name=None): """Get somatic mutation data from COSMIC database.""" # Get all mutations for gene gene_mutations = tu.tools.COSMIC_get_mutations_by_gene( operation="get_by_gene", gene=gene_symbol, max_results=100, genome_build=38 ) # If specific variant, search for it if variant_name: specific = tu.tools.COSMIC_search_mutations( operation="search", terms=f"{gene_symbol} {variant_name}", max_results=20 ) return { 'specific_variant': specific.get('results', []), 'all_gene_mutations': gene_mutations.get('results', []) } return gene_mutations def get_cosmic_hotspots(tu, gene_symbol): """Identify mutation hotspots in COSMIC.""" mutations = tu.tools.COSMIC_get_mutations_by_gene( operation="get_by_gene", gene=gene_symbol, max_results=500 ) # Count by position position_counts = Counter(m['MutationAA'] for m in mutations.get('results', [])) hotspots = position_counts.most_common(10) return hotspots
Why COSMIC matters:
Access real patient tumor data from The Cancer Genome Atlas:
pythondef get_tcga_mutation_data(tu, gene_symbol, cancer_type=None): """ Get somatic mutations from TCGA via GDC. Answers: "How often is this mutation seen in real tumors?" """ # Get mutation frequency across all TCGA frequency = tu.tools.GDC_get_mutation_frequency( gene_symbol=gene_symbol ) # Get specific mutations mutations = tu.tools.GDC_get_ssm_by_gene( gene_symbol=gene_symbol, project_id=f"TCGA-{cancer_type}" if cancer_type else None, size=50 ) return { 'frequency': frequency.get('data', {}), 'mutations': mutations.get('data', {}), 'note': 'Real patient tumor data from TCGA' } def get_tcga_expression_profile(tu, gene_symbol, cancer_type): """Get gene expression data from TCGA.""" # Map cancer type to TCGA project project_map = { 'lung': 'TCGA-LUAD', 'breast': 'TCGA-BRCA', 'colorectal': 'TCGA-COAD', 'melanoma': 'TCGA-SKCM', 'glioblastoma': 'TCGA-GBM' } project_id = project_map.get(cancer_type.lower(), f'TCGA-{cancer_type.upper()}') expression = tu.tools.GDC_get_gene_expression( project_id=project_id, size=20 ) return expression.get('data', {}) def get_tcga_cnv_status(tu, gene_symbol, cancer_type): """Get copy number status from TCGA.""" project_map = { 'lung': 'TCGA-LUAD', 'breast': 'TCGA-BRCA' } project_id = project_map.get(cancer_type.lower(), f'TCGA-{cancer_type.upper()}') cnv = tu.tools.GDC_get_cnv_data( project_id=project_id, gene_symbol=gene_symbol, size=20 ) return cnv.get('data', {})
GDC Tools Summary: | Tool | Purpose | Key Parameters | |------|---------|----------------| | GDC_get_mutation_frequency | Pan-cancer mutation stats | gene_symbol | | GDC_get_ssm_by_gene | Specific mutations | gene_symbol, project_id | | GDC_get_gene_expression | RNA-seq data | project_id | | GDC_get_cnv_data | Copy number | project_id, gene_symbol | | GDC_list_projects | Find TCGA projects | program="TCGA" |
Why TCGA/GDC matters:
Assess gene essentiality using CRISPR knockout data from cancer cell lines:
pythondef assess_target_essentiality(tu, gene_symbol, cancer_type=None): """ Is this gene essential in cancer cell lines? Essential genes have negative dependency scores. Answers: "If we target this gene, will cancer cells die?" """ # Get gene dependency data dependencies = tu.tools.DepMap_get_gene_dependencies( gene_symbol=gene_symbol ) # Get cell lines for specific cancer type if cancer_type: cell_lines = tu.tools.DepMap_get_cell_lines( cancer_type=cancer_type, page_size=20 ) return { 'gene': gene_symbol, 'dependencies': dependencies.get('data', {}), 'cell_lines': cell_lines.get('data', {}), 'interpretation': 'Negative scores = gene is essential for cell survival' } return dependencies def get_depmap_drug_sensitivity(tu, drug_name, cancer_type=None): """Get drug sensitivity data from DepMap.""" drugs = tu.tools.DepMap_get_drug_response( drug_name=drug_name ) return drugs.get('data', {})
DepMap Tools Summary: | Tool | Purpose | Key Parameters | |------|---------|----------------| | DepMap_get_gene_dependencies | CRISPR essentiality | gene_symbol | | DepMap_get_cell_lines | Cell line metadata | cancer_type, tissue | | DepMap_search_cell_lines | Search by name | query | | DepMap_get_drug_response | Drug sensitivity | drug_name |
Why DepMap matters for Precision Oncology:
Example Clinical Application:
markdown### Target Essentiality Assessment (DepMap) **KRAS dependency in pancreatic cancer cell lines**: | Cell Line | KRAS Effect Score | Interpretation | |-----------|-------------------|----------------| | PANC-1 | -0.82 | Strongly essential | | MIA PaCa-2 | -0.75 | Essential | | BxPC-3 | -0.21 | Less dependent (KRAS WT) | *Interpretation: KRAS-mutant pancreatic cancer lines are highly dependent on KRAS - validates targeting strategy.* *Source: DepMap via `DepMap_get_gene_dependencies`*
OncoKB provides FDA-approved therapeutic actionability annotations:
pythondef get_oncokb_annotations(tu, gene_symbol, variant_name, tumor_type=None): """ Get OncoKB actionability annotations. OncoKB Level of Evidence: - Level 1: FDA-approved - Level 2: Standard care - Level 3A: Compelling clinical evidence - Level 3B: Standard care in different tumor type - Level 4: Biological evidence - R1/R2: Resistance evidence """ # Annotate the specific variant annotation = tu.tools.OncoKB_annotate_variant( operation="annotate_variant", gene=gene_symbol, variant=variant_name, # e.g., "V600E" tumor_type=tumor_type # OncoTree code e.g., "MEL", "LUAD" ) result = { 'oncogenic': annotation.get('data', {}).get('oncogenic'), 'mutation_effect': annotation.get('data', {}).get('mutationEffect'), 'highest_sensitive_level': annotation.get('data', {}).get('highestSensitiveLevel'), 'treatments': annotation.get('data', {}).get('treatments', []) } # Get gene-level info gene_info = tu.tools.OncoKB_get_gene_info( operation="get_gene_info", gene=gene_symbol ) result['is_oncogene'] = gene_info.get('data', {}).get('oncogene', False) result['is_tumor_suppressor'] = gene_info.get('data', {}).get('tsg', False) return result def get_oncokb_cnv_annotation(tu, gene_symbol, alteration_type, tumor_type=None): """Get OncoKB annotation for copy number alterations.""" annotation = tu.tools.OncoKB_annotate_copy_number( operation="annotate_copy_number", gene=gene_symbol, copy_number_type=alteration_type, # "AMPLIFICATION" or "DELETION" tumor_type=tumor_type ) return { 'oncogenic': annotation.get('data', {}).get('oncogenic'), 'treatments': annotation.get('data', {}).get('treatments', []) }
OncoKB Level Mapping: | OncoKB Level | Our Tier | Description | |--------------|----------|-------------| | LEVEL_1 | ★★★ | FDA-recognized biomarker | | LEVEL_2 | ★★★ | Standard care | | LEVEL_3A | ★★☆ | Compelling clinical evidence | | LEVEL_3B | ★★☆ | Different tumor type | | LEVEL_4 | ★☆☆ | Biological evidence | | LEVEL_R1 | Resistance | FDA-approved resistance marker | | LEVEL_R2 | Resistance | Compelling resistance evidence |
Aggregate mutation data across multiple cancer studies:
pythondef get_cbioportal_mutations(tu, gene_symbols, study_id="brca_tcga"): """ Get mutation data from cBioPortal across cancer studies. Provides: Mutation types, protein changes, co-mutations. """ # Get mutations for genes in study mutations = tu.tools.cBioPortal_get_mutations( study_id=study_id, gene_list=",".join(gene_symbols) # e.g., "EGFR,KRAS" ) # Parse results results = [] for mut in mutations or []: results.append({ 'gene': mut.get('gene', {}).get('hugoGeneSymbol'), 'protein_change': mut.get('proteinChange'), 'mutation_type': mut.get('mutationType'), 'sample_id': mut.get('sampleId'), 'validation_status': mut.get('validationStatus') }) return results def get_cbioportal_cancer_studies(tu, cancer_type=None): """Get available cancer studies from cBioPortal.""" studies = tu.tools.cBioPortal_get_cancer_studies(limit=50) if cancer_type: studies = [s for s in studies if cancer_type.lower() in s.get('cancerTypeId', '').lower()] return studies def analyze_co_mutations(tu, gene_symbol, study_id): """Find frequently co-mutated genes.""" # Get molecular profiles profiles = tu.tools.cBioPortal_get_molecular_profiles(study_id=study_id) # Get mutation data mutations = tu.tools.cBioPortal_get_mutations( study_id=study_id, gene_list=gene_symbol ) return { 'profiles': profiles, 'mutations': mutations, 'study_id': study_id }
cBioPortal Use Cases: | Use Case | Tool | Parameters | |----------|------|------------| | Find mutation frequency | cBioPortal_get_mutations | study_id, gene_list | | List available studies | cBioPortal_get_cancer_studies | limit | | Get molecular profiles | cBioPortal_get_molecular_profiles | study_id | | Analyze co-mutations | Multiple tools | Combined analysis |
Validate target expression in tumor vs normal tissues:
pythondef get_hpa_expression(tu, gene_symbol): """ Get protein expression data from Human Protein Atlas. Critical for validating: - Target is expressed in tumor tissue - Target has differential tumor vs normal expression """ # Search for gene gene_info = tu.tools.HPA_search_genes_by_query(search_query=gene_symbol) if not gene_info: return None # Get tissue expression data ensembl_id = gene_info[0].get('Ensembl') if gene_info else None # Comparative expression in cancer cell lines cell_line_data = tu.tools.HPA_get_comparative_expression_by_gene_and_cellline( gene_name=gene_symbol, cell_line="a549" # Lung cancer cell line ) return { 'gene_info': gene_info, 'cell_line_expression': cell_line_data } def check_tumor_specific_expression(tu, gene_symbol, cancer_type): """Check if target has tumor-specific expression pattern.""" # Map cancer type to cell line cancer_to_cellline = { 'lung': 'a549', 'breast': 'mcf7', 'liver': 'hepg2', 'cervical': 'hela', 'prostate': 'pc3' } cell_line = cancer_to_cellline.get(cancer_type.lower(), 'a549') expression = tu.tools.HPA_get_comparative_expression_by_gene_and_cellline( gene_name=gene_symbol, cell_line=cell_line ) return expression
HPA Expression Validation Output:
markdown### Expression Validation (Human Protein Atlas) | Gene | Tumor Cell Line | Expression | Normal Tissue | Differential | |------|-----------------|------------|---------------|--------------| | EGFR | A549 (lung) | High | Low-Medium | Tumor-elevated | | ALK | H3122 (lung) | High | Not detected | Tumor-specific | | HER2 | MCF7 (breast) | Medium | Low | Elevated | *Source: Human Protein Atlas via `HPA_get_comparative_expression_by_gene_and_cellline`*
| CIViC Level | Our Tier | Meaning | |-------------|----------|---------| | A | ★★★ | FDA-approved, guideline | | B | ★★☆ | Clinical evidence | | C | ★★☆ | Case study | | D | ★☆☆ | Preclinical | | E | ☆☆☆ | Inferential |
markdown## Variant Interpretation | Variant | Gene | Significance | Evidence Level | Clinical Implication | |---------|------|--------------|----------------|---------------------| | L858R | EGFR | Oncogenic driver | ★★★ (Level A) | Sensitive to EGFR TKIs | | T790M | EGFR | Resistance | ★★★ (Level A) | Resistant to 1st/2nd gen TKIs | ### COSMIC Mutation Frequency | Gene | Mutation | COSMIC Count | Primary Cancer Types | FATHMM Prediction | |------|----------|--------------|---------------------|-------------------| | EGFR | L858R | 15,234 | Lung (85%), Colorectal (5%) | Pathogenic | | EGFR | T790M | 8,567 | Lung (95%) | Pathogenic | | BRAF | V600E | 45,678 | Melanoma (50%), Colorectal (15%) | Pathogenic | ### TCGA/GDC Patient Tumor Data (NEW) | Gene | TCGA Project | SSM Cases | CNV Amp | CNV Del | % Samples | |------|-------------|-----------|---------|---------|-----------| | EGFR | TCGA-LUAD | 156 | 89 | 5 | 28% | | EGFR | TCGA-GBM | 45 | 312 | 2 | 57% | | KRAS | TCGA-PAAD | 134 | 8 | 1 | 92% | *Source: GDC via `GDC_get_mutation_frequency`, `GDC_get_cnv_data`* ### DepMap Target Essentiality (NEW) | Gene | Mean Effect (All) | Mean Effect (Cancer Type) | Selectivity | Interpretation | |------|-------------------|---------------------------|-------------|----------------| | EGFR | -0.15 | -0.45 (lung) | Cancer-selective | Good target | | KRAS | -0.82 | -0.91 (pancreatic) | Essential | Hard to target | | MYC | -0.95 | -0.93 | Pan-essential | Challenging target | *Effect score <-0.5 = strongly essential for cell survival* *Source: DepMap via `DepMap_get_gene_dependencies`* *Combined Sources: CIViC, ClinVar, COSMIC, GDC/TCGA, DepMap*
pythondef get_tumor_expression_context(tu, gene_symbol, cancer_type): """Get cell-type specific expression in tumor microenvironment.""" # Get expression in tumor and normal cells expression = tu.tools.CELLxGENE_get_expression_data( gene=gene_symbol, tissue=cancer_type # e.g., "lung", "breast" ) # Cell metadata for context cell_metadata = tu.tools.CELLxGENE_get_cell_metadata( gene=gene_symbol ) # Identify tumor vs normal expression tumor_expression = [c for c in expression if 'tumor' in c.get('cell_type', '').lower()] normal_expression = [c for c in expression if 'normal' in c.get('cell_type', '').lower()] return { 'tumor_expression': tumor_expression, 'normal_expression': normal_expression, 'ratio': calculate_tumor_normal_ratio(tumor_expression, normal_expression) }
Why it matters:
markdown## 2.5 Tumor Expression Context ### Target Expression in Tumor Microenvironment (CELLxGENE) | Gene | Tumor Cells | Normal Cells | Tumor/Normal Ratio | Interpretation | |------|-------------|--------------|-------------------|----------------| | EGFR | High (TPM=85) | Medium (TPM=25) | 3.4x | Good target | | MET | Medium (TPM=35) | Low (TPM=8) | 4.4x | Potential bypass | | AXL | High (TPM=120) | Low (TPM=15) | 8.0x | Resistance marker | ### Cell Type Distribution - **EGFR-high cells**: Tumor epithelial (85%), CAFs (10%), immune (5%) - **MET-high cells**: Tumor epithelial (70%), endothelial (20%), immune (10%) **Clinical Relevance**: EGFR highly expressed in tumor epithelial cells. AXL overexpression in tumor suggests potential resistance mechanism. *Source: CELLxGENE Census*
Query order:
OpenTargets_get_associated_drugs_by_target_ensemblId → Approved drugsDailyMed_search_spls → FDA label detailsChEMBL_get_drug_mechanisms_of_action_by_chemblId → Mechanism| Priority | Criteria | |----------|----------| | 1st Line | FDA-approved for indication + biomarker (★★★) | | 2nd Line | Clinical trial evidence, guideline-recommended (★★☆) | | 3rd Line | Off-label with mechanistic rationale (★☆☆) |
markdown## Treatment Recommendations ### First-Line Options **1. Osimertinib (Tagrisso)** ★★★ - FDA-approved for EGFR T790M+ NSCLC - Evidence: AURA3 trial (ORR 71%, mPFS 10.1 mo) - Source: FDA label, PMID:27959700 ### Second-Line Options **2. Combination: Osimertinib + [Agent]** ★★☆ - Evidence: Phase 2 data - Source: NCT04487080
pythondef get_pathway_context(tu, gene_symbols, cancer_type): """Get pathway context for drug combinations and resistance.""" pathway_map = {} for gene in gene_symbols: # KEGG pathways kegg_gene = tu.tools.kegg_find_genes(query=f"hsa:{gene}") if kegg_gene: pathways = tu.tools.kegg_get_gene_info(gene_id=kegg_gene[0]['id']) pathway_map[gene] = pathways.get('pathways', []) # Reactome disease score reactome = tu.tools.reactome_disease_target_score( disease=cancer_type, target=gene ) pathway_map[f"{gene}_reactome"] = reactome return pathway_map
pythondef get_resistance_network(tu, drug_target, bypass_candidates): """Find protein interactions that may mediate resistance.""" # Get interaction network for drug target network = tu.tools.intact_get_interaction_network( gene=drug_target, depth=2 # Include 2nd degree connections ) # Find bypass pathway candidates in network bypass_in_network = [ node for node in network['nodes'] if node['gene'] in bypass_candidates ] return { 'network': network, 'bypass_connections': bypass_in_network, 'total_interactors': len(network['nodes']) }
markdown## 3.5 Pathway & Network Analysis ### Signaling Pathway Context (KEGG) | Pathway | Genes Involved | Relevance | Drug Targets | |---------|---------------|-----------|--------------| | EGFR signaling (hsa04012) | EGFR, MET, ERBB3 | Primary pathway | Osimertinib, Capmatinib | | PI3K-AKT (hsa04151) | PIK3CA, AKT1 | Downstream | Alpelisib | | RAS-MAPK (hsa04010) | KRAS, BRAF, MEK | Bypass potential | Sotorasib, Trametinib | ### Drug Combination Rationale **Biological basis for combinations**: - EGFR inhibition → compensatory MET activation (60% of cases) - **Rationale for EGFR + MET inhibition**: Block primary and bypass pathways - Network shows direct EGFR-MET interaction (IntAct: MI-score 0.75) ### Protein Interaction Network (IntAct) | Target | Direct Interactors | Key Partners | Relevance | |--------|-------------------|--------------|-----------| | EGFR | 156 | MET, ERBB2, ERBB3, GRB2 | Bypass pathways | | MET | 89 | EGFR, HGF, GAB1 | Resistance mediator | *Source: KEGG, Reactome, IntAct*
pythondef analyze_resistance(tu, drug_name, gene_symbol): """Find known resistance mechanisms.""" # CIViC resistance evidence resistance = tu.tools.civic_search_evidence_items( drug=drug_name, evidence_type="Predictive", clinical_significance="Resistance" ) # Literature search papers = tu.tools.PubMed_search_articles( query=f'"{drug_name}" AND "{gene_symbol}" AND resistance', limit=20 ) return {'civic': resistance, 'literature': papers}
When mutation affects drug binding:
pythondef model_resistance_mechanism(tu, gene_ids, mutation, drug_smiles): """Model structural impact of resistance mutation.""" # Get/predict structure structure = tu.tools.NvidiaNIM_alphafold2(sequence=wild_type_sequence) # Dock drug to wild-type wt_docking = tu.tools.NvidiaNIM_diffdock( protein=structure['structure'], ligand=drug_smiles, num_poses=5 ) # Compare binding site changes # Report: "T790M introduces bulky methionine, steric clash with erlotinib"
pythondef find_trials(tu, condition, biomarker, location=None): """Find matching clinical trials.""" # Search with biomarker trials = tu.tools.search_clinical_trials( condition=condition, intervention=biomarker, # e.g., "EGFR" status="Recruiting", pageSize=50 ) # Get eligibility for top matches nct_ids = [t['nct_id'] for t in trials[:20]] eligibility = tu.tools.get_clinical_trial_eligibility_criteria(nct_ids=nct_ids) return trials, eligibility
markdown## Clinical Trial Options | NCT ID | Phase | Agent | Biomarker Required | Status | Location | |--------|-------|-------|-------------------|--------|----------| | NCT04487080 | 2 | Amivantamab + lazertinib | EGFR T790M | Recruiting | US, EU | | NCT05388669 | 3 | Patritumab deruxtecan | Prior osimertinib | Recruiting | US | *Source: ClinicalTrials.gov*
pythondef search_treatment_literature(tu, cancer_type, biomarker, drug_name): """Search for treatment evidence in literature.""" # Drug + biomarker combination drug_papers = tu.tools.PubMed_search_articles( query=f'"{drug_name}" AND "{biomarker}" AND "{cancer_type}"', limit=20 ) # Resistance mechanisms resistance_papers = tu.tools.PubMed_search_articles( query=f'"{drug_name}" AND resistance AND mechanism', limit=15 ) return { 'treatment_evidence': drug_papers, 'resistance_literature': resistance_papers }
pythondef search_preprints(tu, cancer_type, biomarker): """Search preprints for cutting-edge findings.""" # BioRxiv cancer research biorxiv = tu.tools.BioRxiv_search_preprints( query=f"{cancer_type} {biomarker} treatment", limit=10 ) # MedRxiv clinical studies medrxiv = tu.tools.MedRxiv_search_preprints( query=f"{cancer_type} {biomarker}", limit=10 ) return { 'biorxiv': biorxiv, 'medrxiv': medrxiv }
pythondef analyze_key_papers(tu, key_papers): """Get citation metrics for key evidence papers.""" analyzed = [] for paper in key_papers[:10]: work = tu.tools.openalex_search_works( query=paper['title'], limit=1 ) if work: analyzed.append({ 'title': paper['title'], 'citations': work[0].get('cited_by_count', 0), 'year': work[0].get('publication_year'), 'open_access': work[0].get('is_oa', False) }) return analyzed
markdown## 5.5 Literature Evidence ### Key Clinical Studies | PMID | Title | Year | Citations | Evidence Type | |------|-------|------|-----------|---------------| | 27959700 | AURA3: Osimertinib vs chemotherapy... | 2017 | 2,450 | Phase 3 trial | | 30867819 | Mechanisms of osimertinib resistance... | 2019 | 680 | Review | | 34125020 | Amivantamab + lazertinib Phase 1... | 2021 | 320 | Phase 1 trial | ### Recent Preprints (Not Peer-Reviewed) | Source | Title | Posted | Key Finding | |--------|-------|--------|-------------| | MedRxiv | Novel C797S resistance strategy... | 2024-01 | Fourth-gen TKI | | BioRxiv | scRNA-seq reveals resistance... | 2024-02 | Cell state switch | **⚠️ Note**: Preprints have NOT undergone peer review. Interpret with caution. ### Evidence Summary | Category | Papers Found | High-Impact (>100 citations) | |----------|--------------|------------------------------| | Treatment efficacy | 25 | 8 | | Resistance mechanisms | 18 | 5 | | Combinations | 12 | 3 | *Source: PubMed, BioRxiv, MedRxiv, OpenAlex*
File: [PATIENT_ID]_oncology_report.md
markdown# Precision Oncology Report **Patient ID**: [ID] | **Date**: [Date] ## Patient Profile - **Diagnosis**: [Cancer type, stage] - **Molecular Profile**: [Mutations, fusions] - **Prior Therapy**: [Previous treatments] --- ## Executive Summary [2-3 sentence summary of key findings and recommendation] --- ## 1. Variant Interpretation [Table with variants, significance, evidence levels] ## 2. Treatment Recommendations ### First-Line Options [Prioritized list with evidence] ### Second-Line Options [Alternative approaches] ## 3. Resistance Analysis (if applicable) [Mechanism explanation, strategies to overcome] ## 4. Clinical Trial Options [Matched trials with eligibility] ## 5. Next Steps 1. [Specific actionable recommendation] 2. [Follow-up testing if needed] 3. [Referral if appropriate] --- ## Data Sources | Source | Query | Data Retrieved | |--------|-------|----------------| | CIViC | [gene] [variant] | Evidence items | | ClinicalTrials.gov | [condition] | Active trials |
Before finalizing report:
| Primary | Fallback | Use When | |---------|----------|----------| | CIViC variant | OncoKB (literature) | Variant not in CIViC | | OpenTargets drugs | ChEMBL activities | No approved drugs found | | ClinicalTrials.gov | WHO ICTRP | US trials insufficient | | NvidiaNIM_alphafold2 | AlphaFold DB | API unavailable |
| Tier | Symbol | Criteria | Example | |------|--------|----------|---------| | T1 | ★★★ | FDA-approved, Level A evidence | Osimertinib for T790M | | T2 | ★★☆ | Phase 2/3 data, Level B | Combination trials | | T3 | ★☆☆ | Preclinical, Level D | Novel mechanisms | | T4 | ☆☆☆ | Computational only | Docking predictions |
See TOOLS_REFERENCE.md for complete tool documentation.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-08 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-21 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-10 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-13 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-09 | pass→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-16 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-20 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-22 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-11 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-07 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-19 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-01 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-15 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-18 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-04 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-05 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-03 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-02 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-06 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-12 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-14 | pass→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-17 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
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 18 counted toward the lift figure. The other 4 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 +23 percentage points is the difference between those two pass rates over the 18 comparable cases. 4 cases got worse with the skill loaded, and they are included in that figure.
The per-case answers from this run were removed by the retention sweep, so the case table below shows the verdicts without the text either arm produced. The counts above were recorded at the time and are unaffected. Answers are now kept for 180 days.
Other measured skills in the registry, with their headline benchmark lift.