Title: | Tools to Generate Flexible Heatmaps |
---|---|
Description: | A set of tools supporting more flexible heatmaps. The graphics is grid-like using the old graphics system. The main function is heatmap.n2(), which is a wrapper around the various functions constructing individual parts of the heatmap, like sidebars, picket plots, legends etc. The function supports zooming and splitting, i.e., having (unlimited) small heatmaps underneath each other in one plot deriving from the same data set, e.g., clustered and ordered by a supervised clustering method. |
Authors: | Vidal Fey [aut, cre], Henri Sara [aut] |
Maintainer: | Vidal Fey <[email protected]> |
License: | GPL-3 |
Version: | 0.1.2 |
Built: | 2024-11-04 06:39:47 UTC |
Source: | CRAN |
Normally, draw_heatmap
is called from within heatmap.n2
(if argument
plot
is TRUE
which is the default) but if that is not desired, e.g., for zooming, it can be called
separately.
draw_heatmap(dl, set.oma = TRUE, ...)
draw_heatmap(dl, set.oma = TRUE, ...)
dl |
( |
set.oma |
( |
... |
( |
Invisibly returns a list with graphical parameters. But mainly the function is called for its side-effect of generating a plot.
This is the main function to be called be end users. It accepts a numeric matrix and draws a heatmap.
heatmap.n2( x, main = "Heatmap", ..., na.color = "gray80", sidebars = NULL, picketdata = NULL, r.cex = 1, c.cex = 1, titleheight = lcm(1.2), dendroheight = lcm(3), dendrowidth = lcm(3), labelheight = lcm(1), labelwidth = lcm(1), picketheight = 0.4, sidebarwidth = lcm(1), sidebar.cex = 1, colorkeylabels = FALSE, legendcorner = "bottomleft", plot = TRUE, factorpalettefn = "Pastel1", add.sig = FALSE, pv = NULL, order_list = TRUE, genes2highl = NULL )
heatmap.n2( x, main = "Heatmap", ..., na.color = "gray80", sidebars = NULL, picketdata = NULL, r.cex = 1, c.cex = 1, titleheight = lcm(1.2), dendroheight = lcm(3), dendrowidth = lcm(3), labelheight = lcm(1), labelwidth = lcm(1), picketheight = 0.4, sidebarwidth = lcm(1), sidebar.cex = 1, colorkeylabels = FALSE, legendcorner = "bottomleft", plot = TRUE, factorpalettefn = "Pastel1", add.sig = FALSE, pv = NULL, order_list = TRUE, genes2highl = NULL )
x |
( |
main |
( |
... |
Additional arguments passed to |
na.color |
( |
sidebars |
( |
picketdata |
( |
r.cex |
( |
c.cex |
( |
titleheight |
( |
dendroheight |
( |
dendrowidth |
( |
labelheight |
( |
labelwidth |
( |
picketheight |
( |
sidebarwidth |
( |
sidebar.cex |
( |
colorkeylabels |
( |
legendcorner |
( |
plot |
( |
factorpalettefn |
( |
add.sig |
( |
pv |
( |
order_list |
( |
genes2highl |
( |
The result can be used for zooming. For simple basic cases, picketvar can be given directly. Factor
sidebars are supported, but legends are only shown for the first two.
Arguments that will be passed on the prepare_heatmap_data2
:
labRow (character ). Custom row labels |
|
labCol (character ). Custom column labels |
|
Rowv (dendrogram or integer ). Custom dendrogram object or integer vector giving the ordering index for rows |
|
Colv (dendrogram or integer ). Custom dendrogram object or integer vector giving the ordering index for columns |
|
reorder (logical ). Boolean of length 2 for rows and columns. Should rows and/or columns be reordered according to Rowv /Colv
|
|
distfun (function ). Distance function. Defaults to dist
|
|
hclustfun (function ). Hierarchical clustering function. Defaults to hclust
|
|
rowMembers (character ). Group vector to split rows by |
|
colMembers (character ). Group vector to split columns by |
|
spacer (integer ). Length 1 integer used as spacer to separate groups (see rowMembers /colMembers ). Defaults to 1 |
|
scale (character ). One of "row", "column" or "none": By which dimension should data be scaled? Defaults to "none" |
|
trim (numeric ). Value to "cut off" data distribution. Values and both ends of the distribution, larger or smaller, respectively, will be made equal to +/-trim . Defaults to NULL , no trimming |
|
zlim (numeric ). Value to set the ranges for plotting x and y values. Supports both symmetrical (with default NULL ) and asymmetrical (NA ) automatic zlim. Used for zooming |
|
col (character ) Name (acronym) of the colour palette to use. Can be one of "RdBkGn" (c("green", "black", "red")), "BuYl" (c("blue", "yellow")), "BuWtRd" (c("blue", "white", "red")) or a valid name used by brewer.pal . Defaults to NULL which will set "RdBkGn" |
|
filter (integer or logical .) For filtering rows/columns: TRUE (=1.0) = remove rows/columns with only NAs, 0.5 = remove if >= 50 per cent NAs, etc. Defaults to c(TRUE, TRUE)
|
|
In addition to its side-effect of plotting the heatmap (if plot
is TRUE
, which is the default),
the function will invisibly returns the prepared "display list", a list
of all parts of the heatmap used by
hlayout()
to actually draw the final heatmap.
# Generate a random 10x10 matrix and plot it using default values mat <- matrix(rnorm(100), nrow = 10) heatmap.n2(mat) # Generate a random 10x10 matrix with two distinct sets, order it using # default clustering methods, split it into each two groups along both rows # and columns and adjust colour palette and dendrogram dimensions: mat <- matrix(c(rnorm(50, mean = 1), rnorm(50, mean = -1)), nrow = 10) heatmap.n2(mat, col = "BuWtRd", rowMembers=rep(1:2, each=5), colMembers=rep(1:2, each=5), labRow=paste0("gene-", 1:10), labCol=paste0(c("A", "B"), rep(1:5, 2)), r.cex=0.8, dendroheight = lcm(2.2), dendrowidth = lcm(2.4))
# Generate a random 10x10 matrix and plot it using default values mat <- matrix(rnorm(100), nrow = 10) heatmap.n2(mat) # Generate a random 10x10 matrix with two distinct sets, order it using # default clustering methods, split it into each two groups along both rows # and columns and adjust colour palette and dendrogram dimensions: mat <- matrix(c(rnorm(50, mean = 1), rnorm(50, mean = -1)), nrow = 10) heatmap.n2(mat, col = "BuWtRd", rowMembers=rep(1:2, each=5), colMembers=rep(1:2, each=5), labRow=paste0("gene-", 1:10), labCol=paste0(c("A", "B"), rep(1:5, 2)), r.cex=0.8, dendroheight = lcm(2.2), dendrowidth = lcm(2.4))
The package has a number of tools supporting more flexible heatmaps. The graphics is grid-like using
the old graphics system. The main function is heatmap.n2
, which is a wrapper around the various functions
constructing individual parts of the heatmap, like sidebars, picket plots, legends etc. The function supports zooming
and splitting, i.e., having (unlimited) small heatmaps underneath each other in one plot deriving from the same data set,
e.g., clustered and ordered by a supervised clustering method.
Package: | heatmapFlex |
Type: | Package |
Initial version: | 0.1-0 |
Created: | 2021-08-11 |
License: | GPL-3 |
LazyLoad: | yes |
Vidal Fey <[email protected]>, Henri Sara <[email protected]> Maintainer: Vidal Fey <[email protected]>
Function to prepare data for a heatmap: scaling, dendrograms, ...
prepare_heatmap_data2( x, labRow = NA, labCol = NA, Rowv = NULL, Colv = NULL, reorder = c(TRUE, TRUE), distfun = dist, hclustfun = hclust, rowMembers = NULL, colMembers = NULL, spacer = 1, scale = "none", trim = NULL, zlim = NULL, col = NULL, filter = c(TRUE, TRUE), add.sig = FALSE, pv = NULL )
prepare_heatmap_data2( x, labRow = NA, labCol = NA, Rowv = NULL, Colv = NULL, reorder = c(TRUE, TRUE), distfun = dist, hclustfun = hclust, rowMembers = NULL, colMembers = NULL, spacer = 1, scale = "none", trim = NULL, zlim = NULL, col = NULL, filter = c(TRUE, TRUE), add.sig = FALSE, pv = NULL )
x |
( |
labRow |
( |
labCol |
( |
Rowv |
( |
Colv |
( |
reorder |
( |
distfun |
( |
hclustfun |
( |
rowMembers |
( |
colMembers |
( |
spacer |
( |
scale |
( |
trim |
( |
zlim |
( |
col |
( |
filter |
( |
add.sig |
( |
pv |
( |
This function is used by heatmap.n2
and should not be called bu the user directly. It is only documented because its arguments are passed by the main function when given there.
After the heatmap was drawn in a screen device such as X11, windows and quartz it can be zoomed by using the mouse.
zoom_heatmap(dl, ...)
zoom_heatmap(dl, ...)
dl |
( |
... |
( |
Invisibly returns a list with graphical parameters but is mainly called for its side-effect of drawing a zoomed plot.