Hybrid parametric modeling of single-cell gene expression dynamics along pseudotime
Project description
scPCLM
scPCLM is a hybrid parametric framework for modeling gene expression dynamics along pseudotime in single-cell RNA-seq data.
It is designed to identify differentiation-associated genes by fitting biologically interpretable hill-shaped and valley-shaped trajectories, while providing robust estimation of temporal features such as turning points.
Features
-
Supports multiple count distributions:
- Poisson
- Negative Binomial (NB)
- Zero-Inflated Poisson (ZIP)
- Zero-Inflated Negative Binomial (ZINB)
-
Models asymmetric expression patterns:
- Hill-shaped trajectories
- Valley-shaped trajectories
-
Hybrid optimization strategy:
- Global search via Differential Evolution
- Local refinement via L-BFGS-B
-
Interpretable parameters:
- Turning point (t0)
- Activation and decay rates (k1, k2)
- Expression magnitude (mu)
-
Uncertainty estimation:
- Fisher information-based confidence intervals
Installation
Install from PyPI:
pip install scpclm
Or install from source:
git clone https://github.com/jesseslight9-jpg/scpclm
cd scpclm
pip install -e .
Input Data Format
Input data should be a cell-by-gene matrix where:
- The first column is pseudotime
- The remaining columns are gene expression values
Example:
| Index | Pseudotime | Gene1 | Gene2 |
|---|---|---|---|
| 1 | t1 | y11 | y12 |
| 2 | t2 | y21 | y22 |
Python API Usage
Automatic mode
from scpclm import scpclm_auto
result = scpclm_auto(
gene_index=100,
t=pseudotime,
y1=expression,
marginal="ZIP",
iter_num=100,
save_dir="Results/"
)
Hill-only mode
from scpclm import scpclm_hill
result = scpclm_hill(
gene_index=100,
t=pseudotime,
y1=expression,
marginal="NB"
)
Valley-only mode
from scpclm import scpclm_valley
result = scpclm_valley(
gene_index=100,
t=pseudotime,
y1=expression,
marginal="ZIP"
)
Output
The model returns:
- Estimated parameters: mu, k1, k2, t0
- Model selection criterion: AIC
- Confidence intervals
- Fitted expression values
- Visualization plots (.png)
Command-line Usage (Optional)
python scripts/run_scPCLM.py \
--model.iter 100 \
--model.marginal ZIP \
--data.dir your_data.csv \
--model.save_dir Results/
Project Structure
scpclm/
scpclm/ core implementation
scripts/ command-line scripts
examples/ demos
License
MIT License
Citation
If you use this method, please cite:
scPCLM: A hybrid parametric approach for identifying differentiation-associated genes from single-cell RNA-seq data
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 scpclm-0.1.0.tar.gz.
File metadata
- Download URL: scpclm-0.1.0.tar.gz
- Upload date:
- Size: 12.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
21c45739e5f405a137f5b8e9a859c802d6fb10a936994c82d6d45a2305917948
|
|
| MD5 |
60f1a4853f5714e0ac6259de3e265cb2
|
|
| BLAKE2b-256 |
4d232d69efe76f708214c737dc4793fd0b43586c7694013ad2da5dceff314c30
|
File details
Details for the file scpclm-0.1.0-py3-none-any.whl.
File metadata
- Download URL: scpclm-0.1.0-py3-none-any.whl
- Upload date:
- Size: 22.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4a4d479ebc79b0b0a1d6890a07e06409c006919f1433493101177462e138bfd4
|
|
| MD5 |
20932f1d064f4aab729d6a3c7fbc95a6
|
|
| BLAKE2b-256 |
aa408534c6f7880b33b85f18eec48b13d6b7e940ab3a694222af698eb6547981
|