有人說(shuō):鼠標(biāo)點(diǎn)點(diǎn)點(diǎn),絕對(duì)是后面生物數(shù)據(jù)分析的演化方向。 ------佚名
多功能生物軟件eGPS(http://www.egps-software.net/) 現(xiàn)在功能越來(lái)越多,我這里想試著對(duì)它進(jìn)行分類。那么這個(gè)分類有什么用呢?至少有如下用途:
- 讓你對(duì)軟件的整體功能有一個(gè)具體的認(rèn)識(shí)
- 我們可以醞釀一個(gè)導(dǎo)航模塊/瀏覽模塊/圖冊(cè)模塊幫助別人去認(rèn)識(shí)這里有什么功能,這些功能是不是用戶所需要的
昨天有一個(gè)用戶向開(kāi)發(fā)者提了一個(gè)建議:我用軟件的時(shí)候很多功能需要我點(diǎn)開(kāi) iTools 菜單才行,點(diǎn)開(kāi)來(lái)之后只是幾個(gè)按鈕,按鈕點(diǎn)進(jìn)去又只是一個(gè)面板而已,我根本不知道里面究竟有什么。這對(duì)我整個(gè)認(rèn)知過(guò)程造成了負(fù)擔(dān),能不能有方法我知道每個(gè)模塊的具體功能,這樣我知道了之后,后面也許會(huì)有相應(yīng)的需求。
所以我想從多個(gè)角度對(duì)這里的功能做一個(gè)分類,當(dāng)然我最希望的就是這個(gè)分類盡可能的全。最好的情況是,該分類可以包含幾乎所有的軟件模塊,也就是說(shuō),以后但凡有一個(gè)需求,這個(gè)需求的實(shí)現(xiàn)形式就是這些分類的中的其中一種。同時(shí)這個(gè)需求的具體內(nèi)容也是這個(gè)分類中的某一種。盡量不出現(xiàn)一個(gè)需求是開(kāi)發(fā)者以前沒(méi)有考慮到的,最好不要出現(xiàn)新的情況,這種情況不在我們的考慮范圍內(nèi)。
下面我具體從三個(gè)角度來(lái)進(jìn)行分類
1.按照功能性質(zhì)來(lái)分
首先請(qǐng)瀏覽一下如下的歸類:
| 類型名稱 | 注備 | 舉個(gè)例子 |
|---|---|---|
| 大型可視化 | 功能多,開(kāi)發(fā)時(shí)間長(zhǎng),單獨(dú)一個(gè)模塊也可以發(fā)文章 | 熱圖,韋恩圖,進(jìn)化樹(shù)圖,聯(lián)配(alignment)圖 |
| 簡(jiǎn)單可視化 | 模塊開(kāi)發(fā)簡(jiǎn)單,功能單一,但是確實(shí)解決用戶的需求,其實(shí)這個(gè)也可以看做是早期的大型可視化模塊。這些模塊可以視作是粗略版的大型可視化模塊 | 糾纏圖,點(diǎn)圖,和弦圖 |
| 小工具 | 這些模塊包括一些簡(jiǎn)單的字符串操作,基本文件的讀入和輸出,這些功能如果用戶自己掌握一些腳本語(yǔ)言會(huì)很快解決。值得一提的是,這些工具雖然開(kāi)發(fā)者感覺(jué)沒(méi)什么技術(shù)含量,但是用戶有時(shí)候真的蠻需要的 | fasta序列的提取,集合的交差并補(bǔ),字符串操作 |
| 專業(yè)計(jì)算類 | 顧名思義,這里的模塊是有自己對(duì)應(yīng)的專業(yè)方法的,這個(gè)方法本身就可以發(fā)很好的文章。這里我覺(jué)得復(fù)雜格式的轉(zhuǎn)換也是一種專業(yè)的計(jì)算 | 如Blast,BWA,MAFFT這些序列比對(duì)工具;簡(jiǎn)單一點(diǎn)例如 NJ法構(gòu)建進(jìn)化樹(shù),Sankhoff算法計(jì)算祖先狀態(tài),或者自己寫的簡(jiǎn)單的序列比對(duì)方法(如Neededman算法);還有一些統(tǒng)計(jì)方法 |
| 操作臺(tái)類 | 有很多享有同一輸入文件,功能相近的模塊的集合。而且這個(gè)大的模塊它能交互式的分析數(shù)據(jù),實(shí)時(shí)預(yù)覽結(jié)果,直接對(duì)著這個(gè)屏幕可以去想一些解釋數(shù)據(jù)的原因??吹接幸馑嫉牡胤竭€可以探索。這個(gè)操作臺(tái)中的模塊也是上述的幾種模塊的組合 | 如eGPS中的VCF tools,如果那個(gè)fasta的所有操作都實(shí)現(xiàn)的話,也可以是一個(gè)操作臺(tái)類的模塊 |
| 流程類 | 這些模塊是組合其它模塊來(lái)完成一定任務(wù)的組合模塊。有很多時(shí)候我們有封裝一定流程的需求,這些類就可以做到 | 如eGPS中的一些loader模塊,這些模塊就是用專業(yè)計(jì)算類去解析一定格式的數(shù)據(jù),然后導(dǎo)入可視化模塊;還有Gene to gene tree本身就封裝了很多東西,最后跳轉(zhuǎn)到了進(jìn)化樹(shù)可視化模塊 |
簡(jiǎn)單可視化模塊的存在其實(shí)是很有價(jià)值的,因?yàn)殚_(kāi)發(fā)一個(gè)大型可視化模塊費(fèi)時(shí)費(fèi)力,而且很多功能可能用戶永遠(yuǎn)都不會(huì)用到,那何必呢?而且很多時(shí)候一個(gè)分析最重要的就是出一個(gè)圖,從很多現(xiàn)在發(fā)表的文章來(lái)看,圖的風(fēng)格和板式一般是比較固定的。所以這些簡(jiǎn)單可視化模塊很有存在的價(jià)值。
2.按照專業(yè)應(yīng)用領(lǐng)域來(lái)分
這個(gè)可以按照人們研究的領(lǐng)域來(lái)劃分。
| 類型名稱 | 注備 | 舉個(gè)例子 |
|---|---|---|
| 通用的模塊 | 面向所有的人,所有人都有可能產(chǎn)生的需求,例如查看一個(gè)10G的大文件 | 文本編輯器,Date Time calculator |
| 生物進(jìn)化 | 主要面向進(jìn)化的一些功能 | 構(gòu)建進(jìn)化樹(shù)的方法,進(jìn)化樹(shù)可視化,聯(lián)配(alignment)可視化 |
| 群體遺傳學(xué) | 主要面向群體遺傳學(xué)的一些功能 | 檢測(cè)正選擇方法,探究群體歷史,計(jì)算多樣性,物種或者人群混合 |
| 基礎(chǔ)統(tǒng)計(jì)與一些應(yīng)用 | 如其名字,統(tǒng)計(jì)的分布,假設(shè)檢驗(yàn)等等 | MA plot, 火山圖,t-test這些;還有PCA,層次聚類 |
| 數(shù)據(jù)的可視化與探索 | 可視化文本數(shù)據(jù),做出漂亮的圖,還可以交互式的調(diào)整 | 前面分類的操作臺(tái)類的模塊 |
| 基因組學(xué) | 主要探究DNA,有一類比較多的就是Call SNP之后得到VCF文件之后的很多分析 | 計(jì)算群體多樣性,GWAS(當(dāng)然現(xiàn)在還沒(méi)有實(shí)現(xiàn)) |
| 轉(zhuǎn)錄組學(xué) | 主要探究RNA,如一直流行的RNA-seq數(shù)據(jù)分析 | RNA-seq 各個(gè)流程,如一些下游的火山圖繪制 |
| 蛋白質(zhì)組學(xué) | 主要探究蛋白質(zhì),如質(zhì)譜數(shù)據(jù)分析 | 如eGPS中的MAP方法的實(shí)現(xiàn) |
其實(shí)對(duì)eGPS來(lái)說(shuō),它主要是一個(gè)應(yīng)用于進(jìn)化和群體遺傳學(xué)以及數(shù)據(jù)可視化與探索的軟件。
3.按照模塊復(fù)雜度來(lái)分
這個(gè)模塊復(fù)雜度是和用戶的上手程度強(qiáng)烈相關(guān)的,所以這個(gè)標(biāo)題也可以叫做 按照用戶上手難易程度來(lái)劃分
| 類型名稱 | 注備 | 舉個(gè)例子 |
|---|---|---|
| 簡(jiǎn)單模塊 | 遵循最基本的 “打開(kāi)-導(dǎo)入-點(diǎn)擊按鈕-輸出” 的邏輯,參數(shù)比較少,功能單一 | 一些小工具,簡(jiǎn)單可視化模塊 |
| 復(fù)雜模塊 | 模塊功能很多,要完全掌握需要看使用手冊(cè),參數(shù)多 | 現(xiàn)在eGPS的熱圖,大型插件CGB |
| 中等模塊 | 介于兩者之間 | - |
歡迎多多評(píng)論支持?。?!