Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Variational Inference Methods for Single-Cell Genomics

Demonstration code and notebooks for the paper Variational Inference Methods for Single-Cell Genomics.

This repository reproduces the simulations, single-cell probabilistic inference (scPI) examples, and temporal GP analyses.

Repository structure

01_simulation/
  01_LMM/
    LMM.py
    LMM_simulation.ipynb
  02_scLDA/
    LDA.py
    ScLdaSimData.py
    LDA_simulation.ipynb
    run_paper_cavi_svi_mse.py
    run_paper_pyro.py
  03_GLMM/
    GLMM.py
    GLMM_simulation.ipynb

02_scPI/
  FA.py
  ZIFA.py
  01_computational_time.ipynb
  02_performance_comparison.ipynb

03_TemporalGP/
  GP.py
  utils.py
  01_compare.ipynb
  02_leave_cohort.ipynb

Contents

01_simulation/

  • 01_LMM/ — Linear mixed model estimators: EM, PX-EM, MM, and mean-field CAVI.
  • 02_scLDA/ — Single-cell LDA with conjugate CAVI/SVI and black-box Pyro AutoNormal SVI.
  • 03_GLMM/ — Grouped Bernoulli GLMM estimators: Laplace, PQL, and Pyro VI.

02_scPI/

  • FA.py — Factor analysis with amortized VI or non-amortized VI (method="amortized" / "vi").
  • ZIFA.py — Zero-inflated FA with classic EM, block EM, or Pyro VI (method="classic" / "block" / "pyro", plus amortized vs non-amortized inference).
  • 01_computational_time.ipynb — Runtime benchmarks over cell/gene sizes using the mouse brain 10x matrix at datasets/mouse_brain/datasets/1M_neurons_filtered_gene_bc_matrices_h5.h5.
  • 02_performance_comparison.ipynb — Cortex imputation and clustering comparison using expression_mRNA_17-Aug-2014.txt.

03_TemporalGP/

  • GP.py — Temporal count models in Pyro: GP_MF, GP_Full-rank, and Indep_MF.
  • utils.py — Age standardization and RBF temporal kernel helpers.
  • 01_compare.ipynb — Fit the three models on Microglia from datasets/aging_svz_adata.h5ad across gene-panel sizes.
  • 02_leave_cohort.ipynb — Leave-cohort experiment: hold out each cohort, then compare missing time-point estimates to full-data baselines.

How to run

  1. Install the Python dependencies used by the notebooks you plan to run (numpy, scipy, pandas, matplotlib, and for Pyro-based sections also torch, pyro-ppl; TemporalGP / scPI notebooks additionally use anndata, h5py, and scikit-learn as needed).
  2. Place required external datasets under the paths noted above.
  3. Open and run the notebooks in order within each folder.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages