R/computeZScore.R
930ec858
 #' Compute Z-Score
 #'
 #' Computes Z-Score from an input count matrix using the formula
 #' ((x-mean(x))/sd(x)) for each gene across all cells. The input count matrix
 #' can either be a base matrix, dgCMatrix or a DelayedMatrix. Computations are
 #' performed using DelayedMatrixStats package to efficiently compute the
 #' Z-Score matrix.
 #' @param counts matrix (base matrix, dgCMatrix or DelayedMatrix)
 #' @return z-score computed counts matrix (DelayedMatrix)
 #' @export
 #' @examples
 #' data(sce_chcl, package = "scds")
 #' assay(sce_chcl, "countsZScore") <- computeZScore(assay(sce_chcl, "counts"))
 computeZScore <- function(counts) {
     if (!methods::is(counts, "DelayedArray")) {
         counts <- DelayedArray::DelayedArray(counts)
     }
     counts <- (counts - DelayedMatrixStats::rowMeans2(counts)) / DelayedMatrixStats::rowSds(counts)
     counts[base::is.nan(counts)] <- 0
     return(counts)
 }