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


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 the following (non-exhausive list):

  • standard and linearly decoded VAE models
  • support for negative binomial generative distribution with and without zero-inflation
  • different ways of specifying the dispersion parameter
  • store data in a (very basic) Julia version of the Python AnnData objects
  • several built-in datasets
  • training routines supporting a wide range of customisable hyperparameters


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

julia> ]
pkg > add ""

or alternatively by

julia> using Pkg; Pkg.add(url="")