install
source · Clone the upstream repo
git clone https://github.com/mdbabumiamssm/LLMs-Universal-Life-Science-and-Clinical-Skills-
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/mdbabumiamssm/LLMs-Universal-Life-Science-and-Clinical-Skills- "$T" && mkdir -p ~/.claude/skills && cp -r "$T/Skills/Research_Tools/Pathway_Analysis/reactome-pathways" ~/.claude/skills/mdbabumiamssm-llms-universal-life-science-and-clinical-skills-reactome-pathways && rm -rf "$T"
manifest:
Skills/Research_Tools/Pathway_Analysis/reactome-pathways/SKILL.mdsource content
<!--
# COPYRIGHT NOTICE
# This file is part of the "Universal Biomedical Skills" project.
# Copyright (c) 2026 MD BABU MIA, PhD <md.babu.mia@mssm.edu>
# All Rights Reserved.
#
# This code is proprietary and confidential.
# Unauthorized copying of this file, via any medium is strictly prohibited.
#
# Provenance: Authenticated by MD BABU MIA
-->
name: bio-pathway-reactome description: Reactome pathway enrichment using ReactomePA package. Use when analyzing gene lists against Reactome's curated peer-reviewed pathway database. Performs over-representation analysis and GSEA with visualization and pathway hierarchy exploration. tool_type: r primary_tool: ReactomePA measurable_outcome: Execute skill workflow successfully with valid output within 15 minutes. allowed-tools:
- read_file
- run_shell_command
Reactome Pathway Enrichment
Core Pattern - Over-Representation Analysis
library(ReactomePA) library(org.Hs.eg.db) pathway_result <- enrichPathway( gene = entrez_ids, # Character vector of Entrez IDs organism = 'human', # human, rat, mouse, celegans, yeast, zebrafish, fly pvalueCutoff = 0.05, pAdjustMethod = 'BH', readable = TRUE # Convert to gene symbols ) head(as.data.frame(pathway_result))
Prepare Gene List from DE Results
library(clusterProfiler) de_results <- read.csv('de_results.csv') sig_genes <- de_results[de_results$padj < 0.05 & abs(de_results$log2FoldChange) > 1, 'gene_symbol'] gene_ids <- bitr(sig_genes, fromType = 'SYMBOL', toType = 'ENTREZID', OrgDb = org.Hs.eg.db) entrez_ids <- gene_ids$ENTREZID
GSEA on Reactome Pathways
# Create ranked gene list (named vector sorted by statistic) gene_list <- de_results$log2FoldChange names(gene_list) <- de_results$entrez_id gene_list <- sort(gene_list, decreasing = TRUE) gsea_result <- gsePathway( geneList = gene_list, organism = 'human', pvalueCutoff = 0.05, pAdjustMethod = 'BH', verbose = FALSE ) head(as.data.frame(gsea_result))
With Background Universe
all_genes <- de_results$entrez_id # All tested genes pathway_result <- enrichPathway( gene = entrez_ids, universe = all_genes, # Background gene set organism = 'human', pvalueCutoff = 0.05, readable = TRUE )
Visualization
library(enrichplot) # Dot plot dotplot(pathway_result, showCategory = 15) # Bar plot barplot(pathway_result, showCategory = 15) # Enrichment map (requires pairwise_termsim first) pathway_result <- pairwise_termsim(pathway_result) emapplot(pathway_result) # Gene-concept network cnetplot(pathway_result, categorySize = 'pvalue') # GSEA plot gseaplot2(gsea_result, geneSetID = 1:3)
View Pathway in Browser
# Open pathway in Reactome browser viewPathway('R-HSA-109582', organism = 'human') # Uses pathway ID # Get pathway ID from results top_pathway_id <- pathway_result@result$ID[1] viewPathway(top_pathway_id, organism = 'human')
Export Results
results_df <- as.data.frame(pathway_result) write.csv(results_df, 'reactome_enrichment.csv', row.names = FALSE) # Key columns: ID, Description, GeneRatio, BgRatio, pvalue, p.adjust, geneID, Count
Different Organisms
# Mouse pathway_mouse <- enrichPathway(gene = mouse_entrez, organism = 'mouse', readable = TRUE) # Rat pathway_rat <- enrichPathway(gene = rat_entrez, organism = 'rat', readable = TRUE) # Zebrafish pathway_zfish <- enrichPathway(gene = zfish_entrez, organism = 'zebrafish', readable = TRUE) # Supported: human, rat, mouse, celegans, yeast, zebrafish, fly
Compare Clusters
# Compare pathways across multiple gene lists gene_clusters <- list( upregulated = up_genes, downregulated = down_genes ) compare_result <- compareCluster( geneClusters = gene_clusters, fun = 'enrichPathway', organism = 'human', pvalueCutoff = 0.05 ) dotplot(compare_result)
Key Parameters
| Parameter | Default | Description |
|---|---|---|
| gene | required | Vector of Entrez IDs |
| organism | human | Species name |
| pvalueCutoff | 0.05 | P-value threshold |
| pAdjustMethod | BH | Adjustment method |
| universe | NULL | Background genes |
| minGSSize | 10 | Min genes per pathway |
| maxGSSize | 500 | Max genes per pathway |
| readable | FALSE | Convert to symbols |
Supported Organisms
| Organism | Name | OrgDb |
|---|---|---|
| Human | human | org.Hs.eg.db |
| Mouse | mouse | org.Mm.eg.db |
| Rat | rat | org.Rn.eg.db |
| Zebrafish | zebrafish | org.Dr.eg.db |
| Fly | fly | org.Dm.eg.db |
| C. elegans | celegans | org.Ce.eg.db |
| Yeast | yeast | org.Sc.sgd.db |
Related Skills
- go-enrichment - Gene Ontology enrichment
- kegg-pathways - KEGG pathway enrichment
- wikipathways - WikiPathways enrichment
- gsea - Gene Set Enrichment Analysis
- enrichment-visualization - Visualization functions