Multimodal single-cell analyses reveal mechanisms of perianal fistula in diverse patients with Crohn’s disease
Published code and computational methods for Levantovsky et. al. 2024
Supplementary processed data products from these methods are available on a linked Open Science Framework (OSF) project by request.
DOIs
- published manuscript - https://doi.org/10.1016/j.medj.2024.03.021
- processed data products - https://doi.org/10.17605/OSF.IO/S4MQW
- this code repository -
Citation
Levantovsky, R.M., Tastad, C., Zhang, J., Gettler, K., Sabic, K., Werner, R., Chasteau, C., Korie, U., Paguay, D., Bao, M., et al. (2024). Multimodal single-cell analyses reveal mechanisms of perianal fistula in diverse patients with Crohn’s disease. Med 5, 886-908.e11. https://doi.org/10.1016/j.medj.2024.03.021.
This codebase include submodules, so the --recursive flag is required.
git clone --recursive https://github.com/ChoBioLab/levantovsky-2024.git- CellPhoneDB - cell-ligand analysis
- coreSC - scRNAseq and scATAC-multiome preprocessing (Seurat & Signac wrapper)
- DESeq2 - DEG analysis
- Scenic - gene regulatory network analysis
- Scenicplus - enhancer driven gene regulatory network analysis
- scVelo - scRNAseq velocity analysis
- Seurat - scRNAseq preprocessing
- Signac - scATAC-multiome preprocessing
- Tobias - Chromatin availability analysis
Package management in this project was handled entirely by some form of virtualisation framework. The primary dependencies given below are necessary to orchestrate those systems. All other package requirements are generally accounted for.
- Singularity (coreSC)
- Conda (scenic, scenicplus, scVelo, tobias, cellphoneDB)
- Docker (R packages image)
- AWS CLI (data)
- A development environment that can connect to a container such as VSCode
All environments outlined in this codebase were originally assembled in Linux. It is generally advised that any use of these workflows be carried out in a comparable architecture.
R Packages
(Seurat, Scenic, DESeq2)
Every method using Seurat, Signac, and DESeq2 (scRNAseq, ATAC-multiome, etc) was executed in a containerized environment. The setup for this environment can be instantiated with a single script as shown below. It's generally recommended to use the -v parameter to mount a drive from the host system to pass content into the container.
# running the container
# the first-time setup will take a while as the image is quite large (~7.5GB)
## directly from the cli
docker run \
-it \
-v `pwd`:/data \
public.ecr.aws/chobiolab/r-dev:levantovsky-2024 \
/bin/bash
## in the background to attach to an IDE
docker run \
-it -d \
-v `pwd`:/data \
public.ecr.aws/chobiolab/r-dev:levantovsky-2024
# how to connect to a container running in the background https://code.visualstudio.com/docs/devcontainers/attach-containerconda
(scenic, scVelo, tobias, cellphoneDB)
Several methods were managed with Conda environments. Deployment of these is typically tool-specific and follows the standard Conda mechanisms.
conda create --name <env> --file <this file>
# example
conda create --name scenic --file levantovsky-2024/env/conda/scenic-reqs.txtscenicplus
At the time of use, the current release of scenic+ contained dependencies that could not be cleanly captured by conda. The most effective way to recreate the published method is to follow the scenic+ conda install method from the commit at the time of publication (e4bdd9f).
We've also included an optional conda env file for posterity, but this will likely suffer from dependency issues with pycisTopic and pycistarget that would need to be resolved manually. The env file is located at levantovsky-2024/env/conda/scenicplus_env.yml
# fresh scenicplus conda install
conda create --name scenicplus python=3.8
conda activate scenicplus
git clone https://github.com/aertslab/scenicplus
cd scenicplus
git checkout e4bdd9f
pip install -e .