gseapy
Gene Set Enrichment Analysis in Python
Decision gist · record as of 2026-08-14
Yes. GSEApy is actively maintained, has no known vulnerabilities, carries a permissive BSD-3-Clause license, and fills a genuine need for GSEA functionality within Python workflows. The medium install friction (Rust compilation) is a one-time cost offset by broad wheel availability for modern Python versions (3.10–3.13) and clear fallback instructions. Suitable for bioinformaticians and computational biologists working with genomic data.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python >=3.9.
- If pip install fails, Rust toolchain must be installed first (curl https://sh.rustup.rs -sSf | sh).
- Medium install friction due to Rust compilation requirement for versions after 0.11.0.
License · maintenance · safety
BSD-3-Clause (permissive) — BSD-3-Clause permissive license allows commercial and private use with minimal restrictions, requiring only license and copyright notice retention.
last release 2026-07-26 (19 days) · last repo commit 2026-08-05 · 708 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 249,903 downloads/mo, #8,643 on PyPI
Alternatives
Verify before relying
pip install gseapy
import gseapy
import pandas as pd
# Run GSEA with expression data and gene sets
gseapy.gsea(data='expression.txt', gene_sets='gene_sets.gmt', cls='test.cls', outdir='test')
# Or use prerank with fgsea multilevel p-value method
gseapy.prerank(rnk='gsea_data.rnk', gene_sets='gene_sets.gmt', method='multilevel', outdir='test')- Whether the Rust compilation requirement applies to all platforms or only specific architectures.
- Performance characteristics when analyzing large-scale genomic datasets.
- Compatibility with specific gene set database formats beyond GMT and Enrichr libraries.
What it is and what it does
GSEApy is a Python/Rust implementation of gene set enrichment analysis that brings GSEA functionality and Enrichr API access into a Python environment. It supports multiple analysis methods—standard GSEA, prerank (with a faithful Rust port of fgsea's multilevel algorithm for resolving p-values below 1/permutation_num), single-sample GSEA (ssGSEA), and GSVA—making it suitable for RNA-seq, ChIP-seq, and microarray data. The package can work with expression matrices, ranked gene lists, or Enrichr libraries, and produces publication-quality figures via matplotlib.
The package is designed for both interactive Python workflows and command-line batch processing. It accepts standard GSEA file formats (GMT, GCT, RNK, CLS) and can work directly with pandas DataFrames and Series, eliminating the need to switch between Python and desktop GSEA tools. A biomart module also enables gene ID conversion. Runtime dependencies are numpy, scipy, pandas, matplotlib, and requests—all widely used scientific Python libraries.
Use it for
- Identify significantly enriched biological pathways in RNA-seq differential expression results using prerank with gene rankings.
- Perform single-sample enrichment scoring across multiple samples to assess pathway activity per sample.
- Batch process multiple genomic datasets in a snakemake or Python workflow without manual GSEA desktop invocations.
- Reproduce GSEA desktop results programmatically using the replot module on existing GSEA output directories.
- Query Enrichr libraries for functional annotation of gene lists via the enrichr module API.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
GSEApy is actively maintained, has no known vulnerabilities, carries a permissive BSD-3-Clause license, and fills a genuine need for GSEA functionality within Python workflows. The medium install friction (Rust compilation) is a one-time cost offset by broad wheel availability for modern Python versions (3.10–3.13) and clear fallback instructions. Suitable for bioinformaticians and computational biologists working with genomic data.
Install
gseapy on PyPI
Before you install
Medium install friction due to Rust compilation requirement for versions after 0.11.0. Wheels are available for Python 3.10–3.13 on macOS, Linux, and Windows, but pip install may require a Rust toolchain if a pre-built wheel is unavailable. Active maintenance with recent release (19 days ago).
Requires Python >=3.9. If pip install fails, Rust toolchain must be installed first (curl https://sh.rustup.rs -sSf | sh).
License in practice
BSD-3-Clause permissive license allows commercial and private use with minimal restrictions, requiring only license and copyright notice retention.
Quickstart
pip install gseapy
import gseapy
import pandas as pd
# Run GSEA with expression data and gene sets
gseapy.gsea(data='expression.txt', gene_sets='gene_sets.gmt', cls='test.cls', outdir='test')
# Or use prerank with fgsea multilevel p-value method
gseapy.prerank(rnk='gsea_data.rnk', gene_sets='gene_sets.gmt', method='multilevel', outdir='test')
Verify before relying
- Whether the Rust compilation requirement applies to all platforms or only specific architectures.
- Performance characteristics when analyzing large-scale genomic datasets.
- Compatibility with specific gene set database formats beyond GMT and Enrichr libraries.
Package facts
| License | BSD-3-Clause permissive |
| Python support | Supports the current Python release >=3.9 |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | 5 packagesnumpyscipypandasmatplotlibrequests |
| Maintenance | Actively maintained 19 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 249,903 / month, #8,643 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 4 - BetaIntended Audience :: Science/ResearchOperating System :: MacOS :: MacOS XOperating System :: Microsoft :: WindowsOperating System :: POSIXProgramming Language :: Python :: 3Topic :: Scientific/Engineering :: Bio-InformaticsTopic :: Software Development :: Libraries |
Evidence: gseapy-1.3.1-cp310-cp310-macosx_11_0_arm64.whl; gseapy-1.3.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl; gseapy-1.3.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; gseapy-1.3.1-cp310-cp310-win32.whl; gseapy-1.3.1-cp310-cp310-win_amd64.whl; gseapy-1.3.1-cp311-cp311-macosx_11_0_arm64.whl; gseapy-1.3.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl; gseapy-1.3.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; gseapy-1.3.1-cp311-cp311-win32.whl; gseapy-1.3.1-cp311-cp311-win_amd64.whl; gseapy-1.3.1-cp312-cp312-macosx_11_0_arm64.whl; gseapy-1.3.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl; gseapy-1.3.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; gseapy-1.3.1-cp312-cp312-win32.whl; gseapy-1.3.1-cp312-cp312-win_amd64.whl; gseapy-1.3.1-cp313-cp313-macosx_11_0_arm64.whl; gseapy-1.3.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl; gseapy-1.3.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; gseapy-1.3.1-cp313-cp313-win32.whl; gseapy-1.3.1-cp313-cp313-win_amd64.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “gene set enrichment analysis python”
- gseapyPerforms gene set enrichment analysis (GSEA) on genomic data using…
- gprofiler-officialPython interface to g:Profiler toolkit for functional enrichment…
- pydeseq2PyDESeq2 performs differential expression analysis on bulk RNA-seq…
Give your agent the search over MCP, or paste the wish link into any chat.
More Libraries packages
urllib3 is an HTTP client library that provides thread-safe connection pooling, SSL/TLS verification, multipart file uploads, request retries, compression support, and proxy handling for Python applications.
Requests is a Python HTTP library that simplifies sending HTTP/1.1 requests with automatic handling of headers, authentication, cookies, and response parsing.
Pluggy provides a plugin system that lets you define hook specifications and register implementations to be called in sequence, enabling extensible Python applications without tight coupling.
Install it if you're building an extensible application or framework.
Provides parsing, arithmetic, and recurrence rule computation for dates and times, with timezone support and iCalendar RFC compliance.
Install it if you need to parse flexible date strings, compute relative dates, handle timezones, or work with recurrence rules—it's the de facto choice for these tasks.
Six provides utility functions to write Python code that runs on both Python 2.7 and Python 3.3+, smoothing over language differences between the two versions.
pytest is a testing framework that lets you write test functions using plain assert statements and automatically discovers and runs them, with detailed failure reporting.
See also gprofiler-official · gtfparse · deepbiop · pydeseq2 · pyranges · scanpy · biopython · biotite · pyensembl · cobra