【问题标题】:Generating a heatmap that depicts the clusters in a dataset using hierarchical clustering in R使用 R 中的层次聚类生成描述数据集中聚类的热图
【发布时间】:2012-08-03 14:44:23
【问题描述】:

我正在尝试获取由蛋白质 dna 相互作用组成的数据集,对数据进行聚类并生成显示结果数据的热图,以使数据看起来与排列在对角线。我能够对数据进行聚类并生成该数据的树状图,但是当我使用 R 中的热图函数生成数据的热图时,集群不可见。如果您查看前两张图像,一张是我能够生成的树状图,第二张是我能够生成的热图,第三张只是显示我期望结果的集群热图的示例粗略看。从比较第二张和第三张图像可以看出,很明显第三张图像中有簇,而第二张图像中没有。

这是我的数据集的链接: http://pastebin.com/wQ9tYmjy

我能够对数据进行聚类并在 R 中生成一个就好了:

args <- commandArgs(TRUE);

matrix_a <- read.table(args[1], sep='\t', header=T, row.names=1);

location <- args[2];

matrix_d <- dist(matrix_a);

hc <- hclust(matrix_d,"average");

mypng <- function(filename = "mydefault.png") {

png(filename)

}

options(device = "mypng")

plot(hc);

我也可以生成热图:

matrix_a <- read.table("Arda_list.txt.binary.matrix.txt", sep='\t', header=T, row.names=1);

mtscaled <- as.matrix(scale(matrix_a))

heatmap(mtscaled, Colv=F, scale='none')

我尝试关注该帖子: http://digitheadslabnotebook.blogspot.com/2011/06/drawing-heatmaps-in-r.html 克里斯托弗·巴雷(Christopher Bare),但我错过了一些东西。任何想法,将不胜感激。我附上了我得到的热图的图像,以及树状图。图 3 取自 Christopher Bare 的帖子。谢谢

【问题讨论】:

  • 这样您就可以进行聚类并生成热图...到底是什么问题?
  • 嗨,保罗,当我生成热图时,数据没有聚集。我似乎能够生成聚类数据树,并且可以生成数据的热图,但是当我生成热图时,数据没有被聚类。
  • 请提供一个可重现的示例,并包括聚类的输出和热图。从示例和输出中,您需要准确地向我们展示您的预期,以及您得到错误的原因。
  • 嗨,保罗,问题是我期待清晰的集群并且没有得到类似的东西,但事实证明我应该通过 pearson 或其他东西运行我的数据以生成良好的距离值。一旦我这样做了,我就会在数据中看到集群。
  • @PaulHiemstra 我已尝试回答您所有的 cmets,如果仍然没有意义,请告诉我。谢谢

标签: r cluster-analysis heatmap dendrogram hierarchical-clustering


【解决方案1】:

事实证明,我应该首先对我的数据使用某种相关性来生成一个距离矩阵。我使用 pearson 计算了矩阵上的相似度值,然后调用 heapmap 函数,它可以更轻松地对数据进行聚类。一旦我能够生成集群,我就做到了,这样它们就会在对角线上排列。以上是现在的结果。我不得不改变我在数据集上调用热图的方式,以便集群在轴上排列:

heatmap(mtscaled, Colv=T,Rowv=T, scale='none',symm = T)

【讨论】:

    猜你喜欢
    • 2012-10-26
    • 1970-01-01
    • 2020-06-28
    • 2013-11-11
    • 2015-08-12
    • 2015-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多