如何在Pheatmap包中设置热图的特定列顺序?
解决Pheatmap自定义列顺序的问题
要实现自定义列顺序,需要两步操作:确保数据集列顺序匹配你的自定义列表,同时禁用列聚类。具体步骤如下:
- 修正自定义列名的格式
你当前用list()定义的my_col是列表类型,而列索引需要的是字符向量,改成用c()创建:
my_col <- c("AL703GG", "AO641M", "CL374FF", "AO643DD", "CO438LL", "CE480L", "AE608H", "SM11", "AK83", "NGR", "AK58", "AK75", "BL225C", "CO431A", "H1", "AL703H", "1A42", "8A52", "T073", "4B41", "7B22")
- 重新排序数据集的列
把mydata2的列按照my_col的顺序重新排列,确保后续绘图时列顺序正确:
mydata2_ordered <- mydata2[, my_col]
注意:要保证
my_col中的所有元素都是mydata2的有效列名,否则会出现索引错误。
- 调用Pheatmap并禁用列聚类
使用排序后的数据集绘图,同时设置cluster_cols = FALSE,这样pheatmap就不会自动对列进行聚类,保持你定义的顺序:
pheatmap(mydata2_ordered, display_numbers = FALSE, annotation_row = my_rows, cluster_rows = FALSE, cluster_cols = FALSE)
核心要点是:必须禁用列聚类(cluster_cols = FALSE),否则pheatmap的自动聚类会覆盖你的自定义列顺序;同时要先确保数据集的列顺序和你的自定义列表完全匹配。
内容的提问来源于stack exchange,提问作者Iacopo Passeri
相关产品推荐
相关产品推荐

