Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Query the Reactome database (Analysis and Content Services). Use when the user asks about pathway analysis, gene list enrichment, retrieving results by token, finding unmapped or not-found identifiers, mapping identifiers, reaction participants (inputs, outputs), pathway hierarchy (including top-level pathways), diagram export, cross-reference mapping, or searching the knowledgebase.
.claude/skills/mkurman-reactome-database/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-20 | ✗→✓ | ▲ Improved | 292% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 235% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 158% | 0% |
| case-14 | ✗→✓ | ▲ Improved | 34% | 0% |
| case-17 | ✗→✓ | ▲ Improved | 112% | 0% |
uv: Read the uv skill and follow its Setup instructions to ensureuv is installed and on PATH.
this skill directory then (1) prominently notify the user to check the terms at https://reactome.org/license and https://reactome.org/cite, then (2) create the file recording the notification text and timestamp.
Reactome is a free, open-source, curated pathway database. This skill wraps both the Analysis Service (https://reactome.org/AnalysisService/) and the Content Service (https://reactome.org/ContentService/) providing pathway enrichment analysis, identifier mapping, reaction details, pathway hierarchy navigation, diagram export, cross-reference mapping, and search.
lists
Reference list for common research organisms:
Reference list for commonly used Reactome pathway stable IDs:
> Important: When the user asks for a "Cell Cycle" diagram or analysis, > prefer the specific Cell Cycle, Mitotic pathway (R-HSA-69278) unless the > user explicitly requests the top-level overview. The examples throughout this > document use R-HSA-69278.
--output: Every subcommand requires --output <file> towrite results to a file. Never rely on stdout for large results.
--species to override.retrieve them later without re-submitting data.
--fdr and --pvalue to filter: Enrichment results can beoverwhelming. Filter with --fdr 0.05 or --pvalue 0.01 to focus on statistically significant pathways.
symbols (TP53), UniProt (P04637), Ensembl (ENSG00000141510), ChEBI, OMIM, EntrezGene, and many more.
species-comparison), use the --summary flag to truncate lists and avoid exceeding workspace file size limits (1MB).
output.
The CLI tool is at scripts/reactome_analysis.py. Run with uv:
bashuv run scripts/reactome_analysis.py <command> [options] --output /tmp/out.json
To list all available subcommands and flags, run:
bashuv run scripts/reactome_analysis.py --help
Use --help to verify available subcommands or flags before executing an unfamiliar command.
bashuv run scripts/reactome_analysis.py db-version --output /tmp/version.json uv run scripts/reactome_analysis.py db-name --output /tmp/name.json
bashuv run scripts/reactome_analysis.py identifier --id TP53 --output /tmp/tp53.json uv run scripts/reactome_analysis.py identifier-projection --id TP53 --output /tmp/tp53_proj.json
Submit a list of identifiers for overrepresentation or expression analysis:
bashuv run scripts/reactome_analysis.py analyze --data "TP53,BRCA1,EGFR" --output /tmp/enrich.json uv run scripts/reactome_analysis.py analyze --file genes.txt --output /tmp/enrich.json uv run scripts/reactome_analysis.py analyze-projection --data "TP53,BRCA1" --output /tmp/proj.json uv run scripts/reactome_analysis.py analyze --data "TP53,BRCA1" --fdr 0.05 --output /tmp/sig.json
Common options: --page-size (alias --limit), --page (alias --offset), --sort-by, --order, --resource, --species, --fdr, --pvalue.
bashuv run scripts/reactome_analysis.py token-result --token TOKEN --output /tmp/result.json uv run scripts/reactome_analysis.py token-not-found --token TOKEN --output /tmp/notfound.json uv run scripts/reactome_analysis.py token-resources --token TOKEN --output /tmp/resources.json uv run scripts/reactome_analysis.py token-found-entities --token TOKEN --pathway R-HSA-69278 --output /tmp/found.json uv run scripts/reactome_analysis.py token-filter-species --token TOKEN --species-filter 9606 --output /tmp/filtered.json uv run scripts/reactome_analysis.py token-reactions-pathway --token TOKEN --pathway R-HSA-69278 --output /tmp/rxns.json
bashuv run scripts/reactome_analysis.py download-result --token TOKEN --output /tmp/full.json uv run scripts/reactome_analysis.py download-pathways --token TOKEN --output /tmp/pathways.csv uv run scripts/reactome_analysis.py download-found --token TOKEN --output /tmp/found.csv uv run scripts/reactome_analysis.py download-not-found --token TOKEN --output /tmp/notfound.csv
bashuv run scripts/reactome_analysis.py mapping --data "TP53,BRCA1" --output /tmp/mapped.json uv run scripts/reactome_analysis.py mapping-projection --data "TP53" --output /tmp/mapped_proj.json
Retrieve the molecular participants of a reaction (inputs, outputs, catalysts):
bashuv run scripts/reactome_analysis.py participants --id R-HSA-6804194 --output /tmp/participants.json uv run scripts/reactome_analysis.py participating-entities --id R-HSA-6804194 --output /tmp/entities.json
Find which complexes or sets contain a given entity:
bashuv run scripts/reactome_analysis.py component-of --id R-HSA-69488 --output /tmp/complexes.json
Move up (ancestors) or down (contained events) the pathway hierarchy:
bashuv run scripts/reactome_analysis.py event-ancestors --id R-HSA-69278 --output /tmp/ancestors.json uv run scripts/reactome_analysis.py contained-events --id R-HSA-69278 --output /tmp/steps.json uv run scripts/reactome_analysis.py top-pathways --output /tmp/top.json uv run scripts/reactome_analysis.py low-pathways --id R-HSA-69488 --output /tmp/low.json
Export pathway or reaction diagrams as PNG/SVG, with optional gene highlighting:
bashuv run scripts/reactome_analysis.py diagram --id R-HSA-69278 --output /tmp/diagram.png uv run scripts/reactome_analysis.py diagram --id R-HSA-69278 --highlight TP53 --output /tmp/highlighted.png uv run scripts/reactome_analysis.py diagram --id R-HSA-69278 --format svg --output /tmp/diagram.svg uv run scripts/reactome_analysis.py reaction-diagram --id R-HSA-6804194 --output /tmp/rxn.png
Resolve identifiers to Reactome internal IDs and cross-references:
bashuv run scripts/reactome_analysis.py xref-mapping --id TP53 --output /tmp/xref.json uv run scripts/reactome_analysis.py xref-mapping-batch --data "TP53,BRCA1" --output /tmp/xrefs.json
bashuv run scripts/reactome_analysis.py search --query "TP53 apoptosis" --output /tmp/results.json
bashuv run scripts/reactome_analysis.py query --id R-HSA-69278 --output /tmp/entry.json
bashuv run scripts/reactome_analysis.py report --token TOKEN --output /tmp/report.pdf uv run scripts/reactome_analysis.py species-comparison --species-id 48892 --output /tmp/species.json # Use --summary to truncate large output and avoid workspace file size limits uv run scripts/reactome_analysis.py species-comparison --species-id 48892 --summary --output /tmp/species.json
A step-by-step workflow for interpreting gene set enrichment results:
scripts/reactome_analysis.py analyze-projection \ --data "TP53,BRCA1,EGFR,MYC,PTEN" --fdr 0.05 --output /tmp/enrichment.json
pathwaysFound, top pathway names,p-values, and FDR values in the output.
run scripts/reactome_analysis.py contained-events --id R-HSA-69278 --output /tmp/steps.json uv run scripts/reactome_analysis.py participants --id <reaction_id> --output /tmp/parts.json
scripts/reactome_analysis.py diagram --id R-HSA-69278 \ --highlight "TP53,BRCA1" --output /tmp/diagram.png
uv run scripts/reactome_analysis.py event-ancestors --id R-HSA-69278 --output /tmp/ancestors.json
scripts/reactome_analysis.py xref-mapping --id TP53 --output /tmp/xrefs.json
For detailed API endpoint documentation, see references/api_reference.md.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-08 | fail→fail | 10,090 | 29,521 | +193% | 1 | 1 | 0% | 1,890 | 3,790 | +101% | 0 | 0 | — |
case-09 | fail→fail | 8,863 | 6,919 | -22% | 1 | 1 | 0% | 1,760 | 3,732 | +112% | 0 | 0 | — |
case-20 | fail→pass | 5,850 | 4,740 | -19% | 1 | 1 | 0% | 1,027 | 4,023 | +292% | 0 | 0 | — |
case-01 | fail→fail | 13,672 | 6,152 | -55% | 1 | 1 | 0% | 2,505 | 3,509 | +40% | 0 | 0 | — |
case-02 | fail→fail | 17,509 | 7,266 | -59% | 1 | 1 | 0% | 3,478 | 3,641 | +5% | 0 | 0 | — |
case-03 | fail→fail | 25,990 | 7,239 | -72% | 1 | 1 | 0% | 3,344 | 3,539 | +6% | 0 | 0 | — |
case-04 | fail→pass | 11,774 | 12,029 | +2% | 1 | 1 | 0% | 1,601 | 5,367 | +235% | 0 | 0 | — |
case-05 | pass→fail | 14,254 | 9,349 | -34% | 1 | 1 | 0% | 2,401 | 3,709 | +54% | 0 | 0 | — |
case-06 | pass→pass | 13,165 | 11,862 | -10% | 1 | 1 | 0% | 2,320 | 4,595 | +98% | 0 | 0 | — |
case-07 | fail→fail | 14,544 | 6,023 | -59% | 1 | 1 | 0% | 2,885 | 3,413 | +18% | 0 | 0 | — |
case-10 | fail→pass | 7,090 | 6,457 | -9% | 1 | 1 | 0% | 1,375 | 3,543 | +158% | 0 | 0 | — |
case-11 | fail→fail | 6,065 | 7,508 | +24% | 1 | 1 | 0% | 1,142 | 3,567 | +212% | 0 | 0 | — |
case-12 | pass→fail | 9,002 | 6,953 | -23% | 1 | 1 | 0% | 1,662 | 3,409 | +105% | 0 | 0 | — |
case-13 | fail→fail | 7,719 | 7,502 | -3% | 1 | 1 | 0% | 1,441 | 3,503 | +143% | 0 | 0 | — |
case-14 | fail→pass | 15,307 | 5,327 | -65% | 1 | 1 | 0% | 2,657 | 3,563 | +34% | 0 | 0 | — |
case-15 | fail→fail | 5,428 | 6,943 | +28% | 1 | 1 | 0% | 1,036 | 3,646 | +252% | 0 | 0 | — |
case-16 | fail→fail | 5,881 | 6,559 | +12% | 1 | 1 | 0% | 1,069 | 3,557 | +233% | 0 | 0 | — |
case-17 | fail→pass | 9,941 | 2,767 | -72% | 1 | 1 | 0% | 1,674 | 3,549 | +112% | 0 | 0 | — |
case-18 | fail→fail | 6,053 | 5,602 | -7% | 1 | 1 | 0% | 1,144 | 3,310 | +189% | 0 | 0 | — |
case-19 | pass→pass | 5,931 | 5,506 | -7% | 1 | 1 | 0% | 1,131 | 3,659 | +224% | 0 | 0 | — |
case-21 | fail→pass | 10,046 | 2,442 | -76% | 1 | 1 | 0% | 1,918 | 3,569 | +86% | 0 | 0 | — |
case-22 | fail→fail | 8,949 | 4,271 | -52% | 1 | 1 | 0% | 1,495 | 3,581 | +140% | 0 | 0 | — |
case-23 | fail→fail | 7,690 | 6,645 | -14% | 1 | 1 | 0% | 1,509 | 3,511 | +133% | 0 | 0 | — |
case-24 | fail→fail | 8,282 | 7,542 | -9% | 1 | 1 | 0% | 1,515 | 3,406 | +125% | 0 | 0 | — |
case-25 | pass→fail | 7,800 | 6,178 | -21% | 1 | 1 | 0% | 1,413 | 3,475 | +146% | 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. 25 cases were attempted, and 9 counted toward the lift figure. The other 16 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 +12 percentage points is the difference between those two pass rates over the 9 comparable cases. 3 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.