Emmm, 今天的主图,
写在前面
博士毕业论文中,使用的样品包括:
- 不同的类型 / 或者说不同的组织
- 不同的时间 / 或者说时间序列 所以,是一个多X多的设计。对于这类实验设计所产生的数据,往往会有较高的分析难度。在分析上,现在多数人直接使用的是共表达网络分析,最常用的莫过于 WGCNA 。而在可视化上,单单就基因表达热图绘制上,没有较好的形式,尤其是在 多基因X多组织X多时期 的数据上。
TBtools 中多种热图可视化方式
TBtools中,我们提供过数种热图的展示方式,
第一种,常规的热图,适用于 少基因X少样品 的数据
这种热图,四四方方,其实在TBtools里面,可以有不少变化,比如不要用颜色对应数值,直接用圈的大小来对应数值
当然还有其他,比如三角形的,或者前述我们推送过的对角线热图的热图组合方式。无论怎么可视化,这类热图能展示的表达矩阵,仍然很少。所以在基因数达到数十或者上百之后,TBtools中有提供了掰弯的热图或者说,环形热图。
第二种,环形的热图,适用于 多基因X少样品 的数据
前前后后,我在公众号上推 环形热图 有超过一年时间。目前市面上,我自认为暂时就TBtools一个工具,也是第一个,是以热图工具为中心开发的环形热图,如果说之前已经有,那么那些都是以进化树注释为中心开发的。进化树注释功能,TBtools也有,对应的也有简单版本的热图Track【注:功能明显有限】。如果说,还有其他工具可以做了,那么他们都只是追随者。环形热图,最大的好处,就是可以容纳比较多的基因,同时基本不占版面。 大体如下,
或者,换个配色可能好看点
第三种,卡通热图,适用于 少基因X多样品 的数据
虽然掰弯的热图,其实把基因和样品做一个转置【注:TBtools的热图功能内置矩阵转置功能,也有专门的表格转置功能】,就可以处理 少基因X多样品 的情况。但是,当样品很多,或者比较复杂时。我们人类的直观视觉可以帮我们更好的分析数据。为此,在多年前,有一个浏览器框架叫eFP Browser,针对芯片数据开发。在前述,TBtools推出了基于FPKM的,支持矢量图导入导出的FancyHeatmap。从比较多的方面有所超越。大体如下:
这种热图,最适合的是 可视化某个基因在多组织多时期的表达变化。
CubicHeatMap 可视化 多基因X多组织X多时期
前几天跟朋友在讨论的课题的时候【注:大家都是做 植物发育生物学 的】,讨论到几年前的一篇Ncomm文章,其中有图如下:
一个非常不错的可视化方式,虽然也带有缺陷【注:只有一个基因的表达量可以为完全展示】。不过这个缺点不影响他的实用性,尤其是我们一系列共表达量基因的时候。很不幸,这个工具,似乎仍然是一个浏览器框架,Tomato Expression Altas。事实上,我也不知道这个浏览器框架到底有没有另外的人用过,不过我是不会用的。 想想很久没有Coding,手和脑子都会生疏。于是,一般看娃,干脆就一边实现这个热图功能。结果图如下:
Emmm.. 忽略配色,毕竟不一定能拿到原始的配色方案。这张图片,包括了 16个基因,11个组织和16个时期。
如何实现?
前述,在公众号推文中已经提及,JIGplot 引擎中有类似图层的概念,也就是 SubPanel。虽然 CubicHeatMap 看起来是立方体。不过我们完全可以拆解。
JIGplot 除了掰弯,其实还有一个功能切变。后者的实现不是很健全,不过处理 Rectangle 完全没问题。直接画三个正常的热图,然后分别对 UpPanel 和 RightPanel 做 Shear 即可。
如何使用 CubicHeatMap ?
虽然是顺手写,不过还是打成GUI,方便自己后续使用【毕竟Java码不是R码,随取随用 】。于是,TBtools又增加了一个功能。
打开之后,可以看到,只有两个输入:
1. 基因表达矩阵,这个比较简单,跟其他热图完全一样
2. 样品分组信息,这个说起来复杂,其实也简单。一共三列: 第一列,样品名字,即表达矩阵对应的样品名字【注:没有格式和内容要求,对应起来就行】 第二列,样品的第一维度分类,比如 属于某个组织 第三列,样品的第二维度分类,比如 处于某个时期 如下:
两个文件放进去,自己设置下喜欢的配色,随后点击 Start 即可
于是得到
当然,我们不能忘了,JIGplot 是可交互的。
礼物?
Emmm... 突然想起来,TBtools 的 Logo,其实就像一个热图。
既然有了CubicHeatMap, 那么我们完全可以做一组数据,就画 TBtools 的 Logo