项目介绍

stemangiola/tidyHeatmap 是一个托管在 GitHub 上的开源项目,主要使用 R 编写,目前获得 364 个 Star、24 次 Fork。

仓库全名
stemangiola/tidyHeatmap
Star 数
364
Fork 数
24
未关闭 Issue
7

README 摘要

The tidyHeatmap package ================ Stefano Mangiola 2025-01-26 tidyHeatmap is a package that introduces tidy principles to the creation of information-rich heatmaps. This package uses ComplexHeatmap as graphical engine. Citation Mangiola et al., (2020). tidyHeatmap: an R package for modular heatmap production based on tidy principles. Journal of Open Source Software, 5(52), 2472, Full documentation here…

完整内容见 GitHub 原始 README 或本页 。

常见问题

tidyHeatmap 用什么语言开发?

主要使用 R 编写,目前有 364 个 Star。

如何获取 tidyHeatmap 的源码?

可以直接克隆仓库:git clone https://github.com/stemangiola/tidyHeatmap.git,默认分支为 master;安装与运行步骤见仓库 README。

tidyHeatmap 最近还在维护吗?

仓库最近一次更新为 1 周前,当前有 7 个未关闭 Issue;Star 数为 364,可作为社区活跃度的参考。

关于

Draw heatmap simply using a tidy data frame

描述取自 GitHub 官方 API,中文内容由 GitRead 中文社区 编辑团队整理。

README

The tidyHeatmap package

Stefano Mangiola 2025-01-26

Lifecycle:maturing DOI

tidyHeatmap is a package that introduces tidy principles to the creation of information-rich heatmaps. This package uses ComplexHeatmap as graphical engine.

Citation

Mangiola et al., (2020). tidyHeatmap: an R package for modular heatmap production based on tidy principles. Journal of Open Source Software, 5(52), 2472, https://doi.org/10.21105/joss.02472

Full documentation here

# Create some more data points
pasilla_plus <- 
	tidyHeatmap::pasilla |>
	dplyr::mutate(activation_2 = activation, activation_3 = activation) |> 
	tidyr::nest(data = -sample) |>
	dplyr::mutate(size = rnorm(n(), 4,0.5)) |>
	dplyr::mutate(age = runif(n(), 50, 200)) |>
	tidyr::unnest(data) 

# Plot
pasilla_plus |>
    heatmap(
        .column = sample,
        .row = symbol,
        .value = `count normalised adjusted`,   
        scale = "row"
    ) |>
    annotation_group(location) |>
    annotation_tile(condition, show_legend = FALSE) |>
    annotation_point(activation) |>
    annotation_numeric(activation_3) |>
    annotation_tile(activation_2) |>
    annotation_bar(size) |>
    annotation_line(age)

Advantages:

  • Modular annotation with just specifying column names
  • Custom grouping of rows/columns is easy to specify with annotation_group, e.g. heatmap(...) |> annotation_group(...)
  • Labels size adjusted by row and column total number
  • Default use of Brewer and Viridis palettes

Retrieve heatmap data and dendrograms

After creating a heatmap, you can extract the matrix and dendrograms exactly as they appear in the plot:

# Create heatmap
hm <- tidyHeatmap::N52 |>
  tidyHeatmap::heatmap(
    .row = symbol_ct,
    .column = UBR,
    .value = `read count normalised log`
  )

# Extract heatmap data as plotted
result <- hm |> get_heatmap_data()
ordered_matrix <- result$matrix        # Matrix with rows/columns in heatmap order
row_dendrogram <- result$row_dend      # Row dendrogram object
column_dendrogram <- result$column_dend # Column dendrogram object

# All have consistent row and column names
print(rownames(ordered_matrix))
print(labels(row_dendrogram))

Functions/utilities available

Function Description
heatmap Plots base heatmap
annotation_group Adds group annotation strips and grouping to the heatmap
annotation_tile Adds tile annotation to the heatmap
annotation_point Adds point annotation to the heatmap
annotation_bar Adds bar annotation to the heatmap
annotation_numeric Adds bar + number annotation to the heatmap
annotation_line Adds line annotation to the heatmap
layer_text Add layer of text on top of the heatmap
layer_point Adds layer of symbols on top of the heatmap
layer_square Adds layer of symbols on top of the heatmap
layer_diamond Adds layer of symbols on top of the heatmap
layer_arrow_up Adds layer of symbols on top of the heatmap
layer_arrow_down Add layer of symbols on top of the heatmap
layer_star Add layer of symbols on top of the heatmap
layer_asterisk Add layer of symbols on top of the heatmap
split_rows Splits the rows based on the dendogram
split_columns Splits the columns based on the dendogram
get_heatmap_data Retrieves matrix and dendrograms exactly as plotted
save_pdf Saves the PDF of the heatmap
+ Integrate heatmaps side-by-side
as_ComplexHeatmap Convert the tidyHeatmap output to ComplexHeatmap for non-standard “drawing”
wrap_heatmap Allows the integration with the patchwork package

Installation

To install the most up-to-date version

devtools::install_github("stemangiola/tidyHeatmap")

To install the most stable version (however please keep in mind that this package is under a maturing lifecycle stage)

install.packages("tidyHeatmap")

Contribution

If you want to contribute to the software, report issues or problems with the software or seek support please open an issue here

评论

暂无评论