R/auxiliary_brainarray.R

Defines functions cleanName listVersions getSubversion arrayToBrainarrayName getCustomCDFName getBrainarrayPackages getBrainarrayTargets

Documented in listVersions

cleanName <- function(array_type) {
  gsub("[-_]", "", tolower(array_type))
}

#' Available Brainaaray versions
#'
#' Lists the available Brainaaray versions for \pkg{DLBCLdata}. The list is
#' currently hard coded. Newer versions may work.
#'
#' @return A character vector of the available versions.
#' @export
listVersions <- function() {
  c("19.0.0", "18.0.0", "17.1.0", "17.0.0", "16.0.0", "15.1.0", "15.0.0",
    "14.1.0", "14.0.0", "13.0.0")
}

getSubversion <- function(version, n = 1) {
  return(as.numeric(unlist(strsplit(version, "\\.")))[n])
}

arrayToBrainarrayName <- function(array_type) {
  ans <- switch(array_type,
                "HuGene-1_0-st-v1" = "hugene10st",
                cleanName(array_type))
  return(ans)
}

getCustomCDFName <- function(brain_dat, array_type) {
  custom_cdf_name <-
    with(brain_dat, CustomCDFName[match(arrayToBrainarrayName(array_type),
                                        tolower(Chip))])
  return(custom_cdf_name)
}

getBrainarrayPackages <- function(brain_dat, array_type) {
  custom_cdf_name <- getCustomCDFName(brain_dat, array_type)
  r_packages <- paste0(cleanName(custom_cdf_name), c("cdf", "probe"))
  return(r_packages)
}

#' @importFrom XML readHTMLTable
getBrainarrayTargets <- function(version) {
  base_url <- paste0("http://brainarray.mbni.med.umich.edu/Brainarray/",
                     "Database/CustomCDF/CDF_download.asp")

  brain_dat <- readHTMLTable(base_url, stringsAsFactors = FALSE)
  brain_dat <- brain_dat[sapply(brain_dat, is.data.frame)]
  brain_dat <- brain_dat[-(1:2)]

  if (missing(version)) {
    ans <- as.character(brain_dat[[length(brain_dat)]][["Custom CDF"]])
  } else {
    v <- getSubversion(version, n = 1)
    ans <- as.character(brain_dat[[v]][["Custom CDF"]])
  }
  return(ans)
}
AEBilgrau/DLBCLdata documentation built on May 5, 2019, 11:29 a.m.