离题之后的胡扯,关于JJplot2蛋疼事

身为一个公众号,如果不更新,那么太对不起关注的朋友们啦。然而,作为一个正经的果农,我确实没太多可以分享的。按照惯例,先宣传一下地球上最好的生物信息理论和技术交流QQ群(bioinformatics*CN 276151571),

==============

很久很久以前,使用TBtools的朋友们就来了个feature calls,说最好能出热图...这个乍看之下简单,我给JJplot2加个geomTile(),感觉就差不多了

和使用ggplot2直接出tile的热图差不多,前面需要对数据自己进行标准化,然后是melt,随后才试出,JJplot2,最大的好处当然是可交互啦,好的地方就不说了。

然而,这个距离某种意义上的出热图还有太大差距,颜色上,淡定,这个简单,主要是在聚类上麻烦了。

我们做个热图,总是要对数据进行聚类的。常用的方法是层次聚类,当然也有用Kmeans聚类。

这段时间压力比较大,于是我拿起放下接近一年的JJplot2包,写起了这两个简单的聚类。其中,用hclust,出了张图,过程有趣。

依旧是JJplot2出图的图,亮点依然是可交互(先做层次聚类,然后生成newick tree,喂给之前在EasyCodeML里面放的tree label的包),如下:

除了这个图,我就想起前几天Raindy (平易近人,智勇双全的福建农高教授)提到在node上面打标记,其实很久以前我就写进去啦,只是为了tree label,就直接隐藏起来。

可以这么说,JJplot2是ggplot2思想某种意义上的模仿,而这个出树,索性叫做 JJtree(鸡鸡树),则是ggtrees思想某种意义上的模仿。画树的思想,是早期我用JS出树的纠结,随后受到Y叔ggtree的启发:

点才是图形的一切,

一点就是一点,

两点就是线,

三点就是面...

美化和其他,我觉得是时间问题啦。

JJplot2是在个人对ggplot2语法理解的基础上,外加看了《Grammer of Graphics》和Hadley写的一些文档之后,个人生硬实现出来的。之所以写这个....

首先明确一个目标,我是生物出身的,我知道做生物的朋友接触到生信数据是一种什么样的崩溃心情,但是我们不能强迫每一个人都对计算机熟悉,甚至对编程熟悉,所以需要有人来做一些工作,让所有人,都可以在理解原理的基础上,不需要掌握操作技术,就可以实现一些简单的分析。

那么对于这个目标,那么最直接的一点,尽量避免程序安装和配置的麻烦。

我刚学java的时候,写了blast3go,当时我调用R包做GOlevel2出图和GO富集,到现在估计有不下30人有直接QQ小窗到我问环境配置,想想挺累。调用R应该去掉,所以我后面全部用JAVA实现,也就得到了TBtools的十分之一的功能。为此,我写了JJplot2作为其绘图引擎。一方面,我个人是希望有一个能像ggplot2一样自由的java包(已经有一个荒废很久的java version的ggplot2在网络上,从例图来看,那个人实现得非常好,但是他荒废了,而且也没有我最需要的交互的功能),与其限制于人,不如自己动手,所以有了JJplot,随后重新理解ggplot2,于是又重写成了JJplot2,其中也包括部分为了EasyCodeML标记树的需要,做的一些调整。---讲真,进化首先是个坑,进化相关的软件更是坑,进化相关软件的输入输出,都是巨大无比的坑....

不扯了,刷会文献,然后吃晚饭

以下TBtools出的几个图。。。确实没时间截新图咯。。。

(0)

相关推荐