View source: R/heatmapOnOffMarkers.R
heatmapOnOffMarkers | R Documentation |
This function is called by CellScoreReport to make a heatmap of the standards (donor and target) marker genes and the test samples for the defined transition, as generated by the OnOff() function. Gene symbols are not plotted as this is only intended as an overview of marker expression in test samples.
heatmapOnOffMarkers(test.data, markergenes, pdata, calls)
test.data |
a data.frame of CellScore values as calculated by CellScore(), for only a group of test samples. |
markergenes |
a data.frame of marker genes, as calculated by OnOff(). |
pdata |
a data.frame containing the phenotype of the expression dataset. |
calls |
a matrix containing the present/absent calls where genes are in rows and samples in columns. |
This function returns invisibly the visualised binary matrix of the absence/presence of the cell type markers (rows) across the samples (columns) in the given study.
CellScore
for details on CellScore, and
hgu133plus2CellScore
for details on the
specific ExpressionSet object that shoud be provided as an input.
## Load the expression set for the standard cell types
library(Biobase)
library(hgu133plus2CellScore) # eset.std
## Locate the external data files in the CellScore package
rdata.path <- system.file("extdata", "eset48.RData", package = "CellScore")
tsvdata.path <- system.file("extdata", "cell_change_test.tsv",
package = "CellScore")
if (file.exists(rdata.path) && file.exists(tsvdata.path)) {
## Load the expression set with normalized expressions of 48 test samples
load(rdata.path)
## Import the cell change info for the loaded test samples
cell.change <- read.delim(file= tsvdata.path, sep="\t",
header=TRUE, stringsAsFactors=FALSE)
## Combine the standards and the test data
eset <- combine(eset.std, eset48)
## Generate cosine similarity for the combined data
## NOTE: May take 1-2 minutes on the full eset object
## so we subset it for 4 cell types
pdata <- pData(eset)
sel.samples <- pdata$general_cell_type %in% c("ESC", "EC", "FIB", "KER",
"ASC", "NPC", "MSC", "iPS", "piPS")
eset.sub <- eset[, sel.samples]
cs <- CosineSimScore(eset.sub, cell.change, iqr.cutoff=0.1)
## Generate the on/off scores for the combined data
individ.OnOff <- OnOff(eset.sub, cell.change, out.put="individual")
## Generate the CellScore values for all samples
cellscore <- CellScore(data=eset.sub, transitions=cell.change, scores.onoff=individ.OnOff$scores,
scores.cosine=cs$cosine.samples)
## Get the CellScore fvalues rom valid transitions defined by cell.change
## table
plot.data <- extractTransitions(cellscore, cell.change)
## Define a plot group variable
plot.data$plot_group <- paste(plot.data$experiment_id,
plot.data$cxkey.subcelltype, sep="_")
## Sort the scores 1) by target 2) by donor 3) by study
plot.data.ordered <- plot.data[order(plot.data$target,
plot.data$donor_tissue,
plot.data$experiment_id), ]
## How many plot_groups are there?
table(plot.data$plot_group)
## pick one plot_group to plot
group <- unique(plot.data$plot_group)[4]
## Select scores for only one plot group
test.data <- plot.data.ordered[plot.data.ordered$plot_group %in% group, ]
## Generate the group on/off scores for the combined data
group.OnOff <- OnOff(eset.sub, cell.change, out.put="marker.list")
calls <- assayDataElement(eset.sub, "calls")
rownames(calls) <- if("feature_id" %in% names(fData(eset.sub))) { fData(eset.sub)[, "feature_id"] } else { fData(eset.sub)[, "probe_id"] }
## Plot
heatmapOnOffMarkers(test.data, group.OnOff$markers, pData(eset.sub),
calls)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.