Skip to content
Huwenbo Shi edited this page Oct 20, 2026 · 5 revisions

Overview of scEPS

The scEPS software package implements the following functionalities:

  1. Estimate scEPS statistics at each individual cell neighborhood
  2. Cluster cell neighborhoods into approximately independent blocks
  3. Aggregate scEPS statistics for groups of cell neighborhoods
  4. Calculate the correlation between scEPS statistics and gene expression

We provided detailed documentation for each of these functionalities on the relevant wiki page (see right hand side). Below we provide a general overview of a scEPS workflow.

Installation

scEPS is available on PyPI:

pip install sceps

This provides the four command-line tools used throughout this wiki (sceps, sceps-cluster-neighborhood, sceps-aggregate and sceps-corr), as well as the importable sceps Python package. Alternative installation routes, including a conda environment that reproduces the exact dependency versions used in the manuscript, are described in the README.

Typical scEPS workflow

Step 0a. Obtain gene-level MAGMA association statistics, using misc/run_magma.sh

Step 0b. Preprocess single-cell RNA-seq data, using misc/preprocess_scdata.py

Step 1. Estimate scEPS $d$, $\omega^2_{gwas}$, $\omega^2_{ctrl}$, $\omega^2_{rest}$, and $\omega^2_{overall}$ statistics for each individual cell neighborhood, using the sceps command

Step 2. Cluster cell neighborhoods into approximately independent blocks for statistical block bootstrap, using the sceps-cluster-neighborhood command

Step 3. Aggregate scEPS statistics at individual cell neighborhoods into cell types, using the sceps-aggregate command

Step 4. (optional) Calculate the correlation between scEPS statistics and gene expression, using the sceps-corr command

Recommended directory structure

We recommend using the following directory structure for a typical scEPS analysis.

DISEASE/
├── step_0a/
│   ├── out/
│   └── run_magma.sh
├── step_0b/
│   ├── out/
│   └── run_preprocess.sh
├── step1/
│   ├── out/
│   └── run_step1.sh
├── step2/
│   ├── out/
│   └── run_step2.sh
├── step3/
│   ├── out/
│   └── step3.sh
└── step4/
    ├── step4_out/
    └── run_step4.sh

If the user chooses to perform separate scEPS analysis for each cell type in the single cell data during step 1, the user may organize the analysis as follows:

DISEASE/
├── step_0a/
│   ├── out/
│   └── run_magma.sh
├── step_0b/
│   ├── out/
│   └── run_preprocess.sh
├── step1/
│   ├── out_celltype1/
│   ├── out_celltype2/
│   ├── out_celltype3/
│   ├── run_step1_celltype1.sh
│   ├── run_step1_celltype2.sh
│   └── run_step1_celltype3.sh
├── step2/
│   ├── out/
│   └── run_step2.sh
├── step3/
│   ├── out/
│   └── step3.sh
└── step4/
    ├── step4_out/
    └── run_step4.sh