## ----setup, include=FALSE------------------------------------------------ knitr::opts_chunk$set(cache = TRUE) ## ------------------------------------------------------------------------ suppressPackageStartupMessages({ library(MultiAssayExperiment) library(S4Vectors) }) data(miniACC) miniACC ## ------------------------------------------------------------------------ colData(miniACC)[1:4, 1:4] table(miniACC$race) ## ------------------------------------------------------------------------ experiments(miniACC) ## ------------------------------------------------------------------------ sampleMap(miniACC) ## ------------------------------------------------------------------------ metadata(miniACC) ## ---- results='hide'----------------------------------------------------- miniACC[c("MAPK14", "IGFBP2"), , ] ## ---- results='hide'----------------------------------------------------- miniACC[, miniACC$pathologic_stage == "stage iv", ] ## ---- results='hide'----------------------------------------------------- miniACC[, , "RNASeq2GeneNorm"] ## ------------------------------------------------------------------------ miniACC[[1L]] #or equivalently, miniACC[["RNASeq2GeneNorm"]] ## ------------------------------------------------------------------------ summary(complete.cases(miniACC)) ## ------------------------------------------------------------------------ accmatched = intersectColumns(miniACC) ## ------------------------------------------------------------------------ colnames(accmatched) ## ------------------------------------------------------------------------ accmatched2 <- intersectRows(miniACC[, , c("RNASeq2GeneNorm", "gistict", "Mutations")]) rownames(accmatched2) ## ------------------------------------------------------------------------ class(assay(miniACC)) ## ------------------------------------------------------------------------ assays(miniACC) ## ------------------------------------------------------------------------ longFormat(miniACC[c("TP53", "CTNNB1"), , ], colDataCols = c("vital_status", "days_to_death")) ## ------------------------------------------------------------------------ wideFormat(miniACC[c("TP53", "CTNNB1"), , ], colDataCols = c("vital_status", "days_to_death")) ## ------------------------------------------------------------------------ MultiAssayExperiment(experiments=experiments(miniACC), colData=colData(miniACC), sampleMap=sampleMap(miniACC), metadata=metadata(miniACC)) ## ------------------------------------------------------------------------ miniACC2 <- c(miniACC, log2rnaseq = log2(assays(miniACC)$RNASeq2GeneNorm), mapFrom=1L) experiments(miniACC2) ## ------------------------------------------------------------------------ upsetSamples(miniACC) ## ------------------------------------------------------------------------ suppressPackageStartupMessages({ library(survival) library(survminer) }) Surv(miniACC$days_to_death, miniACC$vital_status) ## ------------------------------------------------------------------------ miniACCsurv <- miniACC[, complete.cases(miniACC$days_to_death, miniACC$vital_status), ] ## ------------------------------------------------------------------------ fit <- survfit(Surv(days_to_death, vital_status) ~ pathology_N_stage, data = colData(miniACCsurv)) ggsurvplot(fit, data = colData(miniACCsurv), risk.table = TRUE) ## ------------------------------------------------------------------------ wideacc = wideFormat(miniACC["EZH2", , ], colDataCols=c("vital_status", "days_to_death", "pathology_N_stage")) wideacc$y = Surv(wideacc$days_to_death, wideacc$vital_status) head(wideacc) ## ------------------------------------------------------------------------ coxph(Surv(days_to_death, vital_status) ~ gistict_EZH2 + log2(RNASeq2GeneNorm_EZH2) + pathology_N_stage, data=wideacc) ## ------------------------------------------------------------------------ subacc <- miniACC[, , c("RNASeq2GeneNorm", "gistict")] ## ------------------------------------------------------------------------ subacc <- intersectColumns(subacc) subacc <- intersectRows(subacc) ## ------------------------------------------------------------------------ subacc.list <- assays(subacc) ## ------------------------------------------------------------------------ subacc.list[[1]] <- log2(subacc.list[[1]] + 1) ## ------------------------------------------------------------------------ subacc.list <- lapply(subacc.list, t) ## ------------------------------------------------------------------------ corres <- cor(subacc.list[[1]], subacc.list[[2]]) ## ------------------------------------------------------------------------ hist(diag(corres)) hist(corres[upper.tri(corres)]) ## ------------------------------------------------------------------------ which.max(diag(corres)) ## ------------------------------------------------------------------------ df <- wideFormat(subacc["EIF4E", , ]) head(df) ## ------------------------------------------------------------------------ boxplot(RNASeq2GeneNorm_EIF4E ~ gistict_EIF4E, data=df, varwidth=TRUE, xlab="GISTIC Relative Copy Number Call", ylab="RNA-seq counts") ## ------------------------------------------------------------------------ getLoadings <- function(x, ncomp=10, dolog=FALSE, center=TRUE, scale.=TRUE){ if(dolog){ x <- log2(x + 1) } pc = prcomp(x, center=center, scale.=scale.) return(t(pc$rotation[, 1:10])) } ## ------------------------------------------------------------------------ miniACC2 <- intersectColumns(miniACC) miniACC2 <- c(miniACC2, rnaseqPCA=getLoadings(assays(miniACC2)[[1]], dolog=TRUE), mapFrom=1L) miniACC2 <- c(miniACC2, gistictPCA=getLoadings(assays(miniACC2)[[2]], center=FALSE, scale.=FALSE), mapFrom=2L) miniACC2 <- c(miniACC2, proteinPCA=getLoadings(assays(miniACC2)[[3]]), mapFrom=3L) miniACC2 <- c(miniACC2, mutationsPCA=getLoadings(assays(miniACC2)[[4]], center=FALSE, scale.=FALSE), mapFrom=4L) miniACC2 <- c(miniACC2, miRNAPCA=getLoadings(assays(miniACC2)[[5]]), mapFrom=5L) ## ------------------------------------------------------------------------ miniACC2 <- miniACC2[, , 6:10] experiments(miniACC2) ## ------------------------------------------------------------------------ df <- wideFormat(miniACC2)[, -1] mycors <- cor(as.matrix(df)) mycors <- abs(mycors) diag(mycors) <- NA ## ------------------------------------------------------------------------ has.high.cor <- apply(mycors, 2, max, na.rm=TRUE) > 0.5 mycors <- mycors[has.high.cor, has.high.cor] pheatmap::pheatmap(mycors) ## ------------------------------------------------------------------------ suppressPackageStartupMessages(library(SummarizedExperiment)) seACC <- miniACC experiments(seACC) seACC[[1]] <- SummarizedExperiment(exprs(seACC[[1]])) seACC[[3]] <- SummarizedExperiment(exprs(seACC[[3]])) seACC[[4]] <- SummarizedExperiment(seACC[[4]]) seACC[[5]] <- SummarizedExperiment(exprs(seACC[[5]])) experiments(seACC) ## ------------------------------------------------------------------------ getrr <- function(identifiers, EnsDbFilterFunc="SymbolFilter"){ suppressPackageStartupMessages({ library(AnnotationFilter) library(EnsDb.Hsapiens.v86) }) FUN <- get(EnsDbFilterFunc) edb <- EnsDb.Hsapiens.v86 afl <- AnnotationFilterList(FUN(identifiers), SeqNameFilter(c(1:21, "X", "Y")), TxBiotypeFilter("protein_coding")) gr <- genes(edb, filter=afl) grl <- split(gr, factor(identifiers)) grl <- grl[match(identifiers, names(grl))] stopifnot(identical(names(grl), identifiers)) return(grl) } ## ------------------------------------------------------------------------ getrr(rownames(seACC)[[1]]) ## ------------------------------------------------------------------------ for (i in 1:4){ rowRanges(seACC[[i]]) <- getrr(rownames(seACC[[i]])) } ## ------------------------------------------------------------------------ experiments(seACC) ## ------------------------------------------------------------------------ seACC[GRanges(seqnames="1:1-1e9"), , 1:4] ## ---- eval=FALSE--------------------------------------------------------- # MultiAssayExperimentWorkshop::maeView(miniACC) ## ------------------------------------------------------------------------ sessionInfo()