Switch to side-by-side view

--- a
+++ b/R/downloadAndProcessDLBCL.R
@@ -0,0 +1,57 @@
+#' Download and process all curated DLBCL datasets
+#'
+#' Automatically download and process all support curated DLBCL datasets.
+#' Simply loops over all datasets in \code{data(dlbcl_overview)}.
+#'
+#' @param \dots Arguments passed to \code{\link{downloadAndProcessGEO}}.
+#' @return Saves a \code{list} of the processed datasets in the working
+#'   directory named "dlbcl_data.Rds".
+#'   Invisibly returns a \code{list} of the output of
+#'   \code{\link{downloadAndProcessGEO}}.
+#' @author
+#'   Anders Ellern Bilgrau\cr
+#'   Steffen Falgreen Larsen
+#' @examples
+#' listTargets("brainarray")
+#' \dontrun{
+#' # Warning, very long processing times if data is not downloaded.
+#'
+#' # Preprocess with brainarray "Entrez" gene ids
+#' res <- downloadAndProcessDLBCL(cdf = "brainarray", target = "ENTREZG",
+#'                                clean = FALSE)
+#'
+#' # Preprocess with brainarray "Ensembl" gene ids
+#' res2 <- downloadAndProcessDLBCL(cdf = "brainarray", target = "ENSG",
+#'                                 clean = TRUE)
+#'
+#' # Preprocess with affy's probesets
+#' res3 <- downloadAndProcessDLBCL()  #= downloadAndProcessDLBCL(cdf = "affy")
+#' }
+#' @export
+downloadAndProcessDLBCL <- function(...) {
+  st <- proc.time()
+  message("\nDownloading and processing all DLBCL datasets\n")
+
+  res <- list()
+  for (i in 1:nrow(DLBCLdata::DLBCL_overview)) {
+    geo_nbr <- as.character(DLBCLdata::DLBCL_overview$GSE[i])
+    stdy    <- as.character(DLBCLdata::DLBCL_overview$Study[i])
+
+    message(sprintf("\n\n\n\n #### %s (%s) ####\n\n\n", geo_nbr, stdy))
+
+    t <- system.time({
+      res[[i]] <- downloadAndProcessGEO(geo_nbr = geo_nbr, ...)
+    })
+
+    message(sprintf("\n %s finished successfully in %s minutes.\n",
+                    geo_nbr, t[3] %/% 60))
+  }
+
+  names(res) <- as.character(DLBCLdata::DLBCL_overview$GSE)
+
+  message("Saving all processed DLBCL data")
+  saveRDS(res, file = file.path(getwd(), "dlbcl_data.Rds"))
+
+  message("\nFinished  in ", (proc.time()-st)[3] %/% 60, " minutes.\n")
+  return(invisible(res))
+}