
Bio Pathway Enrichment Visualization
- 4 installs
- 1.1k repo stars
- Updated July 25, 2026
- gptomics/bioskills
Visualize enrichment results with enrichplot functions (dotplot, cnetplot, emapplot, gseaplot2, ridgeplot, treeplot) from clusterProfiler output.
About
Creates publication-quality enrichment figures from clusterProfiler results using enrichplot functions. A developer uses it when visualizing GO/KEGG/GSEA enrichment outputs.
- dotplot, cnetplot, emapplot, gseaplot2
- ridgeplot and treeplot for enrichment results
Bio Pathway Enrichment Visualization by the numbers
- 4 all-time installs (skills.sh)
- Ranked #1,625 of 2,064 Data Science & ML skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/gptomics/bioskills --skill bio-pathway-enrichment-visualizationAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 4 |
|---|---|
| repo stars | ★ 1.1k |
| Last updated | July 25, 2026 |
| Repository | gptomics/bioskills ↗ |
What it does
Visualize enrichment results with enrichplot functions (dotplot, cnetplot, emapplot, gseaplot2, ridgeplot, treeplot) from clusterProfiler output.
Files
Enrichment Visualization
Scope
This skill covers enrichplot package functions designed for clusterProfiler results:
dotplot(),barplot()- Summary viewscnetplot(),emapplot(),treeplot()- Network/hierarchical viewsgseaplot2(),ridgeplot()- GSEA-specificgoplot(),heatplot(),upsetplot()- Specialized views
For custom ggplot2 enrichment dotplots (manual implementation), see data-visualization/specialized-omics-plots.
Setup
library(clusterProfiler)
library(enrichplot)
library(ggplot2)
# Assume ego (enrichGO result), kk (enrichKEGG result), or gse (GSEA result) existsDot Plot
Most common visualization - shows gene ratio, count, and significance.
dotplot(ego, showCategory = 20)
# Customize
dotplot(ego, showCategory = 15, font.size = 10, title = 'GO Enrichment') +
scale_color_gradient(low = 'red', high = 'blue')
# Save
pdf('go_dotplot.pdf', width = 10, height = 8)
dotplot(ego, showCategory = 20)
dev.off()Bar Plot
Shows enrichment count or gene ratio.
barplot(ego, showCategory = 20)
# Customize
barplot(ego, showCategory = 15, x = 'GeneRatio', color = 'p.adjust')Gene-Concept Network (cnetplot)
Shows relationships between genes and enriched terms.
# Basic cnetplot
cnetplot(ego)
# With fold change colors
cnetplot(ego, foldChange = gene_list)
# Circular layout
cnetplot(ego, circular = TRUE, colorEdge = TRUE)
# Customize node size
cnetplot(ego, node_label = 'gene', cex_label_gene = 0.8)Enrichment Map (emapplot)
Shows term-term relationships based on shared genes.
# Requires pairwise_termsim first
ego_pt <- pairwise_termsim(ego)
emapplot(ego_pt)
# Customize
emapplot(ego_pt, showCategory = 30, cex_label_category = 0.6)
# Cluster by similarity
emapplot(ego_pt, group_category = TRUE, group_legend = TRUE)Tree Plot
Hierarchical clustering of enriched terms.
ego_pt <- pairwise_termsim(ego)
treeplot(ego_pt)
# Show more categories
treeplot(ego_pt, showCategory = 30)Upset Plot
Show overlapping genes between terms.
upsetplot(ego)
# Limit to specific number of terms
upsetplot(ego, n = 10)GSEA-Specific Plots
Running Score Plot (gseaplot2)
# Single gene set
gseaplot2(gse, geneSetID = 1, title = gse$Description[1])
# Multiple gene sets
gseaplot2(gse, geneSetID = 1:3)
# With subplots
gseaplot2(gse, geneSetID = 1, subplots = 1:3)
# By term ID
gseaplot2(gse, geneSetID = 'GO:0006955')Ridge Plot
Distribution of fold changes in gene sets.
ridgeplot(gse)
# Top n gene sets
ridgeplot(gse, showCategory = 15)
# Order by NES
ridgeplot(gse, showCategory = 20) + theme(axis.text.y = element_text(size = 8))GO-Specific Plot (goplot)
DAG structure of GO terms.
# Only for GO enrichment results
goplot(ego)
# Specific ontology
goplot(ego_bp) # where ego_bp is enrichGO with ont='BP'Heatplot
Gene-concept heatmap.
heatplot(ego, foldChange = gene_list)
# Customize
heatplot(ego, showCategory = 15, foldChange = gene_list)Compare Multiple Analyses
# Compare clusters (from compareCluster)
dotplot(ck, showCategory = 10)
# Facet by cluster
dotplot(ck) + facet_grid(~Cluster)Customize ggplot2 Elements
All enrichplot functions return ggplot2 objects.
p <- dotplot(ego, showCategory = 20)
# Add title
p + ggtitle('GO Biological Process Enrichment')
# Change theme
p + theme_minimal()
# Adjust text
p + theme(axis.text.y = element_text(size = 10))
# Change colors
p + scale_color_viridis_c()Save Plots
# PDF (vector, publication quality)
pdf('enrichment_plots.pdf', width = 10, height = 8)
dotplot(ego, showCategory = 20)
dev.off()
# PNG (raster)
png('dotplot.png', width = 800, height = 600, res = 100)
dotplot(ego, showCategory = 20)
dev.off()
# Using ggsave
p <- dotplot(ego)
ggsave('dotplot.pdf', p, width = 10, height = 8)Visualization Summary
| Function | Best For | Input Type |
|---|---|---|
| dotplot | Overview of enrichment | ORA, GSEA |
| barplot | Simple counts/ratios | ORA |
| cnetplot | Gene-term relationships | ORA |
| emapplot | Term clustering | ORA |
| treeplot | Hierarchical grouping | ORA |
| upsetplot | Term overlap | ORA |
| gseaplot2 | Running enrichment score | GSEA |
| ridgeplot | Fold change distribution | GSEA |
| goplot | GO DAG structure | GO only |
| heatplot | Gene-concept matrix | ORA |
Related Skills
- go-enrichment - Generate GO enrichment results
- kegg-pathways - Generate KEGG enrichment results
- gsea - Generate GSEA results