分享

使用Excel绘制热图 - 太简单!

 yjt2004us 2018-04-12


事实上,对于大多数生物背景的朋友或者日常工作为湿实验的朋友,最实用,最简单的绘制一张热图或者直观地展示基因表达趋势的方式是使用Excel直接绘制一张热图
虽然现在已经有很多网页版的或者是本地版的工具,但是对于快速的察看一些基因的表达趋势来说,或许直接在Excel上绘制会更简单方便。
故写下这个博文,希望对有需要的朋友有一点帮助。

需要的软件

只有Excel 是必须的,版本应该在2010或者以上
可选项还有Adobe Illustractor,可用于得到矢量图

准备数据

在生信数据中,最常见的绘制热图场景,就是多个基因在多个样本中的表达量矩阵,具体如下图,第一列是基因标签,第一行是样本标签,其他格子中为基因的RPKM或者FPKM更或者其他指标

使用到的数据

绘制热图

随后整理一个简单的热图


一个比较粗糙的热图

优化

接下来,我们要优化一下,这张图直接使用了原始的表达量值,不能很好的展现基因在不同样之间的表达变换,也可能掩盖了表达量比较低或者表达量比较高的基因的表达变化。所以,一般在热图绘制中,会采用两种两种标准化方法,
1.对数转换:转换之后,可以更好的显示出低表达基因的表达变换,也可以比较不同基因之间的表达量
2.基因在不同样本中的表达量,进行正态标准化,这种标准化操作后,突出地展现了基因在不同样本中的表达变化(注意,此时不用基因之间的值没有可比性,当然这个常常并不被关注
3.基因在不同样本中的表达量,做0-1标准化,将最小值映射到0,最大值映射到1,按比例整理即可
上述第一种标准化方法和第三种标准化方法都比较简单,这里不加以说明,仅演示第二种标准化方法,其对应的公式是,具体可参考百度u是标准化后的值,X是原始值,μ是均值,δ是标准差

标准化之后的值  = (原始值 - 均值)/ 标准差


所以还是比较简单,使用Excel的两个内置函数和自动映射功能,
在单元格中输入=avergae(,手动选择一行,回车即可计算均值,


分别计算均值,和标准差
双击箭头指向的单元格右下角的点,或者点击拖住下拉

自动映射,得到所有均值
自动计算标准差,与均值的操作类似,使用的函数是=STDEV()

自动映射,得到每个基因的标准差
随后,可以直接计算标准化后的值,按照正态标准化的公式,如下,注意添加的美元符号,输入完公式之后,回车即可完成一个单元格的计算

基于正态标准化的公式,进行计算,得到标准化后的值
由于加了美元符号,此处可以直接进行行和列的自动映射,点击单元格的右下角,向右拖拽,选择了行,再向下进行整行映射


一个单元格映射到一行,一行映射到多行
对于得到的标准化后的矩阵,复制列名 和 行名,即可得到标准化后的热图,可以明显看到,基因在不同样本中的表达变化趋势


标准化之前的热图 和 标准化之后的热图

到此,相对能看的热图基本完成,但是热图太丑,所以我们需要进行美化

  1. 边框太丑,去掉
  2. 标签文字居中会好看点,调整
  3. 单元格中标准化之后的数值太丑,不好看,去掉

进一步美化

以上,第一点直接进项颜色填充,填充为白色,第二点文字居中,搞定,第三点比较麻烦,所以这里直接演示最后一点


掩盖数字
如此,即可得到这样的热图

完成了,可直接复制黏贴到报告文档
至此,我们已经完成了常见的热图绘制和整理,那么问题来了,

得到矢量图

如何得到矢量图,毕竟,清晰度很关键啊,或许要放到论文里面…
这个操作就比较简单了,
1.选择Excel中对应的热图,复制(或者鼠标右键复制,或者键盘Ctrl+C)
2.打开Adobe Illustractor,黏贴(或者鼠标右键黏贴,或者键盘Ctrl+V)

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多