WormCat 3 (wormcat3)
An advanced Python tool for annotating, analyzing, and visualizing gene set enrichment data from C. elegans microarray, RNA-seq, or RNAi screen experiments.
Table of Contents
- Overview & Key Features
- Original Publication & Abstract
- Online Web Tool & Workflow Diagrams
- Installation
- Quick Start & Usage Examples
- Development
- License & Citation
Overview & Key Features
wormcat3 is the modern Python implementation of WormCat, a computational framework for C. elegans functional gene annotation and enrichment analysis. Unlike standard Gene Ontology (GO) tools where up to 30% of C. elegans genes lack representation, WormCat provides near-complete annotation using a 3-level nested category strategy (Cat1, Cat2, Cat3).
Key Features
- 🧬 Near-Complete C. elegans Annotation: Annotated across 3 nested hierarchical levels for broad (Cat1) to fine-grained (Cat3) functional insights.
- 📊 Enrichment & Statistical Testing: Supports Fisher's Exact Test / Hypergeometric testing with multiple testing adjustments (Bonferroni, Benjamini-Hochberg FDR).
- 📈 Pre-ranked GSEA: Built-in support for GSEA analysis on DESeq2 or custom pre-ranked differential expression inputs.
- 🎨 Rich Visualizations: Automatically generates interactive HTML Sunburst charts and high-resolution Bubble charts.
- 📁 Batch Processing & Excel Reports: Single-command batch execution for multi-sheet Excel files or CSV folders with formatted Excel export.
- ⚡ High Performance & Modern Python Stack: Built for Python 3.13+, managed seamlessly with
uvandpandas2.x /plotnine.
Original Publication & Abstract
Analysis of genome-scale data with WormCat identifies novel enriched gene categories in studies from metabolic, tissue-specific, and lifespan-drug data
Authors: Amy Holdorf, Daniel Higgins, Anne Hart, Peter Boag, Gregory Pazour, Marian Walhout,and Amy Walker
GENETICS February 1, 2020 vol. 214 no. 2 279-294;
Abstract
The emergence of large sets of gene regulation data has revealed the need for improved tools to 1) identify enriched functional gene categories and 2) visualize enrichment patterns across comparative datasets. Gene ontogeny enrichment (GO) has several limitations for C. elegans analysis. First, around 30% of C. elegans genes are not represented in commonly used search engines. Second, it is difficult to compare multiple GO analyses. To allow visualization and categorization of C. elegans gene sets, we have developed a web-based tool, WormCat. This tool uses a near complete annotation of C. elegans genes to determine category enrichment and define potential co-regulated or co-functioning gene sets. Then WormCat provides a scaled heat map for visualization along with enrichment statistics and annotation of each input gene. We have developed an annotation strategy based on a nested category approach where each gene is annotated at three levels. Enrichment scores are generated at each level, allowing both broad (Cat1) and more detailed analysis (Cat2, Cat3). Using WormCat on published RNA seq datasets from metabolic, tissue-specific or after treatment with lifespan-increasing drugs, we show that WormCat finds major categories appearing in GO searches and also identifies additional enriched categories that are informative for interpreting phenotypes or predicting biological function. Thus, WormCat is a powerful tool that will allow a sophisticated analysis of gene enrichment in different types of C. elegans datasets.
Online Web Tool & Workflow Diagrams
Overview Wormcat
Wormcat is also available as an online tool at www.wormcat.com; the online version greatly simplifies the use of Wormcat and is maintained by the Walker Lab at UMASS Medical School.
The diagram below shows the flow of the Wormcat process:
The diagrams below shows sample output from a Wormcat.com run:
Starburst view of categorical data
Installation
Using uv (Recommended)
uv add wormcat3
# Or in a virtual environment:
uv pip install wormcat3
Using pip
pip install wormcat3
Requirements: Python >= 3.13.
Quick Start & Usage Examples
1. Gene Set Enrichment Analysis & Visualization
Run enrichment analysis on a list of gene identifiers (WormBase IDs or Sequence Names) and automatically generate plots:
from wormcat3 import Wormcat, PAdjustMethod
# Initialize Wormcat runner
wc = Wormcat(title="my_experiment", email="user@example.com")
# Execute enrichment analysis and create visual charts
wc.analyze_and_visualize_enrichment(
gene_set_input="path/to/gene_list.csv", # or a python list of gene IDs
p_adjust_method=PAdjustMethod.BONFERRONI,
p_adjust_threshold=0.05,
)
2. Pre-ranked GSEA Analysis
Perform pre-ranked Gene Set Enrichment Analysis (GSEA) on DESeq2 differential expression results:
from wormcat3 import Wormcat
wc = Wormcat(title="gsea_experiment")
wc.perform_gsea_analysis(deseq2_input="path/to/deseq2_results.csv")
3. Batch Execution (Excel / Directory of CSVs)
Process multi-tab Excel files or entire directories of CSV gene lists at once, auto-generating combined Excel reports:
from wormcat3 import Wormcat
wc = Wormcat(title="batch_run")
wc.wormcat_batch(input_data="path/to/multi_sheet_data.xlsx")
Development
The project uses uv and make for dependency management and developer workflows.
Developer Setup
# Clone the repository
git clone https://github.com/DanHUMassMed/wormcat3.git
cd wormcat3
# Install dependencies and bootstrap virtual environment
make install
Common Commands
- Run Tests:
make test - Lint & Type Check:
make lint - Format Code:
make format - Launch Dev Notebook:
make dev - Build Distribution Packages:
make build
License & Citation
License
This project is licensed under the MIT License.
Citation
If you use wormcat3 or WormCat in your research, please cite the original publication:
Holdorf AD, Higgins DP, Hart AC, Boag PR, Pazour GJ, Walhout AJM, Walker AK. Analysis of genome-scale data with WormCat identifies novel enriched gene categories in studies from metabolic, tissue-specific, and lifespan-drug data. Genetics. 2020 Feb;214(2):279-294. doi: 10.1534/genetics.119.302919.
Release files for wormcat3 0.1.12
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| wormcat3-0.1.12.tar.gz | 3.1 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| wormcat3-0.1.12-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 6.2 MB
Release files / wormcat3-0.1.12.tar.gz
| Download URL | wormcat3-0.1.12.tar.gz |
|---|---|
| Size | 3.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f349a3991a09f40a50eff9f76be8ef84ab78b4c4f8962017691c809f51bcddff
|
|
BLAKE2b-256 checksum How to use checksums |
8db847e54045831cf32fa82c22a048868e11466c8362733a26769f21ac53d1ab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.11
|
Release files / wormcat3-0.1.12-py3-none-any.whl
| Download URL | wormcat3-0.1.12-py3-none-any.whl |
|---|---|
| Size | 3.2 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e9589794a24313cf10cbab9e4d76cd2bf87a7a03c62ff1653e84fe77396493a3
|
|
BLAKE2b-256 checksum How to use checksums |
f3d6aa4e3eda3039e8145f8b5a2850c59209a37b0c1bf55430aa426070045db6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.11
|