## ----echo=FALSE, include=FALSE--------------------------------------------- knitr::opts_chunk$set(tidy = FALSE, cache = TRUE, dev = "png", message = FALSE, error = FALSE, warning = TRUE) ## ----load-packages--------------------------------------------------------- library("SummarizedBenchmark") library("magrittr") ## ----run-case-study-------------------------------------------------------- data(tdat) b <- BenchDesign(data = tdat) %>% addMethod(label = "bonf", func = p.adjust, params = rlang::quos(p = pval, method = "bonferroni")) %>% addMethod(label = "BH", func = p.adjust, params = rlang::quos(p = pval, method = "BH")) %>% addMethod(label = "qv", func = qvalue::qvalue, params = rlang::quos(p = pval), post = function(x) { x$qvalues }) sb <- buildBench(b, truthCols = "H") ## -------------------------------------------------------------------------- BDMethodList(b) BDData(b) ## -------------------------------------------------------------------------- BDMethodList(b)[["bonf"]] ## -------------------------------------------------------------------------- BDMethodList(b)[["bonf2"]] <- BDMethodList(b)[["bonf"]] b ## -------------------------------------------------------------------------- BDMethodList(b)[["bonf"]] <- NULL b ## -------------------------------------------------------------------------- bdm_bonf <- BDMethod(x = p.adjust, params = rlang::quos(p = pval, method = "bonferroni")) bdm_bonf ## -------------------------------------------------------------------------- BDMethodList(b)[["bonf"]] <- bdm_bonf b ## -------------------------------------------------------------------------- BDData(b) <- NULL b ## -------------------------------------------------------------------------- bdd <- BDData(data = tdat) BDData(b) <- bdd b ## -------------------------------------------------------------------------- b <- hashBDData(b) b ## -------------------------------------------------------------------------- BDMethodList(b)[["bonf2"]] <- NULL ## -------------------------------------------------------------------------- sbSub <- sb[, 1:2] colData(sbSub) ## -------------------------------------------------------------------------- BenchDesign(sb) ## -------------------------------------------------------------------------- compareBDData(BDData(tdat), BenchDesign(sb)) ## -------------------------------------------------------------------------- metadata(sb)$sessions[[1]] ## -------------------------------------------------------------------------- mymethod <- function(x) { mysubmethod(x) } mybd <- BenchDesign(data = list(vals = 1:5)) mybd <- addMethod(mybd, "method1", mymethod, params = rlang::quos(x = vals)) ## -------------------------------------------------------------------------- BDMethod(mybd, "method1")@f ## ---- message = TRUE------------------------------------------------------- tryCatch({ buildBench(mybd) }, error = function(e) print(e)) ## -------------------------------------------------------------------------- m <- 5 mymult <- function(x) { m * x } m <- 2 mybd <- BenchDesign(data = list(vals = 1:5, m = 10)) mybd <- addMethod(mybd, "methodr", mymult, params = rlang::quos(x = vals)) ## -------------------------------------------------------------------------- assay(buildBench(mybd)) ## -------------------------------------------------------------------------- b_withmeta <- BenchDesign(data = tdat) %>% addMethod(label = "bonf", func = p.adjust, meta = list(type = "FWER control"), params = rlang::quos(p = pval, method = "bonferroni")) %>% addMethod(label = "BH", func = p.adjust, meta = list(type = "FDR control"), params = rlang::quos(p = pval, method = "BH")) sb_withmeta <- buildBench(b_withmeta) colData(sb_withmeta) ## -------------------------------------------------------------------------- printMethod(b, "qv") ## -------------------------------------------------------------------------- qv_wrapper <- function(...) { qvalue::qvalue(...)$qvalues } b_qv <- BenchDesign(data = tdat) %>% addMethod(label = "qv", func = qvalue::qvalue, params = rlang::quos(p = pval), post = function(x) { x$qvalues }) %>% addMethod(label = "qv_wrapper", func = qv_wrapper, params = rlang::quos(p = pval)) ## -------------------------------------------------------------------------- sb_qv <- buildBench(b_qv) head(assay(sb_qv)) colData(sb_qv) ## -------------------------------------------------------------------------- b_qv <- b_qv %>% addMethod(label = "qv_pkgfunc", func = qv_wrapper, meta = list(pkg_func = qvalue::qvalue), params = rlang::quos(p = pval)) %>% addMethod(label = "qv_pkgname", func = qv_wrapper, meta = list(pkg_name = "qvalue", pkg_vers = as.character(packageVersion("qvalue"))), params = rlang::quos(p = pval)) sb_qv <- buildBench(b_qv) colData(sb_qv) ## -------------------------------------------------------------------------- printMethod(b, "qv") ## -------------------------------------------------------------------------- new_params <- rlang::quos(pi0 = 0.9, bd.meta = list(type = "FDR control")) b_modqv <- modifyMethod(b, label = "qv", params = new_params) printMethod(b_modqv, "qv") ## -------------------------------------------------------------------------- b_modqv <- modifyMethod(b, label = "qv", params = new_params, .overwrite = TRUE) printMethod(b_modqv, "qv") ## -------------------------------------------------------------------------- b_expand <- expandMethod(b, label = "qv", params = list(qv_p90 = rlang::quos(pi0 = 0.90), qv_p10 = rlang::quos(pi0 = 0.10)), .replace = FALSE) b_expand printMethod(b_expand, "qv_p90") printMethod(b_expand, "qv_p10") ## -------------------------------------------------------------------------- b_expand <- expandMethod(b, label = "qv", onlyone = "pi0", params = rlang::quos(qv_p90 = 0.90, qv_p10 = 0.10), .replace = FALSE) b_expand ## ----cobraData, message=FALSE, warning=FALSE------------------------------- library(iCOBRA) data(cobradata_example) ## ----arrangeLists---------------------------------------------------------- assays <- list(qvalue = cobradata_example@padj, logFC = cobradata_example@score) assays[["qvalue"]]$DESeq2 <- p.adjust(cobradata_example@pval$DESeq2, method = "BH") head(assays[["qvalue"]], 3) head(assays[["logFC"]], 3) ## ----groundTruths---------------------------------------------------------- library(S4Vectors) groundTruth <- DataFrame(cobradata_example@truth[, c("status", "logFC")]) colnames(groundTruth) <- names(assays) groundTruth <- groundTruth[rownames(assays[[1]]), ] head(groundTruth) ## ----buildColData---------------------------------------------------------- colData <- DataFrame(method = colnames(assays[[1]])) colData ## ----buildSB--------------------------------------------------------------- sb <- SummarizedBenchmark(assays = assays, colData = colData, groundTruth = groundTruth)