前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >FancyHeatmap,支持输出嵌入网站了!

FancyHeatmap,支持输出嵌入网站了!

作者头像
王诗翔呀
发布2020-07-06 17:48:05
5840
发布2020-07-06 17:48:05
举报
文章被收录于专栏:优雅R优雅R

开篇主题,FancyHeatmap支持HTML输出,可嵌入已有数据库浏览器框架!

写在前面

FancyHeatmap,是我给TBtools中“卡通式热图”命的名字。前述,在公众号上,我已经推出了这个功能相关的新手教程。在后续,我也发现有不少人已经应用:

  1. 在小麦上
  2. 在拟南芥上
  3. 在花生上
  4. 在小米上
  5. 在荔枝上 ....【注:均尚未发表,故不截图....】

用的人确实还是不会太少的。

为啥写FancyHeatmap

这是一种更为直观的表达量探索工具。相比于常规的热图,“卡通式热图”更符合人的直觉。当然,看起来也有趣一点。事实上,这个功能是“芯片盛行年代”时,就已经有人提出来了。他们发表了“eFP browser”文章。这是一个数据库框架,主要是方便别人搭建这类“卡通式热图”的网页数据库。然而...说实话,我第一次尝试部署作者提供的框架式,花了不只三天。主要问题是:

  1. 需要对网站部署和linux运维有基本认知,如果是要搭建数据库,那么这个觉悟是有的;如果只是想使用卡通式热图探索下表达量的多数人,那么花力气在数据库搭建上,确实得不偿失。
  2. 框架的依赖复杂,而且都是旧版本(我最后使用docker centOS 6 ...以及一些麻烦的调整才搞定的)
  3. MySQL~~~
  4. 原本是用于芯片的,对于FPKM数值,需要修改脚本 ....

综上,让我再碰这个数据库框架是不可能的。于是有一天,我开发JIGplot的过程中,灵机一动,实现一个ImageEle用于加载图片,不就行了吗?这个应该很简单啊。 很快,实现了FancyHeatmap第一版,需要的是三个文件:

  1. ColorCode2Sample.tab
  2. GeneExp.tab
  3. Image.tga

【注:可以看到,放大之后,图片失真】

非常简单。我之前也写过详细的教程在公众号《生信札记》上。而这个版本【注:第一版】也就是上述其他人所使用的版本。

支持SVG输入,得到矢量图输出和更多的交互式分析

第一版的FancyHeatmap,虽然比较多人使用。但是他存在一个致命的缺点:使用TGA格式的图片作为输入。TGA当然好,只是毕竟位图。图片输出的分辨率已经确定,带来两个问题:

  1. 无法提供良好的后续图片编辑功能,好的文章,往往一个Figure有几个Sub Figures
  2. 输出的图片用于网站,无法良好的应对缩放

Sad。我当然知道eFP browser似乎并没有想法去实现矢量图输入与输出。但是这个没关系啊。于是我进一步开发JIGplot,提供一个SVGtoJIGSubPanel的功能。换句话说,只要将SVG对象转换成JIGplot引擎的对象,那么我就可做任意我想做的操纵。Tada! 于是,FancyHeatmap比eFP browser又多了一个功能【前述:方便也是一个超越】,实现了矢量图输入与输出。当然,不仅如此。 既然不再是ImageEle,而是JIGElement的组合,那么我们可以直接在每个JIGElement上加动作,实现更多的交互分析可能。

支持HTML输出,可嵌入数据库类网站

Emmm... 事实上,自从TBtools推出FancyHeatmap的功能之后,不时有人联系过来。其中大半部分人其实是想在他们的数据库中嵌入这一功能。 前述已经提到,eFP browser本身就是做这个事情的,但我个人认为 ,除非公司层面也准备好了docker镜像,否则搭建成本一定很高。更不说docker image是否能够实现eFP browser的Sub HTML。Anyway,专门帮别人搭建数据库的公司还是有的,只要收费合理【注:个人估计2万以上是合理收费】,还是有不少公司愿意做的。 于是,我也收到了一些寻求合作的邮件,当然最后直接将合作转交给课题组的师弟去负责【注:很多时候,我并没有时间掺和也不想掺和】。 但是 ,刚才也提到了。目前无论是eFP Browser还是FancyHeatmap的已有应用,使用的都是第一版本:

  1. 位图输出,缩放失真
  2. 无法良好交互

FancyHeatMap的第二版使用SVG输入,已经搞定这些事情。然而,毕竟是Desktop Application。要搬到浏览器上面,JavaApplet....已经被时代所抛弃。于是,我今天灵机一动,搞个HTML输出不就行了吗? 三下五除二,【边带娃,边Coding】,很快,就实现了。

可以看到,完美!作为一个HTML文件,他就可以直接嵌入到其他任何已有数据库框架。另外,我还非常友好地提供了DIY的方式。

也就是,只要用SampleID,写一点JavaScript代码,你想怎么交互,那么就是你的事情....

于是,TBtools的FancyHeatMap从某意义上来说,似乎更有用了一些了。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-02-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 优雅R 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 写在前面
  • 为啥写FancyHeatmap
  • 支持SVG输入,得到矢量图输出和更多的交互式分析
  • 支持HTML输出,可嵌入数据库类网站
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档