Cancer Classification via OncoTree

SkillDocs & knowledge

Translate free-text tumor descriptions to OncoTree codes and resolve cancer subtypes/tissue hierarchy. Cross-references UMLS/NCI vocabularies. Use for standardizing cancer-type nomenclature in EHR free-text, building cohorts in OncoKB or GDC, mapping tumor-board notes to ontology codes, and ensuring consistent terminology across cancer-genomics pipelines.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Cancer Classification via OncoTree skill

What this skill tells your AI

The instructions your AI receives, as published by mims-harvard/tooluniverse in skills/tooluniverse-cancer-classification/SKILL.md and read by ahel’s review.

Standardize cancer type nomenclature using the OncoTree ontology. Resolves free-text tumor descriptions to structured codes with UMLS/NCI cross-references, enabling downstream use in OncoKB variant annotation and GDC cohort selection.

When to Use

Apply when researcher asks about:

  • "What is the OncoTree code for [tumor description]?"
  • "Find all subtypes of [cancer type]"
  • "What cancers originate in [tissue]?"
  • "I need the tumor type code for OncoKB annotation"
  • "What is the TCGA/COSMIC code for [cancer]?"
  • "List all CNS/Brain cancer subtypes"
  • "What NCI code corresponds to glioblastoma?"

Key Tools

ToolPurposeKey Params
OncoTree_searchFree-text search for cancer typesquery (tumor name or description)
OncoTree_get_typeFull details for a known OncoTree codecode (e.g., "LUAD", "AML")
OncoTree_list_tissuesList all 32 tissue categories(no params)
OncoKB_annotate_variantVariant annotation using OncoTree codegene, variant, tumor_type
GDC_get_mutation_frequencyPan-cancer mutation frequency (TCGA)gene_symbol

Workflow

Phase 1: Cancer Type Discovery

Start with free-text search to find matching OncoTree codes:

OncoTree_search(query="breast cancer")
-> Returns list: code, name, main_type, tissue, parent, level, external_references

Key response fields:

  • code: OncoTree code (e.g., "BRCA", "IBC") — use this in OncoKB calls
  • level: hierarchy depth (1=tissue, 2=main type, 3-5=subtypes)
  • parent: parent node code for navigating the hierarchy
  • external_references.UMLS: UMLS CUI list
  • external_references.NCI: NCI thesaurus code list

Search tips:

  • Broad terms ("lung cancer") return many results; narrow by tissue or level
  • Use tissue-specific terms ("invasive breast carcinoma") for precise matching
  • Acronyms work: query="GBM" finds glioblastoma, query="AML" finds leukemia types

Phase 2: Code Validation and Detail Retrieval

Once you have a candidate code, retrieve full details:

OncoTree_get_type(code="LUAD")
-> Returns: name, main_type, tissue, color, parent, level, history, external_references

Note: Not all codes are valid. "GBM" returns 404 — correct code is "GB" (Glioblastoma, IDH-Wildtype). Always validate via OncoTree_get_type before using in downstream tools.

Phase 3: Tissue-Level Exploration

When the user wants all cancers in a tissue category:

OncoTree_list_tissues()
-> Returns 32 tissue names: "Breast", "CNS/Brain", "Lung", "Myeloid", ...

OncoTree_search(query="CNS/Brain")
-> All cancer types with tissue="CNS/Brain"

Phase 4: Downstream Use in Variant Annotation

Pass validated OncoTree code to OncoKB for cancer-type-specific therapeutic levels:

OncoKB_annotate_variant(gene="EGFR", variant="L858R", tumor_type="LUAD")
-> highestSensitiveLevel: "1" (FDA-approved therapy for this tumor+variant)

Without tumor_type, OncoKB returns pan-cancer levels which may be less specific.

Tool Parameter Reference

ToolRequiredOptionalNotes
OncoTree_searchqueryFree text; returns list sorted by relevance
OncoTree_get_typecodeCase-sensitive; "BRCA" not "brca". Returns 404 for invalid codes
OncoTree_list_tissuesNo params; returns list of 32 tissue strings
OncoKB_annotate_variantgene, varianttumor_typetumor_type is OncoTree code; omit for pan-cancer
GDC_get_mutation_frequencygene_symbolPan-cancer TCGA only; no per-subtype breakdown

Common OncoTree Codes (verified working)

CodeNameTissue
BRCAInvasive Breast CarcinomaBreast
LUADLung AdenocarcinomaLung
LUSCLung Squamous Cell CarcinomaLung
MELMelanomaSkin
CRCColorectal CancerBowel
PAADPancreatic AdenocarcinomaPancreas
GBM(invalid — use GB)CNS/Brain
GBGlioblastoma, IDH-WildtypeCNS/Brain
AMLAcute Myeloid LeukemiaMyeloid
PRADProstate AdenocarcinomaProstate

Common Patterns

# Pattern: Resolve free-text to OncoTree code
results = OncoTree_search(query="pancreatic ductal adenocarcinoma")
# Pick result with lowest level number (most specific match)
code = results["data"][0]["code"]  # e.g., "PAAD"

# Pattern: Get all subtypes within a main type
results = OncoTree_search(query="Glioma")
subtypes = [r for r in results["data"] if r["main_type"] == "Glioma"]

# Pattern: Validate code before OncoKB call
detail = OncoTree_get_type(code="GB")
if detail["status"] == "success":
    OncoKB_annotate_variant(gene="IDH1", variant="R132H", tumor_type="GB")

Tumor Classification Reasoning (CRITICAL)

LOOK UP DON'T GUESS -- tumor classification determines treatment. Always verify codes and biomarker interpretation via tools rather than relying on memory.

Histological vs Molecular Classification

