首页 > 科研教程 > 热图看不懂、做不来?学完这篇就会了
2020
02-24

热图看不懂、做不来?学完这篇就会了

转载请注明:解螺旋·临床医生科研成长平台

如果你的研究要带上生信,总得了解一下热图,这是最常用的一种数据表现手法了,号称入门必备技术。尤其多用于展示各种基因或RNA在不同样本中的表达,观察其表达模式。但一堆堆的色块让人眼花缭乱,背后的分析方法更让人不知从何下手。今天我们先来初步探一探门道。

热图的解读

一幅典型的热图如下,最显眼的是中间像浴室地砖一样的小色块铺成的一片板子,那就是热图本身。本质上它是表现一个数值矩阵,图上每一个小方格都是一个数值,按一条预设好的色彩变化尺(称为色键,Color Key),来给每个数值分配颜色,虽然看起来眼花,但道理却很简单。这幅图就是24个样本(列)中,30类基因(行)的表达情况。

但不同基因在不同样本中的表达量,可能会跨越好几个数量级,这样就会把色键分得很细,再让人分辨简直是测色盲,所以通常会对表达量取对数,或取Z-score,这样色键的范围一般就在个位数内变化。(即便如此,我还是觉得在测色盲)

Nucleic Acids Res (2015) 43 (W1): W566-W570.

上面两条色彩稍微简单的横条,是根据实验分组,用颜色标出组别。两个横条表示两种分组方式,也就是两个变量。就这幅图来说,第一行的黄色表示正常组织,紫色表示肿瘤组织;第二行的蓝绿色表示乳腺,红色表示前列腺。

图外边那些细细的线条,就是聚类分析的树形图。这树形图就像咱毕业论文的目录,一级目录下有好几个二级目录,二级之下又有好几个三级目录,依次类推。当然是越靠下游的子目录中的个体关系越近,最先聚为一类,之后小类与小类又聚为一个大类。而且你会发现,有些节点走了很远才跟别人聚成一类,有些节点没走多远就聚了,所以这些支线的长短,就代表了距离。

不过分组和聚类树形图不一定会出现,根据研究需要决定是否加上。

高通量测序得来的数据,通常比较磅礡,这时候生成的热图,每个方格就会很小,在一页杂志可以印刷的范围里,你可能连基因的名字都看不清,更别说分辨一条细长的小方格上的颜色,来判断它处在色键上的哪个位置。

这时就可以用一些处理技巧,比如上面那幅图,研究纳入了54675个基因,如果都画出来,这图就会很长,色块也会很密。所以它先通过K均值聚类算法,把这些基因聚成30类。

但更常见的情况,是诚实地把那几万个基因、几千个样本全都画出来,比如这幅来自安德森癌症研究所的热图,其数据量就无比恢宏,导致这图看起来像村姑的小碎花头巾:

Nat Commun. 2014 May 29;5:3887.

于是他们在自己的官网上做了个交互版,在这幅Figure的图注中加上这么一句:

点那个链接找到交互版,就可以把图片放大来看。而且鼠标悬停在小方格上,就能显示相应数据点的详细信息,完美实现数据⇋图像的交互。

不过我们也一介草民,单位的官网上不一定会给咱预留这个位置,想这样玩的,还得自己找个网络空间。但至少咱们可以先解决画一幅静态图的问题啊~

一幅热图的诞生

绘制热图,最常用的是R语言,当然也能用GraphPad Prism做,回复“单元课03”可得详细教程。但如果你的数据量不是特别大的话,还是有很多不需要敲代码的工具可以选择。比如在线工具ClustVis (http://biit.cs.ut.ee/clustvis/),它就是把R语言需要用到的几个包都整合到后台,做成了不用敲代码的友好界面,但数据量大时还是容易卡顿。

另一个不太卡的在线工具叫Morpheus (https://software.broadinstitute.org/morpheus/),博大研究所开发的。还有桌面软件HemI (http://hemi.biocuckoo.org/),华中科技大学开发的。三者都是免费又好用的神器,功能上大同小异。

下面以Morpheus为例来演示热图的制作吧。界面清爽,就在中间那个对话框里上传数据文件:

它需要的数据格式如下,绿色部分是必须的,红色的是分组信息,可以根据研究需要进行增删:

呃,这示例图其实来自ClustVis,都说了大同小异嘛。

这是breastCancerNKI公共数据库,就用它做示范吧。上传之后,点选第一个数值单元格,就可区分哪些是数值,哪些是标签和注释:

点OK,一幅主图就出来了。

接下来就是设置排版,包括给数值区域换个的颜色、设置标签和注释的显示方式等等。

点上方主菜单的View→Options可设置数值区的颜色,还有网格线粗细、格子大小等各种细节:

在某个分组标签上点右键,就可在弹出菜单中选择它的显示方式,包括选择文字还是颜色来标识,改变颜色等等。左键单击一个标签,还可以按标签升序或降序排列。

设完之后,需要做进一步分析的话,就在Tools菜单中选择各种分析算法:

最常用的还是层次聚类分析(Hierarchical Clustering),点开之后在对话框中设置各种参数。这里,样品间距离算法选用欧式距离,类间距离选用类平均算法。

最后得到的图就是这个样子:

看起来好像漏掉什么。。。色键在哪里?

没关系,导出图片时就有了。导出时,可选择png格式(低品质),或svg格式(推荐,矢量图,可在Adobe Illustrator中进行后期排版)。

还可选择save session保存当前节点,得到一个json文件,下回可从当前状态继续修改。

是不是很Easy~


最后编辑:
作者:萌小白
一个热爱网络的青年!

发布评论

表情