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