Fast Wilcoxon rank-sum test for differential expression analysis in single-cell genomics
Project description
FastWilcox
Fast Wilcoxon rank-sum test for differential expression analysis in single-cell genomics.
This is a Python implementation of the wilcoxauc from the R' presto package, providing high-performance statistical testing for single-cell RNA-seq data.
Features
- Fast Wilcoxon rank-sum test with AUC calculation
- Multiple matrix formats supported: Dense, CSR, and CSC sparse matrices
- Optimized for single-cell data with efficient handling of sparse matrices
- FDR correction using Benjamini-Hochberg method
- Compatible with AnnData objects
Installation
cd python
pip install fastwilcox
For development:
pip install -e ".[dev]"
Usage
import anndata as ad
from fastwilcox import wilcoxauc
# Load your data
adata = ad.read_h5ad("your_data.h5ad")
# Run Wilcoxon test
results = wilcoxauc(
x=adata.X,
y=adata.obs['cell_type'].values,
groups_use=None, # Optional: test specific groups
y_order=None, # Optional: specify group order
comparison=None # Optional: pairwise comparison label
)
# Results is a list of WilcoxResult objects
for res in results:
print(f"Feature {res.feature}, Group {res.group}: "
f"logFC={res.log_fc:.3f}, AUC={res.auc:.3f}, "
f"p-adj={res.padj:.3e}")
API Reference
wilcoxauc(x, y, groups_use=None, y_order=None, comparison=None)
Perform Wilcoxon rank-sum test for differential expression.
Parameters:
x: Matrix (Dense array, CSR, or CSC sparse matrix) where rows are samples and columns are featuresy: List/array of group labels (strings)groups_use: Optional list of groups to test (default: all groups)y_order: Optional list specifying the order of groupscomparison: Optional comparison pattern for pairwise tests
Returns:
- List of
WilcoxResultobjects with fields:feature: Feature indexgroup: Group nameavg_expr: Average expression in grouplog_fc: Log fold change (in-group mean - out-group mean)ustat: U-statisticauc: Area under ROC curvepval: P-valuepadj: FDR-adjusted p-valuepct_in: Percentage of cells expressing in grouppct_out: Percentage of cells expressing out of groupcomparison: Comparison label, useful when only compare two group
Testing
Run tests:
cd python
pytest tests/
Run tests with coverage:
pytest tests/ --cov=fastwilcox --cov-report=html
Performance
This implementation is optimized for:
- Large sparse matrices (common in single-cell RNA-seq)
- Efficient group-wise operations
- Vectorized numpy operations
For the best performance with sparse data, use CSC format.
License
MIT License
Citation
If you use this software, please cite the fastwilcox project.
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 fastwilcox-0.1.0.tar.gz.
File metadata
- Download URL: fastwilcox-0.1.0.tar.gz
- Upload date:
- Size: 14.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c6f381d1e8df9d272cd35b4f30b05a362cef810bd335b5d9446c34ece9259be2
|
|
| MD5 |
4171aefe609465953a07027dd3902d98
|
|
| BLAKE2b-256 |
e42ad62660db6e8dd2fa04cb19f534ede338504654d89139eb030846365cb176
|
File details
Details for the file fastwilcox-0.1.0-py3-none-any.whl.
File metadata
- Download URL: fastwilcox-0.1.0-py3-none-any.whl
- Upload date:
- Size: 11.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
392a1fbcd6ca70226bf664e43f47b3ef636f0bde889ff7269f4c35edefeb529f
|
|
| MD5 |
225cedaf58cb7d13ea2a8a558bee1e6d
|
|
| BLAKE2b-256 |
cd61d61c158d79fdab8865a0a42ad93f7ffb9c1743cab5f8bbfe4e72ff13a495
|