The repository includes R functions for 18 differential state (DS) analysis methods (multisubjectDSanalysis_wrapper_code.R).

The repository also includes benchmarking codes for reproducing all analyses
in the "Benchmarking methods for detecting differential states between conditions from multi-subject single-cell RNA-seq data" paper. 

The functions have been tested using the following software versions:

  R       v4.1.0
  nebula  v1.1.7
  muscat  v1.6.0
  MAST    v1.18.0
  ROTS    v1.20.0
  Limma   v3.48.0
  edgeR   v3.34.0
  DEseq2  v1.32.0
  Seurat  v4.0.2

The code uses muscat (https://www.nature.com/articles/s41467-020-19894-4) to perform the pseudo-bulk aggregation. The sum aggregation approach is more preferable to the mean aggregation.

The code for MAST_RE has been adapted from https://github.com/kdzimm/PseudoreplicationPaper  

Update (Oct 3, 2022): We added a useful script for visualizing expression values of pseudobulk-aggregated data as a beeswarm plot (viz_pseudobulk_as_beeswarm.R). The script will also generate the pseudo-bulk data from data stored in a Seurat object.

Update (Oct 3, 2022): We added a useful script that shows an example on how to run pseudo-bulk DS analysis with ROTS (sum aggregation) for a Seurat object (example_pseudobulk_analysis.R). 



To cite our work:

Sini Junttila, Johannes Smolander, Laura L Elo, Benchmarking methods for detecting differential states between conditions from multi-subject single-cell RNA-seq data, Briefings in Bioinformatics, Volume 23, Issue 5, September 2022, bbac286, https://doi.org/10.1093/bib/bbac286