                        Changes in version 1.5.2

+ added edgeR::calcNormFactors() step in prepSim()
+ added argument 'dd' to simData() specifying  
  whether or not to simulate 2 groups
+ prepSim() and simData() now support simulation of "singular" design  
  (no samples, no clusters), as well as only samples/clusters
+ simData() defaults to simulating as many samples as available  
  in order to avoid re-use (duplication) of reference samples

                        Changes in version 1.5.1

+ significant speed-up of aggregateData() by replacing usage  
  of rowX() over a list with scuttle::summarizeAssayByGroup()
  
+ added options use "prop.detected" and "num.detected" 
  as summary statistic (argument 'fun') in aggregateData()

+ added parallelization support in aggregateData() and pbDS() through argument BBPARAM
  (passed to scater::sumCountsAcrossCells() and BiocParallel::bplapply, respectively)

+ aggregateData() now stores the number of cells that went into aggregation under
  int_colData(.)$n_cells (vs. metadata(.)$n_cells) to support automated subsetting
  
+ replaced argument n_threads with BPPARAM throughout all 
  parallelizable functions (aggregateData(), pbDS(), mmDS())
  
+ bug fix in prepSim(): the function previously failed when 
  cluster/sample/group_id cell metadata columns were non-factors
  
+ bug fix in resDS(): cpm = TRUE previously didn't handle
  missing cluster-sample combinations correctly