教程 | 來吧!分發(fā)你的 R 腳本,讓兩萬人受益!

寫在前面

前述,我已提及,元旦假期我做了一個有趣的事情。亦即,為 TBtools 量身打造了一個跨平臺的 Rsever 插件(windows 和 MacOS)用戶均可使用。經(jīng)過了系列測試,目前已經(jīng)對外釋放。插件本身無實際作用,但卻可以使得任何人都可以在這個插件的基礎(chǔ)上,快速打造屬于自己的 TBtools R plugin !同時還可以分享給課題組的朋友,分享給所有 TBtools 用戶。
為了讓這個過程看起來更為簡單,我決定寫一個示例教程,并期望這個教程能激發(fā)所有人的想法,一起來拆除而不僅僅是降低生物信息數(shù)據(jù)分析門檻!。

自制插件示例效果

制作插件的門檻極其低,你需要的幾乎只有一個東西,即一個 R 腳本。大體效果如下

1. 準(zhǔn)備一個 R 腳本

我們要分發(fā)的是 TBtools R Plugin,對 R 腳本的要求很簡單,此處給出一個標(biāo)準(zhǔn)示例。

argv <- commandArgs(TRUE) # 此行必須
expfile <- argv[1]  # 參數(shù) 1 
title <- argv[2] # 參數(shù) 2
logTran <- argv[3]  # 參數(shù) 3
colorSet <- argv[4]   # 參數(shù) 4
## 所有依賴包應(yīng)當(dāng)檢測并安裝
if (!require('ggplot2')) install.packages('ggplot2', repos='https://mirrors.tuna.tsinghua.edu.cn/CRAN/')
if (!require('reshape2')) install.packages('reshape2', repos='https://mirrors.tuna.tsinghua.edu.cn/CRAN/')
## 加載 - 剩余部分與所有普通 R 腳本無異
library(ggplot2)
library(reshape2)
expfile
expMat<-read.table(expfile,header = T,sep="\t")
head(expMat)
expMat<-melt(expMat)
if(logTran=="true") expMat$value<-log(expMat$value+1)
p<-ggplot(expMat)
p+geom_density(aes(x=value,fill=variable),alpha=I(1/4))+
  labs(title=title)+
  scale_fill_brewer(palette=colorSet)

此處暫時無需擔(dān)心輸出文件路徑云云

2. 復(fù)制一份 RguiPluginMaker.jar

這個文件是通用的,直接從 Demo Plugin 中獲取即可。

3. 配置 GUI 界面


可以看出,非常簡單,大體如下:

  1. 等于號“=”用作分隔符
  2. App對應(yīng)的功能的名字,插件作者隨意定,最好是外文和數(shù)字
  3. Script對應(yīng)的是插件目錄下的 R 腳本(即上述腳本)名字,注意大小寫
  4. Icon,此項是可選項,插件作者可以放上自己的二維碼,更或者直接使用自己的文本名字,TBtools 會自動識別

剩余的內(nèi)容為不同的參數(shù)類型,大體如下:

  1. File對應(yīng)的是輸入文件,Set a Tab-delimited Table對應(yīng)的是最終界面上的提示,TBtools會自動生成一個輸入文件框,用戶可以直接輸入一個文件,后者黏貼文本
  2. Text讓用戶輸入一些文本,其實也可以是數(shù)字等等,對應(yīng)的Plot Title:是提示信息,而R-ggplot2 BarPlot是默認信息
  3. CheckBox,有時候我們需要用戶選擇,Yes或No,比如是否取log。那么可以用這個類型。注意 R 腳本中要做下解析。
  4. Choice,當(dāng)然,更多時候,是要提供給用戶一些可選項。
    在這個配置文件下,我們就可以直接對應(yīng)到界面

注意,每種輸入類型可以重復(fù),比如有兩個輸入文件,那么就可以File云云。TBtools 強制存在工作目錄。這是要求插件的最終用戶設(shè)置的內(nèi)容。建議插件作者注意到這個工作目錄,因為存在這個工作目錄,那么我們保存文件可以直接使用文件名,無需給任何路徑。比如腳本中,我們簡單的用pdf("out.pdf")就可以,而具體存放位置,用戶自行決定位置。

具體插件制作過程

首先,獲取 Demo.zip 插件文件,可以從 TBtools 使用交流群群共享下載。



解壓該文件到當(dāng)前目錄,進入該目錄并修改其中信息,如:

  • 修改R腳本,或替換
  • 替換icon,或者刪除icon等
  • 對應(yīng)的,修改 config.txt 文件
    ...

隨后,將整個目錄壓縮為zip格式。注意,壓縮時要壓縮目錄,而不是直接壓縮所有文件。如



最后,為了避免插件用戶不小心解壓插件,隨后錯誤安裝插件。直接修改文件后綴名,從.zip變成.plugin。當(dāng)然,如果你懶得管,那么你也可以不修改。


如此,你的插件已經(jīng)制作完成

分發(fā)與插件使用

插件可以分發(fā)給課題組的人使用,給所有TBtools用戶使用,也可以自己使用。具體只需要通過 TBtools -> Other -> Plugin -> Install Plugin ,彈出對話框,拖拽放置或選擇制備好的插件即可。不了解這一過程的朋友,建議翻翻 生信札記 公眾號 歷史推文...

一些想法

正如前述推文《重磅更新!Rserver 插件 for TBtools》中提及,Rserver 插件的基本完成,我想做的事情都做了,剩下的還是看大伙的。
上述提及的Icon,以及圖片或文本的設(shè)置選項,我是今天臨時想到的。其實原因很簡單。我們樂于分享,但每個人的勞動都應(yīng)該得到尊重。
增加了Icon的界面化參數(shù),那么每一位插件作者,可以將自己的二維碼放上去,公眾號的,或者其他的。更或者放上自己的名字?單位?甚至,如果是公司的朋友,可以直接放上公司的Logo,更或者主頁鏈接云云。當(dāng)然,放上插件作者的贊賞二維碼是我最為推薦的。
甚至,我個人也不反對,大伙自己制作插件,自己有償分發(fā)!
歡迎任何人貢獻 TBtools R Plugin 并聯(lián)系我,我個人會輔助在生信札記公眾號上宣傳這個插件....

寫在后面

或許從幼兒園開始,我就只喜歡做一件事情。Make Something。創(chuàng)造,是一件讓人快樂的事情。期望,大伙一起來享受這個過程。讓更多人不再受生信數(shù)據(jù)分析困擾。

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

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

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