欢迎关注R语言数据分析指南
❝本节来介绍如何在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)
将taxonomy注释数据转换为metacoder格式
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」包
❞
载入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"))
对tax_data进行处理
obj$data$tax_data <- zero_low_counts(obj, dataset = "tax_data", min_count = 5)
检查没有reads的行
no_reads <- rowSums(obj$data$tax_data[, hmp_samples$sample_id]) == 0
计算观测比例
obj$data$tax_data <- calc_obs_props(obj, "tax_data")
计算taxon丰度
obj$data$tax_abund <- calc_taxon_abund(obj, "tax_data",
cols = hmp_samples$sample_id)
计算taxon出现次数
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")
❝有需要学习个性化数据可视化的朋友,欢迎到小编的「淘宝店铺」 「R语言数据分析指南」购买「2023年度会员」
❞初始价格99元,内容主要包括各种「高分论文的图表分析复现以及一些个性化图表的绘制」均包含数据+代码;按照往年数据小编年产出约在150+以上
购买后微信发小编订单截图即邀请进新的会员交流群,小编的文档为按年售卖,只包含当年度的「除系列课程外」的文档,有需要往年文档的朋友也可下单购买,需要了解更多信息的朋友欢迎交流咨询。
淘宝扫一扫
2023会员群精彩内容







