## ----include = FALSE---------------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>", warning = FALSE, message = FALSE, cache = TRUE, tidy = TRUE, width.cutoff = 70 ) ## ----message=FALSE------------------------------------------------------------ library(curatedPCaData) # Use a function to extract all known study short identifiers studies <- curatedPCaData::getPCaStudies() studies # List apply across studies to extract all MAE objects corresponding to the # short identifiers maes <- lapply(studies, FUN=\(id) { curatedPCaData::getPCa(id) }) names(maes) <- studies ## ----studies1, message = FALSE------------------------------------------------ # Create a summary table depicting key features in available studies studytable <- curatedPCaData::getPCaSummaryStudies(maes) ## ----studies2, results = 'asis', echo=FALSE----------------------------------- knitr::kable(studytable, caption = "Key study characteristics") ## ----template, results='asis', echo=FALSE------------------------------------- data(template_prad) template <- template_prad # Add spaces to |-dividers for linechanges template <- do.call("cbind", lapply(template, FUN = function(x) { gsub("|", " | ", x, fixed = TRUE) })) knitr::kable(template, caption = "Template for prostate adenocarcinoma clinical metadata") ## ----gleasons1---------------------------------------------------------------- # Create a summary table of Gleason grades gleasons <- curatedPCaData::getPCaSummaryTable( maes, var.name = "gleason_grade", vals=5:10 ) ## ----gleasons2, results = 'asis', echo=FALSE---------------------------------- knitr::kable(gleasons, caption = "Gleason grades across datasets in curatedPCaData") ## ----groups1------------------------------------------------------------------ # Create a summary table of grade groups gradegroups <- curatedPCaData::getPCaSummaryTable( maes, var.name = "grade_group", vals=c("<=6", "3+4", "4+3", "7", ">=8") ) ## ----groups2, results = 'asis', echo=FALSE------------------------------------ knitr::kable(gradegroups, caption = "Grade groups across datasets in curatedPCaData") ## ----recurrences1------------------------------------------------------------- # Create a summary table of biochemical recurrences recurrences <- curatedPCaData::getPCaSummarySurv( maes, event.name = "disease_specific_recurrence_status", time.name = "days_to_disease_specific_recurrence" ) ## ----recurrences2, results = 'asis', echo=FALSE------------------------------- knitr::kable(recurrences, caption = "Disease recurrence end point across datasets in curatedPCaData") ## ----os1---------------------------------------------------------------------- # Create a summary table of overall survival survivals <- curatedPCaData::getPCaSummarySurv( maes, event.name = "overall_survival_status", time.name = "days_to_overall_survival" ) ## ----os2, results = 'asis', echo=FALSE---------------------------------------- knitr::kable(survivals, caption = "Overall survival end point across datasets in curatedPCaData") ## ----tcgaex------------------------------------------------------------------- tcga_subset <- getPCa( dataset = "tcga", assays = c("gex.rsem.log", "xcell", "scores"), timestamp = "20230215" ) tcga_subset ## ----ehquery------------------------------------------------------------------ mae_tcga <- getPCa("tcga") mae_taylor <- getPCa("taylor") ## ----access------------------------------------------------------------------- mae_taylor[["gex.rma"]][1:5, 1:5] ## ----clinical----------------------------------------------------------------- MultiAssayExperiment::colData(mae_tcga)[1:2, ] ## ----metadat------------------------------------------------------------------ metadata <- read.csv(system.file("extdata", "metadata.csv", package = "curatedPCaData")) head(metadata) ## ----samplecountsoverlap------------------------------------------------------ # Retrieve samples counts across different unique assay names as well as omics # overlap sample counts samplecounts <- curatedPCaData::getPCaSummarySamples(maes) ## ----samplecounts, results='asis', echo=FALSE--------------------------------- knitr::kable(samplecounts$Samples, caption = "Sample N counts in each omics for every MAE object") ## ----sampleoverlap, results='asis', echo=FALSE-------------------------------- knitr::kable(samplecounts$Overlap, caption = "Sample N counts for intersections between different omics") ## ----------------------------------------------------------------------------- mae_taylor ## ----------------------------------------------------------------------------- head(mae_taylor[["cibersort"]])[1:5, 1:3] ## ----------------------------------------------------------------------------- head(mae_taylor[["quantiseq"]])[1:5, 1:3] head(mae_taylor[["xcell"]])[1:5, 1:3] head(mae_taylor[["epic"]])[1:5, 1:3] head(mae_taylor[["mcp"]])[1:5, 1:3] ## ----scores------------------------------------------------------------------- mae_tcga[["scores"]][, 1:4] ## ----------------------------------------------------------------------------- taylor <- getPCa("taylor", assays = c("gex.rma", "cna.gistic"), sampletypes = "primary" ) class(taylor) taylor ## ----------------------------------------------------------------------------- library(survival) # BCR events taylor_bcr <- colData(taylor)$disease_specific_recurrence_status # BCR events / censoring follow-up time taylor_fu <- colData(taylor)$days_to_disease_specific_recurrence taylor_surv <- Surv(event = taylor_bcr, time = taylor_fu) class(taylor_surv) head(taylor_surv) ## ----------------------------------------------------------------------------- library(survminer) taylor_bcr_gleason <- data.frame(bcr = taylor_surv, gleason = colData(taylor)$gleason_grade) fit <- survfit(bcr ~ gleason, data = taylor_bcr_gleason) ggsurvplot(fit, data = taylor_bcr_gleason, ylab = "Biochemical recurrence free proportion", risk.table = TRUE, size = 1, pval = TRUE, ggtheme = theme_bw() ) ## ----------------------------------------------------------------------------- taylor_coxdat <- MultiAssayExperiment::wideFormat(taylor["PTEN",,], colDataCols = c("age_at_initial_diagnosis", "gleason_grade", "disease_specific_recurrence_status", "days_to_disease_specific_recurrence")) taylor_coxdat <- as.data.frame(taylor_coxdat) taylor_coxdat$y <- Surv( time = taylor_coxdat$days_to_disease_specific_recurrence, event = taylor_coxdat$disease_specific_recurrence_status) head(taylor_coxdat) ## ----------------------------------------------------------------------------- coxmodel <- coxph(y ~ cna.gistic_PTEN + gex.rma_PTEN + gleason_grade, data = taylor_coxdat) coxmodel ## ----session------------------------------------------------------------------ sessionInfo()