Description Usage Arguments Details PDF graphic devices Row/column ordering and display Author(s) Examples
The function aheatmap
plots high-quality heatmaps, with a detailed legend
and unlimited annotation tracks for both columns and rows.
The annotations are coloured differently according to their type
(factor or numeric covariate).
Although it uses grid graphics, the generated plot is compatible with base
layouts such as the ones defined with 'mfrow'
or layout
,
enabling the easy drawing of multiple heatmaps on a single a plot – at last!.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | aheatmap(
x,
color = "-RdYlBu2:100",
na.color = NA,
type = c("rect", "circle", "roundrect"),
breaks = NA,
border_color = NA,
cellwidth = NA,
cellheight = NA,
scale = "none",
Rowv = TRUE,
Colv = TRUE,
revC = identical(Colv, "Rowv") || is_NA(Rowv) || (is.integer(Rowv) && length(Rowv) >
1) || is(Rowv, "silhouette"),
distfun = "euclidean",
hclustfun = "complete",
reorderfun = function(d, w) reorder(d, w),
treeheight = 50,
legend = TRUE,
annCol = NA,
annRow = NA,
annColors = NA,
annLegend = TRUE,
cexAnn = NA,
dataRow = NULL,
dataCol = NULL,
labRow = NULL,
labCol = NULL,
labAnn = annLegend,
subsetRow = NULL,
subsetCol = NULL,
y = NULL,
txt = NULL,
layout = ".",
fontsize = 10,
cexRow = 0.9,
cexCol = 0.9,
filename = NA,
width = NA,
height = NA,
main = NULL,
sub = NULL,
info = NULL,
verbose = getOption("verbose"),
trace = verbose > 1,
add = NULL,
gp = gpar()
)
|
x |
numeric matrix of the values to be plotted.
An |
color |
colour specification for the heatmap. Default to palette '-RdYlBu2:100', i.e. reversed palette 'RdYlBu2' (a slight modification of RColorBrewer's palette 'RdYlBu') with 100 colors. Possible values are:
When the colour palette is specified with a single value, and is negative or preceded a minus ('-'), the reversed palette is used. The number of breaks can also be specified after a colon (':'). For example, the default colour palette is specified as '-RdYlBu2:100'. |
na.color |
Specifies the colour to use for It can also be a list of 2 elements, with the first element specifying the color and the second a given value or a range of values (as a 2-length vector) to be forced to NA. |
type |
type of cell shapes (still experimental feature). |
breaks |
a sequence of numbers that covers the range of values in |
border_color |
color of cell borders on heatmap, use NA if no border should be
drawn.
This argument allows for a finer control of borders for the following elements:
the matrix grid ( Additionally, borders for all matrix cells ( The following special syntax is also supported: See examples in the aheatmap demo and vignette. |
cellwidth |
individual cell width in points. If left as NA, then the values depend on the size of plotting window. |
cellheight |
individual cell height in points. If left as NA, then the values depend on the size of plotting window. |
scale |
character indicating how the values should scaled in either the row direction or the column direction. Note that the scaling is performed after row/column clustering, so that it has no effect on the row/column ordering. Possible values are:
|
Rowv |
clustering specification(s) for the rows. It allows to specify the distance/clustering/ordering/display parameters to be used for the rows only. See section Row/column ordering and display for details on all supported values. |
Colv |
clustering specification(s) for the columns. It accepts the same
values as argument
See section Row/column ordering and display for details on all supported values. |
revC |
a logical that specify if the row order defined by
|
distfun |
default distance measure used in clustering rows and columns. Possible values are:
|
hclustfun |
default clustering method used to cluster rows and columns. Possible values are:
|
reorderfun |
default dendrogram reordering function, used to reorder the
dendrogram, when either |
treeheight |
how much space (in points) should be used to display dendrograms. If specified as a single value, it is used for both dendrograms. A length-2 vector specifies separate values for the row and column dendrogram respectively. Default value: 50 points. |
legend |
boolean value that determines if a colour ramp for the heatmap's
colour palette should be drawn or not.
Default is |
annCol |
specifications of column annotation tracks displayed as coloured
rows on top of the heatmaps. The annotation tracks are drawn from bottom to top.
A single annotation track can be specified as a single vector; multiple tracks
are specified as a list, a data frame, or an
|
annRow |
specifications of row annotation tracks displayed as coloured
columns on the left of the heatmaps. The annotation tracks are drawn from
left to right. The same conversion, renaming and colouring rules as for argument
|
annColors |
list for specifying annotation track colors manually. It is possible to define the colors for only some of the annotations. Check examples for details. |
annLegend |
specifies if the legend for the annotation tracks
should be drawn or not.
Default is It can also be one of |
cexAnn |
scaling coefficent for the size of the annotation tracks.
Values > 1 (resp. < 1) will increase (resp. decrease) the size of each annotation
track.
This applies to the height (resp. width) of the column (resp. row) annotation tracks.
Separate row and column sizes can be specified as a vector |
dataRow |
|
dataCol |
|
labRow |
labels for the rows. |
labCol |
labels for the columns. See description for argument |
labAnn |
toggles labelling of annotation tracks.
It accepts the same values as argument |
subsetRow |
Specification of subsetting the rows before drawing the heatmap. Possible values are:
Note that in the case |
subsetCol |
Specification of subsetting the columns before drawing the
heatmap. It accepts the similar values as |
y |
an optional matrix that specifies values that are used to compute circle radius
when |
txt |
character matrix of the same size as |
layout |
layout specification that indicates the relative position of the heatmap's components. Two layouts can be defined: one horizontal, which relates to components associated to rows, and one vertical, which relates to components associated with columns. Each layout is specified as a character strings, composed of characters that encode the order of each component: dendrogram (d), annotation tracks (a), data matrix (m), labels (l) and legend (L). See |
fontsize |
base fontsize for the plot |
cexRow |
fontsize for the rownames, specified as a fraction of argument
|
cexCol |
fontsize for the colnames, specified as a fraction of argument
|
filename |
file path ending where to save the picture. Currently following formats are supported: png, pdf, tiff, bmp, jpeg. Even if the plot does not fit into the plotting window, the file size is calculated so that the plot would fit there, unless specified otherwise. |
width |
manual option for determining the output file width in |
height |
manual option for determining the output file height in inches. |
main |
Main title as a character string or a grob. |
sub |
Subtitle as a character string or a grob. |
info |
(experimental) Extra information as a character vector or a grob.
If |
verbose |
if |
trace |
logical that indicates if the different grid viewports should be traced with a blue border (debugging purpose). |
add |
logical that indicates if the plot should be drawn on a fresh new grid
page or on the currently opened plot.
Using |
gp |
graphical parameters for the text used in plot. Parameters passed to
|
The development of this function started as a fork of the function
pheatmap
from the pheatmap package, and provides
several enhancements such as:
argument names match those used in the base function heatmap
;
unlimited number of annotation for both columns and rows, with simplified and more flexible interface;
easy specification of clustering methods and colors;
return clustering data, as well as grid grob object.
Please read the associated vignette for more information and sample code.
if plotting on a PDF graphic device – started with pdf
,
one may get generate a first blank page, due to internals of standard functions from
the grid package that are called by aheatmap
.
The NMF package ships a custom patch that fixes this issue.
However, in order to comply with CRAN policies, the patch is not applied by default
and the user must explicitly be enabled it.
This can be achieved on runtime by either setting the NMF specific option 'grid.patch'
via nmf.options(grid.patch=TRUE)
, or on load time if the environment variable
'R_PACKAGE_NMF_GRID_PATCH' is defined and its value is something that is not equivalent
to FALSE
(i.e. not ”, 'false' nor 0).
Possible values are:
TRUE
or NULL
(to be consistent with heatmap
):
compute a dendrogram from hierarchical clustering using the distance and
clustering methods distfun
and hclustfun
.
NA
: disable any ordering. In this case, and if not otherwise
specified with argument revC=FALSE
, the heatmap shows the input matrix
with the rows in their original order, with the first row on top to the last
row at the bottom. Note that this differ from the behaviour or heatmap
,
but seemed to be a more sensible choice when vizualizing a matrix without
reordering.
an integer vector of length the number of rows of the input matrix
(nrow(x)
), that specifies the row order. As in the case Rowv=NA
,
the ordered matrix is shown first row on top, last row at the bottom.
a character vector or a list specifying values to use instead of arguments
distfun
, hclustfun
and reorderfun
when clustering the
rows (see the respective argument descriptions for a list of accepted
values).
If Rowv
has no names, then the first element is used for distfun
,
the second (if present) is used for hclustfun
, and the third
(if present) is used for reorderfun
.
a numeric vector of weights, of length the number of rows of the input matrix,
used to reorder the internally computed dendrogram d
by reorderfun(d, Rowv)
.
FALSE
: the dendrogram is computed using methods distfun
,
hclustfun
, and reorderfun
but is not shown.
a single integer that specifies how many subtrees (i.e. clusters)
should be highlighted, e.g., aheatmap(x, Rowv = 3L)
.
If positive, then the dendrogram's branches upstream each cluster are faded out using dashed lines. If negative, then the dendrogram's branches within each cluster are faded out using dashed lines, keeping the root upstream branches as is.
a single double that specifies how much space is used by the computed
dendrogram. That is that this value is used in place of treeheight
.
a single character string starting with a '#'
or a list with its
first element as such a string, e.g., aheatmap(x, Rowv = '#3')
or
aheatmap(x, Colv = list('#3', text = LETTERS[1:3]))
.
Original version of pheatmap
: Raivo Kolde
Enhancement into aheatmap
: Renaud Gaujoux
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | ## See the demo 'aheatmap' for more examples:
## Not run:
demo('aheatmap')
## End(Not run)
# Generate random data
n <- 50; p <- 20
x <- abs(rmatrix(n, p, rnorm, mean=4, sd=1))
x[1:10, seq(1, 10, 2)] <- x[1:10, seq(1, 10, 2)] + 3
x[11:20, seq(2, 10, 2)] <- x[11:20, seq(2, 10, 2)] + 2
rownames(x) <- paste("ROW", 1:n)
colnames(x) <- paste("COL", 1:p)
## Default heatmap
aheatmap(x)
## Distance methods
aheatmap(x, Rowv = "correlation")
aheatmap(x, Rowv = "man") # partially matched to 'manhattan'
aheatmap(x, Rowv = "man", Colv="binary")
# Generate column annotations
annotation = data.frame(Var1 = factor(1:p %% 2 == 0, labels = c("Class1", "Class2")), Var2 = 1:10)
aheatmap(x, annCol = annotation)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.