[ea2224]: / R / XenaQueryProbeMap.R

Download this file

40 lines (37 with data), 1.3 kB

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
##' Query ProbeMap URL of Datasets
##'
##' If dataset has no ProbeMap, it will be ignored.
##'
##' @author Shixiang Wang <w_shixiang@163.com>
##' @param x a [XenaHub] object
##' @return a `data.frame` contains hosts, datasets and url
##' @importFrom dplyr filter select pull rename mutate
##' @export
##' @examples
##' xe = XenaGenerate(subset = XenaHostNames == "tcgaHub")
##' hosts(xe)
##' \dontrun{
##' xe_query = XenaQueryProbeMap(xe)
##' }
XenaQueryProbeMap <- function(x) {
message("Check ProbeMap urls of datasets.")
datasetsName <- datasets(x)
query <- UCSCXenaTools::XenaData %>%
dplyr::filter((XenaDatasets %in% datasetsName) & (!is.na(ProbeMap)))
if (nrow(query) == 0) {
invisible(data.frame(stringsAsFactors = FALSE))
} else {
query <- query %>%
dplyr::rename(hosts = XenaHosts, datasets = ProbeMap) %>%
dplyr::mutate(url = ifelse(.data$XenaHostNames %in% c("gdcHub", "gdcHubV18"),
file.path(hosts, "download", url_encode(basename(datasets))),
file.path(hosts, "download", url_encode(datasets))
)) %>%
dplyr::mutate(url = ifelse(!sapply(url, http_error2),
url, paste0(url, ".gz")
)) %>%
dplyr::select(hosts, datasets, url) %>%
as.data.frame()
invisible(unique(query))
}
}