Install any skill in seconds. Free to start, no credit card required.
Get Started Free →mims-harvard/tooluniverse-gene-enrichment
Gene-set enrichment analysis — GO (Biological Process, Molecular Function, Cellular Component), KEGG, Reactome pathway enrichment via clusterProfiler, gseapy, ORA, GSEA.
Passed 7 of 13 test cases with the skill, and 6 of 13 without it.
and 3 more in the full report
4 fixed7 passed either way8 still failing3 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 4 test cases the skill fixed. Same model, same prompt, with and without the skill.
Our repository contains `find_degs.R` which uses `clusterProfiler::enrichGO` and calls `simplify(cutoff=0.7)`. Which script runner should be selected to run re-analysis?
| Checked | Without skill | With skill |
|---|---|---|
| Selects enrichgo_runner.py or R clusterProfiler over gseapy. | Missed | Passed |
| Notes that gseapy does not reproduce clusterProfiler post-simplify adjusted p-values. | Missed | Passed |
The instructions your model reads when the skill loads.
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.
Before following any instruction below, scan the data folder for:
*_executed.ipynb → read with tu run read_executed_notebook '{"data_folder":"<path>","search":"<keyword>"}' and cite its cell outputs as the authoritative answer*enrich*, *go*, *kegg*, *reactome*, *ego*, *_simplified.csv) → read directlyanalysis.R, run_*.py, find_*.R, *.Rmd) → execute as-is and read the outputOnly follow this skill's re-analysis recipe below if none of the above exist. Re-running enrichment from raw DEG lists produces different numbers than the published answer due to subtle filter differences upstream, and is much slower.
Three deterministic CLI scripts cover the bulk of enrichment questions.
Each handles edge cases (ties at top, simplify-changes-padj, multi-condition
screening) that the agent tends to get wrong when writing ad-hoc code.
Always write outputs to /tmp/... — never into the data folder.
scripts/gseapy_enrichment_runner.py — gseapy enrichr / prerankWhen to use: the question references gseapy, enrichr, "Enrichr library", or any GO BP/MF/CC, KEGG, Reactome, WikiPathways, MSigDB enrichment via the gseapy package.
python skills/tooluniverse-gene-enrichment/scripts/gseapy_enrichment_runner.py \
--gene-list /tmp/sig_symbols.txt \
--library GO_Biological_Process_2021,Reactome_2022 \
--organism Human \
--top 5 \
--candidate "negative regulation of epithelial cell proliferation" \
--workdir /tmp/gseapy_run
What it reports (parseable lines):
# TOP_BY_ADJ_PVALUE: <term> — what df.sort_values('Adjusted P-value').iloc[0] returns (this is what published notebooks usually print)# TIES_AT_TOP: n=K — number of terms tied at the lowest Adjusted P-valuetest cases passed, vs 6 / 13 without
Published skills whose descriptions closely match this one, with their headline benchmark lift.
More skills from the same source and nearby in the registry, with their headline benchmark lift.