【问题标题】:r heatmap.2: preventing some matrix rows from manipulation in dendrogramr heatmap.2:防止某些矩阵行在树状图中被操纵
【发布时间】:2018-01-24 03:53:48
【问题描述】:

我使用多个变量分析多个观察结果的某些数据,并通过热图将它们可视化,通过聚类和树状图构建执行行和列重新排列。我使用 R 的 gplots 库中的 heatmap.2() 函数。然而,某些观察行(通常是最后几行)将从分析中排除,因为它们是一些部分总和,但它们需要包含在树状图中的位置。那就是我需要在不考虑这些行进行缩放等的情况下对数据执行聚类,但接下来将它们包含在具有保守配色方案的最后位置。这是数据和操作的最小示例

# load library and create some data
library(gplots)
my_palette <- colorRampPalette(c("red", "yellow", "green"))(n = 299)
df<-read.csv(text="experiment,var1,var2
1,5,4
2,3,2
3,2.3,1
4,3,4
sum1,3,5
sum2,4,5")

# arrange data so that it has the structure of datamatrix with original names
rname<-df[,1]
df<-df[,-1]
rownames(df)<-rname
df.matr<-data.matrix(df)

接下来,我仅通过观察(行)和自定义调色板构建具有聚类的树状图。缩放是在列上执行的。

heatmap.2(df.matr,cellnote=df.matr,scale="column",col=my_palette,trace="none",density.info="none",notecol="black",dendrogram="row",Colv="NA")

结果如下:

可以看出,最后一行sum1sum2参与了聚类重排;据说它们还用于计算数据缩放的平均值和偏差。由于某些原因,这可能是不可取的(这些行可能已经是部分总和,或者来自其他总体);但是,它们需要包含在最终的树状图中并在相同的基础上进行可视化。我可以在分析之前删除这些行,但是如何将它们重新插入原位?或者也许包本身有一些内置的解决方案?

【问题讨论】:

    标签: r cluster-analysis heatmap dendrogram


    【解决方案1】:

    一种可能的解决方案是使用包 pheatmap。我会删除行sum1sum2,构建一个树状图,然后添加sum1sum2 作为热图顶部的注释:heatmap 您还可以更改注释栏的颜色以匹配在热图。

    【讨论】:

      猜你喜欢
      • 2014-03-19
      • 2014-01-29
      • 2014-03-25
      • 2014-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多