Skip to content
Snippets Groups Projects
SimpleParams-methods.R 1.38 KiB
Newer Older
  • Learn to ignore specific revisions
  • Luke Zappia's avatar
    Luke Zappia committed
    #' @rdname newParams
    
    #' @importFrom methods new
    
    #' @export
    
    Luke Zappia's avatar
    Luke Zappia committed
    newSimpleParams <- function(...) {
    
        params <- new("SimpleParams")
        params <- setParams(params, ...)
    
        return(params)
    }
    
    setValidity("SimpleParams", function(object) {
    
    
    Luke Zappia's avatar
    Luke Zappia committed
        v <- getParams(object, slotNames(object))
    
    Luke Zappia's avatar
    Luke Zappia committed
    
        checks <- c(nGenes = checkmate::checkInt(v$nGenes, lower = 1),
                    nCells = checkmate::checkInt(v$nCells, lower = 1),
                    mean.rate = checkmate::checkNumber(v$mean.rate, lower = 0),
                    mean.shape = checkmate::checkNumber(v$mean.shape, lower = 0),
                    count.disp = checkmate::checkNumber(v$count.disp, lower = 0),
                    seed = checkmate::checkInt(v$seed, lower = 0))
    
        if (all(checks == TRUE)) {
            valid <- TRUE
        } else {
            valid <- checks[checks != TRUE]
            valid <- paste(names(valid), valid, sep = ": ")
        }
    
        return(valid)
    })
    
    setMethod("show", "SimpleParams", function(object) {
    
        pp <- list("Mean:"   = c("(Rate)"       = "mean.rate",
                                 "(Shape)"      = "mean.shape"),
    
                   "Counts:" = c("[Dispersion]" = "count.disp"))
    
    Luke Zappia's avatar
    Luke Zappia committed
        # Mean parameters aren't estimated for the LunParams object which
    
    Luke Zappia's avatar
    Luke Zappia committed
        # inherits from SimpleParams
        if (class(object) == "LunParams") {
            pp[["Mean:"]] <- c("[Rate]" = "mean.rate", "[Shape]" = "mean.shape")
        }
    
    
    Luke Zappia's avatar
    Luke Zappia committed
        callNextMethod()
        showPP(object, pp)
    })