Dance
DANCE: a deep learning library and benchmark platform for single-cell analysis
Install / Use
/learn @OmicsML/DanceREADME
Overview of DANCE 1.0 and 2.0
DANCE 1.0 is a Python toolkit designed to support deep learning models for large-scale analysis of single-cell gene expression data. Its goal is to foster a deep learning community and establish a benchmark platform for computational methods in single-cell analysis.
DANCE 2.0 extends this effort by introducing an automated preprocessing recommendation platform. It addresses the pressing need to move beyond trial-and-error approaches by transforming single-cell preprocessing into a systematic, data-driven, and interpretable workflow.
Both include three modules at present:
- Single-modality analysis: cell type annotation, clustering, gene imputation
- Single-cell multimodal omics: modality prediction (only DANCE 1.0), modality matching(only DANCE 1.0), joint embedding
- Spatially resolved transcriptomics: spatial domain identification, cell type deconvolution
DANCE 2.0 Release Schedule
- [ ] Open-source release of the DANCE 2.0 codebase
- [ ] Launch of the DANCE 2.0 web platform for users to upload datasets and receive optimal preprocessing recommendations
- [ ] Release of the DANCE 2.0 API for programmatic access to preprocessing recommendations
Useful links
DANCE Open Source: https://github.com/OmicsML/dance
DANCE Documentation: https://pydance.readthedocs.io/en/latest/
DANCE 1.0 Paper (published on Genome Biology): DANCE: a deep learning library and benchmark platform for single-cell analysis
DANCE 2.0 Paper: DANCE 2.0: Transforming single-cell analysis from black box to transparent workflow
Survey Paper (published on ACM TIST): Deep Learning in Single-cell Analysis
Join the Community
Slack: https://join.slack.com/t/omicsml/shared_invite/zt-1hxdz7op3-E5K~EwWF1xDvhGZFrB9AbA
Twitter: https://twitter.com/OmicsML
Wechat Group Assistant: 736180290
Email: danceteamgnn@gmail.com
Contributing
Community-wide contribution is the key to sustainable development and
continual growth of the DANCE package. We deeply appreciate any contribution
made to improve the DANCE code base. If you would like to get started, please
refer to our brief guidelines about our automated quality
controls, as well as setting up the dev environments.
Citation
If you find our work useful in your research, please consider citing our DANCE package or survey paper:
@article{ding2025dance,
title={DANCE 2.0: Transforming single-cell analysis from black box to transparent workflow},
author={Ding, Jiayuan and Xing, Zhongyu and Wang, Yixin and Liu, Renming and Liu, Sheng and Huang, Zhi and Tang, Wenzhuo and Xie, Yuying and Zou, James and Qiu, Xiaojie and others},
journal={bioRxiv},
pages={2025--07},
year={2025},
publisher={Cold Spring Harbor Laboratory}
}
@article{ding2024dance,
title={DANCE: A deep learning library and benchmark platform for single-cell analysis},
author={Ding, Jiayuan and Liu, Renming and Wen, Hongzhi and Tang, Wenzhuo and Li, Zhaoheng and Venegas, Julian and Su, Runze and Molho, Dylan and Jin, Wei and Wang, Yixin and others},
journal={Genome Biology},
volume={25},
number={1},
pages={1--28},
year={2024},
publisher={BioMed Central}
}
@article{molho2024deep,
title={Deep learning in single-cell analysis},
author={Molho, Dylan and Ding, Jiayuan and Tang, Wenzhuo and Li, Zhaoheng and Wen, Hongzhi and Wang, Yixin and Venegas, Julian and Jin, Wei and Liu, Renming and Su, Runze and others},
journal={ACM Transactions on Intelligent Systems and Technology},
volume={15},
number={3},
pages={1--62},
year={2024},
publisher={ACM New York, NY}
}
Usage (DANCE 1.0)
Overview
In release 1.0, the main usage of the DANCE is to provide readily available experiment reproduction
(see detail information about the reproduced performance below).
Users can easily reproduce selected experiments presented in the original papers for the computational single-cell methods implemented in DANCE, which can be found under examples/.
Motivation
Computational methods for single-cell analysis are quickly emerging, and the field is revolutionizing the usage of single-cell data to gain biological insights. A key challenge to continually developing computational single-cell methods that achieve new state-of-the-art performance is reproducing previous benchmarks. More specifically, different studies prepare their datasets and perform evaluation differently, and not to mention the compatibility of different methods, as they could be written in different languages or using incompatible library versions.
DANCE addresses these challenges by providing a unified Python package implementing many popular computational single-cell methods (see Implemented Algorithms), as well as easily reproducible experiments by providing unified tools for
- Data downloading
- Data (pre-)processing and transformation (e.g. graph construction)
- Model training and evaluation
Example: run cell-type annotation benchmark using scDeepSort
- Step0. Install DANCE (see Installation)
- Step1. Navigate to the folder containing the corresponding example scrtip.
In this case, it is
examples/single_modality/cell_type_annotation. - Step2. Obtain command line interface (CLI) options for a particular experiment to reproduce at the end of the
script.
For example, the CLI options for reproducing the
Mouse Brainexperiment ispython scdeepsort.py --species mouse --tissue Brain --train_dataset 753 3285 --test_dataset 2695 - Step3. Wait for the experiment to finish and check results.
Usage (DANCE 2.0)
Overview
In release 2.0, DANCE evolves from an experiment reproduction library into an automated and interpretable preprocessing platform. It provides powerful tools to optimize your single-cell analysis workflows:
To discover the best preprocessing pipeline for a specific method, you can use our Method-Aware Preprocessing (MAP) module. For practical examples on how to run this locally, please see examples/tuning/custom-methods/.
To get an instant, high-quality pipeline recommendation for a new dataset, you can use our Dataset-Aware Preprocessing (DAP) web service, available at http://omicsml.ai:81/dance/.
Together, these features transform single-cell preprocessing from a manual, trial-and-error process into a systematic, data-driven, and reproducible workflow.
Motivation
While DANCE 1.0 addressed benchmark reproduction, a more fundamental challenge in single-cell analysis is the preprocessing itself. The optimal combination of normalization, gene selection, and dimensionality reduction varies across tasks, models, and datasets, yet the selection process is often guided by legacy defaults or time-consuming trial-and-error. This inconsistency hinders reproducibility and can lead to suboptimal or even misleading results. DANCE 2.0 tackles this challenge by transforming preprocessing from a black-box art into a systematic, data-driven science. It provides tools to automatically construct pipelines tailored to a specific analytical method and dataset, ensuring more robust and transparent downstream analysis.
Example: run cell-type annotation benchmark using SVM
- Step0. Install DANCE (see Installation)
- Step1. Navigate to the folder containing the corresponding example scrtip.
In this case, it is
examples/tuning/cta_svm. - Step2. Obtain command line interface (CLI) options for a particular experiment to reproduce at the end of the
script.
For example, the CLI options for reproducing the
Human Brainexperiment ispython main.py --tune_mode (pipeline/params/pipeline_params) --species human --tissue Brain --train_dataset 328 --test_dataset 138 --valid_dataset 328 - Step3. Wait for the experiment to finish and check results.
Installation
<H3>Quick install</H3>The full installation process might be a bit tedious and could involve some debugging when using CUDA enabled packages.
Thus, we provide an install.sh script that simplifies the installation process, assuming the user have conda set up on their machines.
The installation script creates a conda environment dance and install the DANCE package along with all its dependencies with a apseicifc CUDA version.
Currently, two options are accepted: cpu and cu118.
For example, to install the DANCE package using CUDA 11.8 in
Related Skills
claude-opus-4-5-migration
85.3kMigrate prompts and code from Claude Sonnet 4.0, Sonnet 4.5, or Opus 4.1 to Opus 4.5
model-usage
342.5kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
feishu-drive
342.5k|
things-mac
342.5kManage Things 3 via the `things` CLI on macOS (add/update projects+todos via URL scheme; read/search/list from the local Things database)
