
這或許是一個(gè)減少你抓狂狀態(tài)發(fā)生的操作。
寫在前面
正如上圖,左右其實(shí)都是一組數(shù)據(jù)出來(lái)的圖片,基因之間的聚類關(guān)系是完全相同的,但展示的位置是不一樣的。這個(gè)功能,其實(shí)我很早就已經(jīng)間接實(shí)現(xiàn)了。這個(gè)操作實(shí)現(xiàn),其實(shí)是一件比較麻煩的事情。這幾天陸續(xù)有看到一些提問(wèn),猜想,或者是同一個(gè)人換了不同QQ號(hào)?還是要提交畢業(yè)論文了,大家著急?
我個(gè)人比較有信心的是,目前現(xiàn)行熱圖繪制工具中,完全不存在支持這個(gè)操作的。因?yàn)橹С诌@個(gè)操作的,不是簡(jiǎn)單的熱圖繪制工具,而是相對(duì)高級(jí)的進(jìn)化樹可視化工具。
無(wú)論如何,由于操作起來(lái)看起來(lái)似乎有點(diǎn)繁瑣,但我還是決定直接寫一個(gè)推文,主要分兩大塊:
- 如何手動(dòng)調(diào)整TBtools中聚類的位置(而不改變聚類關(guān)系)
- 為什么在TBtools中實(shí)現(xiàn)這個(gè)操作需要兩步
如何手動(dòng)調(diào)整TBtools中基因聚類位置
首先,要有一張熱圖

然后要有聚類關(guān)系

可以看出來(lái),這里是兩個(gè)分支,于是,your boss說(shuō):
某某,請(qǐng)你把高表達(dá)的放到下面,這樣有利于我們闡述生物學(xué)故事
此時(shí)你應(yīng)該是鼠標(biāo)移動(dòng)到空白處,右鍵雙擊

于是你進(jìn)入了TBtools的高級(jí)用戶階段,因?yàn)槟憬K于知道如何打開隱藏開關(guān),可以明顯看到進(jìn)化樹上存在很多隱藏元件。鼠標(biāo)找到你想要的分支主節(jié)點(diǎn)。我們此時(shí)想要的是調(diào)整大分支。雙擊該隱藏元件

點(diǎn)擊一次Flip菜單(此時(shí),可能你要鼠標(biāo)滾輪一下;當(dāng)然你不打開隱藏元件邊框的情況下,能直接找到分支也可以),滾輪后,你可以看到

分支關(guān)系已經(jīng)調(diào)整,但是熱圖并沒(méi)有調(diào)整過(guò)來(lái)。于是,你繼續(xù)雙擊隱藏元件(你不需要用鼠標(biāo)右鍵雙擊空白來(lái)顯示隱藏元件,因?yàn)槟愦蟾胖?,其?shí)機(jī)關(guān)就在哪里,只是你看不到,由他,點(diǎn)就是了。)

隨后點(diǎn)擊"Get SubTree.nwk",

此時(shí),你的電腦剪切板中已經(jīng)保存了newick文本,回到主界面

黏貼進(jìn)化樹,隨后點(diǎn)擊繪圖,可以得到以下

小結(jié)以上,可以用下圖來(lái)展示效果

