scVI.jl

A Julia package for fitting VAEs to single-cell data using count distributions. Based on the Python implementation in the scvi-tools package.

Overview

The scVI model was first proposed in Lopez R, Regier J, Cole MB et al. Deep generative modeling for single-cell transcriptomics. Nat Methods 15, 1053-1058 (2018).

More on the much more extensive Python package ecosystem scvi-tools can be found on the website and in the corresponding paper Gayoso A, Lopez R, Xing G. et al. A Python library for probabilistic analysis of single-cell omics data. Nat Biotechnol 40, 163–166 (2022).

This is the documentation for the Julia version implementing basic functionality, including:

  • standard and linearly decoded VAE models
  • support for negative binomial generative distribution w/o zero-inflation, Poisson distribution, Gaussian and Bernoulli distribution
  • different ways of specifying the dispersion parameter
  • library size encoding
  • representing data as a Julia AnnData object based on Muon.jl fully analogous to Python's anndata object + standard slicing and subsetting operations
  • preprocessing functions operating directly on the AnnData object analogous to scanpy functions: filtering, highly variable gene seletion, transformations, dimension reduction, etc.
  • several built-in datasets (see below)
  • training routines supporting a wide range of customizable hyperparameters including a freely definable layer structure
  • easily customizable loss functions for shaping the latent space, e.g., to resemble a t-SNE or UMAP embedding

Installation

The package can be downloaded from the Github repo and added with the Julia package manager via

julia> ]
pkg > add "https://github.com/maren-ha/scVI.jl"

or alternatively by

julia> using Pkg; Pkg.add(url="https://github.com/maren-ha/scVI.jl")

Contents