anno_block {ComplexHeatmap}R Documentation

Block annotation

Description

Block annotation

Usage

anno_block(gp = gpar(), labels = NULL, labels_gp = gpar(),
    labels_rot = ifelse(which == "row", 90, 0),
    labels_offset = unit(0.5, "npc"), labels_just = "center",
    which = c("column", "row"), width = NULL, height = NULL, show_name = FALSE,
    graphics = NULL)

Arguments

gp

Graphic parameters.

labels

Labels put on blocks.

labels_gp

Graphic parameters for labels.

labels_rot

Rotation for labels.

labels_offset

Positions of the labels. It controls offset on y-directions for column annotation and on x-directoin for row annotation.

labels_just

Jusification of the labels.

which

Is it a row annotation or a column annotation?

width

Width of the annotation. The value should be an absolute unit. Width is not allowed to be set for column annotation.

height

Height of the annotation. The value should be an absolute unit. Height is not allowed to be set for row annotation.

show_name

Whether show annotatio name.

graphics

A self-defined function that draws graphics in each slice. It must have two arguments: 1. row/column indices for the current slice and 2. a vector of levels from the split variable that correspond to current slice. When graphics is set, all other graphics parameters in anno_block are ignored.

Details

The block annotation is used for representing slices. The length of all arguments should be 1 or the number of slices.

Value

An annotation function which can be used in HeatmapAnnotation.

See Also

https://jokergoo.github.io/ComplexHeatmap-reference/book/heatmap-annotations.html#block-annotation

Examples

Heatmap(matrix(rnorm(100), 10), 
    top_annotation = HeatmapAnnotation(foo = anno_block(gp = gpar(fill = 2:4),
        labels = c("group1", "group2", "group3"), labels_gp = gpar(col = "white"))),
    column_km = 3,
    left_annotation = rowAnnotation(foo = anno_block(gp = gpar(fill = 2:4),
        labels = c("group1", "group2", "group3"), labels_gp = gpar(col = "white"))),
    row_km = 3)

# =============  set the graphics argument ==============
col = c("1" = "red", "2" = "blue", "A" = "green", "B" = "orange")
Heatmap(matrix(rnorm(100), 10), row_km = 2, row_split = sample(c("A", "B"), 10, replace = TRUE)) + 
rowAnnotation(foo = anno_block(
	graphics = function(index, levels) {
		grid.rect(gp = gpar(fill = col[levels[2]], col = "black"))
		grid.text(paste(levels, collapse = ","), 0.5, 0.5, rot = 90,
			gp = gpar(col = col[levels[1]]))
	}
))

labels = c("1" = "one", "2" = "two", "A" = "Group_A", "B" = "Group_B")
Heatmap(matrix(rnorm(100), 10), row_km = 2, row_split = sample(c("A", "B"), 10, replace = TRUE)) + 
rowAnnotation(foo = anno_block(graphics = function(index, levels) {
	grid.rect(gp = gpar(fill = col[levels[2]], col = "black"))
	grid.text(paste(labels[levels], collapse = ","), 0.5, 0.5, rot = 90,
		gp = gpar(col = col[levels[1]]))
}))

Heatmap(matrix(rnorm(100), 10), row_km = 2, row_split = sample(c("A", "B"), 10, replace = TRUE)) + 
rowAnnotation(foo = anno_block(
	graphics = function(index, levels) {
		grid.rect(gp = gpar(fill = col[levels[2]], col = "black"))
		txt = paste(levels, collapse = ",")
		txt = paste0(txt, "\n", length(index), " rows")
		grid.text(txt, 0.5, 0.5, rot = 0,
			gp = gpar(col = col[levels[1]]))
	},
	width = unit(3, "cm")
))

[Package ComplexHeatmap version 2.9.4 Index]