Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

scpclm-0.1.0.tar.gz (12.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

scpclm-0.1.0-py3-none-any.whl (22.6 kB view details)

Uploaded Python 3

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

Hashes for scpclm-0.1.0.tar.gz
Algorithm Hash digest
SHA256 21c45739e5f405a137f5b8e9a859c802d6fb10a936994c82d6d45a2305917948
MD5 60f1a4853f5714e0ac6259de3e265cb2
BLAKE2b-256 4d232d69efe76f708214c737dc4793fd0b43586c7694013ad2da5dceff314c30

See more details on using hashes here.

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

Hashes for scpclm-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4a4d479ebc79b0b0a1d6890a07e06409c006919f1433493101177462e138bfd4
MD5 20932f1d064f4aab729d6a3c7fbc95a6
BLAKE2b-256 aa408534c6f7880b33b85f18eec48b13d6b7e940ab3a694222af698eb6547981

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page