彩!这般漂亮⼜个性的热图怎么画?
之前,在⼀篇⽂献中看到下图这样的⼀个组合图,漂亮⼜个性,给⼈⽿⽬⼀新的感觉。除了展⽰细胞通讯,我觉得也可推⼴到常规的基因、蛋⽩、微⽣物的互作关系的展⽰。
(Journal of the American Society of Nephrology, 2019)
这个组合热图在展⽰受体配体对(receptor-ligand Pairs)在不同肾脏细胞中表达情况的同时,也展⽰了细胞间的通讯通路(intercellular communication pathways)。例如,图中展⽰了已知 (Bmp6,Pdgfd和 Spp1) 和新发现
(Sema3c,Sema6a,Gpc和Slit3) 的配体信号传递关系。
那么这个图是如何绘制的呢?作者在原⽂提到是⽤gplots包的heatmap.2函数进⾏热图绘制,但我的印象中heatmap.2函数并不能绘制这样的组合图,通过放⼤观察连接线的结点,我发现有些“结点”并没有垂直对齐(如下),推测作者应该是先⽤heatmap.2函数绘制热图,之后⽤Ai、PS之类的软件后期组合⽽成的。
然⽽仔细⼀想,绘制这样的组合图还有⼀个难题:两个热图的数据范围很难保持⼀致,即两个热图的颜⾊条图例不⼀样,如何让两个热图共⽤⼀个图例呢?
对于⼀般的热图⼯具,⽐如R语⾔的pheatmap包,也许只能将两个热图的数据先整合在⼀起画成⼀个
热图,后期再⽤Ai、Ps拆分成两个。这种办法⾮常⿇烦,就没有可以⾃定义热图颜⾊条范围的⼯具吗?
当然有,下⾯就为⼤家演⽰如何⽤OmicShare的动态热图⼯具绘制这样的热图。
数据准备
⾸先,准备两个热图的表达量数据,为了实现与⽂章相似的效果,这⾥使⽤《单细胞转录组学习笔记之Seurat
3.0(⼀)》⼀⽂章的范例数据,表格中的数值为相应基因在不同细胞亚的平均表达量(LogNormalized),如下。表1. 热图1的表达量数据
表2. 热图2的表达量数据
最后把Excel中整理好的⽂件另存为“制表符分隔的”txt⽂件,⽤于接下来的热图绘制。OmicShare和⼏乎所有的在线⽣信⼯具⼀样不⽀持Excel格式,另外表格中不要出现中⽂、空格、特殊符号⽐如、?、
*、[ ]、$ 等。
热图准备
打开动态热图⼯具的页⾯,点选择⽂件按钮,先上传第⼀个热图的数据,然后点提交按钮,分组⽂件这⾥空着即可。然后到我的任务页⾯可以查看任务状态,⼤约10秒左右刷新任务状态即可,然后点跳转查看。
任务完成后,点“齿轮”按钮对热图进⾏个性化设置,这⾥将归⼀化⽅式设为“⾏”,将聚类设为“⽆”。
在⽅格修改选项下,可勾选画出⽅格边界,并将颜⾊设为⽩⾊,如下。
满意后,保存成svg格式的⽮量图,然后⽤同样的⽅法,上传另⼀个热图的数据,参数设置可保持⼀致。需要注意的是,为了使两个热图的颜⾊条完全相同,可通过颜⾊修改选项,可指定热图的颜⾊条范围(⼀般以颜⾊条数值范围较⼤的热图为基准)。
将两个热图的颜⾊条进⾏统⼀之后,保存为svg格式的⽮量图,⽅法如下。好看的留言
热图组合
拿到两个热图之后,接下来需要在Ai(Adobe illustrator)中做后⾯的组合操作。当然,如果⼤家喜欢这样的图表,可以在⽂章下⾯留⾔:“彩!”我们可以考虑在OmicShare推出类似的组合热图⼯具,这样只需上传两个热图和基因关系对数据即可完成绘制!
⾔归正传,先⽤Ai打开⼀张热图,然后⽤画板⼯具调整画板的宽度,使画板的宽度适合并排放⼊两个热图,如下。
然后,通过⽂件菜单置⼊另⼀个热图,⽅法如下,为了⽅便管理图层,也可将这个热图置⼊到新的图层中。
发布评论