熱圖如何去掉聚類樹的同時保留聚類的順序?

劉小澤寫于2020.5.15
相信你看到這個問題秦忿,可能感覺很簡單,不就一個參數(shù)的問題嗎赠堵?
下面來看探索(全程是基于pheatmap來做的)

首先構(gòu)建一個測試數(shù)據(jù)

library(pheatmap)
test = matrix(rnorm(200), 20, 10)
test[1:10, seq(1, 10, 2)] = test[1:10, seq(1, 10, 2)] + 3
test[11:20, seq(2, 10, 2)] = test[11:20, seq(2, 10, 2)] + 2
test[15:20, seq(2, 10, 2)] = test[15:20, seq(2, 10, 2)] + 4
colnames(test) = paste("Test", 1:10, sep = "")
rownames(test) = paste("Gene", 1:20, sep = "")
# 20行(基因)小渊,10列(樣本)的一個表達矩陣
> test[1:4,1:4]
          Test1        Test2    Test3      Test4
Gene1 0.6807237 -0.860925078 1.855526 -0.4521751
Gene2 3.9723180 -0.002143337 3.571518 -0.9309492
Gene3 2.8913975 -0.055238202 3.505305 -0.2134826
Gene4 4.6034459 -0.420745550 4.334734 -0.9265620

然后最簡單的熱圖是

p1=pheatmap(test)
p1
最簡單的熱圖

現(xiàn)在看到违寞,這里的樣本预烙、基因都進行了聚類,將表達相似的排在了靠近的位置蜈缤,可以讓整個圖更美觀

但有時候揍愁,受限于排版的版面大小以及不關(guān)心基因之間的聚類關(guān)系呐萨,不想要聚類樹,但是還是想要上面這種已經(jīng)排好的位置關(guān)系

如果簡單調(diào)整參數(shù)

如果只是簡單設(shè)置莽囤,那么最后的樣子也會改變

pheatmap(test,cluster_rows = F,cluster_cols = F)
只是簡單設(shè)置谬擦,最后的樣子會改變

達不到第一張圖的效果,基因名和樣本名的位置對不起來

情急之下朽缎,可能會手動調(diào)整基因名和樣本名的位置惨远。但畢竟不是有效之舉谜悟,下次再遇到依舊是個難題...

其實一個小技巧就能拯救

我們?yōu)榱撕竺娣奖惚4妫?jīng)常會把圖片保存為一個變量北秽,然后直接運行這個變量就會打印圖片葡幸;保存這個變量就會另存為不同類型的圖片

但是,保存的這個變量不單單是個字母(比如上面的p1)贺氓,它還暗藏信息

p1默認是對行和列都進行聚類的蔚叨,因此我們可以從p1中提取到聚類后的行、列結(jié)果辙培,而不用手動去挑【重點就是下面兩行代碼

gn=rownames(test)[p1$tree_row[["order"]]]
sn=colnames(test)[p1$tree_col[["order"]]]
> gn
 [1] "Gene16" "Gene19" "Gene15" "Gene18" "Gene17" "Gene20" "Gene5"  "Gene2"  "Gene4"  "Gene7"  "Gene10" "Gene8" 
[13] "Gene3"  "Gene9"  "Gene1"  "Gene6"  "Gene13" "Gene14" "Gene11" "Gene12"
> sn
 [1] "Test6"  "Test10" "Test2"  "Test4"  "Test8"  "Test1"  "Test3"  "Test5"  "Test7"  "Test9" 

稍微看一下蔑水,是不是和第一張圖的名稱是對應(yīng)的呢

然后如果這時我們再畫圖呢?

# 按照挑出來的基因和樣本號進行重排序
new_test=test[gn,sn]
pheatmap(new_test,cluster_rows = F,cluster_cols = F)
最后兩張就一樣了

歡迎關(guān)注我們的公眾號~_~  
我們是兩個農(nóng)轉(zhuǎn)生信的小碩扬蕊,打造生信星球搀别,想讓它成為一個不拽術(shù)語、通俗易懂的生信知識平臺尾抑。需要幫助或提出意見請后臺留言或發(fā)送郵件到jieandze1314@gmail.com

Welcome to our bioinfoplanet!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末领曼,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子蛮穿,更是在濱河造成了極大的恐慌庶骄,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,865評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件践磅,死亡現(xiàn)場離奇詭異单刁,居然都是意外死亡,警方通過查閱死者的電腦和手機府适,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,296評論 3 399
  • 文/潘曉璐 我一進店門羔飞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人檐春,你說我怎么就攤上這事逻淌。” “怎么了疟暖?”我有些...
    開封第一講書人閱讀 169,631評論 0 364
  • 文/不壞的土叔 我叫張陵卡儒,是天一觀的道長。 經(jīng)常有香客問我俐巴,道長骨望,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,199評論 1 300
  • 正文 為了忘掉前任欣舵,我火速辦了婚禮擎鸠,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘缘圈。我一直安慰自己劣光,他們只是感情好袜蚕,可當我...
    茶點故事閱讀 69,196評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著绢涡,像睡著了一般廷没。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上垂寥,一...
    開封第一講書人閱讀 52,793評論 1 314
  • 那天,我揣著相機與錄音另锋,去河邊找鬼滞项。 笑死,一個胖子當著我的面吹牛夭坪,可吹牛的內(nèi)容都是我干的文判。 我是一名探鬼主播,決...
    沈念sama閱讀 41,221評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼室梅,長吁一口氣:“原來是場噩夢啊……” “哼戏仓!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起亡鼠,我...
    開封第一講書人閱讀 40,174評論 0 277
  • 序言:老撾萬榮一對情侶失蹤赏殃,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后间涵,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體仁热,經(jīng)...
    沈念sama閱讀 46,699評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,770評論 3 343
  • 正文 我和宋清朗相戀三年勾哩,在試婚紗的時候發(fā)現(xiàn)自己被綠了抗蠢。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,918評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡思劳,死狀恐怖迅矛,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情潜叛,我是刑警寧澤秽褒,帶...
    沈念sama閱讀 36,573評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站威兜,受9級特大地震影響震嫉,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜牡属,卻給世界環(huán)境...
    茶點故事閱讀 42,255評論 3 336
  • 文/蒙蒙 一票堵、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧逮栅,春花似錦悴势、人聲如沸窗宇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,749評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽军俊。三九已至,卻和暖如春捧存,著一層夾襖步出監(jiān)牢的瞬間粪躬,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,862評論 1 274
  • 我被黑心中介騙來泰國打工昔穴, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留镰官,地道東北人。 一個月前我還...
    沈念sama閱讀 49,364評論 3 379
  • 正文 我出身青樓吗货,卻偏偏與公主長得像泳唠,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子宙搬,可洞房花燭夜當晚...
    茶點故事閱讀 45,926評論 2 361