From d828f4d3e769347ac38ed4223f657f574b8dda23 Mon Sep 17 00:00:00 2001 From: Luke Zappia <lazappi@users.noreply.github.com> Date: Fri, 13 Oct 2017 16:04:18 +1100 Subject: [PATCH] Convert to SingleCellExperiment --- R/BASiCS-simulate.R | 30 ++++++++++++++++-------------- man/BASiCSSimulate.Rd | 2 +- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/R/BASiCS-simulate.R b/R/BASiCS-simulate.R index deb56f1..7b80d69 100644 --- a/R/BASiCS-simulate.R +++ b/R/BASiCS-simulate.R @@ -14,7 +14,7 @@ #' \code{\link[BASiCS]{BASiCS_Sim}} for more details of how the simulation #' works. #' -#' @return SCESet containing simulated counts +#' @return SingleCellExperiment containing simulated counts #' #' @references #' Vallejos CA, Marioni JC, Richardson S. BASiCS: Bayesian Analysis of @@ -45,8 +45,8 @@ BASiCSSimulate <- function(params = newBASiCSParams(), verbose = TRUE, ...) { nSpikes <- getParam(params, "nSpikes") nBatches <- getParam(params, "nBatches") batch.cells <- getParam(params, "batchCells") - gene.params <- getParam(params, "gene.params") + # Sample gene.params if necessary if (nrow(gene.params) != nGenes) { warning("Number of gene.params not equal to nGenes, ", @@ -102,7 +102,7 @@ BASiCSSimulate <- function(params = newBASiCSParams(), verbose = TRUE, ...) { counts <- do.call(cbind, counts.list) - if (verbose) {message("Creating SCESet...")} + if (verbose) {message("Creating final dataset...")} cell.names <- paste0("Cell", seq_len(nCells)) gene.names <- paste0("Gene", seq_len(nGenes)) if (nSpikes > 0) { @@ -115,22 +115,24 @@ BASiCSSimulate <- function(params = newBASiCSParams(), verbose = TRUE, ...) { rownames(counts) <- gene.names colnames(counts) <- cell.names - phenos <- new("AnnotatedDataFrame", - data = data.frame(Cell = cell.names, - Phi = cell.params[, "Phi"], - S = cell.params[, "S"], - Batch = batches, - BatchTheta = thetas[batches])) - rownames(phenos) <- cell.names + + cells <- data.frame(Cell = cell.names, + Phi = cell.params[, "Phi"], + S = cell.params[, "S"], + Batch = batches, + BatchTheta = thetas[batches]) + rownames(cells) <- cell.names + features <- data.frame(Gene = gene.names, Mean = c(mu, spike.mu), Delta = c(delta, rep(NA, nSpikes)), IsSpike = c(rep(FALSE, nGenes), rep(TRUE, nSpikes))) - features <- new("AnnotatedDataFrame", - data = features) rownames(features) <- gene.names - sim <- newSCESet(countData = counts, phenoData = phenos, - featureData = features) + + sim <- SingleCellExperiment(assays = list(counts = counts), + rowData = features, + colData = cells, + metadata = list(params = params)) if (verbose) {message("Done!")} return(sim) diff --git a/man/BASiCSSimulate.Rd b/man/BASiCSSimulate.Rd index bf9b325..cc92db0 100644 --- a/man/BASiCSSimulate.Rd +++ b/man/BASiCSSimulate.Rd @@ -15,7 +15,7 @@ BASiCSSimulate(params = newBASiCSParams(), verbose = TRUE, ...) \code{params}.} } \value{ -SCESet containing simulated counts +SingleCellExperiment containing simulated counts } \description{ Simulate counts using the BASiCS method. -- GitLab