Here are testing whether the progression signature is associated MM disease progression and patient survival. A public MM gene expression data set GSE6477 is used for this purpose.
Enrichment of the signature:
# get mean expression
refMean <- apply(ExS, 1, mean)
ExCentered <- ExS - refMean
# Load expression signature
UP <- sigList$MM1S$UP
DN <- sigList$MM1S$DN
# get Z-score for the enrichment of signatures
M <- ncol(ExCentered)
zPOS <- rep(0, M)
zNEG <- rep(0, M)
for(i in 1:M){
fcVector <- ExCentered[,i]
gsList <- list(UP = UP, DN = DN)
tempZ <- SimpleRankTest(fcVector, gsList)
zPOS[i] <- tempZ[1]
zNEG[i] <- tempZ[2]
}
zDIF <- zPOS - zNEG
names(zDIF) <- colnames(ExS)
Dynamics during disease progression:
PvalueV <- rep(1, 4)
Type <- sapply(strsplit(colnames(ExS), "_"), function(x) x[2])
PvalueV[1] <- wilcox.test(zDIF[Type == "MGUS"], zDIF[Type == "NC"])$p.value
PvalueV[2] <- wilcox.test(zDIF[Type == "SmMM"], zDIF[Type == "NC"])$p.value
PvalueV[3] <- wilcox.test(zDIF[Type == "NewMM"], zDIF[Type == "NC"])$p.value
PvalueV[4] <- wilcox.test(zDIF[Type == "ReMM"], zDIF[Type == "NC"])$p.value
PvalueV <- signif(PvalueV, 1)
# boxplot
sampleNames <- colnames(ExS)
Type <- factor(sapply(strsplit(colnames(ExS),"_"), function(x) x[2]), levels = c("NC","MGUS","SmMM","NewMM","ReMM"))
FillC <- c("#edf8fb","#b2e2e2","#66c2a4","#2ca25f","#006d2c")
mTable <- data.frame(sampleNames, Type, zDIF)
rownames(mTable) <- NULL
head(mTable)
sampleNames Type zDIF
1 GSM148911_ReMM ReMM 10.084968
2 GSM148912_MGUS MGUS -6.183646
3 GSM148914_NewMM NewMM 1.010238
4 GSM148915_NewMM NewMM 1.884659
5 GSM148916_ReMM ReMM 2.053511
6 GSM148917_NewMM NewMM 1.885458
options(repr.plot.width=4, repr.plot.height=3, repr.plot.res = 300)
p <- ggplot(mTable, aes(x = Type, y = zDIF)) + ylim(-15, 20)
p <- p + theme_bw() + labs(x = "\nmultiple myeloma stages", y = "Enrichment Z-score", title = "")
p <- p + geom_boxplot(width = 0.6, outlier.shape=NA,fill = FillC) + theme(legend.position="none")
p <- p + theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank())
p <- p + annotate("text", label = paste("p =",PvalueV[1]), x = 1.5, y = 6, size = 3)
p <- p + annotate("text", label = paste("p =",PvalueV[2]), x = 2.5, y = 10, size = 3)
p <- p + annotate("text", label = paste("p =",PvalueV[3]), x = 3.5, y = 16, size = 3)
p <- p + annotate("text", label = paste("p =",PvalueV[4]), x = 4.5, y = 19, size = 3)
p
Here are testing whether the progression signature is associated MM disease progression and patient survival. A public MM gene expression data set GSE2658 is used for this purpose.
Enrichment in each patient sample:
# Normalize the whole data
Ex <- log2(ExS + 1)
qt <- apply(Ex,1, function(x) quantile(x,0.75))
cutoff <- quantile(qt,0.1)
Index <- qt > cutoff
Ex <- Ex[Index,]
refMean <- apply(Ex, 1, mean)
ExCentered <- Ex - refMean
# Load expression signature
UP <- sigList$MM1S$UP
DN <- sigList$MM1S$DN
# get Z-score for the enrichment of signatures
M <- ncol(ExCentered)
zPOS <- rep(0, M)
zNEG <- rep(0, M)
for(i in 1:M){
fcVector <- ExCentered[,i]
gsList <- list(UP = UP, DN = DN)
tempZ <- SimpleRankTest(fcVector, gsList)
zPOS[i] <- tempZ[1]
zNEG[i] <- tempZ[2]
}
zDIF <- zPOS - zNEG
names(zDIF) <- colnames(ExS)
Survival plot:
Numbers <- 100
highGroup <- names(sort(zDIF, decreasing = T)[1:Numbers])
lowGroup <- names(sort(zDIF, decreasing = F)[1:Numbers])
group <- c(rep("High", length(highGroup)), rep("Low", length(lowGroup)))
# test survival
colnames(suvTable) <- c("ID", "survivalTime","death", "CNV")
rownames(suvTable) <- as.character(suvTable$ID)
score = zDIF[rownames(suvTable)]
suvTable = data.frame(suvTable, score)
xTable = suvTable[c(highGroup, lowGroup),]
xTable$group = group
options(repr.plot.width=6, repr.plot.height=5, repr.plot.res = 250)
plotKMStratifyBy("median", y=Surv(xTable$survivalTime, xTable$death), linearriskscore = xTable$score)