我想回答我自己的问题并希望得到反馈。我用的是kmeans_k=30
在 pheatmap 中,获得了 29 个聚类,这些聚类仍然能够保留我之前对 90 个观测值进行聚类的情况。从那里我获得了各自簇中的基因。我从观测值两侧的热图中选择了前 5 个簇,这些簇仍然可以生成我所需的热图,因为它们是具有高 SD 的簇。由于在我的 pheatmap 中,我有scale =“row”并保持行树状图和列树状图打开,所以即使现在我也不想更改它们。因此,当我现在绘制这 31 个基因(观察值)时,实际上它们进一步改进了我的行聚类,并按照我想要的更清晰的方式将它们完全划分为 2 组。 kemans 和新热图的代码
km 表示 30
obj<-pheatmap(df.90,scale="row",clustering_distance_cols = "correlation",show_rownames= T,show_colnames=T,color=col,annotation=batch.annotation,cluster_col=T,fontsize_row = 6,fontsize_col = 7,clustering_method = "ward.D2",border_color = NA,cellwidth = NA,cellheight = NA,kmeans_k = 30)
检索簇并提取观察结果/基因
obj$kmeans$cluster
获取顶部聚类并用热图绘制它们
pheatmap(mydata[rownames(df.31),],scale="row",clustering_distance_cols = "correlation",show_rownames= T,show_colnames=T,color=col,annotation=batch.annotation,cluster_col=T,fontsize_row = 8,fontsize_col = 8,clustering_method = "ward.D2",border_color = NA,)
大家觉得这个方法怎么样?这虽然不像我想要的那样,但我认为这也没有错。如果有人可以提供更好的方法或途径,或者他们认为这也不正确,我希望得到反馈。谢谢