Skip to content
Go to file



dyngen is a novel, multi-modal simulation engine for studying dynamic cellular processes at single-cell resolution. dyngen is more flexible than current single-cell simulation engines, and allows better method development and benchmarking, thereby stimulating development and testing of novel computational methods.

A preprint is available on bioRxiv. Run citation("dyngen") to obtain the corresponding citation information. All source code for reproducing the results in this manuscript are available on GitHub.

System requirements

This package is supported for Linux, but should also work on Mac OS X and Windows. It has been tested with Github Actions for R 3.5, 3.6 and 4.0 on the following systems:

  • Mac OS X: Catalina (10.15.5)
  • Linux: Ubuntu Xenial (16.04.6)
  • Windows: Windows Server 2019 (10.0.17763)


You can install dyngen by running the following command. This should take no more than 10 minutes to install.

remotes::install_github("dynverse/dyngen", dependencies = TRUE)

To build the vignettes upon installation, run the following command instead. This might take a while depending on on the computer this is run on (30 ~ 60 min).

remotes::install_github("dynverse/dyngen", dependencies = TRUE, build_vignettes = TRUE)


To learn about how dyngen, check out the example vignette below. Expected execution time for rerunning the code is about 5 minutes.

Getting started with Docker

To run dyngen in a docker container, run the following command.

docker run --rm -p -e DISABLE_AUTH=true -v `pwd`:/home/rstudio/workdir dynverse/dyngen

More information on running and building the docker container is available here.

Latest changes

Check out news(package = "dyngen") or for a full list of changes.

Recent changes in dyngen 0.4.0 (2020-07-15)


  • wrap_dataset(): Outputted $counts now contains counts of both spliced and unspliced reads, whereas $counts_unspliced and $counts_spliced contains separated counts.

  • Added a docker container containing the necessary code to run a dyngen simulation.


  • Added logo to package.

  • Clean up internal code, mostly to satisfy R CMD check.


  • Added two vignettes.

  • Expanded the README.

Recent changes in dyngen 0.3.0 (2020-04-06)


  • Implement knockdown / knockouts / overexpression experiments.

  • Implement better single-cell regulatory activity by determining the effect on propensity values after knocking out a transcription factor.

  • Implement adding noise to the kinetic params of individual simulations.

  • Kinetics (transcription rate, translation rate, decay rate, …) are based on Schwannhausser et al. 2011.

  • Changed many parameter names to better explain its purpose.


  • Fix module naming of backbones derived from backbone_branching().

  • Allow to plot labels in plot_simulation_expression().

  • Improve backbone_disconnected() and backbone_converging().

  • Rename required columns in backbone() input data.

  • Use backbone_linear() to make backbone_cyclic() randomised.

  • Added a decay rate for pre-mRNAs as well.

  • Kinetics: redefine the decay rates in terms of the half-life of these molecules.

  • Only compute dimred if desired.

  • Allow computing the propensity ratios as ground-truth for rna velocity.


  • Implement fix for double positives in bblego backbones.

  • Fix graph plotting mixup of interaction effects (up/down).

  • Made a fix to the computation of feature_info$max_protein.