今天像往常一样,用 ComplexHeatmap
包中的 Heatmap函数画热图,本来输入是正常的
如图,C12H在左,RTF在右
代码也没啥问题
setwd("F:\\学习文件存放地址\\IOZ_实验室\\yangby\\结果文件\\all_表达矩阵\\")
library(ComplexHeatmap)
library(circlize)
#含注释_all_deseq_CH_vs_RTF.csvtargetgene
fil<-read.csv("含注释_all_deseq_CH_vs_RTF.csvtargetgene.csv")
paint_map_data<-fil
row.names(paint_map_data)<-as.vector(fil[,16]) #设置图的rowname
paint_map_data<-paint_map_data[,c(10,11,12,13,14,15)]
colnames(paint_map_data)<-c("c12h1","c12h2","c12h3","RTF1","RTF2","RTF3") #设置图的colname
Heatmap(paint_map_data[1:11,],c("blue","white")) #调用Heatmap函数展示基因表达量的热图
但是画出来,竟然是这样的?! 样本列名顺序不一致啦!
可以明显看到样本c12h3跑到了图的左边,RTF样本名称之间的顺序也发生了变化,明明是RTF1,RTF2,RTF3排列的,现在变成了RTF1,RTF3,RTF2
查看了一下Heatmap函数的参数,才知道原来这是由于对样本的列进行了聚类导致的
因为聚类,将相似的样本就放在一起了,所以样本顺序发生了变化,我们可以看到热图上方的聚类树,这就是聚类的情况
解决办法:画图的时候关掉对列样本进行聚类的功能,如下设置:
Heatmap函数中添加参数**cluster_columns=F
** 即可
Heatmap(paint_map_data[1:11,],c("blue","white"),cluster_columns=F) #调