前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >聚类热图怎么按自己的意愿调整分支的顺序?

聚类热图怎么按自己的意愿调整分支的顺序?

作者头像
生信宝典
发布于 2020-09-21 03:23:32
发布于 2020-09-21 03:23:32
4.5K00
代码可运行
举报
文章被收录于专栏:生信宝典生信宝典
运行总次数:0
代码可运行

生物信息学习的正确姿势

NGS系列文章包括NGS基础在线绘图、转录组分析 (Nature重磅综述|关于RNA-seq你想知道的全在这)、ChIP-seq分析 (ChIP-seq基本分析流程)、单细胞测序分析 (重磅综述:三万字长文读懂单细胞RNA测序分析的最佳实践教程)、DNA甲基化分析、重测序分析、GEO数据挖掘典型医学设计实验GEO数据分析 (step-by-step))、批次效应处理等内容。

聚类热图的层级关系是固定的,但分支的左右镜像是可变的。如何让聚类结果更好的呈现我们想要的顺序呢?看下面的操作。

数据示例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
exprTable <- read.table("exprTable.txt", sep="\t", row.names=1, header=T, check.names = F)
exprTable

测试时直接拷贝这个数据即可

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
##        Zygote 2_cell 4_cell 8_cell Morula  ICM
## Pou5f1    1.0    2.0    4.0    8.0   16.0 32.0
## Sox2      0.5    1.0    2.0    4.0    8.0 16.0
## Gata2     0.3    0.6    1.3    2.6    5.2 10.4
## cMyc     10.4    5.2    2.6    1.3    0.6  0.3
## Tet1     16.0    8.0    4.0    2.0    1.0  0.5
## Tet3     32.0   16.0    8.0    4.0    2.0  1.0

绘制一个聚类热图很简单

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
library(pheatmap)
pheatmap(exprTable)

如何自定义分支顺序呢

自己做个hclust传进去,顺序跟pheatmap默认是一样的

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
exprTable_t <- as.data.frame(t(exprTable))

col_dist = dist(exprTable_t)

hclust_1 <- hclust(col_dist)

pheatmap(exprTable, cluster_cols = hclust_1)

人为指定顺序排序样品

按发育时间排序样品

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
manual_order = c("Zygote", "2_cell", "4_cell", "8_cell", "Morula",  "ICM")

dend = reorder(as.dendrogram(hclust_1), wts=order(match(manual_order, rownames(exprTable_t))))

# 默认为mean,无效时使用其他函数尝试
# dend = reorder(as.dendrogram(hclust_1), wts=order(match(manual_order, rownames(exprTable_t))), agglo.FUN = max)

col_cluster <- as.hclust(dend)

pheatmap(exprTable, cluster_cols = col_cluster)

按某个基因的表达由小到大排序

可以按任意指标排序,基因表达是一个例子。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dend = reorder(as.dendrogram(hclust_1), wts=exprTable_t$Tet3)

col_cluster <- as.hclust(dend)

pheatmap(exprTable, cluster_cols = col_cluster)

按某个基因的表达由大到小排序

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dend = reorder(as.dendrogram(hclust_1), wts=exprTable_t$Tet3*(-1))

col_cluster <- as.hclust(dend)

pheatmap(exprTable, cluster_cols = col_cluster)

按分支名字(样品名字)的字母顺序排序

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
library(dendextend)
col_cluster <- hclust_1 %>% as.dendrogram %>% sort %>% as.hclust
pheatmap(exprTable, cluster_cols = col_cluster)

梯子形排序:最小的分支在右侧

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
col_cluster <- hclust_1 %>% as.dendrogram %>% ladderize(TRUE) %>% as.hclust
pheatmap(exprTable, cluster_cols = col_cluster)

梯子形排序:最小的分支在左侧

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
col_cluster <- hclust_1 %>% as.dendrogram %>% ladderize(FALSE) %>% as.hclust
pheatmap(exprTable, cluster_cols = col_cluster)

按特征值排序

样本量多时的自动较忧排序

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sv = svd(exprTable)$v[,1]
dend = reorder(as.dendrogram(hclust_1), wts=sv)
col_cluster <- as.hclust(dend)

