--- a +++ b/R/auxiliary_brainarray.R @@ -0,0 +1,59 @@ +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) +} + +