Part I - A: Deconvolve purified CD138+ tumor samples using LM22 Note: ADAPTSdata and ADAPTSdata2 come from GitHub devtools::install_github(“sdanzige/ADAPTSdata”) devtools::install_github(“sdanzige/ADAPTSdata2”)
library(ADAPTS)
library(ADAPTSdata)
library(ADAPTSdata2)
library(preprocessCore)
library(pheatmap)
library(mclust)
#> Package 'mclust' version 5.4.2
#> Type 'citation("mclust")' for citing this R package in publications.
doParallel::registerDoParallel(cores = parallel::detectCores())
set.seed(42)
LM22 <- ADAPTS::LM22
cd138p <- ADAPTSdata::cd138p
wbm <- ADAPTSdata2::wbm
tumorPer <- ADAPTSdata2::tumorPer
LM22.source <- ADAPTSdata2::fullLM22
addMGSM27 <- ADAPTSdata::addMGSM27
cellCounts <- estCellPercent.DCQ(LM22, cd138p)
tumorPer$LM22.CD138p.tumor <- colSums(cellCounts[c('Plasma.cells','B.cells.memory'),
match(make.names(tumorPer$celfileRnas),colnames(cellCounts))])
incBool <- !is.na(tumorPer$CD138_Post_Sort)
curData <- tumorPer[incBool,]
rmse.lm22.cd138p <- sqrt(mean((curData$CD138_Post_Sort - curData$LM22.CD138p.tumor)^2))
ct.lm22.cd138p <- cor.test(curData$CD138_Post_Sort, curData$LM22.CD138p.tumor)
ct.lm22.cd138p.spear <- suppressWarnings(cor.test(curData$CD138_Post_Sort, curData$LM22.CD138p.tumor, method = 'spearman'))
titleStr <- paste0('LM22 Deconvolution of CD138+ Samples:\nRMSE = ', round(rmse.lm22.cd138p), '; Rho = ', round(ct.lm22.cd138p$estimate,2), '; Spear =', round(ct.lm22.cd138p.spear$estimate,2))
plot(curData$CD138_Post_Sort, curData$LM22.CD138p.tumor, main=titleStr, xlab='% Purity',
ylab='Deconvolved Tumor %')
#Save the Deconvolution results
deconEst <- list(est.LM22.CD138p=rowMeans(cellCounts, na.rm=TRUE))
Part I - B: Deconvolve WBM samples using LM22
cellCounts <- estCellPercent.DCQ(LM22, wbm)
tumorPer$LM22.WBM.tumor <- colSums(cellCounts[c('Plasma.cells','B.cells.memory'),
match(make.names(tumorPer$celfileRnbx),colnames(cellCounts))])
tumorPer$PC_Mean <- rowMeans(tumorPer[,c('PC_AspNum','PC_BmbxNum')], na.rm=TRUE)
incBool <- !is.nan(tumorPer$PC_Mean) & !is.na(tumorPer$LM22.WBM.tumor)
curData <- tumorPer[incBool,]
rmse.lm22.WBM <- sqrt(mean((curData$PC_Mean - curData$LM22.WBM.tumor)^2))
ct.lm22.WBM <- cor.test(curData$PC_Mean, curData$LM22.WBM.tumor)
ct.lm22.WBM.spear <- suppressWarnings(cor.test(curData$PC_Mean, curData$LM22.WBM.tumor, method = 'spearman'))
titleStr <- paste0('LM22 Deconvolution of WBM Samples:\nRMSE = ', round(rmse.lm22.WBM), '; Rho = ', round(ct.lm22.WBM$estimate,2), '; Spear =', round(ct.lm22.cd138p.spear$estimate,2))
plot(curData$PC_Mean, curData$LM22.WBM.tumor, main=titleStr, xlab='% WBM Tumor', ylab='Deconvolved Tumor %')
#Save the Deconvolution results
deconEst[['est.LM22.WBM']] <- rowMeans(cellCounts, na.rm=TRUE)
Test out LM22 and plot the results
LM22.source.copy <- LM22.source
colnames(LM22.source.copy) <- gsub('\\.[0-9]+$', '', colnames(LM22.source.copy))
lm22spill <- ADAPTS::spillToConvergence(LM22, LM22.source.copy, plotIt = FALSE, imputNAs=FALSE)
#> Removing 24 that are in sigMatrix but not geneExpr
#> Removing 79 / 523 genes with missing values
initSpill <- t(lm22spill[[2]])
initSpill <- initSpill[,rownames(initSpill)]
initSpill <- cbind(initSpill, data.frame(others=lm22spill[[2]]['others',]))
#One way to add a title to the legend. It's ugly, just use Inkscape
#From: https://stackoverflow.com/questions/36852101/r-legend-title-or-units-when-using-pheatmap
pheatmap(initSpill, cluster_rows = FALSE, cluster_cols = FALSE, main = 'LM22 Spillover Matrix')
pheatmap(initSpill, cluster_rows = FALSE, cluster_cols = FALSE, main = 'LM22 Spillover Matrix', filename = 'ADAPTS.fig2.pdf', width = 8, height = 8)
Now plot the final spillover matrix
finalSpill <- t(lm22spill[[length(lm22spill)]])
finalSpill <- finalSpill[,rownames(finalSpill)]
finalSpill <- cbind(finalSpill, data.frame(others=lm22spill[[length(lm22spill)]]['others',]))
#One way to add a title to the legend. It's ugly, just use Inkscape
#From: https://stackoverflow.com/questions/36852101/r-legend-title-or-units-when-using-pheatmap
pheatmap(finalSpill, main = 'LM22 Spillover Convergence Matrix')
pheatmap(finalSpill, main = 'LM22 Spillover Convergence Matrix', filename = 'ADAPTS.fig3.pdf', width = 8, height = 8)
Part II - Build LM22 + ‘MM.plasma.cell’,‘PlasmaMemory’
LM22p <- LM22
augData <- addMGSM27[match(rownames(LM22), rownames(addMGSM27)), ]#grepl('PlasmaMemory',colnames(addMGSM27)) | grepl('MM.plasma.cell',colnames(addMGSM27))]
LM22p$PlasmaMemory <- rowSums(augData[,grepl('PlasmaMemory',colnames(augData))], na.rm=TRUE)
LM22p$MM.plasma.cell <- rowSums(augData[,grepl('MM.plasma.cell',colnames(augData))], na.rm=TRUE)
LM22p$osteoclast <- rowSums(augData[,grepl('osteoclast',colnames(augData))], na.rm=TRUE)
LM22p$osteoblast <- rowSums(augData[,grepl('osteoblast',colnames(augData))], na.rm=TRUE)
LM22p$adipocyte <- rowSums(augData[,grepl('adipocyte',colnames(augData))], na.rm=TRUE)
Part II - A: Deconvolve purified CD138+ tumor samples using LM22 + ‘MM.plasma.cell’,‘PlasmaMemory’
cellCounts <- estCellPercent.DCQ(LM22p, cd138p)
tumorPer$LM22p.CD138p.tumor <- colSums(cellCounts[c('Plasma.cells','B.cells.memory','MM.plasma.cell','PlasmaMemory'),
match(make.names(tumorPer$celfileRnas),colnames(cellCounts))])
incBool <- !is.na(tumorPer$CD138_Post_Sort)
curData <- tumorPer[incBool,]
rmse.lm22p.cd138p <- sqrt(mean((curData$CD138_Post_Sort - curData$LM22p.CD138p.tumor)^2))
ct.lm22p.cd138p <- cor.test(curData$CD138_Post_Sort, curData$LM22p.CD138p.tumor)
ct.lm22p.cd138p.spear <- suppressWarnings(cor.test(curData$CD138_Post_Sort, curData$LM22p.CD138p.tumor, method='spearman'))
titleStr <- paste0('LM22 + 5 Deconvolution of CD138+ Samples:\nRMSE = ', round(rmse.lm22p.cd138p), '; Rho = ', round(ct.lm22p.cd138p$estimate,2), '; Spear = ', round(ct.lm22p.cd138p.spear$estimate,2))
plot(curData$CD138_Post_Sort, curData$LM22p.CD138p.tumor, main=titleStr, xlab='% Purity', ylab='Deconvolved Tumor %')
#Save the Deconvolution results
deconEst[['est.LM22p5.CD138p']] <- rowMeans(cellCounts, na.rm=TRUE)
Part II - B: Deconvolve WBM samples using LM22 + Bone Marrow Cells
cellCounts <- estCellPercent.DCQ(LM22p, wbm)
tumorPer$LM22p.WBM.tumor <- colSums(cellCounts[c('Plasma.cells','B.cells.memory','MM.plasma.cell','PlasmaMemory'),
match(make.names(tumorPer$celfileRnbx),colnames(cellCounts))])
tumorPer$PC_Mean <- rowMeans(tumorPer[,c('PC_AspNum','PC_BmbxNum')], na.rm=TRUE)
incBool <- !is.nan(tumorPer$PC_Mean) & !is.na(tumorPer$LM22p.WBM.tumor)
curData <- tumorPer[incBool,]
rmse.lm22p.WBM <- sqrt(mean((curData$PC_Mean - curData$LM22p.WBM.tumor)^2))
ct.lm22p.WBM <- cor.test(curData$PC_Mean, curData$LM22p.WBM.tumor)
ct.lm22p.WBM.spear <- suppressWarnings(cor.test(curData$PC_Mean, curData$LM22p.WBM.tumor, method='spearman'))
titleStr <- paste0('LM22 + 5 Deconvolution of WBM Samples:\nRMSE = ', round(rmse.lm22p.WBM), '; Rho = ', round(ct.lm22p.WBM$estimate,2), '; Spear = ', round(ct.lm22p.WBM.spear$estimate,2) )
plot(curData$PC_Mean, curData$LM22p.WBM.tumor, main=titleStr, xlab='% WBM Tumor', ylab='Deconvolved Tumor %')
#Save the Deconvolution results
deconEst[['est.LM22p5.WBM']] <- rowMeans(cellCounts, na.rm=TRUE)
Part III: Augmenting an existing signature matrix
olGenes <- rownames(LM22.source)[rownames(LM22.source) %in% rownames(addMGSM27)]
allData <- cbind(LM22.source[olGenes,], addMGSM27[olGenes,])
allData.nq <- as.data.frame(normalize.quantiles(as.matrix(allData)))
rownames(allData.nq) <- rownames(allData)
colnames(allData.nq) <- colnames(allData)
allData <- allData.nq
#Remove low variance genes to make the example run faster
allData.noNA <- allData[!apply(allData, 1, function(x){any(is.na(x))}),]
vars.noNA <- apply(allData.noNA, 1, var)
hist(vars.noNA)
#This will take a while. To make it faster, filter genes by variance
subData <- allData[vars.noNA>2,]
gList <- rankByT(subData)
olgenes <- rownames(subData)
fullData <- allData[olgenes,colnames(LM22.source)]
colnames(fullData) <- sub('\\.[0-9]+$', '', colnames(fullData)) #Strip any trailing numbers added by make.names()
newData <- allData[olgenes,colnames(addMGSM27)]
colnames(newData) <- sub('\\.[0-9]+$', '', colnames(newData)) #Strip any trailing numbers added by make.names()
#MGSM27 <- AugmentSigMatrix(origMatrix=LM22, fullData=fullData, newData=newData, gList=gList, nGenes=1:100, plotToPDF=FALSE, imputeMissing=TRUE, condTol=1.01, postNorm=TRUE, minSumToRem=NA, addTitle=NULL, autoDetectMin=TRUE, calcSpillOver=FALSE)
#Note: For the Identifying a High-risk Cellular Signature in the Multiple Myeloma Bone Marrow Microenvironment, we used the call commented out above, which resulted in 601 genes. It looks like the package used to find the minimima has changed, results in a smaller number of genes (~570). We recommend trying this option and looking at the condition number curves to see if it makes sense. Future version will probably upgrade the 'autoDetectMin' option to be smarter.
MGSM27 <- AugmentSigMatrix(origMatrix=LM22, fullData=fullData, newData=newData, gList=gList, nGenes=1:100, plotToPDF=TRUE, imputeMissing=TRUE, condTol=1.01, postNorm=TRUE, minSumToRem=NA, addTitle='MGSM27: ', autoDetectMin=FALSE, calcSpillOver=TRUE, pdfDir = '.')
#> missForest iteration 1 in progress...
#> randomForest 4.6-14
#> Type rfNews() to see new features/changes/bug fixes.
#> done!
#> missForest iteration 2 in progress...done!
#> missForest iteration 3 in progress...done!
#> missForest iteration 4 in progress...done!
#> missForest iteration 5 in progress...done!
#> missForest iteration 6 in progress...done!
#> missForest iteration 7 in progress...done!
#> missForest iteration 1 in progress...done!
#> missForest iteration 2 in progress...done!
#> missForest iteration 3 in progress...done!
#> missForest iteration 4 in progress...done!
Part IV - A: Deconvolve purified CD138+ tumor samples using MGSM27
cellCounts <- estCellPercent.DCQ(MGSM27$sigMatrix, cd138p)
tumorPer$MGSM27.CD138p.tumor <- colSums(cellCounts[c('Plasma.cells','B.cells.memory','MM.plasma.cell','PlasmaMemory'),
match(make.names(tumorPer$celfileRnas),colnames(cellCounts))])
incBool <- !is.na(tumorPer$CD138_Post_Sort)
curData <- tumorPer[incBool,]
rmse.mgsm27.cd138p <- sqrt(mean((curData$CD138_Post_Sort - curData$MGSM27.CD138p.tumor)^2))
ct.mgsm27.cd138p <- cor.test(curData$CD138_Post_Sort, curData$MGSM27.CD138p.tumor)
ct.mgsm27.cd138p.spear <- suppressWarnings(cor.test(curData$CD138_Post_Sort, curData$MGSM27.CD138p.tumor, method='spearman'))
titleStr <- paste0('MGSM27 Deconvolution of CD138+ Samples:\nRMSE = ', round(rmse.mgsm27.cd138p), '; Rho = ', round(ct.mgsm27.cd138p$estimate,2), '; Spear = ', round(ct.mgsm27.cd138p.spear$estimate,2) )
plot(curData$CD138_Post_Sort, curData$MGSM27.CD138p.tumor, main=titleStr, xlab='% Purity', ylab='Deconvolved Tumor %')
#Save the Deconvolution results
deconEst[['est.MGSM27.CD138p']] <- rowMeans(cellCounts, na.rm=TRUE)
Part IV - B: Deconvolve WBM samples using MGSM27
cellCounts <- estCellPercent.DCQ(MGSM27$sigMatrix, wbm)
tumorPer$MGSM27.WBM.tumor <- colSums(cellCounts[c('Plasma.cells','B.cells.memory','MM.plasma.cell','PlasmaMemory'),
match(make.names(tumorPer$celfileRnbx),colnames(cellCounts))])
tumorPer$PC_Mean <- rowMeans(tumorPer[,c('PC_AspNum','PC_BmbxNum')], na.rm=TRUE)
incBool <- !is.nan(tumorPer$PC_Mean) & !is.na(tumorPer$MGSM27.WBM.tumor)
curData <- tumorPer[incBool,]
rmse.mgsm27.WBM <- sqrt(mean((as.numeric(curData$PC_Mean) - curData$MGSM27.WBM.tumor)^2))
ct.mgsm27.WBM <- cor.test(as.numeric(curData$PC_Mean), curData$MGSM27.WBM.tumor)
ct.mgsm27.WBM.spear <- suppressWarnings(cor.test(as.numeric(curData$PC_Mean), curData$MGSM27.WBM.tumor, method='spearman'))
titleStr <- paste0('MGSM27 Deconvolution of WBM Samples:\nRMSE = ', round(rmse.mgsm27.WBM), '; Rho = ', round(ct.mgsm27.WBM$estimate,2), '; Spear = ', round(ct.mgsm27.WBM.spear$estimate,2) )
plot(curData$PC_Mean, curData$MGSM27.WBM.tumor, main=titleStr, xlab='% WBM Tumor', ylab='Deconvolved Tumor %')
#Save the Deconvolution results
deconEst[['est.MGSM27.WBM']] <- rowMeans(cellCounts, na.rm=TRUE)
Part V: Generating a new signature matrix (Top Variance, Subtract, Recreate)
olGenes <- rownames(LM22.source)[rownames(LM22.source) %in% rownames(addMGSM27)]
allData <- cbind(LM22.source[olGenes,], addMGSM27[olGenes,])
allData.nq <- as.data.frame(normalize.quantiles(as.matrix(allData)))
rownames(allData.nq) <- rownames(allData)
colnames(allData.nq) <- colnames(allData)
allData <- allData.nq
The top genes by variance will be the seedMatrix
nGenes <- 100
seedMat <- allData.noNA[names(tail(sort(vars.noNA), nGenes)),]
colnames(seedMat) <- sub('\\.[0-9]+$', '', colnames(seedMat))
seedMat.sig <- lapply(unique(colnames(seedMat)), function(x){ rowMeans(seedMat[,colnames(seedMat)==x], na.rm=TRUE)})
seedMat.sig <- do.call(cbind, seedMat.sig)
colnames(seedMat.sig) <- unique(colnames(seedMat))
pheatmap(seedMat.sig)
Augment that top gene network
subData.noNA <- allData.noNA[vars.noNA>2,]
colnames(allData.noNA) <- sub('\\.[0-9]+$', '', colnames(allData.noNA))
gList.noNA <- rankByT(subData.noNA)
topAug <- AugmentSigMatrix(origMatrix=seedMat.sig, fullData=allData.noNA, newData=allData.noNA, gList=gList.noNA, nGenes=1:100, plotToPDF=FALSE, imputeMissing=TRUE, condTol=1.01, postNorm=TRUE, minSumToRem=NA, addTitle=NULL, autoDetectMin=FALSE, calcSpillOver=FALSE)
Remove the seed genes and then rebuild
topAug.remSeed <- topAug[!(rownames(topAug) %in% rownames(seedMat.sig)),]
topAug2 <- AugmentSigMatrix(origMatrix=topAug.remSeed, fullData=allData.noNA, newData=allData.noNA, gList=gList.noNA, nGenes=1:100, plotToPDF=FALSE, imputeMissing=TRUE, condTol=1.01, postNorm=TRUE, minSumToRem=NA, addTitle=NULL, autoDetectMin=FALSE, calcSpillOver=FALSE)
Part VI - A: Deconvolve purified CD138+ tumor samples using de-novo deconvolution matrix
cellCounts <- estCellPercent.DCQ(topAug2, cd138p)
tumorPer$DeNovo.CD138p.tumor <- colSums(cellCounts[c('Plasma.cells','B.cells.memory','MM.plasma.cell','PlasmaMemory'),
match(make.names(tumorPer$celfileRnas),colnames(cellCounts))])
incBool <- !is.na(tumorPer$CD138_Post_Sort)
curData <- tumorPer[incBool,]
rmse.DeNovo.cd138p <- sqrt(mean((curData$CD138_Post_Sort - curData$DeNovo.CD138p.tumor)^2))
ct.DeNovo.cd138p <- cor.test(curData$CD138_Post_Sort, curData$DeNovo.CD138p.tumor)
ct.DeNovo.cd138p.spear <- suppressWarnings(cor.test(curData$CD138_Post_Sort, curData$DeNovo.CD138p.tumor, method='spearman'))
titleStr <- paste0('DeNovo Deconvolution of CD138+ Samples:\nRMSE = ', round(rmse.DeNovo.cd138p), '; Rho = ', round(ct.DeNovo.cd138p$estimate,2), '; Spear = ', round(ct.DeNovo.cd138p.spear$estimate,2) )
plot(curData$CD138_Post_Sort, curData$DeNovo.CD138p.tumor, main=titleStr, xlab='% Purity', ylab='Deconvolved Tumor %')
#Save the Deconvolution results
deconEst[['est.dnMGSM27.CD138p']] <- rowMeans(cellCounts, na.rm=TRUE)
Part VI - B: Deconvolve WBM samples using de-novo deconvolution matrix
cellCounts <- estCellPercent.DCQ(topAug2, wbm)
tumorPer$DeNovo.WBM.tumor <- colSums(cellCounts[c('Plasma.cells','B.cells.memory','MM.plasma.cell','PlasmaMemory'),
match(make.names(tumorPer$celfileRnbx),colnames(cellCounts))])
tumorPer$PC_Mean <- rowMeans(tumorPer[,c('PC_AspNum','PC_BmbxNum')], na.rm=TRUE)
incBool <- !is.nan(tumorPer$PC_Mean) & !is.na(tumorPer$DeNovo.WBM.tumor)
curData <- tumorPer[incBool,]
rmse.DeNovo.WBM <- sqrt(mean((curData$PC_Mean - curData$DeNovo.WBM.tumor)^2))
ct.DeNovo.WBM <- cor.test(curData$PC_Mean, curData$DeNovo.WBM.tumor)
ct.DeNovo.WBM.spear <- suppressWarnings(cor.test(curData$PC_Mean, curData$DeNovo.WBM.tumor, method='spearman'))
titleStr <- paste0('DeNovo Deconvolution of WBM Samples:\nRMSE = ', round(rmse.DeNovo.WBM), '; Rho = ', round(ct.DeNovo.WBM$estimate,2), '; Spear = ', round(ct.DeNovo.WBM.spear$estimate,2) )
plot(curData$PC_Mean, curData$DeNovo.WBM.tumor, main=titleStr, xlab='% WBM Tumor', ylab='Deconvolved Tumor %')
#Save the Deconvolution results
deconEst[['est.dnMGSM27.WBM']] <- rowMeans(cellCounts, na.rm=TRUE)
Build the summary table
outMatrix <- matrix(0, nrow=4, ncol=4, dimnames=list(c('LM22','LM22 + 5','MGSM27','DeNovo MGSM27'),c('CD138+.RMSE','CD138+.Rho','WBM.RMSE','WBM.Rho')))
outMatrix[1,1] <- rmse.lm22.cd138p
outMatrix[1,2] <- ct.lm22.cd138p$estimate
outMatrix[1,3] <- rmse.lm22.WBM
outMatrix[1,4] <- ct.lm22.WBM$estimate
outMatrix[2,1] <- rmse.lm22p.cd138p
outMatrix[2,2] <- ct.lm22p.cd138p$estimate
outMatrix[2,3] <- rmse.lm22p.WBM
outMatrix[2,4] <- ct.lm22p.WBM$estimate
outMatrix[3,1] <- rmse.mgsm27.cd138p
outMatrix[3,2] <- ct.mgsm27.cd138p$estimate
outMatrix[3,3] <- rmse.mgsm27.WBM
outMatrix[3,4] <- ct.mgsm27.WBM$estimate
outMatrix[4,1] <- rmse.DeNovo.cd138p
outMatrix[4,2] <- ct.DeNovo.cd138p$estimate
outMatrix[4,3] <- rmse.DeNovo.WBM
outMatrix[4,4] <- ct.DeNovo.WBM$estimate
print(signif(outMatrix,2))
#> CD138+.RMSE CD138+.Rho WBM.RMSE WBM.Rho
#> LM22 27 0.26 38 0.59
#> LM22 + 5 12 0.26 37 0.53
#> MGSM27 9 0.33 23 0.60
#> DeNovo MGSM27 36 0.18 24 0.65
Now print out the average deconvolution results for all cell types
save(deconEst, file='deconEst.ADAPTS1.RData')
allCellTypes <- unique(unlist(lapply(deconEst, function(x){names(x)})))
tumorTypes <- c('Plasma.cells','B.cells.memory','MM.plasma.cell','PlasmaMemory')
cellTypeDF <- as.data.frame(matrix(0,nrow=length(allCellTypes), ncol=length(deconEst), dimnames=list(allCellTypes, names(deconEst))))
for(curExp in names(deconEst)) {
curDat <- deconEst[[curExp]]
cellTypeDF[names(curDat),curExp] <- curDat
}
cellTypeDF.disp <- round(cellTypeDF, 2)
rownames(cellTypeDF.disp)[rownames(cellTypeDF.disp) %in% tumorTypes] <- paste0(rownames(cellTypeDF.disp)[rownames(cellTypeDF.disp) %in% tumorTypes], '*')
WBMexps <- colnames(cellTypeDF.disp)[grepl('WBM$', colnames(cellTypeDF.disp))]
cellDecon.WBM <- cellTypeDF.disp[,WBMexps]
print(cellDecon.WBM)
#> est.LM22.WBM est.LM22p5.WBM est.MGSM27.WBM
#> B.cells.naive 0.12 0.15 0.01
#> B.cells.memory* 0.84 0.55 0.11
#> Plasma.cells* 9.84 4.59 4.27
#> T.cells.CD8 1.81 1.15 0.10
#> T.cells.CD4.naive 0.59 0.14 0.17
#> T.cells.CD4.memory.resting 0.24 0.15 0.00
#> T.cells.CD4.memory.activated 0.00 0.00 0.00
#> T.cells.follicular.helper 0.18 0.02 0.03
#> T.cells.regulatory..Tregs. 0.16 0.06 0.06
#> T.cells.gamma.delta 3.53 4.22 2.70
#> NK.cells.resting 11.00 11.73 5.09
#> NK.cells.activated 1.48 1.54 0.12
#> Monocytes 14.37 12.94 8.71
#> Macrophages.M0 4.75 2.24 1.93
#> Macrophages.M1 2.09 1.07 0.95
#> Macrophages.M2 7.63 4.81 5.02
#> Dendritic.cells.resting 0.73 0.23 0.15
#> Dendritic.cells.activated 0.27 0.19 0.06
#> Mast.cells.resting 12.11 12.40 5.23
#> Mast.cells.activated 6.76 6.73 1.68
#> Eosinophils 7.23 7.44 6.39
#> Neutrophils 14.29 15.63 8.58
#> others 0.00 0.00 0.00
#> PlasmaMemory* 0.00 6.19 11.26
#> MM.plasma.cell* 0.00 1.38 14.50
#> osteoclast 0.00 2.27 13.71
#> osteoblast 0.00 0.32 6.11
#> adipocyte 0.00 1.86 3.08
#> est.dnMGSM27.WBM
#> B.cells.naive 0.00
#> B.cells.memory* 0.01
#> Plasma.cells* 0.85
#> T.cells.CD8 0.00
#> T.cells.CD4.naive 3.99
#> T.cells.CD4.memory.resting 0.00
#> T.cells.CD4.memory.activated 0.00
#> T.cells.follicular.helper 3.65
#> T.cells.regulatory..Tregs. 3.33
#> T.cells.gamma.delta 7.14
#> NK.cells.resting 0.27
#> NK.cells.activated 0.00
#> Monocytes 4.09
#> Macrophages.M0 0.86
#> Macrophages.M1 1.15
#> Macrophages.M2 4.18
#> Dendritic.cells.resting 0.02
#> Dendritic.cells.activated 0.01
#> Mast.cells.resting 0.00
#> Mast.cells.activated 0.00
#> Eosinophils 13.23
#> Neutrophils 4.05
#> others 0.00
#> PlasmaMemory* 11.51
#> MM.plasma.cell* 16.82
#> osteoclast 13.95
#> osteoblast 4.54
#> adipocyte 6.34
cd138exps <- colnames(cellTypeDF.disp)[grepl('138p$', colnames(cellTypeDF.disp))]
cellDecon.CD138p <- cellTypeDF.disp[,cd138exps]
print(cellDecon.CD138p)
#> est.LM22.CD138p est.LM22p5.CD138p
#> B.cells.naive 1.76 0.92
#> B.cells.memory* 10.38 5.27
#> Plasma.cells* 59.59 45.49
#> T.cells.CD8 1.06 0.13
#> T.cells.CD4.naive 2.58 0.09
#> T.cells.CD4.memory.resting 1.33 0.13
#> T.cells.CD4.memory.activated 0.03 0.01
#> T.cells.follicular.helper 5.32 0.36
#> T.cells.regulatory..Tregs. 2.72 0.35
#> T.cells.gamma.delta 0.03 0.03
#> NK.cells.resting 0.11 0.09
#> NK.cells.activated 0.03 0.01
#> Monocytes 5.57 1.13
#> Macrophages.M0 1.36 0.11
#> Macrophages.M1 1.06 0.08
#> Macrophages.M2 4.14 0.49
#> Dendritic.cells.resting 0.95 0.11
#> Dendritic.cells.activated 0.57 0.08
#> Mast.cells.resting 0.30 0.14
#> Mast.cells.activated 0.06 0.03
#> Eosinophils 0.72 0.21
#> Neutrophils 0.32 0.29
#> others 0.00 0.00
#> PlasmaMemory* 0.00 32.56
#> MM.plasma.cell* 0.00 4.62
#> osteoclast 0.00 0.80
#> osteoblast 0.00 1.10
#> adipocyte 0.00 5.37
#> est.MGSM27.CD138p est.dnMGSM27.CD138p
#> B.cells.naive 0.23 0.00
#> B.cells.memory* 2.43 0.02
#> Plasma.cells* 32.87 7.58
#> T.cells.CD8 0.01 0.00
#> T.cells.CD4.naive 0.65 4.94
#> T.cells.CD4.memory.resting 0.01 0.00
#> T.cells.CD4.memory.activated 0.00 0.01
#> T.cells.follicular.helper 1.04 4.74
#> T.cells.regulatory..Tregs. 1.13 7.37
#> T.cells.gamma.delta 0.04 6.89
#> NK.cells.resting 0.04 0.00
#> NK.cells.activated 0.00 0.00
#> Monocytes 0.70 0.05
#> Macrophages.M0 0.04 0.00
#> Macrophages.M1 0.04 0.02
#> Macrophages.M2 0.58 0.13
#> Dendritic.cells.resting 0.07 0.00
#> Dendritic.cells.activated 0.06 0.00
#> Mast.cells.resting 0.02 0.09
#> Mast.cells.activated 0.00 0.01
#> Eosinophils 0.29 7.24
#> Neutrophils 0.12 0.01
#> others 0.00 0.00
#> PlasmaMemory* 23.67 21.76
#> MM.plasma.cell* 33.56 29.12
#> osteoclast 2.37 4.54
#> osteoblast 0.01 2.93
#> adipocyte 0.01 2.55