|
a |
|
b/R/XenaGenerate.R |
|
|
1 |
##' Generate and Subset a XenaHub Object from 'XenaData' |
|
|
2 |
##' |
|
|
3 |
##' @author Shixiang Wang <w_shixiang@163.com> |
|
|
4 |
##' @param XenaData a `data.frame`. Default is `data(XenaData)`. |
|
|
5 |
##' The input of this option can only be `data(XenaData)` or its subset. |
|
|
6 |
##' @param subset logical expression indicating elements or rows to keep. |
|
|
7 |
##' @return a [XenaHub] object. |
|
|
8 |
##' @export |
|
|
9 |
##' @examples |
|
|
10 |
##' # 1 get all datasets |
|
|
11 |
##' XenaGenerate() |
|
|
12 |
##' # 2 get TCGA BRCA |
|
|
13 |
##' XenaGenerate(subset = XenaCohorts == "TCGA Breast Cancer (BRCA)") |
|
|
14 |
##' # 3 get all datasets containing BRCA |
|
|
15 |
##' XenaGenerate(subset = grepl("BRCA", XenaCohorts)) |
|
|
16 |
|
|
|
17 |
XenaGenerate <- function(XenaData = UCSCXenaTools::XenaData, |
|
|
18 |
subset = TRUE) { |
|
|
19 |
enclos <- parent.frame() |
|
|
20 |
subset <- substitute(subset) |
|
|
21 |
row_selector <- eval(subset, XenaData, enclos) |
|
|
22 |
XenaData <- XenaData[row_selector, ] |
|
|
23 |
|
|
|
24 |
.XenaHub( |
|
|
25 |
hosts = unique(XenaData$XenaHosts), |
|
|
26 |
cohorts = unique(XenaData$XenaCohorts), |
|
|
27 |
datasets = XenaData$XenaDatasets |
|
|
28 |
) |
|
|
29 |
} |