--- title: "OrgHeatmap入门教程" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{OrgHeatmap入门教程} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} %\VignetteDepends{OrgHeatmap} --- ```{r, include = FALSE} knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.width = 7, fig.height = 5, dev = "png", dpi = 150 ) # 解决中文显示问题 if (.Platform$OS.type == "windows") { # Windows系统设置中文字体 windowsFonts(sans = windowsFont("SimHei")) } else if (Sys.info()["sysname"] == "Darwin") { # macOS系统设置中文字体 ggplot2::theme_set(ggplot2::theme_minimal(base_family = "Heiti TC")) } else { # Linux系统设置中文字体 ggplot2::theme_set(ggplot2::theme_minimal(base_family = "WenQuanYi Micro Hei")) } ``` ```{r setup} library(OrgHeatmap) ``` ## 1. 包简介 `OrgHeatmap`是一个用于在人体器官图上可视化数值数据(如基因表达量、生理指标)的工具包。它支持自定义颜色方案、按器官系统过滤数据,以及添加条形图进行定量比较,帮助直观展示数据在人体解剖结构中的分布。 ## 2. 安装与数据准备 ### 2.1 安装包 ```r # 从本地安装(替换为你的包文件路径) 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 加载示例数据 包内置了示例数据,方便快速上手: ```r # 加载示例数据 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()`,传入数据即可生成基础可视化结果: ```r # 基础可视化(使用默认参数) result <- OrgHeatmap(data = example_Data3) # 显示图形 print(result$plot) ``` ### 3.2 理解输出结果 函数返回一个列表,包含可视化结果和处理后的数据: ```r # 查看返回结果的结构 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`参数指定要显示的器官系统(如循环系统、呼吸系统): ```r # 只显示循环系统器官 circulatory_plot <- OrgHeatmap( data = example_Data3, system = "circulatory", # 指定循环系统 title = "循环系统数据可视化" # 自定义标题 ) # 查看所有支持的器官系统 unique(organ_systems$system) ``` ### 4.2 自定义颜色方案 通过以下参数调整颜色: - `fillcolor_organ`:器官的颜色方案(支持"plasma"、"viridis"等) - `fillcolor_outline`:人体轮廓的填充色 - `direction`:颜色梯度方向(1=默认,-1=反转) ```r # 自定义颜色示例 custom_color_plot <- OrgHeatmap( data = example_Data3, fillcolor_organ = "viridis", # 使用viridis配色 fillcolor_outline = "#E6F7FF", # 浅蓝色轮廓 direction = -1, # 反转颜色梯度 title = "自定义颜色方案" ) ``` ### 4.3 添加定量条形图 设置`organbar = TRUE`可在右侧添加条形图,方便数值对比: ```r # 带条形图的可视化 bar_plot <- OrgHeatmap( data = example_Data3, organbar = TRUE, # 启用条形图 organbar_title = "数值大小", # 条形图图例标题 organbar_digit = 1, # 数值保留1位小数 title = "带条形图的器官数据展示" ) ``` ### 4.4 器官名称映射(处理非标准名称) 如果数据中的器官名称不规范(如"Heart Tissue"),可通过`organ_name_mapping`映射到标准名称: ```r # 定义名称映射规则 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`指定聚合方式: ```r # 对重复器官进行均值聚合 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`可显示所有器官的灰色轮廓,突出目标器官: ```r OrgHeatmap( data = example_Data3, showall = TRUE, # 显示所有器官轮廓 title = "显示所有器官轮廓的可视化" ) ``` ## 5. 常见问题解决 ### 5.1 警告:“The following organs have no coordinate data” - **原因**:部分器官名称在包中没有对应的坐标数据(无法可视化)。 - **解决**: 1. 检查器官名称是否正确(参考`unique(organ_systems$organ)`中的标准名称)。 2. 用`valid_organs`参数过滤无效器官: ```r valid_plot <- OrgHeatmap( data = example_Data3, valid_organs = c("heart", "liver", "brain") # 只保留这三个器官 ) ``` ### 5.2 条形图不显示 - **原因**:数据中没有有效器官,或`organbar`参数未开启。 - **解决**:确保`organbar = TRUE`且处理后的`clean_data`不为空。 ### 5.3 模糊匹配警告 - **解决**: ```r install.packages("stringdist") # 安装模糊匹配所需的包 ``` ## 6. 总结 `OrgHeatmap`简化了人体器官数据的可视化,核心功能对应的参数如下: | 功能 | 关键参数 | |---------------------|------------------------------| | 器官系统过滤 | `system` | | 颜色自定义 | `fillcolor_organ`、`direction` | | 条形图配置 | `organbar`、`organbar_digit` | | 名称标准化 | `organ_name_mapping` | | 数据聚合 | `aggregate_method` | 查看完整参数说明:`?OrgHeatmap`