This function returns the celda model from a celda_list object containing the maxiumim final log-likelihood. K, L, or combination of K and L must be provided for celda_list objects containing celda_C, celda_G, and celda_CG models, respectively.

selectBestModel(celda.list)

Arguments

celda.list

Object of class "celda_list". An object containing celda models returned from `celdaGridSearch()`.

Value

The celda model object with the highest finalLogLik attribute, meeting any K/L criteria provided

Examples

celda.sim = simulateCells(model="celda_CG", K=5, L=10, G=100) ## Run various combinations of parameters with 'celdaGridSearch' cgs = celdaGridSearch(celda.sim$counts, model="celda_CG", params.test=list(K=4:5, L=9:10), params.fixed=list(sample.label=celda.sim$sample.label), best.only=FALSE, nchains=3)
#> --------------------------------------------------------------------
#> Starting celdaGridSearch with celda_CG
#> Number of cores: 1
#> --------------------------------------------------------------------
#> Error in { current.run = c(run.params[i, ]) chain.params = list() for (j in names(params.test)) { chain.params[[j]] = current.run[[j]] } chain.params$counts = counts chain.params$seed = all.seeds[ifelse(i%%nchains == 0, nchains, i%%nchains)] chain.params$max.iter = max.iter chain.params$nchain = 1 chain.params$count.checksum = count.checksum chain.params$verbose = verbose chain.params$logfile = paste0(logfile.prefix, "_", paste(paste(colnames(run.params), run.params[i, ], sep = "-"), collapse = "_"), "_Seed-", chain.params$seed, "_log.txt") res = do.call(model, c(chain.params, params.fixed)) return(list(res))}: task 1 failed - "unused argument (gamma)"
## Returns same result as running celdaGridSearch with "best.only = TRUE" cgs.best = selectBestModel(cgs)
#> Error in isTRUE(class(celda.list)[1] == "celda_list"): object 'cgs' not found