按照注释排序pheatmap。

6

我正在尝试使用pheatmap包制作图表。我想按照我的注释对数据进行分组,但是它们不会被分组在一起。

这是我的数据:

sub_samp <- structure(c(1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 
0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 
1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 
1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), .Dim = c(20L, 
9L), .Dimnames = list(c("GQQG", "RAPM", "RGQI", "GYNY", "SPTGGSYNX", 
"SRLPSDX", "SLXVAGTNEK", "RXVQYGTDT", "SLTXASVE", "SRXGTSGRADE", 
"QLDY", "XPRHQTYE", "SXPGTGKSA", "PAVS", "SPRXVTE", "SRDXGPNYG", 
"TGTXLE", "PEAH", "SLQGGXT", "SPSARDRVGX"), c("pt11_protected", 
"pt12_protected", "pt14_protected", "pt15_protected", "pt16_protected", 
"pt17_protected", "pt18_protected", "pt19_protected", "pt20_protected"
)))

sub_anno <- structure(list(seq_share = c("shared", "shared", "shared", "shared", 
"shared", "shared", "unshared", "unshared", "unshared", "unshared", 
"unshared", "unshared", "unshared", "unshared", "unshared", "unshared", 
"unshared", "unshared", "unshared", "unshared")), .Names = "seq_share", row.names = c("XPRHQTYE", 
"GQQG", "GYNY", "QLDY", "RGQI", "SRLPSDX", "PAVS", "PEAH", "RXVQYGTDT", 
"RAPM", "SXPGTGKSA", "SLXVAGTNEK", "SLQGGXT", "SLTXASVE", "SPRXVTE", 
"SPSARDRVGX", "SPTGGSYNX", "SRXGTSGRADE", "SRDXGPNYG", "TGTXLE"
), class = "data.frame")

我正在使用上述数据(从dput(xyz_data)中推导出)并运行以下代码来生成pheatmap。

pheatmap::pheatmap(sub_samp, annotation_row = sub_anno)

如何通过注释将数据分组在一起?
1个回答

9
为了在 pheatmap 中指定预先确定的行顺序,您应该首先关闭行聚类,然后手动排序矩阵。使用提供的数据,这非常简单直接。
# 1) reorder the matrix based in the annotation
sub_samp_ordered <- sub_samp[rownames(sub_anno), ]

# 2) plot heatmap with no row clusters
pheatmap::pheatmap(sub_samp_ordered, annotation_row = sub_anno, cluster_rows = F)

这导致结果为: enter image description here

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接