美文网首页基因组数据绘图R语言R语言
热图-木秀于林,风必摧之

热图-木秀于林,风必摧之

作者: Juan_NF | 来源:发表于2019-04-05 17:12 被阅读316次
R包依据input产生output,热图亦如是。我们要清楚地了解自己的目的,才能有望基于pheatmap生成自己想要的结果。很大或很小的数值都会影响热图的效果,鹤立鸡群、木秀于林,会影响对其他大多数数据的展示,对比就不那么明显了;毕竟,我们要的不是一枝独秀,而是万紫千红。
数据放在这里:

以下是我要画的热图
image.png
但实际,相同数据,我画出来,它长这样
TF_matrix=t(scale(t(TF_matrix)))
annotation_col = data.frame(CellType = factor(rep(c("NSCLC", "SCLC"), c(68,37))))
######nrDEG这里没展示,大家可用其他函数生成105个不同的名称,否则会annotation_col这里会报错;
rownames(annotation_col)<-colnames(nrDEG)
pheatmap(TF_matrix,annotation_col=annotation_col,labels_col = '',cluster_cols = FALSE)
  • 注意scale函数的两个参数(center、scale)均以列为单位进行,要了解自己的数据,清楚哪个维度是需要进行归一化的,这里是我画热图时对数据处理时经常用到的函数;
  • center是指每列的元素减去该列的均值,在scale函数中,center是默认执行的;
  • scale是指在center功能执行后,每列元素除以其标准差;在scale函数中,scale也是默认执行的;


    Rplot_1.png
之前我觉得,图画出来就好了
但其实
合理性、对比鲜明、美观这些因素,如果只是捎带手的事儿,为什么不做好呢?
  • 对比不鲜明,正常来说,正负值的对比应是鲜明的,由于单个较大或较小值的存在会造成其他数值的热图颜色对比不鲜明所以,一般会有阈值的设定,阈值一般是2和-2,3和-3这样对称着来的;
  • annotation_col那里是连成一片的,其实是,行太多,画布大小的问题,所以直接出的图各列之间是没有边界的;
  • 颜色设置也很重要,指定了颜色条中间的颜色;这着实是一门大学问,我没找到文章里的颜色的名字,表示还是放弃了;
略微改良以后,出图如下:
TF_matrix=t(scale(t(TF_matrix)))
TF_matrix[TF_matrix>2]=2
TF_matrix[TF_matrix< -2] = -2
annotation_col = data.frame(CellType = factor(rep(c("NSCLC", "SCLC"), c(68,37))))
rownames(annotation_col)<-colnames(nrDEG)
pheatmap(TF_matrix,annotation_col=annotation_col,labels_col = '',cluster_cols = FALSE, cellwidth = 3, cellheight = 15,filename = 'test.png')
bk = unique(c(seq(-2,2, length=100)))
pheatmap(TF_matrix,annotation_col=annotation_col,labels_col = '',breaks=bk,color = colorRampPalette(c("navy", "white", "firebrick3"))(100),cluster_cols = FALSE, cellwidth = 3, cellheight = 15,filename = 'test.png')
这里解释下以上用到的参数(R里的pheatmap这里的参数太多,一一解释也没有必要):
  • annotation_col 指对列的注释,是我们的样本信息来的,要求的格式是数据框;
  • breaks 覆盖数据中的值范围的数字序列(这里是用seq从-2到2生成了100个数字),是一个比颜色矢量长的元素。 用于将值映射到颜色。
  • col 颜色设置,这里colorRampPlatte生成了100个颜色,breaks中的数值与这里的颜色进行映射,中间的颜色设置为‘white’,使图中的对比更加鲜明;
  • labels_col 指是否标注列名
  • cluster_cols 只是否对列进行聚类
  • cellwidth 单位格子的宽度设置
  • cellheight 单位格子的高度设置
  • filename 不再直接于plots处出图,而是以另外的格式对图进行存储
test.png
0这里很好

相关文章

网友评论

    本文标题:热图-木秀于林,风必摧之

    本文链接:https://www.haomeiwen.com/subject/djfkiqtx.html