heatmapOnOffMarkers: heatmapOnOffMarkers

View source: R/heatmapOnOffMarkers.R

heatmapOnOffMarkersR Documentation

heatmapOnOffMarkers

Description

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.

Usage

heatmapOnOffMarkers(test.data, markergenes, pdata, calls)

Arguments

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.

Value

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.

See Also

CellScore for details on CellScore, and hgu133plus2CellScore for details on the specific ExpressionSet object that shoud be provided as an input.

Examples

## 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)
}

nmah/CellScore documentation built on May 4, 2023, 2:52 p.m.