重磅更新!Rserver 插件 for TBtools

寫在前面

知道我的朋友,相信都有了解,元旦假期某晚凌晨,我突發(fā)起來(lái),折騰了一個(gè)困擾我很久很久的問(wèn)題,并解決了他。
2015年,TBtools 開(kāi)發(fā)之前,我寫過(guò)一個(gè) Blast3GO,主要用于 GO 注釋,富集分析以及可視化。Blast3GO 實(shí)現(xiàn)的這些功能,基本都是調(diào)用環(huán)境中的 R,于是存在四大問(wèn)題:

  1. 依賴用戶環(huán)境中的 R語(yǔ)言,換句話說(shuō),要求用戶自己安裝 R
  2. 存在破壞用戶原有 R 語(yǔ)言環(huán)境的可能
  3. 無(wú)法實(shí)現(xiàn)絕對(duì)的版本控制,以至于無(wú)法保證用戶體驗(yàn)
  4. 確實(shí)不穩(wěn)定....

這些經(jīng)歷,使得我在開(kāi)發(fā) TBtools 之后,追求絕對(duì)純粹的 Java 實(shí)現(xiàn)。于是 TBtools 得以獲得某種程度的 便攜,簡(jiǎn)單,簡(jiǎn)潔,高效。為了解決可視化問(wèn)題,我自己從零實(shí)現(xiàn)了一個(gè)繪圖引擎,也就是大伙知道的 JIGplot,并一直堅(jiān)持優(yōu)化。所以,我一直不想去打包任何可以不打包的軟件,更希望自己實(shí)現(xiàn)。
然而,幾年過(guò)去了,我越來(lái)發(fā)現(xiàn),每個(gè)人的時(shí)間,精力是絕對(duì)有限的。我可以自己寫很多功能,卻無(wú)法做到絕對(duì)的全面,比如轉(zhuǎn)錄組數(shù)據(jù)分析中的差異表達(dá)分析。我們幾乎可以下個(gè)結(jié)論,幾乎全部差異表達(dá)分析軟件,都是 R 包(盡管大伙還是知道有 gfold 的)。于是,我只有兩個(gè)選擇:

  1. 自己寫,這個(gè)不可能,也沒(méi)有意義,畢竟這個(gè)輪子造起來(lái)也不一定能得到認(rèn)可,他不比可視化
  2. 打包 R,windows下很簡(jiǎn)單,但是 macOS 呢?TBtools 至少有 10% 的用戶是 MacOS 用戶

我希望的是 TBtools 繼續(xù)保持他的跨平臺(tái),所以所有功能都是至少支持 windows + MacOS??梢哉f(shuō),元旦假期,我所有抽得出來(lái)的時(shí)間,加上我在過(guò)去一兩年,嘗試失敗,再嘗試再失敗,還嘗試還失敗,繼續(xù)嘗試,繼續(xù)失敗的數(shù)次,得到的就是一個(gè)簡(jiǎn)單的東西。TBtools 的新插件“Rserver”。

插曲 - 更新 TBtools 版本

11月底,去版納植物園做了一場(chǎng) TBtools 培訓(xùn),培訓(xùn)期間發(fā)現(xiàn),TBtools 的插件安裝存在兩個(gè)優(yōu)化的點(diǎn):

  1. MacOS 的插件選擇界面,拖拽面板還是遮擋了文件選擇面板,這塊之前在邵揚(yáng)的提醒和幫助下,原本是修復(fù)的,只是....代碼忘記啟動(dòng)。改動(dòng)前


  2. TBtools 插件分為兩類:小插件,無(wú)依賴,僅.jar文件。對(duì)于小插件,除非用戶確實(shí)沒(méi)事做,回去解壓出來(lái)(盡管也沒(méi)啥用),否則都是順利安裝;大插件,有依賴,于是我一般打包成.zip文件,然而還是存在不少人習(xí)慣性解壓縮,最后導(dǎo)致插件沒(méi)有完整安裝。這不是好事。但可以理解,畢竟,任何人看到壓縮包(尤其是圖標(biāo)對(duì)應(yīng)上了)的第一反應(yīng)是解壓縮。改動(dòng)前,


    針對(duì)這兩點(diǎn),我做了優(yōu)化。首先是 MacOS 的插件安裝面板代碼生效;

    其次是進(jìn)一步支持了難以被自動(dòng)識(shí)別的文件后綴.plugin....這樣我相信就不會(huì)被解壓縮了...

Rserver 插件的安裝

目前這個(gè)插件已經(jīng)釋放到所有 TBtools 使用交流群(1-7,Emmm,數(shù)了一下,又回復(fù)到之前的狀態(tài),不過(guò)現(xiàn)在大伙都實(shí)名了,我相信應(yīng)該好得多)。直接在群共享下載最新版本的 TBtools_JRE1.6.jar,這個(gè) jar。更新到 TBtools v1.074。當(dāng)然,如果你不更新,那就記得下載 Rserver.zip,反正主程序跟插件耦合程度極低。
OK,拿到這個(gè)插件。就可以安裝。首先打開(kāi) TBtools


找到插件安裝位置,點(diǎn)擊Install Plugin

