欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

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

最编程 2024-02-10 12:44:25
...

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

写在前面

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

工具的使用

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


然后输入数据,我直接用一个好基友的数据(屏蔽了样品和基因名字),

于是得到下图,

恩,基因数太多,一般可以缩小文字,当然,更多的时候,是调整图片的大小,同时也调一下配色,得到下图

很明显,此时图片太长。

掰弯这个热图和聚类树

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


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


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


可以看出这个图片是之后包含几个Panel,如聚类树的Panel,和热力图矩形的Panel,大体了解了Panel的位置之后,鼠标右击两次,恢复隐藏模式
开始掰弯热图
以下关键操作,
键盘摁住Shift键不放手,鼠标左键分别单击热图的TilePanel,和TreePanel,大概是下述两个位置。这样就同时选择了两个Panel,

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



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



随后在弹出菜单中,设置自己需要的极坐标的参数,

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



只是,这个有什么用吗?
当然,可能不要忘了,Amazing HeatMaps,是可以自定义树结构的。

一些无关紧要的事情。

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


比如,我并没有写这个教程,但是看到朋友圈,别人自己自然就可以使用TBtools绘制出来

很多时候,完成一件事情,使用一个工具,达成一个目的,需要的或许是解决问题的思维,而不是问到的就是学会的

写在后面

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