同樣的操作,你可以調(diào)整小分支,直到你喜歡位置。(但是,注意,聚類關(guān)系是永遠(yuǎn)改變不了的,改變的只是展示順序)
我當(dāng)然相信,用戶總是比我更知道如何使用TBtools,繪制出更好看的圖片。
為什么調(diào)整一個(gè)聚類位置似乎很繁瑣?
其實(shí)在前面已經(jīng)提到,即,這個(gè)關(guān)系到程序?qū)崿F(xiàn)的問(wèn)題。我們都很清楚,調(diào)整位置事實(shí)上,是一個(gè)相對(duì)不常見的需求,尤其是當(dāng)他出現(xiàn)在熱圖的繪制上。以我個(gè)人的認(rèn)知,目前確實(shí)并不存在熱圖繪制工具支持這個(gè)調(diào)整(當(dāng)然,很可能是我個(gè)人用的軟件太少)。
為什么我會(huì)有這個(gè)想法。其實(shí)比較簡(jiǎn)單,
熱圖工具,往往是以熱力圖為導(dǎo)向來(lái)實(shí)現(xiàn)的,目的是展示數(shù)值的變化;而聚類,本身就是一個(gè)附屬功能。
聚類樹位置和順序的調(diào)整,往往是存在于進(jìn)化樹可視化軟件的。目的是,更好地展示進(jìn)化順序。而其中,展示熱力圖,本身是一個(gè)附屬功能。
從程序的實(shí)現(xiàn)邏輯來(lái)看,其實(shí)最好的做法是,當(dāng)熱力圖要帶上聚類關(guān)系是,以進(jìn)化樹為導(dǎo)向來(lái)實(shí)現(xiàn)。先放出我個(gè)人的關(guān)于程序?qū)崿F(xiàn)的兩個(gè)想法:
好的程序,要求的是高內(nèi)聚,低耦合。我一直在努力。從JJplot到JJplot2再到現(xiàn)在的JIGplot。是一個(gè)從重到輕的變化(不是進(jìn)化,因?yàn)檫@三個(gè)繪圖引擎,我都是從零實(shí)現(xiàn)的,相互間的實(shí)現(xiàn)邏輯和思想幾乎是完全不同)。很明顯,JJplot早已不見蹤影。JJplot2還活在TBtools的少量工具中,但是繪圖不好實(shí)現(xiàn),且交互性很差。回到主題,兩個(gè)定義:
很重的操作:意思就是,寫了一堆代碼,只是實(shí)現(xiàn)一個(gè)特定的功能,沒(méi)有復(fù)用價(jià)值
很輕的操作:意思就是,寫了一塊一塊的代碼,隨時(shí)組合,就鞥實(shí)現(xiàn)不同的功能。
為什么這么說(shuō)?這涉及到一個(gè)交互的問(wèn)題。如果只是靜態(tài)地同時(shí)展示,那么是比較簡(jiǎn)單。樹圖可以是一個(gè)Panel,熱力圖也是一個(gè)Panel,對(duì)齊就行了(目前你看到的大多數(shù)工具,可能就是這么一個(gè)操作)。一切,都是很輕的操作。
但是,交互式地同時(shí)展示,那就完全不同。一切以進(jìn)化樹的位置來(lái)直接調(diào)整熱力圖的位置...這個(gè)其實(shí)是很重的一個(gè)操作。因?yàn)橐磺性⒉皇窃讵?dú)立的Panel,而是在同一個(gè)Panel。這個(gè)Panel,只能用一次?。?!這個(gè)對(duì)程序編寫者來(lái)說(shuō),似乎性價(jià)比太低。
寫在后面
OK,有的話多說(shuō)了。中午休息時(shí)間也用完了。干活去啦。
題外
課題組每年暑期有內(nèi)部生信入門培訓(xùn),主要是對(duì)實(shí)驗(yàn)室新生開展(以及濕實(shí)驗(yàn)為主的成員)培訓(xùn)。一直有收到其他課題組想要了解我們課題組生信數(shù)據(jù)分析的想法。故,在博導(dǎo)的提議和課題組的討論后,我們近期計(jì)劃,在本年度暑期(7~8月份之間)對(duì)外增設(shè)生信基礎(chǔ)培訓(xùn)名額10枚(前面每年只是課題組內(nèi)培訓(xùn),而不對(duì)外)。具體請(qǐng)見https://mp.weixin.qq.com/s/OtmeTErd9f9rvjJPtBKjMw

歡迎訪問(wèn)本課題組網(wǎng)站
園藝植物小分子RNA與基因組研究-夏瑞課題組

課題組主頁(yè):http://xialab.scau.edu.cn/