Deconvolute bulk gene expression samples (bulk RNA-Seq). This function requires a DigitalDLSorter object with a trained Deep Neural Network model (trained.model slot) and the new bulk RNA-Seq samples to be deconvoluted in the slot. See ?loadDeconvData for more details.

  object, = "Bulk.DT",
  normalize = TRUE,
  scaling = "standardize",
  simplify.set = NULL,
  simplify.majority = NULL,
  use.generator = FALSE,
  batch.size = 64,
  verbose = TRUE



DigitalDLSorter object with and slots.

Name of the data stored in the DigitalDLSorter object. If not provided, the first data set will be used.


Normalize data before deconvolution (TRUE by default).


How to scale data before training. It may be: "standardize" (values are centered around the mean with a unit standard deviation) or "rescale" (values are shifted and rescaled so that they end up ranging between 0 and 1). If normalize = FALSE, data is not scaled.


List specifying which cell types should be compressed into a new label whose name will be the list item. See examples for details. If provided, results are stored in a list with 'raw' and 'simpli.set' results.


List specifying which cell types should be compressed into the cell type with the highest proportion in each sample. Unlike simplify.set, it allows to maintain the complexity of the results while compressing the information, as no new labels are created. If provided, the results are stored in a list with 'raw' and 'simpli.majority' results.


Boolean indicating whether to use generators for prediction (FALSE by default).


Number of samples per batch. Only when use.generator = TRUE.


Show informative messages during the execution.


DigitalDLSorter object with deconv.results slot. The resulting information is a data frame with samples (\(i\)) as rows and cell types (\(j\)) as columns. Each entry represents the proportion of \(j\) cell type in \(i\) sample. If simplify.set or/and simpplify.majority are provided, the deconv.results slot will contain a list with raw and simplified results.


This function is intended for users who have built a devonvolution model using their own single-cell RNA-Seq data. If you want to use a pre-trained model to deconvolute your samples, see ?deconvDDLSPretrained.


Torroja, C. and Sánchez-Cabo, F. (2019). digitalDLSorter: A Deep Learning algorithm to quantify immune cell populations based on scRNA-Seq data. Frontiers in Genetics 10, 978. doi: doi:10.3389/fgene.2019.00978


if (FALSE) {
sce <- SingleCellExperiment::SingleCellExperiment(
  assays = list(
    counts = matrix(
      rpois(30, lambda = 5), nrow = 15, ncol = 20,
      dimnames = list(paste0("Gene", seq(15)), paste0("RHC", seq(20)))
  colData = data.frame(
    Cell_ID = paste0("RHC", seq(20)),
    Cell_Type = sample(x = paste0("CellType", seq(6)), size = 20,
                       replace = TRUE)
  rowData = data.frame(
    Gene_ID = paste0("Gene", seq(15))
DDLS <- createDDLSobject( = sce,
  sc.cell.ID.column = "Cell_ID",
  sc.gene.ID.column = "Gene_ID",
  sc.filt.genes.cluster = FALSE, 
  sc.log.FC = FALSE
probMatrixValid <- data.frame(
  Cell_Type = paste0("CellType", seq(6)),
  from = c(1, 1, 1, 15, 15, 30),
  to = c(15, 15, 30, 50, 50, 70)
DDLS <- generateBulkCellMatrix(
  object = DDLS,
  cell.ID.column = "Cell_ID",
  cell.type.column = "Cell_Type", = probMatrixValid,
  num.bulk.samples = 50,
  verbose = TRUE
# training of DDLS model
DDLS <- trainDDLSModel(
  object = DDLS, = TRUE,
  batch.size = 15,
  num.epochs = 5
# simulating bulk RNA-Seq data
countsBulk <- matrix(
  stats::rpois(100, lambda = sample(seq(4, 10), size = 100, replace = TRUE)),
  nrow = 40, ncol = 15,
  dimnames = list(paste0("Gene", seq(40)), paste0("Bulk", seq(15)))
seBulk <- SummarizedExperiment(assay = list(counts = countsBulk))
DDLS <- loadDeconvData(
  object = DDLS,
  data = seBulk, = "Example"
# simplify arguments
simplify <- list(CellGroup1 = c("CellType1", "CellType2", "CellType4"),
                 CellGroup2 = c("CellType3", "CellType5"))
DDLS <- deconvDDLSObj(
  object = DDLS, = "Example",
  simplify.set = simplify,
  simplify.majority = simplify