Skip to main content

Infer regulatory modules through informative latent component model in the single-cell Perturb-seq data

Project description

Documentation-webpage PyPI-Server Github License Project generated with Hatch

perturbVI

perturbvi is a scalable approach to infer regulatory modules through informative latent component model in the single-cell Perturb-seq data.

Installation | Example | Notes | Version | Support | Other Software


Installation

# install perturbvi
uv pip install perturbvi

# help
perturbvi --help

Get Started with perturbvi

Perform inference using SuSiE PCA to find the regulatory modules from CRISPR perturbation data

perturbvi <matrix> <guide> <z_dim> <l_dim> <tau> -o=<out_dir> --verbose

Arguments

  • matrix: Path to the experiment CSV file.
  • guide: Path to the guide CSV file.
  • z_dim: Number of latent factors, Z dim (12).
  • l_dim: Number of single effects, L dim (400).
  • tau: Residual precision, Tau (800).
  • out_dir: Specifies the output directory path.
  • --verbose: For logging (Optional).

Example Usage

perturbvi luhmes_exp.csv luhmes_G.csv 12 400 800 -o=results --verbose

This will save all the files (including params.pkl) in results folder.

We can analyze results:

import perturbvi

guide_path="luhmes_G.csv"
gene_symbol_path = "luhmes_gene_symbol.csv"

OUTPUT_DIR = "results"

G = pd.read_csv(guide_path, index_col=0)
G_reduce = G.drop(columns=["Nontargeting"])
# 14 genes perturbed
perturbed = G_reduce.columns.to_list()
# 6000 gene symbols (background genes)
genes = pd.read_csv(gene_path, header=None)[0].to_list()

results = perturbvi.utils.analyze_output(
  OUTPUT_DIR, 
  perturb_genes=perturbed, 
  background_genes=genes
)

# number of degs per w from PIP
print(results["num_deg_per_w"])

# number of degs per perturbed gene from LFSR
print(results["num_deg_per_perturbed_gene"])

Notes

  • perturbvi uses JAX with Just In Time compilation to achieve high-speed computation. However, there are some issues for JAX with Mac M1 chip. To solve this, users need to initiate conda using miniforge, and then install perturbvi using pip in the desired environment.

Version History

TBD

Support

Please report any bugs or feature requests in the Issue Tracker. If users have any questions or comments, please contact Dong Yuan (dongyuan@usc.edu) and Nicholas Mancuso (nmancuso@usc.edu).

Other Software

Feel free to use other software developed by Mancuso Lab:

  • SuShiE: a Bayesian fine-mapping framework for molecular QTL data across multiple ancestries.
  • MA-FOCUS: a Bayesian fine-mapping framework using TWAS statistics across multiple ancestries to identify the causal genes for complex traits.
  • SuSiE-PCA: a scalable Bayesian variable selection technique for sparse principal component analysis
  • twas_sim: a Python software to simulate TWAS statistics.
  • FactorGo: a scalable variational factor analysis model that learns pleiotropic factors from GWAS summary statistics.
  • HAMSTA: a Python software to estimate heritability explained by local ancestry data from admixture mapping summary statistics.

perturbvi is distributed under the terms of the MIT license.


This project has been set up using Hatch. For details and usage information on Hatch see https://github.com/pypa/hatch.

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

perturbvi-0.2.3.tar.gz (26.1 kB view details)

Uploaded Source

Built Distribution

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

perturbvi-0.2.3-py3-none-any.whl (30.2 kB view details)

Uploaded Python 3

File details

Details for the file perturbvi-0.2.3.tar.gz.

File metadata

  • Download URL: perturbvi-0.2.3.tar.gz
  • Upload date:
  • Size: 26.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.4.17

File hashes

Hashes for perturbvi-0.2.3.tar.gz
Algorithm Hash digest
SHA256 450c000d83f7ed41910689fd3123cc760fda990b96fd4facbc8115df8f6ba704
MD5 1faec9fc5590c4e85838fba12eb3e31e
BLAKE2b-256 c025bd311d96d853a486cc82a61a5acc1c3948552bf9733a46a784423101cb14

See more details on using hashes here.

File details

Details for the file perturbvi-0.2.3-py3-none-any.whl.

File metadata

  • Download URL: perturbvi-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 30.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.4.17

File hashes

Hashes for perturbvi-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 b54d52b0b008904dc549994bc7addbfde2a2e51c1957089b7f5da251cf682639
MD5 63bf6165554de609285d8abf52322df8
BLAKE2b-256 99d1a08880527d35f333eb42482cdcc3436d9610249755149fd1add29db9738b

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