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

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

作者头像
R语言数据分析指南
发布于 2023-08-18 05:23:54
发布于 2023-08-18 05:23:54
59600
代码可运行
举报
运行总次数:0
代码可运行

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

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

官方文档

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

载入所需包

代码语言:javascript
代码运行次数:0
运行
复制
# 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
代码运行次数:0
运行
复制
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
代码运行次数:0
运行
复制
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
代码运行次数:0
运行
复制
set.seed(1) 

绘制树状图热图

代码语言:javascript
代码运行次数:0
运行
复制
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
代码运行次数:0
运行
复制
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
代码运行次数:0
运行
复制
library(metacoder)

解析分类数据

代码语言:javascript
代码运行次数:0
运行
复制
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
代码运行次数:0
运行
复制
obj$data$tax_data <- zero_low_counts(obj, dataset = "tax_data", min_count = 5)
检查没有reads的行
代码语言:javascript
代码运行次数:0
运行
复制
no_reads <- rowSums(obj$data$tax_data[, hmp_samples$sample_id]) == 0
计算观测比例
代码语言:javascript
代码运行次数:0
运行
复制
obj$data$tax_data <- calc_obs_props(obj, "tax_data")
计算taxon丰度
代码语言:javascript
代码运行次数:0
运行
复制
obj$data$tax_abund <- calc_taxon_abund(obj, "tax_data",
                                       cols = hmp_samples$sample_id)
计算taxon出现次数
代码语言:javascript
代码运行次数:0
运行
复制
obj$data$tax_occ <- calc_n_samples(obj, "tax_abund", groups = hmp_samples$body_site, cols = hmp_samples$sample_id)

绘制树状图热图

