美文网首页微生物信息学R可视化
按照热图聚类结果来给样本分组

按照热图聚类结果来给样本分组

作者: 小洁忘了怎么分身 | 来源:发表于2020-12-03 16:32 被阅读0次

1.需求


如图,热图自带聚类树,将样本(列)分成了三个簇。想要按照聚类的结果,获取到每个样本具体属于哪一簇的信息,并将这个信息添加到热图上。

2.作图的数据

输入数据是个表达矩阵,行为基因,列为样本,用随机数整一个。

rm(list = ls())
n = matrix(rnorm(800),nrow = 8)
n[,1:30] = n[,1:30]+ 3
n[,60:100] = n[,60:100] +6
n = n[,sample(1:100,100)]
rownames(n) = paste0("gene",1:8)
colnames(n) = paste0("sample",1:100)
n[1:4,1:4]
##          sample1  sample2  sample3  sample4
## gene1  0.5794523 3.837055 2.779561 2.817760
## gene2  0.3623024 4.440195 3.973745 1.896885
## gene3 -0.7953442 3.026784 2.260808 2.363162
## gene4 -0.2121879 1.033756 1.997658 3.837127

3.热图探索

常规的热图很简单

p = pheatmap::pheatmap(n,show_colnames = F,scale = "row")

我们能知道图上样本的排列顺序,但是不知道每一簇都有多少个样本,对应着哪些。

让三簇分的更清楚一些

p2 = pheatmap::pheatmap(n,show_colnames = F,scale = "row",cutree_cols = 3)

加上cutree_cols参数,热图上就有了沟,将样本分成了指定数量的组。

还是不知道怎样能得出三组个自是哪些样本的信息。我以为p2$tree_col$order里面会指明,然而并没有。

遂,搜索关键词get cluster in pheatmap,找到了一个网页:https://www.biostars.org/p/287512/ ,看到cutree居然还是个单独的函数。摸索了一下怎么使用

m = cutree(p2$tree_col,k = 3)
head(m)
## sample1 sample2 sample3 sample4 sample5 sample6 
##       1       2       2       2       1       3

这就完事儿了。m里面记录了每个样本属于哪个分组。这就是我想要的信息。

3.在热图上添加聚类分组信息

常规的差异分析也会用到列注释热图来展示数据的分组,那是已知分组,直接展示两组间差别的,和今天做的根据聚类的结果来分组不一样的哦

至于列注释如何添加上去查看帮助文档,按照annotation_col参数的示例来组织数据即可啦!

an = data.frame(row.names = colnames(n),
                m = factor(m,labels = c("A","B","C")))
pheatmap::pheatmap(n,show_colnames = F,scale = "row",cutree_cols = 3,
                   annotation_col = an)

这样 我们就根据聚类的结果来给原来的矩阵列(样本)分了组~

相关文章

  • 按照热图聚类结果来给样本分组

    1.需求 如图,热图自带聚类树,将样本(列)分成了三个簇。想要按照聚类的结果,获取到 的信息,并将这个信息添加到热...

  • 【单细胞】合并多个seurat数据对象

    在实际中,经常存在多个样本一起联合分析的情况: 比如我们既可以按照样本来源显示聚类,也可以按照类型来显示聚类结果。...

  • 分组聚类的热图

    1.问题 应该是会经常遇到这样的热图,就是说它的聚类情况无法与分组信息吻合。其实这个并不是错了,是因为用于聚类的行...

  • 第六章 聚类模型

    聚类是什么:聚类是无监督学习。是将相似的样本分组的过程,每个组称为一个簇,样本没有标签。 聚类的应用:天气特征、信...

  • PCA/热图

    PCA样本聚类图 1.PCA 图---- 2.top 1000 sd 热图---- 关于scale的进一步探索:z...

  • 热图2:分组聚类,让热图分裂

    还记得之前我们发过的热图吗? 样品之间聚类的时候发现对照和实验组混合到了一起。这是由于样品一致性差造成的,这种情况...

  • K-Means算法

    K-Means算法是无监督算法之一,主要用于样本的聚类。其思想很简单,对于给定的样本集,按照样本与聚类中心之间的距...

  • 10高通量测序-层次聚类

    层次聚类 层次聚类(Hierarchical Clustering)通常与热图有关(heatmap)。热图的列代表...

  • 九. R语言作图--pheatmap(热图)

    1. 热图及分组 2. 热图聚类和排序 绘制热图的时候我们会遇到这样的问题,我们有一组数据(特别是数据比较多的时候...

  • RNA-seq入门实战(四):差异分析前的准备——数据检查

    本节概览:数据预处理, 进行样本间具有可比性boxplot查看样本的基因整体表达情况查看不同分组的聚类情况:样本h...

网友评论

    本文标题:按照热图聚类结果来给样本分组

    本文链接:https://www.haomeiwen.com/subject/ynnmwktx.html