Welcome to GSEAPY’s documentation!

GSEAPY: Gene Set Enrichment Analysis in Python.

https://badge.fury.io/py/gseapy.svg https://img.shields.io/conda/vn/bioconda/GSEApy.svg?style=plastic Action Status Documentation Status https://img.shields.io/badge/license-MIT-blue.svg PyPI - Python Version

Release notes : https://github.com/zqfang/GSEApy/releases


Zhuoqing Fang, Xinyuan Liu, Gary Peltz, GSEApy: a comprehensive package for performing gene set enrichment analysis in Python,
Bioinformatics, 2022;, btac757, https://doi.org/10.1093/bioinformatics/btac757


Install gseapy package from bioconda or pypi.
# if you have conda (MacOS_x86-64 and Linux only)
$ conda install -c bioconda gseapy

# or use pip to install the latest release
$ pip install gseapy

GSEApy is a Python/Rust implementation of GSEA and wrapper for Enrichr.

GSEApy has multiple subcommands: gsea, prerank, ssgsea, gsva, replot enrichr, biomart.

1. The gsea module produces GSEA results. The input requries a txt file(FPKM, Expected Counts, TPM, et.al), a cls file, and gene_sets file in gmt format.

2. The prerank module produces Prerank tool results. The input expects a pre-ranked gene list dataset with correlation values, which in .rnk format, and gene_sets file in gmt format. prerank module is an API to GSEA pre-rank tools.

3. The ssgsea module performs single sample GSEA(ssGSEA) analysis. The input expects a gene list with expression values(same with .rnk file, and gene_sets file in gmt format. ssGSEA enrichment score for the gene set as described by D. Barbie et al 2009.

  1. The gsva module performs GSVA analysis, which described by Hänzelmann et al.

5. The replot module reproduces GSEA desktop version results. The only input for GSEAPY is the location to GSEA Desktop output results.

6. The enrichr module enables you to perform gene set enrichment analysis using Enrichr API. Enrichr is open source and freely available online at: http://amp.pharm.mssm.edu/Enrichr . It runs very fast and generates results in txt format.

  1. The biomart module helps you convert gene ids using BioMart API.

GSEApy could be used for RNA-seq, ChIP-seq, Microarry data. It’s used for convenient GO enrichments and produce publishable quality figures in python.

The full GSEA is far too extensive to describe here; see GSEA documentation for more information. All files’ formats for GSEApy are identical to GSEA desktop version.


I would like to use Pandas to explore my data, but I did not find a convenient tool to do gene set enrichment analysis in python. So, here are my reasons:

  • Ability to run inside python interactive console without having to switch to R!!!

  • User friendly for both wet and dry lab users.

  • Produce or reproduce publishable figures.

  • Perform batch jobs easy.

  • Easy to use in bash shell or your data analysis workflow, e.g. snakemake.

Indices and tables