This function takes a dataset of scored gene expression data as an input
and returns a ComplexHeatmap
plot for for visual comparison of
signature performance. The function takes arguments listed here as well
as any others to be passed on to ComplexHeatmap::Heatmap()
.
Usage
signatureHeatmap(
inputData,
annotationData = NULL,
name = "Signatures",
signatureColNames,
annotationColNames = NULL,
colList = list(),
scale = FALSE,
showColumnNames = TRUE,
showRowNames = TRUE,
colorSets = c("Set1", "Set2", "Set3", "Pastel1", "Pastel2", "Accent", "Dark2",
"Paired"),
choose_color = c("blue", "gray95", "red"),
split_heatmap = "none",
annotationSignature = sigAnnotData,
column_order = NULL,
...
)
Arguments
- inputData
an input data object. It should either be of the class
SummarizedExperiment
and contain the profiled signature data and annotation data as columns in the colData, or alternatively be of the classesdata.frame
ormatrix
and contain only the gene expression data. Required.- annotationData
a
data.frame
ormatrix
of annotation data, with one column. Only required ifinputData
is adata.frame
ormatrix
of signature data. The row names must equal those of theinputData
column names. Default isNULL
.- name
a character string with the plot title of the heatmap. The default is
"Signatures"
.- signatureColNames
a vector of the column names in
colData
that contain the signature data. Only required ifinputData
is a SummarizedExperiment object.- annotationColNames
a vector of the column names in
colData
that contain the annotation data. Only required ifinputData
is aSummarizedExperiment
. Default isNULL
.- colList
a named
list
of named vectors specifying custom color information to pass toComplexHeatmap::Heatmap()
. The list should have as many elements as there are annotation columns, and each element name should correspond exactly with the name of each annotation column. The colors in the vector elements should be named according to the levels of the factor in that column's annotation data if the annotation is discrete, or it should be produced withcirclize::colorRamp2
if the annotation is continuous. By default,ColorBrewer
color sets will be used. See the the parametercolorSets
for additional details.- scale
logical. Setting
scale = TRUE
scales the signature data. The default isFALSE
.- showColumnNames
logical. Setting
showColumnNames = TRUE
will show the column names (i.e. sample names) on the heatmap. The default isTRUE
.- showRowNames
logical. Setting
showColumnNames = TRUE
will show the row names (i.e. signature names) on the heatmap. The default isTRUE
.- colorSets
a vector of names listing the color sets in the order that they should be used in creating the heatmap. By default, this function will use the color sets in the order listed in
Usage
for annotation information. You may replace the default with the same collection of sets in order that you want to use them, or provide custom color sets with thecolList
parameter.- choose_color
a vector of color names to be interpolated for the heatmap gradient, or a
colorRamp
function produced bycirclize::colorRamp2
. The default isc("blue", "gray95", "red")
.- split_heatmap
a character string either giving the column title of
annotationSignature
containing annotation data for which to split the heatmap rows (i.e., signatures), or"none"
if no split is desired. To split based on the type of signature, setsplit_heatmap = "disease"
. The default is"none"
.- annotationSignature
a
data.frame
ormatrix
with information to be used in splitting the heatmap. The first column should signature names. The column of annotation information should be specified insplit_heatmap.
Other columns will be ignored. The default issigAnnotData
.- column_order
a vector of character strings indicating the order in which to manually arrange the heatmap columns. Default is
NULL
, such that column order is automatically determined via clustering.- ...
Additional arguments to be passed to
ComplexHeatmap::Heatmap()
.
Details
If both annotationData = NULL
and annotationColNames = NULL
,
no annotation bar will be drawn on the heatmap.
Examples
library(SummarizedExperiment)
# Generate some artificial data that shows a difference in Zak_RISK_16
mat_testdata <- rbind(matrix(c(rnorm(80), rnorm(80) + 5), 16, 10,
dimnames = list(TBsignatures$Zak_RISK_16,
paste0("sample", seq_len(10)))),
matrix(rnorm(1000), 100, 10,
dimnames = list(paste0("gene", seq_len(100)),
paste0("sample", seq_len(10)))))
# Create a SummarizedExperiment object that contains the data
testdataSE <- SummarizedExperiment(assays = SimpleList(data = mat_testdata),
colData = DataFrame(sample =
c(rep("down", 5),
rep("up", 5))))
res <- runTBsigProfiler(testdataSE, useAssay = "data",
signatures = TBsignatures["Zak_RISK_16"],
algorithm = c("GSVA", "ssGSEA"), parallel.sz = 1,
combineSigAndAlgorithm = TRUE)
#> Parameter update_genes is TRUE. Gene names will be updated.
#> Running GSVA
#> Running ssGSEA
#> [1] "Calculating ranks..."
#> [1] "Calculating absolute values from ranks..."
#> [1] "Normalizing..."
signatureHeatmap(res, signatureColNames = c("GSVA_Zak_RISK_16",
"ssGSEA_Zak_RISK_16"),
annotationColNames = "sample", scale = TRUE,
showColumnNames = FALSE, split_heatmap = "none")
# Example using custom colors for the annotation information
color2 <- stats::setNames(c("purple", "black"), c("down", "up"))
color.list <- list("sample" = color2)
signatureHeatmap(res, signatureColNames = c("GSVA_Zak_RISK_16",
"ssGSEA_Zak_RISK_16"),
annotationColNames = "sample", scale = TRUE,
showColumnNames = FALSE,
colList = color.list, split_heatmap = "none")