LatentLego
- flexible latent spaces for single cells

LatentLego is a python library for building autoencoders for single-cell genomics. It is build on top of TensorFlow and Keras and provides modular components to build common single-cell autoencoder architectures. All individual comonents are valid Keras Layer or Model objects and therefore support model construction using the standard Keras (functional/sequential) API. There is also a model zoo of preconstructed models that understand builtin Keras methods like .fit() or .predict() and .compile() with custom loss functions.
Installation
You can install LatentLego from PyPI using pip
pip install latent
or install the development version from GitHub
pip install git+https://github.com/quadbiolab/latent-lego
Overview
LatentLego is designed to be a flexible kit for defining autoencoders by providing common building blocks that can be freely assembled. Here's an overview:
-
latent.models- Here you can find Keras-compatible implementations of common single-cell autoencoder architectures, such as theZINBAutoencoder(Erslan 2019) or theNegativeBinomialVAE(Lopez 2018). I also implemented some more experimental architectures like theTopologicalAutoencoder(Moor 2019). -
latent.modules- Here live the lower level building blocks of autoencoders, namelyencoderanddecodermodels that can be freely assembled to produce autoencoder models. E.g., using aVariationalEncoderwith aPoissonDecoderproduces aPoissonVAE, a variational autoencoder with a poisson reconstruction loss. -
latent.layers- These are the most basic building blocks ofencoderanddecodermodels. In addition to theDenseBlock/DenseStacklayers that are the core component of encoders and decoders, I implemeneted some other useful utility layers. -
latent.losses,latent.activations,latent.callbacks- Keras-style components that are useful for single-cell data, like aNegativeBinomialloss or aKLDivergenceSchedulercallback function. All of these should work nicely within the TensorFlow/Keras framework.