This repository contains code used in the scMultiSim manuscript, including datasets generation and benchmarks.
All datasets used in the manuscript are available under this Dropbox share.
Please note that certain imformation that were not used during benchmarking,
such as the GIV and CIF values, were omitted from the datasets for the sake of space.
You may use the code under datasets/
to regenerate them.
Please note that generating the datasets from scratch requires long computation time and a large amount of memory.
- Each main dataset may take 30-120 minutes depending on your hardware, number of cells, and number of genes.
- Each main dataset (or other CCI dataset) requires up to 16 GB of memory. Therefore, you may need to adjust the number of parallel processes in
run_simulation.py
to avoid running out of memory. - For other datasets without the CCI, you may expect several minutes of simulation time for each dataset.
To use scMultiSim, please refer to the scMultiSim repository, where you can find vignettes and documentation.
Use the following command to install the development version of scMultiSim:
devtools::install_github("ZhangLabGT/scMultiSim@main")
For your reference, the datasets used in the manuscript were generated at commit d25f1c8
.
To run the benchmarks, you will need to have R (we used 4.1.0) and python (we used 3.9.13). A Linux environment is required (we used Manjaro Linux).
The following dependencies are required for the benchmarks:
- CCI
- Giotto R 1.1.2
- SpaTalk 1.0
- SpaOTsc (Python)
- GRN
- BEELINE commit 79775f0
- You also need Docker to run BEELINE.
- BEELINE commit 79775f0
- Integration
- Seurat v4 (
feat/dictionary
branch)- The
feat/dictionary
branch has been included in Seurat v5. The original branch may be removed in the future.
- The
- rliger 1.1.0 can be installed from CRAN.
- Seurat v4 (
- Clustetring
- Trajectory Inference
- RNA Velocity
- scVelo 0.2.4 (Python)
- velocyto 0.17.17 (Python)
- Other
uwot
andmclust
can be installed from CRAN.- For the visualization code, you need to have
ggplot
in R andseaborn
in Python.