前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R中轻松绘制树状热图的若干方法

R中轻松绘制树状热图的若干方法

作者头像
R语言数据分析指南
发布2023-08-18 13:23:54
3050
发布2023-08-18 13:23:54
举报

欢迎关注R语言数据分析指南

❝本节来介绍如何在R中绘制树状热图,通过「sourmashconsumr」 & 「metacoder」两个R包的案例来进行介绍,更多详细的内容请参考作者官方文档。 ❞

官方文档

❝https://arcadia-science.github.io/sourmashconsumr/articles/sourmashconsumr.html https://grunwaldlab.github.io/metacoder_documentation/ ❞

载入所需包

代码语言:javascript
复制
# install.packages("remotes")
remotes::install_github("Arcadia-Science/sourmashconsumr")
library(sourmashconsumr)  # 用于处理sourmash文件
library(tidyverse)        # 用于数据处理和可视化
library(RColorBrewer)     # 用于颜色调色板

# 载入数据
data(gut_compare_df)            # 载入对比数据
data(gut_signatures_df)         # 载入signature数据
data(gut_gather_df)             # 载入gather数据
data(gut_taxonomy_annotate_df)  # 载入taxonomy注释数据
代码语言:javascript
复制
run_accessions <- c("SRR5936131", "SRR5947006", "SRR5935765",
                    "SRR5936197", "SRR5946923", "SRR5946920")
groups <- c("cd", "cd", "cd", "nonibd", "nonibd", "nonibd")
metadata <- data.frame(run_accessions = run_accessions, groups = groups) 
将taxonomy注释数据转换为metacoder格式
代码语言:javascript
复制
gut_metacoder <- from_taxonomy_annotate_to_metacoder(taxonomy_annotate_df = gut_taxonomy_annotate_df, 
                                                     intersect_bp_threshold = 50000, 
                                                     tax_glom_level = "order",
                                                     groups = metadata)

设置随机种子

代码语言:javascript
复制
set.seed(1) 

绘制树状图热图

代码语言:javascript
复制
metacoder::heat_tree(gut_metacoder, 
                     node_label = taxon_names,
                     node_size = n_obs,
                     node_size_axis_label = "k-mer abundance",
                     layout = "davidson-harel", 
                     initial_layout = "reingold-tilford") 
进行组间比较,并绘制树状热图
代码语言:javascript
复制
gut_metacoder$data$diff_table <- metacoder::compare_groups(gut_metacoder, data = "tax_abund",
                                                           cols = metadata$run_accessions,
                                                           groups = metadata$groups)
metacoder::heat_tree_matrix(gut_metacoder,
                            data = "diff_table",
                            node_size = n_obs,
                            node_label = taxon_names,
                            node_color = log2_median_ratio,
                            node_color_range = metacoder::diverging_palette(),
                            node_color_trans = "linear",
                            node_color_interval = c(-3, 3),
                            edge_color_interval = c(-3, 3),
                            node_size_axis_label = "Abund of taxonomic lineage",
                            node_color_axis_label = "Log2 ratio median proportions")

❝sourmashconsumr所提供的函数为封装metacoder后的结果,其对代码做了简化;下面来通过一个案例来介绍「metacoder」包 ❞

载入metacoder包
代码语言:javascript
复制
library(metacoder)

解析分类数据

代码语言:javascript
复制
obj <- parse_tax_data(hmp_otus,
                      class_cols = "lineage", 
                      class_sep = ";",
                      class_regex = "^(.+)__(.+)$", 
                      class_key = c(tax_rank = "info",tax_name = "taxon_name"))
对tax_data进行处理
代码语言:javascript
复制
obj$data$tax_data <- zero_low_counts(obj, dataset = "tax_data", min_count = 5)
检查没有reads的行
代码语言:javascript
复制
no_reads <- rowSums(obj$data$tax_data[, hmp_samples$sample_id]) == 0
计算观测比例
代码语言:javascript
复制
obj$data$tax_data <- calc_obs_props(obj, "tax_data")
计算taxon丰度
代码语言:javascript
复制
obj$data$tax_abund <- calc_taxon_abund(obj, "tax_data",
                                       cols = hmp_samples$sample_id)
计算taxon出现次数
代码语言:javascript
复制
obj$data$tax_occ <- calc_n_samples(obj, "tax_abund", groups = hmp_samples$body_site, cols = hmp_samples$sample_id)

绘制树状图热图

代码语言:javascript
复制
# 设置随机种子
set.seed(1)

heat_tree(obj, 
          node_label = taxon_names,
          node_size = n_obs,
          node_color = Nose, 
          node_size_axis_label = "OTU count",
          node_color_axis_label = "Samples with reads",
          layout = "davidson-harel",
          initial_layout = "reingold-tilford")
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-06-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 R语言数据分析指南 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 欢迎关注R语言数据分析指南
  • 官方文档
  • 载入所需包
    • 将taxonomy注释数据转换为metacoder格式
    • 设置随机种子
    • 绘制树状图热图
      • 进行组间比较,并绘制树状热图
        • 载入metacoder包
        • 解析分类数据
          • 对tax_data进行处理
            • 检查没有reads的行
              • 计算观测比例
                • 计算taxon丰度
                  • 计算taxon出现次数
                  • 绘制树状图热图
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档