#' @describeIn get_design
#' If
#' \code{method} is a character, it will return the design
#' matrix corresponding to the normalization scheme specified
#' by the character string. The string must be one of the
#' \code{row.names} of the slot \code{scone_params}.
#'
#' @export
#'
#'
setMethod(
f = "get_design",
signature = signature(x = "SconeExperiment", method = "character"),
definition = function(x, method) {
params <- unlist(x@scone_params[method,])
ruv_factors <- qc_factors <- NULL
if(params[3] != "no_uv") {
k <- as.numeric(strsplit(params[3], "=")[[1]][2])
if(grepl("ruv", params[3])) {
if(length(x@impute_args) > 0) {
impute_args <- unlist(x@impute_args)
} else {
impute_args <- NULL
}
imputed <- x@imputation_fn[[params[1]]](assay(x), impute_args)
scaled <- x@scaling_fn[[params[2]]](imputed)
if(x@rezero) {
toz = assay(x) <= 0
scaled <- scaled - scaled*toz
}
r <- RUVg(log1p(scaled), get_negconruv(x), k, isLog=TRUE)$W
ruv_factors <- list(r)
names(ruv_factors) <- paste(params[1:2], collapse="_")
}
if(grepl("qc", params[3])) {
qc_factors <- prcomp(get_qc(x), center=TRUE, scale=TRUE)$x
}
}
parsed <- .parse_row(params, get_bio(x), get_batch(x),
ruv_factors, qc_factors)
design_mat <- make_design(parsed$bio, parsed$batch, parsed$W,
nested=(x@nested &
!is.null(parsed$bio) &
!is.null(parsed$batch)))
return(design_mat)
}
)
#' @describeIn get_design
#' If
#' \code{method} is a numeric, it will return the design matrix
#' according to the scone ranking.
#'
#' @details The numeric method will always return the design matrix
#' corresponding to row \code{method} of the \code{scone_params}
#' slot. This means that if \code{\link{scone}} was run with
#' \code{eval=TRUE}, \code{get_design(x, 1)} will return the top
#' ranked method. If \code{\link{scone}} was run with
#' \code{eval=FALSE}, \code{get_design(x, 1)} will return the first
#' normalization in the order saved by scone.
#'
#' @export
#'
setMethod(
f = "get_design",
signature = signature(x = "SconeExperiment", method = "numeric"),
definition = function(x, method) {
norm_method <- rownames(x@scone_params)[method]
return(get_design(x, norm_method))
}
)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.