R进行聚类,热图分析并从聚类中获取信息

加贝林斯

我最近开始使用R对数据进行聚类。我的目的是制作带有相关树状图的热图,并在热图上通过正方形识别聚类。到目前为止,我尝试hclust使用gplotspackage并可以使用以下代码在树状图中绘制矩形:

a <-read.table ("test.txt", header = TRUE)
b <- as.dist(a)
dend <- hclust(b, method = "complete")
plot(dend)
groups <- cutree(dend, k=3)
rect.hclust(dend, k=3, border = "green")

我的test.txt文件如下所示:

      a     b     c     d     e     f
a     1   0.1   0.9   0.5  0.65   0.9
b   0.1     1  0.39  0.83  0.47  0.63
c   0.9  0.39     1  0.42  0.56  0.84
d   0.5  0.83  0.42     1  0.95  0.43
e  0.65  0.47  0.56  0.95     1  0.14
f   0.9  0.63  0.84  0.43  0.14     1

我尝试了这段可获取树状图和相关簇的代码。 使用来自test.txt数据的矩形展开图。

我真正想要的是带有热图的类似内容。我想要在群集周围有正方形的热图以及不同群集成员的列表。热图应如下所示:

在处理大数据(5200 x 700矩阵)时,我需要一种方法来保存每个群集中的成员列表。我也pheatmappheatmap软件包中尝试过但是我不确定群集,群集周围也不能有矩形。

我非常高兴欢迎您提出建议和意见。

律师

您是否正在寻找这样的东西?我手动创建了矩形,您可能正在寻找R来做,以及上面的三个簇。

data <- read.table(file = "clipboard") # copied your test.txt file from above
data.m <- melt(data)
ggplot(data.m, aes(x=variable, y=value, fill=value)) + geom_tile() + 
  scale_fill_gradient(low="red", high="green") +
  annotate("rect", xmin = min(as.integer(data.m$variable)), xmax = max(as.integer(data.m$variable)),
           ymin = .01, ymax = .2, fill = "transparent", col="black", lwd=2)

带矩形的热图

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章