cBioPortal data and MultiAssayExperiment

Overview

The cBioPortalData R package aims to import cBioPortal datasets as MultiAssayExperiment objects into Bioconductor. Some of the features of the package include:

  1. The use of the MultiAssayExperiment integrative container for coordinating and representing the data.
  2. The data container explicitly links all assays to the patient clinical/pathological data.
  3. With a flexible API, MultiAssayExperiment provides harmonized subsetting and reshaping into convenient wide and long formats.
  4. The package provides datasets from both the API and the saved packaged data.
  5. It also provides automatic local caching, thanks to BiocFileCache.

MultiAssayExperiment Cheatsheet

Quick Start

Installation

if (!requireNamespace("BiocManager", quietly = TRUE))
    install.packages("BiocManager")

if (!requireNamespace("cBioPortalData", quietly = TRUE))
    BiocManager::install("waldronlab/cBioPortalData")

library(cBioPortalData)

Note

cBioPortalData is a work in progress due to changes in data curation and cBioPortal API specification. Users can view the data(studiesTable) dataset to get an overview of the studies that are available and currently building as MultiAssayExperiment representations. About 73 % of the studies via the API (api_build) and 83 % of the package studies (pack_build) are building, these include additional datasets that were not previously available. Feel free to file an issue to request prioritization of fixing any of the remaining datasets.

data(studiesTable)

table(studiesTable$api_build)
#> 
#> FALSE  TRUE 
#>    78   209

table(studiesTable$pack_build)
#> 
#> FALSE  TRUE 
#>    49   238

API Service

Flexible and granular access to cBioPortal data from cbioportal.org/api. This option is best used with a particular gene panel of interest. It allows users to download sections of the data with molecular profile and gene panel combinations within a study.

cbio <- cBioPortal()
gbm <- cBioPortalData(api = cbio, by = "hugoGeneSymbol", studyId = "gbm_tcga",
    genePanelId = "IMPACT341",
    molecularProfileIds = c("gbm_tcga_rppa", "gbm_tcga_mrna")
)
gbm
#> A MultiAssayExperiment object of 2 listed
#>  experiments with user-defined names and respective classes.
#>  Containing an ExperimentList class object of length 2:
#>  [1] gbm_tcga_rppa: SummarizedExperiment with 67 rows and 244 columns
#>  [2] gbm_tcga_mrna: SummarizedExperiment with 334 rows and 401 columns
#> Functionality:
#>  experiments() - obtain the ExperimentList instance
#>  colData() - the primary/phenotype DataFrame
#>  sampleMap() - the sample coordination DataFrame
#>  `$`, `[`, `[[` - extract colData columns, subset, or experiment
#>  *Format() - convert into a long or wide DataFrame
#>  assays() - convert ExperimentList to a SimpleList of matrices
#>  exportClass() - save all data to files

Packaged Data Service

This function will download a dataset from the cbioportal.org/datasets website as a packaged tarball and serve it to users as a MultiAssayExperiment object. This option is good for users who are interested in obtaining all the data for a particular study.

laml <- cBioDataPack("laml_tcga")
laml
#> A MultiAssayExperiment object of 12 listed
#>  experiments with user-defined names and respective classes.
#>  Containing an ExperimentList class object of length 12:
#>  [1] cna_hg19.seg: RaggedExperiment with 13571 rows and 191 columns
#>  [2] CNA: SummarizedExperiment with 24776 rows and 191 columns
#>  [3] linear_CNA: SummarizedExperiment with 24776 rows and 191 columns
#>  [4] methylation_hm27: SummarizedExperiment with 10919 rows and 194 columns
#>  [5] methylation_hm450: SummarizedExperiment with 10919 rows and 194 columns
#>  [6] mutations_extended: RaggedExperiment with 2584 rows and 197 columns
#>  [7] mutations_mskcc: RaggedExperiment with 2584 rows and 197 columns
#>  [8] RNA_Seq_expression_median: SummarizedExperiment with 19720 rows and 179 columns
#>  [9] RNA_Seq_mRNA_median_all_sample_Zscores: SummarizedExperiment with 19720 rows and 179 columns
#>  [10] RNA_Seq_v2_expression_median: SummarizedExperiment with 20531 rows and 173 columns
#>  [11] RNA_Seq_v2_mRNA_median_all_sample_Zscores: SummarizedExperiment with 20531 rows and 173 columns
#>  [12] RNA_Seq_v2_mRNA_median_Zscores: SummarizedExperiment with 20440 rows and 173 columns
#> Functionality:
#>  experiments() - obtain the ExperimentList instance
#>  colData() - the primary/phenotype DataFrame
#>  sampleMap() - the sample coordination DataFrame
#>  `$`, `[`, `[[` - extract colData columns, subset, or experiment
#>  *Format() - convert into a long or wide DataFrame
#>  assays() - convert ExperimentList to a SimpleList of matrices
#>  exportClass() - save all data to files