Parallel differential expression for single-cell perturbation sequencing
Project description
pdex
parallel differential expression for single-cell perturbation sequencing
Installation
Add to your pyproject.toml file with uv
uv add pdex
Summary
This is a python package for performing parallel differential expression between multiple groups and a control.
It is optimized for very large datasets and very large numbers of perturbations.
It makes use of shared memory to parallelize the computation to a high number of threads and minimizes the IPC between processes to reduce overhead.
It supports the following metrics:
- Wilcoxon Rank Sum
- Anderson-Darling
- T-Test
Usage
import anndata as ad
import numpy as np
import pandas as pd
from pdex import parallel_differential_expression
PERT_COL = "perturbation"
CONTROL_VAR = "control"
N_CELLS = 1000
N_GENES = 100
N_PERTS = 10
MAX_UMI = 1e6
def build_random_anndata(
n_cells: int = N_CELLS,
n_genes: int = N_GENES,
n_perts: int = N_PERTS,
pert_col: str = PERT_COL,
control_var: str = CONTROL_VAR,
) -> ad.AnnData:
"""Sample a random AnnData object."""
return ad.AnnData(
X=np.random.randint(0, MAX_UMI, size=(n_cells, n_genes)),
obs=pd.DataFrame(
{
pert_col: np.random.choice(
[f"pert_{i}" for i in range(n_perts)] + [control_var],
size=n_cells,
replace=True,
),
}
),
)
def main():
adata = build_random_anndata()
# Run pdex with default metric (wilcoxon)
results = parallel_differential_expression(
adata,
reference=CONTROL_VAR,
groupby_key=PERT_COL,
)
assert results.shape[0] == N_GENES * N_PERTS
# Run pdex with alt metric (anderson)
results = parallel_differential_expression(
adata,
reference=CONTROL_VAR,
groupby_key=PERT_COL,
metric="anderson"
)
assert results.shape[0] == N_GENES * N_PERTS
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pdex-0.1.22.tar.gz.
File metadata
- Download URL: pdex-0.1.22.tar.gz
- Upload date:
- Size: 14.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.8.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cdde3cd8155423a00754790764c184ec9fe72c118a4fdea879c951705c144ba3
|
|
| MD5 |
365052510bef632b84d355cc0adfe427
|
|
| BLAKE2b-256 |
0cc3acf1906e00d56242ccaae5c25a9a32f0ad44035aa6682768d45ad089c191
|
File details
Details for the file pdex-0.1.22-py3-none-any.whl.
File metadata
- Download URL: pdex-0.1.22-py3-none-any.whl
- Upload date:
- Size: 11.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.8.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8dc632f51cd960e0efede7a2c8359557c378227f727436dbc5518cfb5cb2b089
|
|
| MD5 |
a079091dce8ba337d13b74945c9814d6
|
|
| BLAKE2b-256 |
46d48d76d16edac00c2a61fc9414f6c49ebe3d97229d3a00c1e39d9c27c224a8
|