Tumors are classified on TWO axes -- both matter for treatment selection:

  • Histological (what it looks like under microscope): adenocarcinoma, squamous, small cell, etc. This determines the OncoTree hierarchy level 3+.
  • Molecular (what mutations/alterations drive it): EGFR-mutant, HER2-amplified, MSI-high, etc. This determines OncoKB therapeutic levels.

A tumor can be histologically identical to another but molecularly different, requiring different treatment. Example: two lung adenocarcinomas (both LUAD) but one is EGFR-mutant (targeted therapy) and another is KRAS-mutant (different targeted therapy). Always check both axes.

Biomarker Interpretation Strategy

When interpreting cancer biomarkers, use OncoKB for actionability:

  • HER2: Positive = IHC 3+ or FISH-amplified. Use OncoKB_annotate_variant(gene="ERBB2", variant="Amplification", tumor_type="BRCA") for therapeutic level
  • ER/PR: Positive = hormone-receptor positive breast cancer. Changes treatment class (endocrine therapy)
  • Ki67: Proliferation index. High (>20%) suggests aggressive biology; used in breast cancer grading (Luminal A vs B)
  • TMB (Tumor Mutational Burden): High TMB (>10 mut/Mb) predicts immunotherapy response across tumor types. Use OncoKB_annotate_variant(gene="Other Biomarkers", variant="TMB-H")
  • MSI (Microsatellite Instability): MSI-High is FDA-approved biomarker for pembrolizumab pan-cancer. Use OncoKB_annotate_variant(gene="Other Biomarkers", variant="MSI-H")

Staging vs Grading -- Different Concepts

  • Stage (TNM): How far has it spread? T=tumor size, N=lymph nodes, M=metastasis. Stage I-IV. Determines prognosis and surgery eligibility.
  • Grade: How abnormal do the cells look? Grade 1 (well-differentiated, slow) to Grade 3 (poorly-differentiated, aggressive). Determines aggressiveness.
  • A Stage I, Grade 3 tumor (small but aggressive) has different implications than Stage III, Grade 1 (spread but slow-growing).

Actionability Assessment

After classifying the tumor, assess whether findings are clinically actionable:

  1. Level 1 (FDA-approved, specific tumor type): Immediate treatment implication. Example: EGFR L858R in LUAD
  2. Level 2 (Standard care): Strong evidence but context-dependent
  3. Level 3 (Compelling evidence): Clinical trial candidates
  4. Level 4 (Biological evidence): Research-stage only
  5. Always provide the OncoTree code to OncoKB -- without it, you get pan-cancer levels which may understate or overstate actionability for the specific tumor type

Reasoning Framework for Result Interpretation

Evidence Grading

GradeCriteriaExample
ConfirmedExact OncoTree code validated via OncoTree_get_type, UMLS + NCI cross-refs presentLUAD: validated, UMLS C0152013, NCI C3512
ProbableOncoTree search returns match, but code not yet validated or missing cross-refsSearch for "cholangiocarcinoma" returns CHOL with partial external refs
AmbiguousMultiple OncoTree codes match the description at different hierarchy levels"Breast cancer" matches BRCA (invasive), BREAST (tissue), IBC (inflammatory)
UnresolvedNo OncoTree match; tumor type too rare or novel for the ontologyUltra-rare sarcoma subtype not in OncoTree

Interpretation Guidance

  • OncoTree code confidence: Always validate candidate codes with OncoTree_get_type before downstream use. Some common acronyms (e.g., "GBM") are NOT valid OncoTree codes (correct code is "GB"). A validated code with UMLS and NCI cross-references is highest confidence.
  • UMLS/NCI cross-reference priority: For standardized reporting, NCI Thesaurus codes are preferred for cancer-specific contexts (used by caDSR, GDC). UMLS CUIs are broader (cross-disease) and useful for literature mining. When both are available, report both; when only one exists, NCI is preferred for oncology workflows.
  • Tissue hierarchy interpretation: OncoTree levels represent specificity: Level 1 = tissue of origin (e.g., "Lung"), Level 2 = main cancer type (e.g., "Non-Small Cell Lung Cancer"), Level 3+ = histological subtypes (e.g., "Lung Adenocarcinoma"). For OncoKB variant annotation, use the most specific (deepest) level that accurately describes the tumor. For cohort-level analysis (e.g., TCGA), the Level 2-3 code is typically appropriate.
  • OncoKB tumor type impact: Providing a tumor type code to OncoKB can change the therapeutic level (e.g., EGFR L858R is Level 1 in LUAD but Level 3B pan-cancer). Always use the validated OncoTree code for the patient's specific tumor type.
  • Deprecated or renamed codes: OncoTree evolves across versions. The history field in OncoTree_get_type response shows prior names. Always use the current code.

Synthesis Questions

  1. Does the chosen OncoTree code represent the most specific histological subtype, or could a more precise code provide better therapeutic annotation in OncoKB?
  2. When the free-text tumor description maps to multiple OncoTree codes, which hierarchy level best balances specificity and coverage for the analysis goal (variant annotation vs cohort selection)?
  3. Are the UMLS/NCI cross-references consistent with external classifications (WHO, ICD-O), or are there discrepancies that need resolution?

Fallback Chains

PrimaryFallbackWhen
OncoTree_get_type(code="GBM")OncoTree_search(query="glioblastoma")404 for common aliases
OncoTree_search (no results)OncoTree_list_tissues + tissue-level searchVery rare/novel tumor types
OncoTree code for OncoKBOmit tumor_type paramCode not recognized by OncoKB

Signals

GitHub stars
2k
Forks
254
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
tooluniverse-cancer-classification
Source
github.com/mims-harvard/tooluniverse