java插件更新,重磅更新!Rserver 插件 for TBtools
写在前面) ~, a8 Zy1 F8 gy; Y0 M% P5 b9 }' n# Q7 S; j$ y! f知道我的朋友,相信都有了解,元旦假期某晚凌晨,我突发起来,折腾了一个困扰我很久很久的问题,并解决了他。; ~+ I3 \6 ]1 L/ F2015年,TBtools 开发之前,我写过一个 Blast3GO,主要用于 GO 注释,富集分析以及可视化。Blast3GO 实现的这些功能,基...
写在前面
) ~, a8 Z y1 F8 g y; Y0 M% P5 b9 }' n# Q7 S; j$ y! f
知道我的朋友,相信都有了解,元旦假期某晚凌晨,我突发起来,折腾了一个困扰我很久很久的问题,并解决了他。
; ~+ I3 \6 ]1 L/ F2015年,TBtools 开发之前,我写过一个 Blast3GO,主要用于 GO 注释,富集分析以及可视化。Blast3GO 实现的这些功能,基本都是调用环境中的 R,于是存在四大问题:
! ~3 ^2 c5 q* Q4 U8 d5 v( D/ |# R; V/ z" k1 G
依赖用户环境中的 R语言,换句话说,要求用户自己安装 R
" z" w' r3 G2 c3 w1 o8 X
存在破坏用户原有 R 语言环境的可能: P, }3 ?$ N3 y8 ?/ k$ K' Y4 n
无法实现绝对的版本控制,以至于无法保证用户体验
2 x" h+ L' `3 O4 t+ B: e
确实不稳定....
4 m3 w" i' W: R5 a* V- C这些经历,使得我在开发 TBtools 之后,追求绝对纯粹的 Java 实现。于是 TBtools 得以获得某种程度的 便携,简单,简洁,高效。为了解决可视化问题,我自己从零实现了一个绘图引擎,也就是大伙知道的 JIGplot,并一直坚持优化。所以,我一直不想去打包任何可以不打包的软件,更希望自己实现。
9 N) p2 f6 K& M然而,几年过去了,我越来发现,每个人的时间,精力是绝对有限的。我可以自己写很多功能,却无法做到绝对的全面,比如转录组数据分析中的差异表达分析。我们几乎可以下个结论,几乎全部差异表达分析软件,都是 R 包(尽管大伙还是知道有 gfold 的)。于是,我只有两个选择:/ |6 k9 Q7 q7 _: R' u" i
( t* y4 D3 c5 K# o2 \
自己写,这个不可能,也没有意义,毕竟这个轮子造起来也不一定能得到认可,他不比可视化
' Q4 ?2 ^, ^9 d) A
打包 R,windows下很简单,但是 macOS 呢?TBtools 至少有 10% 的用户是 MacOS 用户% D, E/ }* _5 f我希望的是 TBtools 继续保持他的跨平台,所以所有功能都是至少支持 windows + MacOS。可以说,元旦假期,我所有抽得出来的时间,加上我在过去一两年,尝试失败,再尝试再失败,还尝试还失败,继续尝试,继续失败的数次,得到的就是一个简单的东西。TBtools 的新插件“Rserver”。- y! O- Y6 U. D+ y" I7 o
插曲 - 更新 TBtools 版本, {, d. d( O5 z6 B7 ~/ ]& w
2 p1 {5 q, c. k2 N11月底,去版纳植物园做了一场 TBtools 培训,培训期间发现,TBtools 的插件安装存在两个优化的点:2 e& W# b/ q7 ~" b
1 q1 V2 H" K/ }4 R; ^, w
MacOS 的插件选择界面,拖拽面板还是遮挡了文件选择面板,这块之前在邵扬的提醒和帮助下,原本是修复的,只是....代码忘记启动。改动前
9 w8 M7 w+ Q5 R! E Z! Z0 ]5 ?% I6 E& \: A

3 X$ D( k" }$ ~ k
TBtools 插件分为两类:小插件,无依赖,仅.jar文件。对于小插件,除非用户确实没事做,回去解压出来(尽管也没啥用),否则都是顺利安装;大插件,有依赖,于是我一般打包成.zip文件,然而还是存在不少人习惯性解压缩,最后导致插件没有完整安装。这不是好事。但可以理解,毕竟,任何人看到压缩包(尤其是图标对应上了)的第一反应是解压缩。改动前,
6 y! ?8 u, u9 ^2 _3 p1 l/ W! ?* i0 k2 Z) \6 B

5 y' _/ ?/ o& n0 c9 \8 s" K针对这两点,我做了优化。首先是 MacOS 的插件安装面板代码生效;% k& o# ~3 {# `" b) q

- b. |1 o8 h# U* K% ]其次是进一步支持了难以被自动识别的文件后缀.plugin....这样我相信就不会被解压缩了...
* C4 q1 i) j8 u+ q, K, ^% S
; X; r7 C( H: S! ?# VRserver 插件的安装; H0 c2 |' M6 s1 W
* F' b% a5 \: H2 f目前这个插件已经释放到所有 TBtools 使用交流群(1-7,Emmm,数了一下,又回复到之前的状态,不过现在大伙都实名了,我相信应该好得多)。直接在群共享下载最新版本的 TBtools_JRE1.6.jar,这个 jar。更新到 TBtools v1.074。当然,如果你不更新,那就记得下载 Rserver.zip,反正主程序跟插件耦合程度极低。
( [7 K8 Z. `4 A/ D F9 XOK,拿到这个插件。就可以安装。首先打开 TBtoolsG. a: x3 e6 _% U- x8 ^& g& x
/ d4 O/ ^5 b1 y
- f, _% I9 p. y' |9 J8 G
找到插件安装位置,点击Install Plugin+ A& A. S. y& S5 z

( V; h5 P: g2 D3 x# k+ R# L. ^% f拖拽放置,或直接文本选择摁钮选择之后,点击打开,稍等一会即可(插件较大,大概180+Mb,Windows 和 MacOS 用户通用一个插件!)。
3 K- E- _/ C& m2 a0 Y
! z8 |/ k$ C* W: U# D/ V' y
插件的使用" c0 @. T4 \& y# Y; o
+ I0 S) m3 r8 Q; F# v8 R; WRserver 插件,我原本想做的只是一个差异表达分析插件,但从插件的体积来看,这样并不合适。毕竟以后任何人愿意贡献出 R语言 脚本的,都可以制备成 TBtools 插件并分发。于是,我调整计划,直接将 Rserver 插件作为一个将会被其他所有 R脚本 插件所依赖的插件来开发。完美。这样我只需要细调测试插件即可(注意到,尽管我们有1w+人的社群,但我只召集到不超过20个 MacOS 用户帮忙测试;windows不用)。
# b0 }! i* K0 G' w. b3 w% z) g3 Y使用插件非常简单,首先是打开插件
. }$ ]) J6 S) c$ ^# e4 K8 T( L8 ]' p( b' V$ D3 j

! F: r+ m3 K ~& W& |; K$ [设置一个输出目录,其他均不设置,这样会启动 Rserver 插件的测试脚本。, a- k8 k/ P* i
. Y" ~9 ^# f% b
如此,点击Start之后,输出目录会生成一个Rplot.pdf文件。稍微知道 R 使用的人就会清楚。只要没设置绘图文件路径,同时又在命令行运行,那么 R 会直接保存一个文件到 Rplot.pdf。打开这个文件,即可看到) c# m. N/ i+ D! ]

3 d. v2 U' ^3 e3 m- `+ F# }当然,加入你填入了一段 R 脚本,比如( ^$ V6 |, _ z) e3 P
https://www.rdocumentation.org/packages/stats/versions/3.6.2/topics/p.adjust网页上的这段代码(邵扬提到的)...
6 [) G! E& m/ \% H- w5 g( ?. Cu1 A/ G% K, A3 b, c) B7 E! j
K" ]/ W$ ]3 | T& f
输出结果如下
7 f: T! p5 s# D& V

0 W9 R) A1 O- X2 g8 E% N. Q' f3 H当然,你可以检测和安装一个R包(比如大家都爱的ggplot2)
: R' P9 r5 H! s3 a V% h5 r" ]

6 | u% m# [5 m3 y5 Y& A9 L于是你会得到2 ^4 |; D2 I$ J' v, k: g& [. I- e
: d9 j* [ Z5 t2 ] V, @
关于拓展
. M# `5 q8 b ]7 W* o5 u, v- U; V
我们完全可以预见这个插件将会带来的功能绝对拓展:0 [5 o4 y6 d$ i4 C
9 _. Y1 s( R; Z, d
只要一个 TBtools 用户能跑的 R码,换另一个 TBtools 用户,一样能跑,因为平台完全固定
: p! U$ l l! Y R; I4 B4 m
对于 R脚本来说,绝大多数用户进行修改的,往往只是输入输出文件,这点完全可以通过 TBtools 快速打一个 GUI 界面()
* c8 M" ?" J: A$ T' S
Rserver 插件也直接支持用户原始的 R脚本代码,换句话说,可以写 R包依赖检测与安装,可以直接在代码中设置输入输出文件或目录.... 甚至可以.....
0 F6 T5 A/ ^* Y" R+ H) D" ^写在后面
4 o, E* C3 [; m0 ?) S
# \: ^! ^" W7 K昨晚我陪吴老师看了一场电影。这是两年来我们第一次能抽出时间看的一场完整的电影(尽管票价不低,35一张)。卡通电影还不错,最近似乎有点火的,《心灵奇旅》。从我的角度来看,这部电影传达一个理念或许就是:享受生活,活在当下。
, d8 i% R0 B* _! e. h当然,这并不太准确。我们讨论了一会,多少让我想起了我似乎从小学就开始在思考的问题。即,4 K) z9 Z8 L- e/ M3 Q5 u" R" R
活着,为了什么?当然沈从文在《我与地坛》给出了一个不错的答案死是一件不必急于求成的事。
8 B6 t6 S0 `* }+ B7 l& m7 S这段时间一直在路上,或许人生就是在路上。
, U- u, @2 T$ F" x/ K《心灵奇旅》一条主线,演绎了两类人:
& T+ C3 a3 g' z: z0 `7 i3 P Q6 N: |, c* n! w$ ^, \# J$ S
人生中只有目标1 J5 n: ], g9 ~- ?0 q
人生中毫无目标& H5 p4 R1 @$ |) M% o3 Z当然,什么才是人生目标?就不剧透了,大伙感兴趣的可以看看。: c. }" H3 P/ M
回到主题。8 h& s& Y+ S$ |! p5 C8 V
关于 TBtools 的开发,尽管我一直有源源不断的新的开发想法,但如果说我马上进入工作,无法在其上投入过多。那么我会留下的只有两个遗憾:0 ^. m3 O2 a1 n1 {
& X+ h6 C7 a; `7 z6 q
我希望能提供一个可能,TBtools 用户能够在相互分享 TBtools 相关的内容,以前我想过是卡通热图,后来...总之一直想一直失败,但现在,我想 Rserver 插件马上会提供这个可能。
: s3 {' N9 _& M6 E
我写过 EasyGUI 或 AutoGUI,这两个实现和想法,我一直没有放下,然而他们似乎并无用武之地 。但现在不会了,我相信很快,这些想法也会用上。# X. @8 X3 C7 G, ~2 n有时候,或许从技术层面来说,你学过的想过的每一个点,都可能不会是白费功夫。* M: K& x, ~0 R i# d) r% ^
& s7 w1 c% F- g" Q( h* ~8 m& T
Java吧 收集整理 java论坛 www.java8.com
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)