r heatmap.2:防止在树状图中操纵某些矩阵行
r heatmap.2: preventing some matrix rows from manipulation in dendrogram
我使用多个变量分析多个观察的某些数据,并通过热图将它们可视化,通过聚类和树状图构建执行行和列重排。我使用 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")
结果如下:
可以看出,最后一行sum1
和sum2
参与了聚类重排;据推测,它们还用于计算数据缩放的平均值和偏差。由于某些原因,这可能是不可取的(这些行可能已经是部分总和,或者来自其他人群);然而,它们需要包含在最终树状图中的相同位置并可视化。我可以在分析之前删除这些行,但如何将它们插入原位?或者也许包本身有一些内置的解决方案?
一个可能的解决方案是使用包 pheatmap。我会删除行 sum1
和 sum2
,构建一个树状图,然后添加 sum1
和 sum2
作为热图顶部的注释:heatmap 您也可以更改注释栏的颜色与热图中使用的颜色相匹配。
我使用多个变量分析多个观察的某些数据,并通过热图将它们可视化,通过聚类和树状图构建执行行和列重排。我使用 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")
结果如下:
可以看出,最后一行sum1
和sum2
参与了聚类重排;据推测,它们还用于计算数据缩放的平均值和偏差。由于某些原因,这可能是不可取的(这些行可能已经是部分总和,或者来自其他人群);然而,它们需要包含在最终树状图中的相同位置并可视化。我可以在分析之前删除这些行,但如何将它们插入原位?或者也许包本身有一些内置的解决方案?
一个可能的解决方案是使用包 pheatmap。我会删除行 sum1
和 sum2
,构建一个树状图,然后添加 sum1
和 sum2
作为热图顶部的注释:heatmap 您也可以更改注释栏的颜色与热图中使用的颜色相匹配。