在 pheatmap 中使用 heatmaply 树状图排序
Using heatmaply dendrogram sorting in pheatmap
有没有办法使用 heatmaply
包中使用的树状图聚类方法并将其应用于 pheatmap
包生成的热图?基本上与这里的要求相反:
当我使用 heatmaply
而不是 pheatmap
时,我通常会看到更好的数据聚类。但是,我并不总是想使用交互式绘图。 heatmaply::ggheatmap
函数对我来说不能正常工作,因为我有 col_side_colors
并且注释妨碍了树状图。它看起来很乱。所以我改用pheatmap
。
也许有人可以帮助解决我的问题。
谢谢!
library(pheatmap)
library(heatmaply)
library(seriation)
library(dendextend)
# A dataset
x <- scale(mtcars)
# Interactive heatmap
p <- heatmaply(x)
print(p)
# The dendrogram for rows
dst <- dist(x)
hc_row <- hclust(dst)
row_dend <- as.dendrogram(hc_row)
row_dend <- seriate_dendrogram(row_dend, dst, method="OLO")
# The dendrogram for columns
dst <- dist(t(x))
hc_row <- hclust(dst)
col_dend <- as.dendrogram(hc_row)
col_dend <- seriate_dendrogram(col_dend, dst, method="OLO")
col_dend <- rotate(col_dend, order = rev(labels(dst)[get_order(as.hclust(col_dend))]))
# The pheatmap with the same clustering of heatmaply
pheatmap(x, cluster_rows=as.hclust(row_dend), cluster_cols=as.hclust(col_dend))
heatmaply
的输出
和pheatmap
的输出
有没有办法使用 heatmaply
包中使用的树状图聚类方法并将其应用于 pheatmap
包生成的热图?基本上与这里的要求相反:
当我使用 heatmaply
而不是 pheatmap
时,我通常会看到更好的数据聚类。但是,我并不总是想使用交互式绘图。 heatmaply::ggheatmap
函数对我来说不能正常工作,因为我有 col_side_colors
并且注释妨碍了树状图。它看起来很乱。所以我改用pheatmap
。
也许有人可以帮助解决我的问题。 谢谢!
library(pheatmap)
library(heatmaply)
library(seriation)
library(dendextend)
# A dataset
x <- scale(mtcars)
# Interactive heatmap
p <- heatmaply(x)
print(p)
# The dendrogram for rows
dst <- dist(x)
hc_row <- hclust(dst)
row_dend <- as.dendrogram(hc_row)
row_dend <- seriate_dendrogram(row_dend, dst, method="OLO")
# The dendrogram for columns
dst <- dist(t(x))
hc_row <- hclust(dst)
col_dend <- as.dendrogram(hc_row)
col_dend <- seriate_dendrogram(col_dend, dst, method="OLO")
col_dend <- rotate(col_dend, order = rev(labels(dst)[get_order(as.hclust(col_dend))]))
# The pheatmap with the same clustering of heatmaply
pheatmap(x, cluster_rows=as.hclust(row_dend), cluster_cols=as.hclust(col_dend))
heatmaply
的输出
和pheatmap
的输出