代码语言:javascript
代码运行次数:0
运行
复制
# 设置随机种子
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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
跟着Microbiome学作图:R语言ggplot2画堆积柱形图展示微生物门水平的相对丰度
本地文件Giloteaux2016_Article_ReducedDiversityAndAlteredComp.pdf
用户7010445
2021/11/23
2.3K0
跟着Microbiome学作图:R语言ggplot2画堆积柱形图展示微生物门水平的相对丰度
GMSB文章四:微生物组多样性分析
Alpha多样性主要关注的是样品内部的多样性,即一个特定区域或生态系统内的物种丰富度和均匀度。它的原理是通过统计一个群落中不同物种的数量和相对丰度来评估该群落的生物多样性。它可以用来评估不同环境条件下的微生物群落结构,比如不同土壤样本或不同人体部位的微生物组成。它可以帮助我们了解单个样本内部的微生物组成复杂性,比如一个特定人体部位的微生物多样性水平。它通过以下几个指数来衡量:
生信学习者
2024/06/29
2020
空间转录组网络图的分步绘制(Xenium)
追风少年i
2024/06/05
1650
空间转录组网络图的分步绘制(Xenium)
文献组图
追风少年i
2025/01/07
670
文献组图
R语言 轻松绘制顶级配图
参考来源http://www.sthda.com/english/articles/24-ggpubr-publication-ready-plots/
拴小林
2020/07/08
8600
Keras中带LSTM的多变量时间序列预测
像长短期记忆(Long Short-Term Memory ) LSTM 递归神经网络这样的神经网络几乎可以完美地模拟多个输入变量的问题。
QiqiHe
2018/02/09
46.6K8
Keras中带LSTM的多变量时间序列预测
高精度空间转录组分析之squidpy和空间网络图
追风少年i
2024/05/31
3630
高精度空间转录组分析之squidpy和空间网络图
R中轻松绘制南丁格尔图
R语言数据分析指南
2023/09/29
3820
R中轻松绘制南丁格尔图
比较微生物组中的差异分析方法
在微生物组研究中我们常常需要根据某些感兴趣的表型来找到与其相关的特征(比如菌群、OTU、基因家族等等)。但微生物组学的数据结构导致了这必然是一项相当艰巨的任务,因为他们:
生信菜鸟团
2021/12/13
7.1K0
比较微生物组中的差异分析方法
数据分析最有用的Top 50 Matplotlib图(带有完整的Python代码)(下)
昨天我们跟大家分享了50个Matplotlib可视化 - 主图(带有完整的Python代码)上 ,详情链接请戳:50个Matplotlib可视化 - 主图(带有完整的Python代码)上
Datawhale
2019/10/18
2.1K0
数据分析最有用的Top 50 Matplotlib图(带有完整的Python代码)(下)
python 单细胞scanpy流程
这篇推文耗时甚久,主要是学习和跑通官网代码,其次是加了一些自己的细微调整,比如整理marker基因表格,还有可视化的调整等。
用户11414625
2024/12/20
3970
python 单细胞scanpy流程
R包ggseqlogo 绘制seq logo图
在生物信息分析中,经常会做序列分析图(sequence logo),这里的序列指的是核苷酸(DNA/RNA链中)或氨基酸(在蛋白质序列中)。sequence logo图是用来可视化一段序列某个位点的保守性,据根提供的序列组展示位点信息。常用于描述序列特征,如DNA中的蛋白质结合位点或蛋白质中的功能单元。
生信宝典
2018/08/01
2.8K0
R包ggseqlogo 绘制seq logo图
RNA-seq 231023
参考https://www.zhihu.com/people/gu_chen/posts?page=2
素素
2023/10/31
5400
245热图展示微生物组的物种和功能丰度或有无、距离矩阵
NGS系列文章包括NGS基础、在线绘图、转录组分析 (Nature重磅综述|关于RNA-seq你想知道的全在这)、ChIP-seq分析 (ChIP-seq基本分析流程)、单细胞测序分析 (重磅综述:三万字长文读懂单细胞RNA测序分析的最佳实践教程)、DNA甲基化分析、重测序分析、GEO数据挖掘(典型医学设计实验GEO数据分析 (step-by-step))、批次效应处理等内容。
生信宝典
2020/09/01
3K0
245热图展示微生物组的物种和功能丰度或有无、距离矩阵
这40个Python可视化图表案例,强烈建议收藏!
不过有些小伙伴也会遇到不少问题,比如选择何种图表,以及如何制作,代码如何编写,这些都是问题!
小F
2021/09/14
4.4K0
一文汇总Python可视化工具及图表
正所谓“一图胜千言”,数据可视化是数据科学中重要的一项工作,在面对海量的大数据中,如果没有图表直观的展示复杂数据,我们往往会摸不着头脑。通过可视化的图表可以直观了解数据潜藏的重要信息,以便在业务和决策中发现数据背后的价值!
算法进阶
2023/10/26
8350
一文汇总Python可视化工具及图表
深度好文 | Matplotlib 可视化最有价值的 50 个图表(附完整 Python 源代码)
在数据分析和可视化中最有用的 50 个 Matplotlib 图表。 这些图表列表允许您使用 python 的 matplotlib 和 seaborn 库选择要显示的可视化对象。
数据派THU
2019/05/09
1.7K0
深度好文 | Matplotlib 可视化最有价值的 50 个图表(附完整 Python 源代码)
R包ggseqlogo |绘制序列分析图
在生物信息分析中,经常会做序列分析图(sequence logo),这里的序列指的是核苷酸(DNA/RNA链中)或氨基酸(在蛋白质序列中)。sequence logo图是用来可视化一段序列某个位点的保守性,据根提供的序列组展示位点信息。常用于描述序列特征,如DNA中的蛋白质结合位点或蛋白质中的功能单元。
生信宝典
2019/09/23
2.6K0
R包ggseqlogo |绘制序列分析图
你还缺scRNA-seq的workflow吗?
之前曾老师给我看了一位在pipebio工作的生信工程师Roman Hillje的scRNA-seq的workflow,今天整理一下分享给大家。
生信菜鸟团
2024/07/31
3680
你还缺scRNA-seq的workflow吗?
SPOTlight || 用NMF解卷积空间表达数据
空间解析基因表达谱是理解组织组织和功能的关键。然而,目前空间转录组分析技术(Spatial Transcriptomics,ST)尚未达到单细胞分辨率,往往需要结合单细胞RNA测序(scRNA-seq)信息来反褶积(或解卷积,Deconvolute )空间数据集。SPOTlight利用这两种数据类型的优势,能够将ST与scRNA-seq数据集成,从而推断出复杂组织中细胞类型和状态的位置。SPOTlight基于一个种子的非负矩阵因子分解回归(Seeded NMF regression ),使用细胞类型标记基因和非负最小二乘(NNLS)初始化,随后去卷积ST捕获位置(spot)。在作者的文章中,在示例数据人类胰腺癌中,成功地将患者切片划分为健康和癌区,并进一步精细绘制正常和肿瘤细胞状态。SPOTlight 流程如下:
生信技能树
2021/10/22
1.5K0
相关推荐
跟着Microbiome学作图:R语言ggplot2画堆积柱形图展示微生物门水平的相对丰度
更多 >
目录
  • 欢迎关注R语言数据分析指南
  • 官方文档
  • 载入所需包
    • 将taxonomy注释数据转换为metacoder格式
  • 设置随机种子
  • 绘制树状图热图
    • 进行组间比较,并绘制树状热图
    • 载入metacoder包
  • 解析分类数据
    • 对tax_data进行处理
    • 检查没有reads的行
    • 计算观测比例
    • 计算taxon丰度
    • 计算taxon出现次数
  • 绘制树状图热图
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档