拖拽放置,或直接文本選擇摁鈕選擇之后,點(diǎn)擊打開(kāi),稍等一會(huì)即可(插件較大,大概180+Mb,Windows 和 MacOS 用戶通用一個(gè)插件!)。

插件的使用

Rserver 插件,我原本想做的只是一個(gè)差異表達(dá)分析插件,但從插件的體積來(lái)看,這樣并不合適。畢竟以后任何人愿意貢獻(xiàn)出 R語(yǔ)言 腳本的,都可以制備成 TBtools 插件并分發(fā)。于是,我調(diào)整計(jì)劃,直接將 Rserver 插件作為一個(gè)將會(huì)被其他所有 R腳本 插件所依賴的插件來(lái)開(kāi)發(fā)。完美。這樣我只需要細(xì)調(diào)測(cè)試插件即可(注意到,盡管我們有1w+人的社群,但我只召集到不超過(guò)20個(gè) MacOS 用戶幫忙測(cè)試;windows不用)。
使用插件非常簡(jiǎn)單,首先是打開(kāi)插件


設(shè)置一個(gè)輸出目錄,其他均不設(shè)置,這樣會(huì)啟動(dòng) Rserver 插件的測(cè)試腳本。

如此,點(diǎn)擊Start之后,輸出目錄會(huì)生成一個(gè)Rplot.pdf文件。稍微知道 R 使用的人就會(huì)清楚。只要沒(méi)設(shè)置繪圖文件路徑,同時(shí)又在命令行運(yùn)行,那么 R 會(huì)直接保存一個(gè)文件到 Rplot.pdf。打開(kāi)這個(gè)文件,即可看到

當(dāng)然,加入你填入了一段 R 腳本,比如

https://www.rdocumentation.org/packages/stats/versions/3.6.2/topics/p.adjust

網(wǎng)頁(yè)上的這段代碼(邵揚(yáng)提到的)...


輸出結(jié)果如下

當(dāng)然,你可以檢測(cè)和安裝一個(gè)R包(比如大家都愛(ài)的ggplot2
image.png

于是你會(huì)得到

關(guān)于拓展

我們完全可以預(yù)見(jiàn)這個(gè)插件將會(huì)帶來(lái)的功能絕對(duì)拓展:

  1. 只要一個(gè) TBtools 用戶能跑的 R碼,換另一個(gè) TBtools 用戶,一樣能跑,因?yàn)槠脚_(tái)完全固定
  2. 對(duì)于 R腳本來(lái)說(shuō),絕大多數(shù)用戶進(jìn)行修改的,往往只是輸入輸出文件,這點(diǎn)完全可以通過(guò) TBtools 快速打一個(gè) GUI 界面()
  3. Rserver 插件也直接支持用戶原始的 R腳本代碼,換句話說(shuō),可以寫 R包依賴檢測(cè)與安裝,可以直接在代碼中設(shè)置輸入輸出文件或目錄.... 甚至可以.....

寫在后面

昨晚我陪吳老師看了一場(chǎng)電影。這是兩年來(lái)我們第一次能抽出時(shí)間看的一場(chǎng)完整的電影(盡管票價(jià)不低,35一張)??ㄍ娪斑€不錯(cuò),最近似乎有點(diǎn)火的,《心靈奇旅》。從我的角度來(lái)看,這部電影傳達(dá)一個(gè)理念或許就是:享受生活,活在當(dāng)下。
當(dāng)然,這并不太準(zhǔn)確。我們討論了一會(huì),多少讓我想起了我似乎從小學(xué)就開(kāi)始在思考的問(wèn)題。即,

活著,為了什么?當(dāng)然史鐵生在《我與地壇》給出了一個(gè)不錯(cuò)的答案死是一件不必急于求成的事。
這段時(shí)間一直在路上,或許人生就是在路上。

《心靈奇旅》一條主線,演繹了兩類人:

  1. 人生中只有目標(biāo)
  2. 人生中毫無(wú)目標(biāo)

當(dāng)然,什么才是人生目標(biāo)?就不劇透了,大伙感興趣的可以看看。
回到主題。
關(guān)于 TBtools 的開(kāi)發(fā),盡管我一直有源源不斷的新的開(kāi)發(fā)想法,但如果說(shuō)我馬上進(jìn)入工作,無(wú)法在其上投入過(guò)多。那么我會(huì)留下的只有兩個(gè)遺憾:

  1. 我希望能提供一個(gè)可能,TBtools 用戶能夠在相互分享 TBtools 相關(guān)的內(nèi)容,以前我想過(guò)是卡通熱圖,后來(lái)...總之一直想一直失敗,但現(xiàn)在,我想 Rserver 插件馬上會(huì)提供這個(gè)可能。
  2. 我寫過(guò) EasyGUI 或 AutoGUI,這兩個(gè)實(shí)現(xiàn)和想法,我一直沒(méi)有放下,然而他們似乎并無(wú)用武之地 。但現(xiàn)在不會(huì)了,我相信很快,這些想法也會(huì)用上。

有時(shí)候,或許從技術(shù)層面來(lái)說(shuō),你學(xué)過(guò)的想過(guò)的每一個(gè)點(diǎn),都可能不會(huì)是白費(fèi)功夫。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容