Nothing
#' @rdname newParams
#' @importFrom methods new
#' @export
newSparseDCParams <- function(...) {
checkDependencies("sparseDC")
params <- new("SparseDCParams")
params <- setParams(params, ...)
return(params)
}
setValidity("SparseDCParams", function(object) {
v <- getParams(object, slotNames(object))
checks <- c(nGenes = checkmate::checkInt(v$nGenes, lower = 1),
nCells = checkmate::checkInt(v$nCells, lower = 1),
markers.n = checkmate::checkInt(v$markers.n, lower = 0,
upper = v$nGenes),
markers.shared = checkmate::checkInt(v$markers.shared,
lower = 0,
upper = v$markers.n),
markers.same = checkmate::checkFlag(v$markers.same),
clusts.c1 = checkmate::checkIntegerish(v$clusts.c1, lower = 1,
any.missing = FALSE,
min.len = 1),
clusts.c2 = checkmate::checkIntegerish(v$clusts.c2, lower = 1,
any.missing = FALSE,
min.len = 1),
mean.lower = checkmate::checkNumber(v$mean.lower,
finite = TRUE),
mean.upper = checkmate::checkNumber(v$mean.upper,
finite = TRUE),
seed = checkmate::checkInt(v$seed, lower = 0))
if (length(v$clusts.c1) == 1) {
if (v$clusts.c1 > 1) {
checks <- c(checks,
clusts.c1 = "If clusts.c1 is length 1 it must equal 1")
}
}
if (length(v$clusts.c2) == 1) {
if (v$clusts.c2 > 1) {
checks <- c(checks,
clusts.c2 = "If clusts.c2 is length 1 it must equal 1")
}
}
clusts.combined <- c(v$clusts.c1, v$clusts.c2)
if (!all(seq_len(max(clusts.combined)) %in% clusts.combined)) {
checks <- c(checks, clusts = "Cluster labels must be sequential")
}
if (all(checks == TRUE)) {
valid <- TRUE
} else {
valid <- checks[checks != TRUE]
valid <- paste(names(valid), valid, sep = ": ")
}
return(valid)
})
setMethod("show", "SparseDCParams", function(object) {
pp <- list("Markers:" = c("(Number)" = "markers.n",
"(Shared)" = "markers.shared",
"[Same]" = "markers.same"),
"Clusters:" = c("(Condition 1)" = "clusts.c1",
"(Condition 2)" = "clusts.c2"),
"Means:" = c("[Lower]" = "mean.lower",
"[Upper]" = "mean.upper"))
callNextMethod()
showPP(object, pp)
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.