pheatmap(exprTable, cluster_cols = col_cluster)
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-09-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信宝典 微信公众号,前往查看

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
24种R语言新手入门之热图(四)
热图比较有意思,最常用的科研可视化做图,观察显著、直接、简单粗暴。这是Toussaint Loua在1873年就曾使用过热图来绘制对巴黎各区的社会学统计。
生信初学者
2023/03/14
9600
24种R语言新手入门之热图(四)
pheatmap 排序
hclust 的顺序是靠order 和 labels 两个数据控制,labels 是有顺序的名称,其座次可以被索引提取。order
花落花相惜
2021/12/06
1.4K0
比较聚类:我该划分多少个聚类簇?
在上期文章层次聚类与聚类树中,不同对象之间的关系可以通过聚类树展现出来,通过聚类树我们可以观察哪些对象比较相似,哪些对象距离较远,从而对所有对象的关系有一个整体的把握。然而,这时候我们并没有获得一个明显的聚类簇划分,也即不知道对象可以划分为几类、谁和谁归为一类,以及这个聚类结果是不是合理,这可以通过比较聚类来实现。
SYSU星空
2022/05/05
8750
比较聚类:我该划分多少个聚类簇?
又是聚类分析可视化!
相比于聚类分析本身,我更喜欢它的结果可视化的部分,虽然之前介绍过很多了,但是今天这个方法,还是要强烈推荐一下。
医学和生信笔记
2022/11/15
3210
又是聚类分析可视化!
用 ComplexHeatmap 包绘制复杂热图
在 ComplexHeatmap 中单个热图由热图主体和热图组件组成。热图主体可按行或列进行拆分。热图组件包括标题,进化树,矩阵名称和热图注释,可分别放置于热图主体的四个侧面上,这些组件也可根据热图主体的顺序进行重新排序或拆分。
生信菜鸟团
2021/01/18
7.5K0
用 ComplexHeatmap 包绘制复杂热图
一文详解如何用 R 语言绘制热图
AI 研习社按:作为目前最常见的一种可视化手段,热图因其丰富的色彩变化和生动饱满的信息表达被广泛应用于各种大数据分析场景。同时,专用于大数据统计分析、绘图和可视化等场景的 R 语言,在可视化方面也提供了一系列功能强大、覆盖全面的函数库和工具包。 因此,对从业者而言,用 R 语言绘制热图就成了一项最通用的必备技能。本文将以 R 语言为基础,详细介绍热图绘制中遇到的各种问题和注意事项。原文作者 taoyan,原载于作者个人博客,AI 研习社获授权。 简介 本文将绘制静态与交互式热图,需要使用到以下R包和函数
AI研习社
2018/03/19
3.7K0
一文详解如何用 R 语言绘制热图
聚类树的合并展示
层次聚类(hierarchical clustering)就是通过对数据集按照某种方法进行层次分解,直到满足某种条件为止,常用的方法有UPGMA、ward.D2等。聚类树是层次聚类最常用的可视化方法,我们可通过比较聚类来确定最佳分类,详见往期文章层次聚类与聚类树和比较聚类。
SYSU星空
2022/05/05
5450
聚类树的合并展示
单细胞转录组之拷贝数变异分析
拷贝数变异(Copy number variation, CNV):基因组发生重排而导致的,一般指长度1 kb 以上的基因组片段的拷贝数增加或者减少, 主要表现为亚显微水平的重复或者缺失。因此称为“微”缺失或重复变异。
青青青山
2022/07/07
3.4K0
单细胞转录组之拷贝数变异分析
超详细的R语言热图绘制之complexheatmap:01
本书是对ComplexeHeatmap包的中文翻译(1-6章),部分内容根据自己的理解有适当的改动,但总体不影响原文。如有不明之处,以原文为准。原文请见:https://jokergoo.github.io/ComplexHeatmap-reference/book/
医学和生信笔记
2022/05/30
4.3K0
使用NMF代替层次聚类
前面我们在教程:使用R包deconstructSigs根据已知的signature进行比例推断,顺利的把508个病人,根据11个signature进行了比例推断,得到的比例矩阵以普通的热图,以及pheatmap包自带的层次聚类如下:
生信技能树
2020/06/09
3.1K0
「Workshop」第十五期:热图
https://www.bilibili.com/video/BV1Pa4y1E7WS
王诗翔呀
2022/01/21
1.7K0
「Workshop」第十五期:热图
R语言ggtree画圆形的树状图展示聚类分析的结果
那么圆形的树状图如何实现呢?我查找了一下相关资料。R语言包dendextend这个包可以实现,利用help(package="dendextend")查看帮助文档,能够看到其中的一个小例子
用户7010445
2020/11/13
3.7K0
R语言ggtree画圆形的树状图展示聚类分析的结果
无代码调整聚类热图分支顺序
聚类热图根据不同的聚类算法和距离计算方式,获得的热图分支结构会有一些不同。有时,我们也希望能在不改变分支结构的基础上,对热图分支的顺序进行一些调整,这就是推文聚类热图怎么按自己的意愿调整分支的顺序?的出发点。
生信宝典
2022/01/18
8340
无代码调整聚类热图分支顺序
R语言学习笔记-Day09
#Fix cell sizes and save to file with correct size
用户11190095
2024/07/17
1490
OSCA单细胞数据分析笔记9—Clustering
“物以类聚,人以群分” 分群步骤即将基因表达(降维结果)相似的细胞归为同一个群体,往往对应一种特定的细胞类型或者细胞轨迹状态。从这一步开始,就可以开始叙述我们的生物学故事了~
生信技能树jimmy
2021/07/02
2.3K1
OSCA单细胞数据分析笔记9—Clustering
245热图展示微生物组的物种和功能丰度或有无、距离矩阵
NGS系列文章包括NGS基础、在线绘图、转录组分析 (Nature重磅综述|关于RNA-seq你想知道的全在这)、ChIP-seq分析 (ChIP-seq基本分析流程)、单细胞测序分析 (重磅综述:三万字长文读懂单细胞RNA测序分析的最佳实践教程)、DNA甲基化分析、重测序分析、GEO数据挖掘(典型医学设计实验GEO数据分析 (step-by-step))、批次效应处理等内容。
生信宝典
2020/09/01
3K0
245热图展示微生物组的物种和功能丰度或有无、距离矩阵
获取pheatmap聚类后和标准化后的结果
pheatmap是简单常用的热图绘制包,可以快速、简单、可定制的绘制漂亮热图。具体见R语言学习-热图简化和免费高颜值可定制在线绘图工具 ImageGP。
生信宝典
2019/06/20
2.1K0
获取pheatmap聚类后和标准化后的结果
手把手带你复现NC图表之Figure 4
探究从肺泡和外膜成纤维细胞亚群(在对照组织中富集)到肌成纤维细胞(在肿瘤组织中富集)的分化过程,对scRNA-seq数据集进行轨迹推断。结果表明外膜和肺泡成纤维细胞可以作为独立的祖细胞,肌成纤维细胞可以从这些祖细胞转分化
生信技能树jimmy
2023/09/26
4870
手把手带你复现NC图表之Figure 4
R语言学习 - 热图简化
热图绘制 - pheatmap 绘制热图除了使用ggplot2,还可以有其它的包或函数,比如pheatmap::pheatmap (pheatmap包中的pheatmap函数)、gplots::heatmap.2等。 相比于ggplot2作heatmap, pheatmap会更为简单一些,一个函数设置不同的参数,可以完成行列聚类、行列注释、Z-score计算、颜色自定义等。那我们来看看效果怎样。 data_ori <- "Grp_1;Grp_2;Grp_3;Grp_4;Grp_5 a;6.6;20.9;10
生信宝典
2018/02/05
2.8K0
R语言学习 - 热图简化
热图在单细胞数据分析中的应用
热图是一个以颜色变化来显示数据的可视化矩阵,Toussaint Loua在1873年就曾使用过热图来绘制对巴黎各区的社会学统计。我们就拿这张简单朴素的热图来讲一下热图怎么看。
生信技能树jimmy
2020/04/08
3.9K0
热图在单细胞数据分析中的应用
相关推荐
24种R语言新手入门之热图(四)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档