Return Heatmap row order from ComplexHeatmap heatmap object
Source:R/jamba-heatmap-order.R
heatmap_row_order.RdReturn Heatmap row order from ComplexHeatmap heatmap object
Arguments
- hm
HeatmaporHeatmapListobject as defined by the Bioconductor package viaComplexHeatmap::Heatmap().- which_heatmap
integer, default NULL, used when the input is aHeatmapListwith multiple heatmaps.
Value
output depends upon the heatmap:
When heatmap rows are grouped using
row_split, and when the data matrix contains rownames, returns acharactervector of rownames in the order they appear in the heatmap. When there are no rownames,integerrow index values are returned. If the heatmap has row labels, they are returned as vector names.When rows are grouped using
row_split, it returns alistof vectors as described above. Thelistis named using therow_titlelabels only when there is an equal number of row labels.
Details
This function is a helpful utility to return the fully
qualified list of rownames in a ComplexHeatmap::Heatmap
object.
The core intention is for the output to be usable with the
original data matrix used in the heatmap. Therefore, the
vector values are rownames() when present, or integer
row index values when there are no rownames(). If heatmap
row_labels are defined, they are returned as names().
Note that names() are assigned inside try() to allow the
case where row_labels, or row_title labels cannot be
coerced to character values, for example using gridtext
for markdown formatting.
Final note: It is best practice to draw the heatmap first
with ComplexHeatmap::draw() then store the output in a new
object. This step creates the definitive clustering and
therefore the row order is absolutely final, not subject
to potential randomness during clustering.
See also
Other jam heatmap functions:
cell_fun_label(),
heatmap_column_order()