OrgHeatmap入门教程

library(OrgHeatmap)
#> Loading required package: ggplot2

1. 包简介

OrgHeatmap是一个用于在人体器官图上可视化数值数据(如基因表达量、生理指标)的工具包。它支持自定义颜色方案、按器官系统过滤数据,以及添加条形图进行定量比较,帮助直观展示数据在人体解剖结构中的分布。

2. 安装与数据准备

2.1 安装包

# 从本地安装(替换为你的包文件路径)
install.packages("OrgHeatmap_0.1.0.tar.gz", repos = NULL, type = "source")

# 若已上传到GitHub,可从仓库安装
# devtools::install_github("你的用户名/OrgHeatmap")

# 如果未安装devtools,请先执行:
# install.packages("devtools")

# 安装依赖包(若运行时提示缺失)
install.packages(c("ggpolypath", "patchwork", "dplyr", "stringdist", "ggplot2"))

2.2 加载示例数据

包内置了示例数据,方便快速上手:

# 加载示例数据
data(example_Data3, package = "OrgHeatmap")

# 验证数据是否加载成功
if (!exists("example_Data3")) {
  stop("示例数据加载失败,请检查包是否正确安装。")
}

# 查看数据结构(第一列是器官名称,第二列是数值)
head(example_Data3)
##           organ value
##10   lymph_nodes 0.029
##9           lung 0.041
##5         uterus 0.026
##17 adrenal_gland 0.014
##25        tongue 0.038
##18       stomach 0.050

3. 基础可视化

3.1 简单绘制器官图

使用核心函数OrgHeatmap(),传入数据即可生成基础可视化结果:

# 基础可视化(使用默认参数)
result <- OrgHeatmap(data = example_Data3)
# 显示图形
print(result$plot)

3.2 理解输出结果

函数返回一个列表,包含可视化结果和处理后的数据:

# 查看返回结果的结构
names(result)
## [1] "plot"         "clean_data"   "system_used"  "mapped_organs"
## [5] "missing_organs" "total_value"

关键元素说明: - plot:可视化图表(ggplot2对象,可直接打印) - clean_data:清洗后的数据集(器官名称标准化+数值处理) - missing_organs:没有坐标数据的器官(无法可视化的名称) - total_value:所有器官数值的总和

4. 核心功能详解

4.1 按器官系统过滤

system参数指定要显示的器官系统(如循环系统、呼吸系统):

# 只显示循环系统器官
circulatory_plot <- OrgHeatmap(
  data = example_Data3,
  system = "circulatory",  # 指定循环系统
  title = "循环系统数据可视化"  # 自定义标题
)

# 查看所有支持的器官系统
unique(organ_systems$system)

4.2 自定义颜色方案

通过以下参数调整颜色: - fillcolor_organ:器官的颜色方案(支持”plasma”、“viridis”等) - fillcolor_outline:人体轮廓的填充色 - direction:颜色梯度方向(1=默认,-1=反转)

# 自定义颜色示例
custom_color_plot <- OrgHeatmap(
  data = example_Data3,
  fillcolor_organ = "viridis",    # 使用viridis配色
  fillcolor_outline = "#E6F7FF",  # 浅蓝色轮廓
  direction = -1,                 # 反转颜色梯度
  title = "自定义颜色方案"
)

4.3 添加定量条形图

设置organbar = TRUE可在右侧添加条形图,方便数值对比:

# 带条形图的可视化
bar_plot <- OrgHeatmap(
  data = example_Data3,
  organbar = TRUE,               # 启用条形图
  organbar_title = "数值大小",    # 条形图图例标题
  organbar_digit = 1,            # 数值保留1位小数
  title = "带条形图的器官数据展示"
)

4.4 器官名称映射(处理非标准名称)

如果数据中的器官名称不规范(如”Heart Tissue”),可通过organ_name_mapping映射到标准名称:

# 定义名称映射规则
name_mapping <- c(
  "Heart Tissue" = "heart",    # "Heart Tissue"映射为"heart"
  "Liver Cells" = "liver",     # "Liver Cells"映射为"liver"
  "Brain Region" = "brain"     # "Brain Region"映射为"brain"
)

# 应用映射
mapped_plot <- OrgHeatmap(
  data = data.frame(
    organ = c("Heart Tissue", "Liver Cells", "Brain Region"),
    value = c(12, 18, 9)
  ),
  organ_name_mapping = name_mapping,
  title = "器官名称映射示例"
)

4.5 数据聚合(处理重复器官)

当数据中存在重复器官(如多个”heart”条目),用aggregate_method指定聚合方式:

# 对重复器官进行均值聚合
aggregated_plot <- OrgHeatmap(
  data = data.frame(
    organ = c("heart", "heart", "liver"),  # 重复的"heart"
    value = c(10, 20, 15)
  ),
  aggregate_method = "mean",  # 可选:"mean"(均值)、"sum"(求和)、"count"(计数)
  title = "重复器官数据聚合(均值)"
)

# 查看聚合结果
aggregated_plot$clean_data
##   organ value
## 1 heart    15  # 两个heart的均值:(10+20)/2=15
## 2 liver    15

4.6 显示所有器官轮廓

设置showall = TRUE可显示所有器官的灰色轮廓,突出目标器官:

OrgHeatmap(
  data = example_Data3,
  showall = TRUE,  # 显示所有器官轮廓
  title = "显示所有器官轮廓的可视化"
)

5. 常见问题解决

5.1 警告:“The following organs have no coordinate data”

5.2 条形图不显示

5.3 模糊匹配警告

install.packages("stringdist")  # 安装模糊匹配所需的包

6. 总结

OrgHeatmap简化了人体器官数据的可视化,核心功能对应的参数如下:

功能 关键参数
器官系统过滤 system
颜色自定义 fillcolor_organdirection
条形图配置 organbarorganbar_digit
名称标准化 organ_name_mapping
数据聚合 aggregate_method

查看完整参数说明:?OrgHeatmap