FancyHeatmap - 基因表达量探索浏览器支持SVG输入
2019-10-08 本文已影响0人
生信石头
写在前面
很久以前,我们推出《热图,还只会用方格子?@所有人,论文热图升阶的时候到了!》这一功能。目前已有一定的用户量。
这种表达展示方式最大的好处是,为大脑提供降维解读,直观查看基因在不同组织或者不同时期的表达量。【注:具体降维能力基于用户使用的文件】。
前述,这一功能确实已经有不少用户,但相信多数人已经发现,这一工具:
- 只接受TGA格式的图像文件(无损),为位图,无法较好地支持随意的缩小放大,不够自由
- 即使图片保存在PDF或者SVG等矢量图格式,那么结果并没有改变,热图仍然为位图(png),当然,事实上足够清晰,可以用于发表。
但,总的来说,后期图形的编辑能力丢失(我们提供的准备TGA文件的流程),所以,支持矢量图导入 / 导出是我们相对关心的事情之一。这也是我早已有的想法,将svg转换为JIGplot元件,只要做到这一点,那么其实后期可以做的事情很多,甚至我们可以给他增加交互动作,比如点击弹窗,鼠标悬浮显示信息。
同时支持SVG和TGA图像的FancyHeatmap
更新后的版本,在同一个输入界面,如果是输入TGA,那么一切表现与之前完全相同。但是如果你使用了.svg文件作为输入,那么TBtools会先将SVG文件转换为JIGplot对象,保存于内存。
这种做法的好处在于,后续的响应更快,尤其是在切换不同基因查看表达量时。
此外,一旦我们将图形元件化之后,我们得到了另一个操作的灵活性,可以增加一些交互,如下:
当我们鼠标移动到某一个特定组织时,悬停,那么会弹出具体的基因和表达量数值。
当然,这种情况下,无论如何缩放,都不会有TGA输入时的尴尬(虽然最终保存位图时没有太大问题,不过查看时还是不够爽)。【左侧SVG导入导出,右侧TGA导入SVG导出】
当然,其实最大的好处,或许是保存成PDF或者svg时,是完全的矢量图。【左侧TGA导入SVG导出,右侧SVG导入导出】
得到这个结果,那么我们可以做更多的事情,比如修改文字,旋转,倾斜...后期需要换个方式摆图...就不用修改之前的图片,等等....
写在最后
积跬步,以致千里。
I'm a slow walker, but I never walk back. 事实上,我清楚我自己的智商,我也看到很多人的智商,我们都不是聪明人。但,只要你持续地积累,那么就会有意想不到的结果。