scppin-py
Pure Python implementation of scPPIN for single-cell protein-protein interaction network analysis
scppin-py detects functional modules in protein-protein interaction networks by integrating single-cell RNA sequencing data. This is a reimplementation of the original R package with an object-oriented Python API.
Original method: Klimm et al. (2020), BMC Genomics
Key Features
- Fast — Vectorized NumPy operations and igraph backend for speed and efficiency
- Class-Based API — Object-oriented design with method chaining
- Edge Weights — Supports pre-computed edge weights from dictionaries
- Scanpy Integration — Works with AnnData objects for p-value extraction
- Easy Installation — Single
pip installcommand - Standalone PCST — Direct PCST implementation without dependencies on expression data
Quick Start
Installation
pip install scppin
Or install directly from GitHub:
pip install git+https://github.com/shahrozeabbas/scppin-py.git
Basic Usage
from scppin import scPPIN
# Create model and load network
model = scPPIN()
model.load_network('edges.csv')
# Set node weights (p-values from differential expression)
pvalues = {'TP53': 0.0001, 'MDM2': 0.001, 'CDKN1A': 0.005}
model.set_node_weights(pvalues)
# Optionally set edge weights (from pre-computed dictionary)
edge_weights = {('TP53', 'MDM2'): 0.9, ('TP53', 'CDKN1A'): 0.8}
model.set_edge_weights(weights=edge_weights)
# Detect functional module using PCST
model.detect_module(fdr=0.01, edge_weight_attr='weight')
# Visualize
model.plot_module()
Documentation
Full documentation: https://scppin-py.readthedocs.io
Citation
If you use scppin-py in your research, please cite the original paper:
@article{klimm2020functional,
title={Functional module detection through integration of single-cell RNA sequencing data with protein--protein interaction networks},
author={Klimm, Florian and Toledo, Enrique M and Monfeuga, Thomas and Zhang, Fang and Deane, Charlotte M and Reinert, Gesine},
journal={BMC Genomics},
volume={21},
number={1},
pages={756},
year={2020},
publisher={BioMed Central},
doi={10.1186/s12864-020-07144-2}
}
If you wish to additionally cite this Python implementation:
@software{abbas2024scppin,
author={Abbas, Shahroze},
title={scppin-py: Pure Python implementation of scPPIN},
year={2024},
url={https://github.com/shahrozeabbas/scppin-py},
note={Python reimplementation of the scPPIN R package}
}
License
GPL-3.0 (same as original R package)
Links
Release files for scppin 0.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| scppin-0.3.1.tar.gz | 64.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| scppin-0.3.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 103.2 kB
Release files / scppin-0.3.1.tar.gz
| Download URL | scppin-0.3.1.tar.gz |
|---|---|
| Size | 64.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
592c356b779367a01b979c3edcaf3572176fa112f5bc95e11c18dd34e5047aa3
|
|
BLAKE2b-256 checksum How to use checksums |
4635305933c773025fba8a9ff58ec4ec8955406d5b43b1839e816569560ab3db
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.12
|
Release files / scppin-0.3.1-py3-none-any.whl
| Download URL | scppin-0.3.1-py3-none-any.whl |
|---|---|
| Size | 38.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7d55453cd9e35ed29614ae37ad3b769d475edf9366af0f8134527e494b893dbf
|
|
BLAKE2b-256 checksum How to use checksums |
011e9494a2b50a6c72349e3e8b1846462e0f1ff23231c3c563dce4ec95741c07
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.12
|