教你画一个掰弯的热图(Heatmap),展示更多的基因表达量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了教你画一个掰弯的热图(Heatmap),展示更多的基因表达量相关的知识,希望对你有一定的参考价值。

参考技术A

难道,这不像孔雀开屏吗?

组学数据已经泛滥,但是信息的挖掘仍任重道远。顺手的工具,可以节省使用者尽可能多的时间,或者将看起来很复杂,很难以完成的事情,变得非常简单。
图形的掰弯 ,这个是我很久以前已经实现的功能,当然这个功能的灵感(而不是实现逻辑)来至《The Grammer of Graphics》(这本书也是R包ggplot2的实现基础)。图形的掰弯,正如本公众号早前的推文介绍,事实是 笛卡尔坐标系像极坐标系转换 的过程。坐标的转换是一个事情,而图形的变换是另一个事情,比如矩形要办成中空的扇形等。
热图,我已经不止一次谈及,如果早前有关注 生信札记 公众号的朋友,那么应该知道,TBtools有两个热图功能, Amazing Heatmap Fancy Heatmap Browser ,各有所长。 一般用过的人,大部分时候都会觉得真的是Amazing 。后者目前似乎用的人不多,不过我们课题组有一些相关成果会应用上。或许有时候,过于非常规的出图逻辑(往往也是更优秀的发表级图片)并不能为多数人所接受。所以没有人用,也是意料之内。
优秀的人,总是会突破已有局限的。
我写Amazing Heatmap在先,而后续才实现了掰弯逻辑。掰弯逻辑的实现,本身是为了Circos图工具的实现。但是我并没有想到,会有TBtools用户在我之前挖掘出了 掰弯的热图 的使用逻辑。
掰弯的热图,目前已可在数个已发表工作中见到。往往,使用这一功能的目的,可能是尽可能展示更多的基因。这个需求其实很容易产生。有时候,我们展示十几个基因,那么常规的矩形热图效果就很不错;但是,当基因数目上升到数十上百,那么可能图版就不好放下。此时,圆环状的优势就会体现出来。

首先,应该升级TBtools到最新版本,然后,还是打开 Amazing Heatmap 这个工具

第一步是,大概调整一些文字与图形的距离,主要原因是文字总归是文字,使用的空间与我们图形元件使用的空间不同,所以距离需要自己多试试..., 我同时也调整了树的宽度

首先是一个提示操作,TBtools的所有图片是交互的,原本图是这样的

在图形外的空白处,鼠标右击两次,可显示隐藏元件

摁住Shift键不放,鼠标右键TilePanel,此时会出现菜单,选择

如此,即可合并两个Panel(用于后续统一转换坐标系)
接下来的操作就比较简单,对合并后的Panel,鼠标右键,调出菜单,

这些参数,可以依据自己需要,不断细调。具体就看个人需要了
比如你看都不想看到一个gap

其实,如果你确实花时间去了解一个工具,那么并不会有那么多使用问题。如果有,那么一般是你想要 使用别人甚至是开发者的时间 来实现你的梦想。既然如此,其实你需要做的是考虑支付一定额度的酬劳。
真正做事情的,往往遇到问题,会自己找到解决办法。比如这位朋友,自己搞定一个图,最后整到微信头像上

近日,事情挺多的。或许生物学问题值得做的事情已经很多了,写工具已经放在第二甚至第三位。正如我们所看到的,过得好的,更多的还是做生物学问题的,而不是写工具的。
当然,写工具,本身也是为了解决生物学问题,只是为谁解决生物学问题,这是一个需要问自己的问题。

如何缩放热图的单元格高度和宽度?

我有一个641 * 976数据点的矩阵。当我在R中应用热图函数时,结果是二次热图。我希望Heatmap与我的输入矩阵(平方单元格)具有相同的比例。

heatmap(as.matrix(Data),scale =“none”,col = my_palette,breaks = col_breaks,main =“发射比热图”,Rowv = NA,Colv = NA)

我可以用mtcars数据集向你展示我的情况。该数据集的尺寸为32 * 11。当您生成mtcars数据集的热图时,您将获得二次热图。即使输入矩阵是矩形的。

dim(mtcars)
heatmap(as.matrix(mtcars), scale = "none", Rowv = NA, Colv = NA)

我希望热图也是矩形的。这意味着热图的每个单元格都是二次而不是矩形。在mtcars数据集的热图中,很明显不是这种情况。

我遇到的另一个问题是热图的方向。当我们检查数据集时,我们看到行“Mazda RX4”和列“mpg”的单元格位于左上角。

View(mtcars)

但是在热图中,左上角的单元格包含“Volvo 142E”行和“mpg”列的信息。如何调整热图,使方向与输入矩阵中的方向完全相同。在左上角的含义中,单元格包含“Mazda RX4”行和“mpg”列的信息。

答案

同时我找到了解决问题的方法。我切换到了heatmap.2功能。这允许我使用margin命令设计Heatmat的长度和宽度。

以上是关于教你画一个掰弯的热图(Heatmap),展示更多的基因表达量的主要内容,如果未能解决你的问题,请参考以下文章

明星 | 身高170cm,把女生掰弯的Ruby Rose竟然只有44公斤!

珍藏 史上最全热图绘制工具及操作流程(一)

R语言热力图综合教程-heatmapd3heatmap和ComplexHeatmap

如何缩放热图的单元格高度和宽度?

热图(heatmap)介绍

R包pheatmap:用参数一步步详细绘制热图