熱圖(Heatmap)之大,一屏放不下?

寫(xiě)在前面

久前,我開(kāi)放了 TBtools 掰彎熱圖的功能。我自認(rèn)為是TBtools的掰彎熱圖,至少目前還是市面上獨(dú)此一家,同時(shí),保證了所有人都上手就會(huì)用。這一功能,也已經(jīng)被在一些期刊論文所引用。
無(wú)論是TBtools的Amazing Heatmap,還是后面增加的 掰彎 模式,都只是我個(gè)人開(kāi)發(fā)繪圖引擎 JIGplot 過(guò)程中測(cè)試實(shí)用性而順手寫(xiě)出來(lái)的。然而,可能往往你做的東西不會(huì)得到認(rèn)可,而期間所得到的副產(chǎn)品則更多人喜愛(ài)。
盡管如此,社交網(wǎng)絡(luò)上,總是存在這樣那樣的人,他們或者用與不用你寫(xiě)的工具,但卻一定會(huì)對(duì)你做的事情指指點(diǎn)點(diǎn)。正如:

  • ?熱圖有什么?
  • ?掰彎的熱圖,又有什么用?

直的不行,那就彎啊

大丈夫,能屈能伸。這個(gè)道理,過(guò)分簡(jiǎn)單。前兩天正好想到一個(gè)不錯(cuò)點(diǎn),改進(jìn)了JIGplot,于是掰彎熱圖也得到一定的增強(qiáng)。所以,可以用以下兩個(gè)圖片來(lái)回復(fù)上述問(wèn)題。



版面總是有限的。注意到,上述兩張圖的長(zhǎng)寬幾乎一致。經(jīng)典的長(zhǎng)方形熱圖(要么太高,要么太胖),事實(shí)上不利于排版(放不下,要么就字體縮得太小)。用有限的空間展示更多的信息,那么掰彎時(shí)最常見(jiàn)的操作,比如Circos。

開(kāi)放TBtools,轉(zhuǎn)眼近四年。無(wú)論是《生信札記》公眾號(hào)的后臺(tái),或者是使用交流QQ群(~10,000人在群)。每天我都會(huì)看到這樣那樣的使用問(wèn)題,意見(jiàn)更或者建議。絕大多數(shù)都是善意的,也是好的。但也一直收到各種各樣的惡語(yǔ),無(wú)論他們用或沒(méi)用過(guò)TBtools,受益或者沒(méi)受益于TBtools。一開(kāi)始,我當(dāng)然是不爽的。后來(lái),我早就習(xí)慣的,脾氣也慢慢變好了,講真的,現(xiàn)實(shí)中各式各樣的人遇到過(guò),網(wǎng)絡(luò)上,更奇葩的各式各樣的人,我也遇到過(guò)。真誠(chéng),欣賞,厭惡,擔(dān)心,陰陽(yáng)等等,其實(shí)也很有趣。你得到了朋友,也會(huì)得到敵人。

好的,那么回到主題,既然我都淡定了,那么為什么還要寫(xiě)這個(gè)推文。

TBtools熱圖功能增強(qiáng)了!

知道我的人都知道,近兩個(gè)月來(lái),我一直在忙家里的事情。這對(duì)個(gè)人工作的開(kāi)展來(lái)說(shuō),有利有弊。弊端簡(jiǎn)單且明顯,所有時(shí)間都碎片化,幾乎無(wú)法很好很快地完成一些任務(wù)。好處就是....既然啥都干不了,那就瞎想。瞎想是我個(gè)人從高中養(yǎng)成的習(xí)慣。有些搞不定的問(wèn)題就記著,有碎片化時(shí)間了,比如坐車(chē),睡不著,那就開(kāi)始想這些問(wèn)題。很多時(shí)候,這些問(wèn)題總會(huì)一個(gè)一個(gè)被解決。昨天,我正好想到了熱圖工具相關(guān)的可增強(qiáng)的點(diǎn)。

渲染速度更快

之前的TBtools版本,繪制十多個(gè)樣本X上千個(gè)基因的熱圖時(shí),存在一定的卡頓。針對(duì)這個(gè),我優(yōu)化了:

  1. 數(shù)據(jù)框加載與讀取邏輯,因?yàn)槭亲约簭牧銓?xiě)的dataframe, 支持了各式各樣的NA,空格,缺列等等
  2. 數(shù)據(jù)框存儲(chǔ)與操作,....不在使用數(shù)列的數(shù)列,直接使用二維數(shù)組。
  3. 顏色映射邏輯,熱圖其實(shí)就是畫(huà)性狀,按照一定的尺度進(jìn)行顏色映射,JIGplot原本直接使用我之前寫(xiě)的JJplot2的ColarMapper。小時(shí)候的我Naive,那個(gè)邏輯不行,現(xiàn)在已經(jīng)更新。
    ....

聚類(lèi)速度更快

與上述類(lèi)似,聚類(lèi)涉及到距離計(jì)算和聚類(lèi)操作,兩個(gè)步驟,我都做了調(diào)優(yōu)。距離的計(jì)算中,通過(guò)存一個(gè)Hash,減少重復(fù)計(jì)算。聚類(lèi),也是類(lèi)似。

掰彎功能增強(qiáng)

之前的TBtools掰彎熱圖,其實(shí)...不支持列聚類(lèi),當(dāng)然,并沒(méi)有太多人發(fā)現(xiàn)或者其實(shí)很少人需要對(duì)列聚類(lèi)?不過(guò)這一只是我想做的事情。最后當(dāng)然是完成了。

  1. 列名能更好的排布
  2. 列聚類(lèi)樹(shù)終于支持掰彎!

....
當(dāng)然還有更多,只是,那些似乎不太值得寫(xiě)出來(lái)。

寫(xiě)在最后

追求卓越,成功就會(huì)緊隨而至,嗎?

?著作權(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)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 難道,這不像孔雀開(kāi)屏嗎? 寫(xiě)在前面 組學(xué)數(shù)據(jù)已經(jīng)泛濫,但是信息的挖掘仍任重道遠(yuǎn)。順手的工具,可以節(jié)省使用者盡可能多...
    生信石頭閱讀 21,425評(píng)論 1 86
  • 又是一年的十一國(guó)慶節(jié)了,也就意味著這一年也快結(jié)束了。 和從前一樣,每次都會(huì)在年末設(shè)想著美好的下一年,可是結(jié)果還是半...
    euthy閱讀 262評(píng)論 0 0
  • 現(xiàn)代社會(huì)對(duì)人的要求越來(lái)越高了,孩子要聽(tīng)話(huà),學(xué)習(xí)好……成年人,要有穩(wěn)定工作,要孝順父母,教育好孩子,……仿佛如果你有...
    泙瀞_7b03閱讀 415評(píng)論 0 1
  • 七年后再見(jiàn)認(rèn)識(shí)的這個(gè)姐姐,這次如她所愿,她又結(jié)婚了,身邊伴隨著一個(gè)和她一樣略顯羞澀,同樣謙和的老公。 ...
    清水有痕閱讀 359評(píng)論 0 1

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