Nothing
## ----include=FALSE------------------------------------------------------------
library(knitr)
opts_chunk$set(concordance=TRUE)
options(scipen = 1, digits = 2, warn = -1)
## ----loadPackagesAndData,message=FALSE----------------------------------------
library(TNBC.CMS)
data("GSE25055")
dim(assays(GSE25055)[[1]])
assays(GSE25055)[[1]][1:5, 1:5]
## ----prediction---------------------------------------------------------------
predictions <- predictCMS(GSE25055)
table(predictions)
head(attr(predictions, "probabilities"))
## ----include=FALSE------------------------------------------------------------
resultGES <- t(as.matrix(colData(GSE25055)[,3:9]))
## ----eval=FALSE---------------------------------------------------------------
# resultGES <- computeGES(expr = GSE25055, pred = predictions,
# rnaseq = FALSE)
## ----eval=TRUE----------------------------------------------------------------
resultGES[,1:4]
## ----label=gesplot,echo=FALSE,fig.height=4,fig.cap="Gene expression signature scores",fig.pos="H",message=FALSE----
library(grid)
library(ggpubr)
CMS.palette <- c("MSL" = "brown2", "IM" = "gold2",
"LAR" = "yellowgreen", "SL" = "midnightblue")
pval1 <- 8.1e-7
pval2 <- 3.6e-6
pval3 <- 0.016
pval4 <- 0.00034
TITLE_SIZE <- 12
SUBTITLE_SIZE <- 10
sigdat <- data.frame(t(resultGES))
sigdat$CMS <- predictions
sub1 <- bquote(paste("Wilcoxon (MSL vs. others) ",
italic(p), " = ", .(format(pval1, digits = 2))))
sub2 <- bquote(paste("Wilcoxon (MSL vs. others) ",
italic(p), " = ", .(format(pval2, digits = 2))))
sub3 <- bquote(paste("Wilcoxon (MSL vs. others) ",
italic(p), " = ", .(format(pval3, digits = 2))))
sub4 <- bquote(paste("Wilcoxon (MSL vs. others) ",
italic(p), " = ", .(format(pval4, digits = 2))))
p1 <- ggboxplot(sigdat, x = "CMS", y = "Stromal",
fill = "CMS", palette = CMS.palette) +
theme_bw() + labs(title = "Stromal", subtitle = sub1) +
theme(legend.position = "none", axis.title = element_blank(),
axis.text.x = element_blank(), axis.ticks.x = element_blank(),
panel.grid = element_blank(),
plot.title = element_text(size = TITLE_SIZE,
hjust = 0.5, face = "bold"),
plot.subtitle = element_text(size= SUBTITLE_SIZE, hjust = 0.5))
p2 <- ggboxplot(sigdat, x = "CMS", y = "Immune",
fill = "CMS", palette = CMS.palette) +
theme_bw() + labs(title = "Immune", subtitle = sub2) +
theme(legend.position = "none", axis.title = element_blank(),
axis.text.x = element_blank(), axis.ticks.x = element_blank(),
panel.grid = element_blank(),
plot.title = element_text(size = TITLE_SIZE,
hjust = 0.5, face = "bold"),
plot.subtitle = element_text(size= SUBTITLE_SIZE, hjust = 0.5))
p3 <- ggboxplot(sigdat, x = "CMS", y = "Hormone",
fill = "CMS", palette = CMS.palette) +
theme_bw() + labs(title = "Hormone", subtitle = sub3) +
theme(legend.position = "none", axis.title = element_blank(),
axis.text.x = element_blank(), axis.ticks.x = element_blank(),
panel.grid = element_blank(),
plot.title = element_text(size = TITLE_SIZE,
hjust = 0.5, face = "bold"),
plot.subtitle = element_text(size= SUBTITLE_SIZE, hjust = 0.5))
p4 <- ggboxplot(sigdat, x = "CMS", y = "Stemness",
fill = "CMS", palette = CMS.palette) +
theme_bw() + labs(title = "Stem", subtitle = sub4) +
theme(legend.position = "none", axis.title = element_blank(),
axis.text.x = element_blank(), axis.ticks.x = element_blank(),
panel.grid = element_blank(),
plot.title = element_text(size = TITLE_SIZE,
hjust = 0.5, face = "bold"),
plot.subtitle = element_text(size= SUBTITLE_SIZE, hjust = 0.5))
g1 <- ggplotGrob(p1)
g2 <- ggplotGrob(p2)
g3 <- ggplotGrob(p3)
g4 <- ggplotGrob(p4)
g <- cbind(rbind(g1, g3, size = "first"),
rbind(g2, g4, size = "first"), size = "first")
grid.newpage()
grid.draw(g)
## ----label=gsa,fig.height=6,fig.cap="GSVA enrichment scores",fig.pos="H",fig.show="hold"----
resultGSVA <- performGSVA(expr = GSE25055, pred = predictions,
gene.set = NULL)
head(resultGSVA[,1:4])
## ----label=os,fig.height=3,fig.width=5,fig.cap="Overall survival",fig.pos="H",fig.show="hold",fig.align="center"----
time <- colData(GSE25055)$DFS.month
event <- colData(GSE25055)$DFS.status
plotKM(pred = predictions, time = time, event = event)
## ----label=hr,fig.height=3,fig.cap="Forest plot of hazard ratios",fig.pos="H",fig.show="hold"----
library(survival)
#Test for difference of survival between low and high expression groups
surv <- Surv(time, event)
GSE25055.exprs <- assays(GSE25055)[[1]]
chisq <- apply(GSE25055.exprs, 1, function(x) survdiff(surv ~ (x > median(x)))$chisq)
pval <- 1 - pchisq(chisq, 1)
#Select 10 genes with lowest p-values for the log-rank test
gs <- names(sort(pval)[1:10])
gs
plotHR(expr = GSE25055, gene.symbol = gs, pred = predictions, time = time,
event = event, by.subtype = FALSE)
## ----label=hrsub,fig.height=4,fig.cap="Forest plot of subtype-specific hazard ratios",fig.pos="H",fig.show="hold"----
plotHR(expr = GSE25055, gene.symbol = gs[1:4], pred = predictions,
time = time, event = event, by.subtype = TRUE)
## ----label=ds,fig.height=3,fig.cap="Drug signature scores",fig.pos="H",fig.show="hold"----
resultDS <- computeDS(expr = GSE25055, pred = predictions)
head(resultDS[,1:4])
## ----saveResults--------------------------------------------------------------
dfCMS <- data.frame(row.names = colnames(GSE25055.exprs), CMS = predictions, t(resultGES),
t(resultDS), stringsAsFactors = FALSE)
head(dfCMS)
write.table(dfCMS, file = "GSE25055_CMS.txt")
## ----sessionInfo--------------------------------------------------------------
sessionInfo()
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.