This repository is dedicated to the inference of lobular coordinates from single-cell RNA sequencing (scRNA-seq) data. Our focus is on implementing and comparing three distinct computational approaches to address this challenge. This repository contains the code used in the study: A sexually dimorphic hepatic cycle of periportal VLDL generation and subsequent pericentral VLDLR-mediated re-uptake.
MLE.ipynb
it's the notebook that assigns the lobular coordinate to cells based on their transcriptome. Such coordinate is present in several figures of the paper.gene_selection.ipynb
This notebook expands the list of zonated genes, leveraging the coordinates found with the smaller gene list.
other_methods/numpyro_SVI.ipynb
: Utilizing the NumPyro library, which is built on JAX, SVI offers a scalable Bayesian inference method, approximating posterior distributions of latent variables.other_methods/numpyro_MCMC.ipynb
: This approach, also using NumPyro, employs the No-U-Turn Sampler (NUTS), to sample the posterior distributions of all latent variables.MLE_droin.ipynb
: Same method applyed to another dataset from Droin et al. Space-time logic of liver gene expression at sub-lobular scale.
The config.py
file is central to the setup, containing key hyperparameters such as:
- List of genes used for analysis
- Number of iterations
- Batch size
In order to run the code the following packages are needed:
- python
- numpy
- matplotlib
- pip
- scikit-learn
- ipykernel
- pandas
- seaborn
- anndata
- scanpy
- python-igraph
- leidenalg
- scipy
For PyTorch approaches:
- torch
- torchvision
- torchaudio
For JAX-based approaches (SVI, MCMC):
- jax
- jaxlib
- numpyro
Contact [email protected]