This vignette aims to help developers migrate from the now defunct cgdsr
CRAN package. Note that the cgdsr
package code is shown for comparison but it
is not guaranteed to work. If you have questions regarding the contents,
please create an issue at the GitHub repository:
https://github.com/waldronlab/cBioPortalData/issues
library(cBioPortalData)
cBioPortalData
setupHere we show the default inputs to the cBioPortal function for clarity.
cbio <- cBioPortal(
hostname = "www.cbioportal.org",
protocol = "https",
api. = "/api/v2/api-docs"
)
getStudies(cbio)
FALSE # A tibble: 468 × 13
FALSE name description publicStudy pmid citation groups status importDate
FALSE <chr> <chr> <lgl> <chr> <chr> <chr> <int> <chr>
FALSE 1 Adenoid Cyst… Whole-exom… TRUE 2368… Ho et a… "ACYC… 0 2023-12-0…
FALSE 2 Adenoid Cyst… Targeted S… TRUE 2441… Ross et… "ACYC… 0 2023-12-0…
FALSE 3 Adenoid Cyst… Whole-geno… TRUE 2686… Rettig … "ACYC… 0 2023-12-0…
FALSE 4 Adenoid Cyst… WGS of 21 … TRUE 2663… Mitani … "ACYC… 0 2023-12-0…
FALSE 5 Adenoid Cyst… Whole-geno… TRUE 2682… Drier e… "ACYC" 0 2023-12-0…
FALSE 6 Adenoid Cyst… Whole exom… TRUE 2377… Stephen… "ACYC… 0 2023-12-0…
FALSE 7 Basal Cell C… Whole-exom… TRUE 2695… Bonilla… "PUBL… 0 2023-12-0…
FALSE 8 Acute Lympho… Comprehens… TRUE 2573… Anderss… "PUBL… 0 2023-12-0…
FALSE 9 Ampullary Ca… Exome sequ… TRUE 2680… Gingras… "PUBL… 0 2023-12-0…
FALSE 10 Hypodiploid … Whole geno… TRUE 2333… Holmfel… "" 0 2023-12-0…
FALSE # ℹ 458 more rows
FALSE # ℹ 5 more variables: allSampleCount <int>, readPermission <lgl>,
FALSE # studyId <chr>, cancerTypeId <chr>, referenceGenome <chr>
Note that the studyId
column is important for further queries.
head(getStudies(cbio)[["studyId"]])
## [1] "acyc_mskcc_2013" "acyc_fmi_2014" "acyc_jhu_2016" "acyc_mda_2015"
## [5] "acyc_mgh_2016" "acyc_sanger_2013"
cgdsr
setuplibrary(cgdsr)
cgds <- CGDS("http://www.cbioportal.org/")
getCancerStudies.CGDS(cgds)
cBioPortalData
(Cases)patientId
.sampleListId
identifies groups of patientId
based on profile typesampleLists
function uses studyId
input to return sampleListId
For the sample list identifiers, you can use sampleLists
and inspect the
sampleListId
column.
samps <- sampleLists(cbio, "gbm_tcga_pub")
samps[, c("category", "name", "sampleListId")]
## # A tibble: 15 × 3
## category name sampleListId
## <chr> <chr> <chr>
## 1 all_cases_in_study All samples gbm_tcga_pu…
## 2 other Expression Cluster Classic… gbm_tcga_pu…
## 3 all_cases_with_cna_data Samples with CNA data gbm_tcga_pu…
## 4 all_cases_with_mutation_and_cna_data Samples with mutation and … gbm_tcga_pu…
## 5 all_cases_with_mrna_array_data Samples with mRNA data (Ag… gbm_tcga_pu…
## 6 other Expression Cluster Mesench… gbm_tcga_pu…
## 7 all_cases_with_methylation_data Samples with methylation d… gbm_tcga_pu…
## 8 all_cases_with_methylation_data Samples with methylation d… gbm_tcga_pu…
## 9 all_cases_with_microrna_data Samples with microRNA data… gbm_tcga_pu…
## 10 other Expression Cluster Neural gbm_tcga_pu…
## 11 other Expression Cluster Proneur… gbm_tcga_pu…
## 12 other Sequenced, No Hypermutators gbm_tcga_pu…
## 13 other Sequenced, Not Treated gbm_tcga_pu…
## 14 other Sequenced, Treated gbm_tcga_pu…
## 15 all_cases_with_mutation_data Samples with mutation data gbm_tcga_pu…
It is possible to get case_ids
directly when using the samplesInSampleLists
function. The function handles multiple sampleList
identifiers.
samplesInSampleLists(
api = cbio,
sampleListIds = c(
"gbm_tcga_pub_expr_classical", "gbm_tcga_pub_expr_mesenchymal"
)
)
## CharacterList of length 2
## [["gbm_tcga_pub_expr_classical"]] TCGA-02-0001-01 ... TCGA-12-0615-01
## [["gbm_tcga_pub_expr_mesenchymal"]] TCGA-02-0004-01 ... TCGA-12-0620-01
To get more information about patients, we can query with getSampleInfo
function.
getSampleInfo(api = cbio, studyId = "gbm_tcga_pub", projection = "SUMMARY")
## # A tibble: 206 × 6
## uniqueSampleKey uniquePatientKey sampleType sampleId patientId studyId
## <chr> <chr> <chr> <chr> <chr> <chr>
## 1 VENHQS0wMi0wMDAxLTAxO… VENHQS0wMi0wMDA… Primary S… TCGA-02… TCGA-02-… gbm_tc…
## 2 VENHQS0wMi0wMDAzLTAxO… VENHQS0wMi0wMDA… Primary S… TCGA-02… TCGA-02-… gbm_tc…
## 3 VENHQS0wMi0wMDA0LTAxO… VENHQS0wMi0wMDA… Primary S… TCGA-02… TCGA-02-… gbm_tc…
## 4 VENHQS0wMi0wMDA2LTAxO… VENHQS0wMi0wMDA… Primary S… TCGA-02… TCGA-02-… gbm_tc…
## 5 VENHQS0wMi0wMDA3LTAxO… VENHQS0wMi0wMDA… Primary S… TCGA-02… TCGA-02-… gbm_tc…
## 6 VENHQS0wMi0wMDA5LTAxO… VENHQS0wMi0wMDA… Primary S… TCGA-02… TCGA-02-… gbm_tc…
## 7 VENHQS0wMi0wMDEwLTAxO… VENHQS0wMi0wMDE… Primary S… TCGA-02… TCGA-02-… gbm_tc…
## 8 VENHQS0wMi0wMDExLTAxO… VENHQS0wMi0wMDE… Primary S… TCGA-02… TCGA-02-… gbm_tc…
## 9 VENHQS0wMi0wMDE0LTAxO… VENHQS0wMi0wMDE… Primary S… TCGA-02… TCGA-02-… gbm_tc…
## 10 VENHQS0wMi0wMDE1LTAxO… VENHQS0wMi0wMDE… Primary S… TCGA-02… TCGA-02-… gbm_tc…
## # ℹ 196 more rows
cgdsr
(Cases)case_id
.cancerStudy
identifiercase_list_description
describes the assaysgetCaseLists
and getClinicalData
We obtain the first case_list_id
in the cgds
object from above and the
corresponding clinical data for that case list (gbm_tcga_pub_all
as the case
list in this example).
clist1 <-
getCaseLists.CGDS(cgds, cancerStudy = "gbm_tcga_pub")[1, "case_list_id"]
getClinicalData.CGDS(cgds, clist1)
cBioPortalData
(Clinical)Note that a sampleListId
is not required when using the
fetchAllClinicalDataInStudyUsingPOST
internal endpoint. Data for all
patients can be obtained using the clinicalData
function.
clinicalData(cbio, "gbm_tcga_pub")
## # A tibble: 206 × 24
## patientId DFS_MONTHS DFS_STATUS KARNOFSKY_PERFORMANC…¹ OS_MONTHS OS_STATUS
## <chr> <chr> <chr> <chr> <chr> <chr>
## 1 TCGA-02-0001 4.5041095… 1:Recurred 80.0 11.60547… 1:DECEAS…
## 2 TCGA-02-0003 1.3150684… 1:Recurred 100.0 4.734246… 1:DECEAS…
## 3 TCGA-02-0004 10.323287… 1:Recurred 80.0 11.34246… 1:DECEAS…
## 4 TCGA-02-0006 9.9287671… 1:Recurred 80.0 18.34520… 1:DECEAS…
## 5 TCGA-02-0007 17.030136… 1:Recurred 80.0 23.17808… 1:DECEAS…
## 6 TCGA-02-0009 8.6794520… 1:Recurred 80.0 10.58630… 1:DECEAS…
## 7 TCGA-02-0010 11.539726… 1:Recurred 80.0 35.40821… 1:DECEAS…
## 8 TCGA-02-0011 4.7342465… 1:Recurred 80.0 20.71232… 1:DECEAS…
## 9 TCGA-02-0014 <NA> <NA> 100.0 82.55342… 1:DECEAS…
## 10 TCGA-02-0015 14.991780… 1:Recurred 80.0 20.61369… 1:DECEAS…
## # ℹ 196 more rows
## # ℹ abbreviated name: ¹KARNOFSKY_PERFORMANCE_SCORE
## # ℹ 18 more variables: PRETREATMENT_HISTORY <chr>, PRIOR_GLIOMA <chr>,
## # SAMPLE_COUNT <chr>, SEX <chr>, sampleId <chr>, ACGH_DATA <chr>,
## # CANCER_TYPE <chr>, CANCER_TYPE_DETAILED <chr>, COMPLETE_DATA <chr>,
## # FRACTION_GENOME_ALTERED <chr>, MRNA_DATA <chr>, MUTATION_COUNT <chr>,
## # ONCOTREE_CODE <chr>, SAMPLE_TYPE <chr>, SEQUENCED <chr>, …
You can use a different endpoint to obtain data for a single sample.
First, obtain a single sampleId
with the samplesInSampleLists
function.
clist1 <- "gbm_tcga_pub_all"
samplist <- samplesInSampleLists(cbio, clist1)
onesample <- samplist[["gbm_tcga_pub_all"]][1]
onesample
## [1] "TCGA-02-0001-01"
Then we use the API endpoint to retrieve the data. Note that you would run
httr::content
on the output to extract the data.
cbio$getAllClinicalDataOfSampleInStudyUsingGET(
sampleId = onesample, studyId = "gbm_tcga_pub"
)
## Response [https://www.cbioportal.org/api/studies/gbm_tcga_pub/samples/TCGA-02-0001-01/clinical-data]
## Date: 2024-11-19 21:24
## Status: 200
## Content-Type: application/json
## Size: 3.31 kB
cgdsr
(Clinical)getClinicalData
uses case_list_id
as input without specifying the
study_id
as case list identifiers are unique to each study.We query clinical data for the gbm_tcga_pub_expr_classical
case list
identifier which is part of the gbm_tcga_pub
study.
getClinicalData.CGDS(x = cgds,
caseList = "gbm_tcga_pub_expr_classical"
)
cgdsr
allows you to obtain clinical data for a case list subset
(54 cases with gbm_tcga_pub_expr_classical
) and cBioPortalData
provides
clinical data for all 206 samples in gbm_tcga_pub
using the clinicalData
function.
cgdsr
returns a data.frame
with sampleId
(TCGA.02.0009.01) but not
patientId
(TCGA.02.0009)cBioPortalData
returns sampleId
(TCGA-02-0009-01) and patientId
(TCGA-02-0009).cgdsr
provides case_id
s with .
and cBioPortalData
returns patientId
s
with -
.You may be interested in other clinical data endpoints. For a list, use
the searchOps
function.
searchOps(cbio, "clinical")
## [1] "getAllClinicalAttributesUsingGET"
## [2] "fetchClinicalAttributesUsingPOST"
## [3] "fetchClinicalDataUsingPOST"
## [4] "getAllClinicalAttributesInStudyUsingGET"
## [5] "getClinicalAttributeInStudyUsingGET"
## [6] "getAllClinicalDataInStudyUsingGET"
## [7] "fetchAllClinicalDataInStudyUsingPOST"
## [8] "getAllClinicalDataOfPatientInStudyUsingGET"
## [9] "getAllClinicalDataOfSampleInStudyUsingGET"
cBioPortalData
(molecularProfiles)molecularProfiles(api = cbio, studyId = "gbm_tcga_pub")
## # A tibble: 10 × 8
## molecularAlterationType datatype name description showProfileInAnalysi…¹
## <chr> <chr> <chr> <chr> <lgl>
## 1 COPY_NUMBER_ALTERATION DISCRETE Putati… Putative c… TRUE
## 2 COPY_NUMBER_ALTERATION DISCRETE Putati… Putative c… TRUE
## 3 MUTATION_EXTENDED MAF Mutati… Mutation d… TRUE
## 4 METHYLATION CONTINUOUS Methyl… Methylatio… FALSE
## 5 MRNA_EXPRESSION CONTINUOUS mRNA e… mRNA expre… FALSE
## 6 MRNA_EXPRESSION Z-SCORE mRNA e… 18,698 gen… TRUE
## 7 MRNA_EXPRESSION Z-SCORE mRNA e… Log-transf… TRUE
## 8 MRNA_EXPRESSION CONTINUOUS microR… expression… FALSE
## 9 MRNA_EXPRESSION Z-SCORE microR… microRNA e… FALSE
## 10 MRNA_EXPRESSION Z-SCORE mRNA/m… mRNA and m… TRUE
## # ℹ abbreviated name: ¹showProfileInAnalysisTab
## # ℹ 3 more variables: patientLevel <lgl>, molecularProfileId <chr>,
## # studyId <chr>
Note that we want to pull the molecularProfileId
column to use in other
queries.
cgdsr
(getGeneticProfiles)getGeneticProfiles.CGDS(cgds, cancerStudy = "gbm_tcga_pub")
cBioPortalData
(Indentify samples and genes)Currently, some conversion is needed to directly use the molecularData
function, if you only have Hugo symbols. First, convert to Entrez gene IDs
and then obtain all the samples in the sample list of interest.
hugoGeneSymbol
to entrezGeneId
genetab <- queryGeneTable(cbio,
by = "hugoGeneSymbol",
genes = c("NF1", "TP53", "ABL1")
)
genetab
## # A tibble: 3 × 3
## entrezGeneId hugoGeneSymbol type
## <int> <chr> <chr>
## 1 4763 NF1 protein-coding
## 2 25 ABL1 protein-coding
## 3 7157 TP53 protein-coding
entrez <- genetab[["entrezGeneId"]]
allsamps <- samplesInSampleLists(cbio, "gbm_tcga_pub_all")
In the next section, we will show how to use the genes and sample identifiers to obtain the molecular profile data.
cgdsr
(Profile Data)The getProfileData
function allows for straightforward retrieval of the
molecular profile data with only a case list and genetic profile identifiers.
getProfileData.CGDS(x = cgds,
genes = c("NF1", "TP53", "ABL1"),
geneticProfiles = "gbm_tcga_pub_mrna",
caseList = "gbm_tcga_pub_all"
)
cBioPortalData
cBioPortalData
provides a number of options for retrieving molecular profile
data depending on the use case. Note that molecularData
is mostly used
internally and that the cBioPortalData
function is the user-friendly method
for downloading such data.
molecularData
We use the translated entrez
identifiers from above.
molecularData(cbio, "gbm_tcga_pub_mrna",
entrezGeneIds = entrez, sampleIds = unlist(allsamps))
## $gbm_tcga_pub_mrna
## # A tibble: 618 × 8
## uniqueSampleKey uniquePatientKey entrezGeneId molecularProfileId sampleId
## <chr> <chr> <int> <chr> <chr>
## 1 VENHQS0wMi0wMDAxLT… VENHQS0wMi0wMDA… 25 gbm_tcga_pub_mrna TCGA-02…
## 2 VENHQS0wMi0wMDAxLT… VENHQS0wMi0wMDA… 4763 gbm_tcga_pub_mrna TCGA-02…
## 3 VENHQS0wMi0wMDAxLT… VENHQS0wMi0wMDA… 7157 gbm_tcga_pub_mrna TCGA-02…
## 4 VENHQS0wMi0wMDAzLT… VENHQS0wMi0wMDA… 25 gbm_tcga_pub_mrna TCGA-02…
## 5 VENHQS0wMi0wMDAzLT… VENHQS0wMi0wMDA… 4763 gbm_tcga_pub_mrna TCGA-02…
## 6 VENHQS0wMi0wMDAzLT… VENHQS0wMi0wMDA… 7157 gbm_tcga_pub_mrna TCGA-02…
## 7 VENHQS0wMi0wMDA0LT… VENHQS0wMi0wMDA… 25 gbm_tcga_pub_mrna TCGA-02…
## 8 VENHQS0wMi0wMDA0LT… VENHQS0wMi0wMDA… 4763 gbm_tcga_pub_mrna TCGA-02…
## 9 VENHQS0wMi0wMDA0LT… VENHQS0wMi0wMDA… 7157 gbm_tcga_pub_mrna TCGA-02…
## 10 VENHQS0wMi0wMDA2LT… VENHQS0wMi0wMDA… 25 gbm_tcga_pub_mrna TCGA-02…
## # ℹ 608 more rows
## # ℹ 3 more variables: patientId <chr>, studyId <chr>, value <dbl>
getDataByGenes
The getDataByGenes
function automatically figures out all the sample
identifiers in the study and it allows Hugo and Entrez identifiers, as well
as genePanelId
inputs.
getDataByGenes(
api = cbio,
studyId = "gbm_tcga_pub",
genes = c("NF1", "TP53", "ABL1"),
by = "hugoGeneSymbol",
molecularProfileIds = "gbm_tcga_pub_mrna"
)
cBioPortalData
: the main end-user functionIt is important to note that end users who wish to obtain the data as
easily as possible should use the main cBioPortalData
function:
gbm_pub <- cBioPortalData(
api = cbio,
studyId = "gbm_tcga_pub",
genes = c("NF1", "TP53", "ABL1"), by = "hugoGeneSymbol",
molecularProfileIds = "gbm_tcga_pub_mrna"
)
assay(gbm_pub[["gbm_tcga_pub_mrna"]])[, 1:4]
## TCGA-02-0001-01 TCGA-02-0003-01 TCGA-02-0004-01 TCGA-02-0006-01
## ABL1 -0.1744878 -0.177096729 -0.08782114 -0.1733767
## NF1 -0.2966920 -0.001066810 -0.23626512 -0.1691507
## TP53 0.6213171 0.006435625 -0.30507285 0.3967758
cBioPortalData
(mutationData)Similar to molecularData
, mutation data can be obtained with the
mutationData
function or the getDataByGenes
function.
mutationData(
api = cbio,
molecularProfileIds = "gbm_tcga_pub_mutations",
entrezGeneIds = entrez,
sampleIds = unlist(allsamps)
)
## $gbm_tcga_pub_mutations
## # A tibble: 57 × 23
## uniqueSampleKey uniquePatientKey molecularProfileId sampleId patientId
## <chr> <chr> <chr> <chr> <chr>
## 1 VENHQS0wMi0wMDAxLTAxO… VENHQS0wMi0wMDA… gbm_tcga_pub_muta… TCGA-02… TCGA-02-…
## 2 VENHQS0wMi0wMDAxLTAxO… VENHQS0wMi0wMDA… gbm_tcga_pub_muta… TCGA-02… TCGA-02-…
## 3 VENHQS0wMi0wMDAzLTAxO… VENHQS0wMi0wMDA… gbm_tcga_pub_muta… TCGA-02… TCGA-02-…
## 4 VENHQS0wMi0wMDAzLTAxO… VENHQS0wMi0wMDA… gbm_tcga_pub_muta… TCGA-02… TCGA-02-…
## 5 VENHQS0wMi0wMDEwLTAxO… VENHQS0wMi0wMDE… gbm_tcga_pub_muta… TCGA-02… TCGA-02-…
## 6 VENHQS0wMi0wMDEwLTAxO… VENHQS0wMi0wMDE… gbm_tcga_pub_muta… TCGA-02… TCGA-02-…
## 7 VENHQS0wMi0wMDEwLTAxO… VENHQS0wMi0wMDE… gbm_tcga_pub_muta… TCGA-02… TCGA-02-…
## 8 VENHQS0wMi0wMDExLTAxO… VENHQS0wMi0wMDE… gbm_tcga_pub_muta… TCGA-02… TCGA-02-…
## 9 VENHQS0wMi0wMDE0LTAxO… VENHQS0wMi0wMDE… gbm_tcga_pub_muta… TCGA-02… TCGA-02-…
## 10 VENHQS0wMi0wMDI0LTAxO… VENHQS0wMi0wMDI… gbm_tcga_pub_muta… TCGA-02… TCGA-02-…
## # ℹ 47 more rows
## # ℹ 18 more variables: entrezGeneId <int>, studyId <chr>, center <chr>,
## # mutationStatus <chr>, validationStatus <chr>, startPosition <int>,
## # endPosition <int>, referenceAllele <chr>, proteinChange <chr>,
## # mutationType <chr>, ncbiBuild <chr>, variantType <chr>, keyword <chr>,
## # chr <chr>, variantAllele <chr>, refseqMrnaId <chr>, proteinPosStart <int>,
## # proteinPosEnd <int>
getDataByGenes(
api = cbio,
studyId = "gbm_tcga_pub",
genes = c("NF1", "TP53", "ABL1"),
by = "hugoGeneSymbol",
molecularProfileIds = "gbm_tcga_pub_mutations"
)
cgdsr
(getMutationData)getMutationData.CGDS(
x = cgds,
caseList = "getMutationData",
geneticProfile = "gbm_tcga_pub_mutations",
genes = c("NF1", "TP53", "ABL1")
)
cBioPortalData
(CNA)Copy Number Alteration data can be obtained with the getDataByGenes
function
or by the main cBioPortal
function.
getDataByGenes(
api = cbio,
studyId = "gbm_tcga_pub",
genes = c("NF1", "TP53", "ABL1"),
by = "hugoGeneSymbol",
molecularProfileIds = "gbm_tcga_pub_cna_rae"
)
cBioPortalData(
api = cbio,
studyId = "gbm_tcga_pub",
genes = c("NF1", "TP53", "ABL1"),
by = "hugoGeneSymbol",
molecularProfileIds = "gbm_tcga_pub_cna_rae"
)
## harmonizing input:
## removing 3 colData rownames not in sampleMap 'primary'
## A MultiAssayExperiment object of 1 listed
## experiment with a user-defined name and respective class.
## Containing an ExperimentList class object of length 1:
## [1] gbm_tcga_pub_cna_rae: SummarizedExperiment with 3 rows and 203 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 data to flat files
cgdsr
(CNA)getProfileData.CGDS(
x = cgds,
genes = c("NF1", "TP53", "ABL1"),
geneticProfiles = "gbm_tcga_pub_cna_rae",
caseList = "gbm_tcga_pub_cna"
)
cBioPortalData
(Methylation)Similar to Copy Number Alteration, Methylation can be obtained by
getDataByGenes
function or by ‘cBioPortalData’ function.
getDataByGenes(
api = cbio,
studyId = "gbm_tcga_pub",
genes = c("NF1", "TP53", "ABL1"),
by = "hugoGeneSymbol",
molecularProfileIds = "gbm_tcga_pub_methylation_hm27"
)
cBioPortalData(
api = cbio,
studyId = "gbm_tcga_pub",
genes = c("NF1", "TP53", "ABL1"),
by = "hugoGeneSymbol",
molecularProfileIds = "gbm_tcga_pub_methylation_hm27"
)
## harmonizing input:
## removing 148 colData rownames not in sampleMap 'primary'
## A MultiAssayExperiment object of 1 listed
## experiment with a user-defined name and respective class.
## Containing an ExperimentList class object of length 1:
## [1] gbm_tcga_pub_methylation_hm27: SummarizedExperiment with 3 rows and 58 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 data to flat files
cgdsr
(Methylation)getProfileData.CGDS(
x = cgds,
genes = c("NF1", "TP53", "ABL1"),
geneticProfiles = "gbm_tcga_pub_methylation_hm27",
caseList = "gbm_tcga_pub_methylation_hm27"
)
sessionInfo()
## R Under development (unstable) (2024-10-21 r87258)
## Platform: x86_64-pc-linux-gnu
## Running under: Ubuntu 24.04.1 LTS
##
## Matrix products: default
## BLAS: /home/biocbuild/bbs-3.21-bioc/R/lib/libRblas.so
## LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.0
##
## locale:
## [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
## [3] LC_TIME=en_GB LC_COLLATE=C
## [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
## [7] LC_PAPER=en_US.UTF-8 LC_NAME=C
## [9] LC_ADDRESS=C LC_TELEPHONE=C
## [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
##
## time zone: America/New_York
## tzcode source: system (glibc)
##
## attached base packages:
## [1] stats4 stats graphics grDevices utils datasets methods
## [8] base
##
## other attached packages:
## [1] survminer_0.5.0 ggpubr_0.6.0
## [3] ggplot2_3.5.1 survival_3.7-0
## [5] cBioPortalData_2.19.1 MultiAssayExperiment_1.33.0
## [7] SummarizedExperiment_1.37.0 Biobase_2.67.0
## [9] GenomicRanges_1.59.1 GenomeInfoDb_1.43.1
## [11] IRanges_2.41.1 S4Vectors_0.45.2
## [13] BiocGenerics_0.53.3 generics_0.1.3
## [15] MatrixGenerics_1.19.0 matrixStats_1.4.1
## [17] AnVIL_1.19.3 AnVILBase_1.1.0
## [19] dplyr_1.1.4 BiocStyle_2.35.0
##
## loaded via a namespace (and not attached):
## [1] jsonlite_1.8.9 magrittr_2.0.3
## [3] magick_2.8.5 GenomicFeatures_1.59.1
## [5] farver_2.1.2 rmarkdown_2.29
## [7] BiocIO_1.17.0 zlibbioc_1.53.0
## [9] vctrs_0.6.5 memoise_2.0.1
## [11] Rsamtools_2.23.0 RCurl_1.98-1.16
## [13] tinytex_0.54 rstatix_0.7.2
## [15] htmltools_0.5.8.1 S4Arrays_1.7.1
## [17] BiocBaseUtils_1.9.0 lambda.r_1.2.4
## [19] curl_6.0.1 broom_1.0.7
## [21] Formula_1.2-5 SparseArray_1.7.2
## [23] sass_0.4.9 bslib_0.8.0
## [25] htmlwidgets_1.6.4 httr2_1.0.6
## [27] zoo_1.8-12 futile.options_1.0.1
## [29] cachem_1.1.0 commonmark_1.9.2
## [31] GenomicAlignments_1.43.0 mime_0.12
## [33] lifecycle_1.0.4 pkgconfig_2.0.3
## [35] Matrix_1.7-1 R6_2.5.1
## [37] fastmap_1.2.0 GenomeInfoDbData_1.2.13
## [39] shiny_1.9.1 digest_0.6.37
## [41] colorspace_2.1-1 RaggedExperiment_1.31.0
## [43] AnnotationDbi_1.69.0 ps_1.8.1
## [45] RSQLite_2.3.8 labeling_0.4.3
## [47] filelock_1.0.3 RTCGAToolbox_2.37.0
## [49] km.ci_0.5-6 fansi_1.0.6
## [51] RJSONIO_1.3-1.9 httr_1.4.7
## [53] abind_1.4-8 compiler_4.5.0
## [55] bit64_4.5.2 withr_3.0.2
## [57] backports_1.5.0 BiocParallel_1.41.0
## [59] carData_3.0-5 DBI_1.2.3
## [61] ggsignif_0.6.4 rappdirs_0.3.3
## [63] DelayedArray_0.33.2 rjson_0.2.23
## [65] tools_4.5.0 chromote_0.3.1
## [67] httpuv_1.6.15 glue_1.8.0
## [69] restfulr_0.0.15 promises_1.3.0
## [71] gridtext_0.1.5 grid_4.5.0
## [73] gtable_0.3.6 KMsurv_0.1-5
## [75] tzdb_0.4.0 tidyr_1.3.1
## [77] websocket_1.4.2 data.table_1.16.2
## [79] hms_1.1.3 car_3.1-3
## [81] xml2_1.3.6 utf8_1.2.4
## [83] XVector_0.47.0 markdown_1.13
## [85] pillar_1.9.0 stringr_1.5.1
## [87] later_1.3.2 splines_4.5.0
## [89] ggtext_0.1.2 BiocFileCache_2.15.0
## [91] lattice_0.22-6 rtracklayer_1.67.0
## [93] bit_4.5.0 tidyselect_1.2.1
## [95] Biostrings_2.75.1 miniUI_0.1.1.1
## [97] knitr_1.49 gridExtra_2.3
## [99] bookdown_0.41 futile.logger_1.4.3
## [101] xfun_0.49 DT_0.33
## [103] stringi_1.8.4 UCSC.utils_1.3.0
## [105] yaml_2.3.10 evaluate_1.0.1
## [107] codetools_0.2-20 tibble_3.2.1
## [109] BiocManager_1.30.25 cli_3.6.3
## [111] xtable_1.8-4 munsell_0.5.1
## [113] processx_3.8.4 jquerylib_0.1.4
## [115] survMisc_0.5.6 Rcpp_1.0.13-1
## [117] GenomicDataCommons_1.31.0 dbplyr_2.5.0
## [119] png_0.1-8 XML_3.99-0.17
## [121] rapiclient_0.1.8 parallel_4.5.0
## [123] TCGAutils_1.27.0 readr_2.1.5
## [125] blob_1.2.4 bitops_1.0-9
## [127] scales_1.3.0 purrr_1.0.2
## [129] crayon_1.5.3 rlang_1.1.4
## [131] KEGGREST_1.47.0 rvest_1.0.4
## [133] formatR_1.14