❝本节来介绍如何在R中绘制树状热图,通过「sourmashconsumr」 & 「metacoder」两个R包的案例来进行介绍,更多详细的内容请参考作者官方文档。 ❞
❝https://arcadia-science.github.io/sourmashconsumr/articles/sourmashconsumr.html https://grunwaldlab.github.io/metacoder_documentation/ ❞
# 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注释数据
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)
gut_metacoder <- from_taxonomy_annotate_to_metacoder(taxonomy_annotate_df = gut_taxonomy_annotate_df,
intersect_bp_threshold = 50000,
tax_glom_level = "order",
groups = metadata)
set.seed(1)
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")
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」包 ❞
library(metacoder)
obj <- parse_tax_data(hmp_otus,
class_cols = "lineage",
class_sep = ";",
class_regex = "^(.+)__(.+)$",
class_key = c(tax_rank = "info",tax_name = "taxon_name"))
obj$data$tax_data <- zero_low_counts(obj, dataset = "tax_data", min_count = 5)
no_reads <- rowSums(obj$data$tax_data[, hmp_samples$sample_id]) == 0
obj$data$tax_data <- calc_obs_props(obj, "tax_data")
obj$data$tax_abund <- calc_taxon_abund(obj, "tax_data",
cols = hmp_samples$sample_id)
obj$data$tax_occ <- calc_n_samples(obj, "tax_abund", groups = hmp_samples$body_site, cols = hmp_samples$sample_id)
# 设置随机种子
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")
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有