Question: How to cluster the annotation in the heat map?
gravatar for beginner
5 months ago by
beginner20 wrote:

mat = matrix(rnorm(100), 10)
foo = sample(letters[1:2], 10, replace = TRUE)
colnames(mat) = sapply(letters[1:10], function(x) paste(rep(x, 10), collapse = ""))
cn = colnames(mat)
ha2 = HeatmapAnnotation(foo = foo,
                cn = anno_text(cn, rot = 90, offset = unit(1, "npc") - unit(2, "mm"), just = "right"),
                annotation_height = unit.c(unit(5, "mm"), max_text_width(cn)))
Heatmap(mat, show_column_names = FALSE, bottom_annotation = ha2)

This gave me a heat map like following:

Here you see in the bottom annotation both a and b are not clustered. I would like to know how can I do each group (color) get clustered. I mean all samples which come under "b" at one side and samples under "a" on one side.

Can anyone please tell me how to do this? Thanks !!

heatmap rna-seq clustering R • 243 views
ADD COMMENTlink modified 5 months ago by Kevin Blighe14k • written 5 months ago by beginner20
gravatar for Kevin Blighe
5 months ago by
Kevin Blighe14k
London / Brazil
Kevin Blighe14k wrote:

ComplexHeatmap doesn't support splitting that way - it only supports splitting by rows. If you want to split by columns, you could just generate two separate heatmaps and plot them side by side with the draw function draw(hmap1 + hmap2).

In your case, you could also just plot the transpose of your data-matrix and then split by rows, as follows (NB - the key parameter to use is split):



mat=matrix(rnorm(100), 10)

foo=sample(letters[1:2], 10, replace=TRUE)

colnames(mat)=sapply(letters[1:10], function(x) paste(rep(x, 10), collapse=""))

cn = colnames(mat)

ha2 = rowAnnotation(foo=foo,
                #cn=anno_text(cn, rot=0, just="right", which="row"),
                annotation_height=unit.c(unit(5, "mm"), max_text_width(cn)))

draw(Heatmap(t(mat), split=foo, show_row_names=TRUE) + ha2, heatmap_legend_side="left", annotation_legend_side="left")


ADD COMMENTlink modified 5 months ago • written 5 months ago by Kevin Blighe14k
Please log in to add an answer.


Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
Powered by Biostar version 2.3.0
Traffic: 1668 users visited in the last hour