一個heatmap是如何練成的!(後附視頻解析)

2021-01-18 醫學方

Heatmap(熱圖)大家肯定不陌生,在很多醫學、自然科學發表的重量級論文中常見其蹤影。使用heatmap可以非常容易展示多組分之間關係或相關性,也是基因表達、前後差異對比大數據關係展示較好的工具,其實啊,實際中只要是矩陣數據也許都合適拿heatmap來展示其內在關係。其實,heatmap還有蘊含著不少分析的秘訣。那麼,高大上的heatmap是怎麼實現的呢?

目前,熱圖的繪製可以通過在線軟體、 PCORD、 python、R語言等方式實現,個人推薦還是R語言實現的比較便捷,而且能實現一些高級的分析功能。在浩如煙海的R平臺中,有heatmap3包、gplot包、heatmaply包、pheatmap等包,(還不包括可以間接實現熱圖的ggplot2、lattice等包)可以實heatmap的繪製。今天與大家分享的是以美觀、便捷與變化多樣著稱的pheatmap包。熱圖的繪製不僅是圖形,還涉及數據整理與分析、高級分析與運用、色彩等方面。請跟著我們的腳步,經過八步很快你也可以成為駕馭heatmap的能手,做出屬於你自己的熱圖。

事不宜遲,首先我們應該有一套數據。我們以機器學習常用的Breast Cancer Wisconsin (Diagnostic) Data Set數據為例說明pheatmap的使用,此數據集是利用各類細胞活體取樣診斷患者是否患有乳腺癌的數據集,具體的說明詳見網頁。

網址:

http://archive.ics.uci.edu/ml/datasets/Breast+Cancer+Wisconsin+%28Diagnostic%29

pheatmap包的命令僅有一個pheatmap,但是包含幾十個參數,基本可以把heatmap修個遍。

首先,heatmap不太適合數據量很大的矩陣,比如超過幾百項,基本就看不清楚行或列的標識。因此,畫heatmap最重要一步反而是數據提煉預處理,我們會根據實驗的目的,把最想顯示的數據進行預處理。

pheatmap(w1[,-10])

pheatmap(scale(w1[,-10]))

#pheatmap可以接受方陣與矩陣的數量數據,不支持分類等數據(故此去掉第十列),因此比較靈活。注意第一張與第二張的差別,第二張進行了數據的標準化,縮小了數據的跨度,也可以使用內置的scale的命令進行行列標準化。


pheatmap默認的顏色是RColorBerry的"RdYlBu"配色包(配色,是R平臺很有講究的一個大坑),通過color命令,可以自己的調配更換自己的顏色,圖例的變化也會根據顏色的取值進行變化。顏色調節讓我們的熱圖看起來不一樣(下文分別使用了連續色與不連續顏色展示)。

pheatmap(scale(w1[,-10]),color=heat.colors(100))

pheatmap(w1[,-10], color = colorRampPalette(c("green3", "white", "bisque"))(50))

pheatmap(scale(w1[,-10]),color=brewer.pal(7,"PuBuGn"))



圖例也是很容易更改的,剛才在顏色調整的時候color = colorRampPalette(c("green3", "white", "bisque")),三種顏色可以對應低、中、高三段不同的數量。但更進一步圖例的設定可以通過break、legend命令實現圖例的變化。

pheatmap(scale(w1[,-10]),legend = FALSE)

pheatmap(w1[,-10], cluster_row = FALSE, legend_breaks = -1:4, legend_labels = c("0","1e-4", "1e-3", "1e-2", "1e-1", "1"))

pheatmap(scale(w1[,-10]),legend_breaks = c(0.5,1.5,2.5))

pheatmap可以控制是否顯示行、列名稱、聚類結果以及單元格大小。pheatmap(w1[,-10],cluster_rows = F,cluster_cols = F)

#關閉行、列聚類結果

pheatmap(w1[,-10],show_rownames = F,cluster_rows = F)

#不顯示行標籤與聚類結果

pheatmap(w1[,-10],show_colnames = F,cluster_cols = F,cellwidth =10,cellheight =10)

#單元格大小可控,可調節圖形的比例


數字或者符號顯示也是論文常用的標註方法,尤其第二種方式,請大家細細體會。

pheatmap(w1[,-10], display_numbers = TRUE, number_format = "%.1e")  

pheatmap(w1[,-10], display_numbers =ifelse(w1[,-10] >1, "A", ""))


在上面heatmap的分析中已經初步展示了行、列的聚類關係。聚類是Heatmap展示數據內部關係的一個重要方法,可以揭示數據之間潛在的關係。聚類在機器學習領域屬於無監督學習的一類,其計算過程可分為數據處理、關係矩陣化與聚類方式三個部分。關係矩陣化是指把要聚類的數據轉化為一個關係矩陣,最簡單是採用歐氏距離法;在此基礎上通過singlelinkage(單連動)、complete linkage(全聯動)、average linkage(平均聯動),ward等層次聚類或者K均值(K-mean)、圍繞中心劃分等(PAM)聚類方法進一步計算聚類樹狀圖與分組。看起來很複雜,但在pheatmap裡會自動完成大部分工作。

pheatmap可以通過clustering_distance_rows/cols控制聚類的方法。clustering_distance_rows/cols可以繼承dist或其他公式計算關係矩陣,而clustering_method則用於控制聚類方式,兩個命令配合可以實現各種不同聚類圖的目的。

pheatmap(w1[,-10], colorRampPalette(brewer.pal(10, "RdYlBu"))(256),kmeans_k = 2)

# K-mean聚類,分多少個類與實驗目的有關,此項研究分兩類,但這個方法個人認為實現得不夠好

pheatmap(w1[,-10], scale = "row", clustering_distance_rows = "correlation")

#可以實現按行數據間皮爾遜相關性進行聚類

#當我們不滿足默認的聚類方法時,可以用cluster_hclust或callback函數重排聚類


 pheatmap還提供行、列的分組標註功能,可供分類探索與進一步按分組標註樣品。先建立樣品標籤class1,class2

注意標註必須與原數據的行名與列名一致,本研究僅有class標註有意義,其他的class1、class2是模擬分組標籤。

pheatmap(w1[,-10],  annotation_row = ann_row,annotation_col = ann_col)

經過注釋後可以形成多個分類的標註,此外利用ann_colors還可以自己分配分組的顏色,靈活性更大。


關於heatmap的實現,這裡面只用到了最重要的部分代碼,其實還有不少技巧可以深挖,有興趣可以查看pheatmap函數的幫助文件,最重要的是自己去嘗試,很快屬於你自己特色的heatmap就隨手可得。

到此,全文結束,有興趣的同學還可以就聚類、自定義顏色與深度分析進行進一步的交流與探索。


附相關視頻解析:



相關代碼下載:

下載網址:

https://pan.baidu.com/s/1QWMJpkqvISnGwtFUNUXsdw

向醫學方公眾號首頁發送「heatmap」即可得到下載密碼




「醫學方」現正式向粉絲們公開徵稿!內容須原創首發,與科研相關,一經採用,會奉上豐厚稿酬(300-2000元),詳情請戳。


「醫學方」始終致力於服務「醫學人」,將最前沿、最有價值的臨床、科研原創文章推送給各位臨床醫師、科研人員。



醫學方已推出「實驗室那些事兒」「SCI寫作技巧」「文獻精讀與解析」「醫學英語輕鬆學」「國自然基金申請」「臨床數據挖掘」、「基因數據挖掘」、「R語言教程」、「醫學統計學」、「微創動物實驗培訓」等多個專題課程,如需了解課程詳細推文,可關注「醫學方」公眾號,點擊「精品專題」進入


騰訊課堂:https://medfun.ke.qq.com

網易雲課堂:http://study.163.com/u/ykt1467466791112

客服電話:15821255568

客服微信:yixuefang1234


溫馨提示:醫學方還設有專門的討論群哦~各位明星導師都在群中,可以解答各位的遇到的問題,如有興趣,可以加客服微信後加入群聊...

相關焦點

  • 720度迴旋踢如何練成?
    720度迴旋踢如何練成? (視頻來源於網絡,如有侵權請聯繫刪除!)
  • complexHeatmap版本的對角線熱圖
    這裡就把之前使用complexheatmap繪製的版本也拿來和大家分享一下。主要操作加載包注意:ComplexHeatmap包的安裝需要安裝github版本的。很多函數在bioconductor版本沒有。
  • R包ComplexHeatmap繪製個性化熱圖
    使用ComplexHeatmap包繪製個性化熱圖作者:劉夢瑤 諾禾致源 微生物信息審稿:劉永鑫 中國科學院遺傳與發育生物學研究所ComplexHeatmap包由顧祖光博士創建,是一個非常全面的繪製熱圖的
  • 關曉彤大長腿如何練成?牢記3點腿圍暴瘦5cm,00後快get
    關曉彤大長腿如何練成?牢記3點腿圍暴瘦5cm,00後快get 娛樂圈裡面的明星很多,但是說到關曉彤,相信大家都知道,在最近幾年她的變化可以說很大,不僅出演了很多的電視劇,而且也是越長越漂亮的,被粉絲們稱為是整容式長大,現在關曉彤不僅化妝很精美,而且在穿搭方面有著自己的獨特味道,很多粉絲在看到之後也紛紛表示,現如今的關曉彤真的是大變樣,不僅底子好,而且身材也受到了很多人的羨慕
  • ​視頻(015):Dennis K. Bielecki——倫敦國王學院肌骨影像病例解析視頻回放(第2部分)
    a Chest X-ray(附視頻連結)實力圈粉!(附視頻)英文視頻:COVID-19的CT表現英文視頻:新冠肺炎(COVID-19 )的胸部CT表現視頻回顧丨中華醫學會第二十六次全國放射學學術大會CCR 2019英文視頻及英文PPT一覽表CCR2019青委專場—英文論文大賽決賽,朝氣蓬勃(附冠亞軍選手現場視頻片段)2019
  • 小紅娘:轉世續緣也許只是個陰謀,虛空之淚的練成原因就是證據
    畢竟這可是一個任何人都沒有辦法掌握,並且只有塗山才能為妖界續緣的東西,這也是塗山能夠在妖界奠定霸主地位的原因之一,那麼苦情樹究竟像要幹什麼呢?它真的不存在自我意識嗎?下面就讓小菌帶大家解析一下這個問題吧!首先大家可以確定,苦情樹的轉世續緣並不是唯一的,也就是說,轉世續緣並不是只有苦情樹這一條路可以走。
  • 薦你一款heatmap作圖神器
    今天冬至兄就是來告訴你一個熱圖神器的。Stanford大學的Ashley實驗室開發了一款製作heatmap圖的軟體,(回復heatmap下載,為了對別人工作表示尊重和感謝,大家使用這款軟體時記得引用文獻:King JY, Ferrara R, Tabibiazar R, Spin JM, Chen MM,Kuchinsky A, Vailaya A, Kincaid R, Tsalenko A, Deng DX, Connolly
  • 我的俠客如何煉成純陽體純陰體 特殊體質練成方法
    我的俠客如何煉成純陽體純陰體,特殊體質練成方法。一起來看看本期攻略,為大家簡單的講解一下一些遊戲中沒有明確表示,但是在暗中透露給大家的重要訊息。其中就包括了如何煉成純陽體純陰體的方法,想要知道特殊體質如何煉成嗎,想要看看特殊體質有什麼特殊之處嗎,來看看吧!
  • 如何給視頻添加光暈效果
    大多數被人們解釋為從顯影后影響邊緣蔓延出來的虛影。下面為大家分享一下小編是如何給視頻添加光暈效果的。製作軟體:迅捷視頻剪輯軟體第一步:添加素材在進入視頻剪輯軟體界面後,我們需要先將視頻文件添加到素材區域,在軟體外選中視頻文件,將其拖拽至軟體指定的素材區域即可。之後同樣可以使用拖拽的方式將視頻素材拖拽到視頻軌道內。
  • 不同附期限合同的效力是怎樣的,附期限合同的效力如何規定?
    現實生活中很多時候都是會涉及到籤訂合同的,這樣的話才可以受到法律的保護,但是籤訂合同效力是有一定的期限的,那麼不同附期限合同的效力是怎樣的,附期限合同的效力如何規定?網友諮詢:不同附期限合同的效力是怎樣的,附期限合同的效力如何規定?上海亞天律師事務所欽飛律師解答:附生效期限的合同,自期限屆至時生效。附終止期限的合同,自期限屆滿時失效。
  • X射線管工作原理,內附精彩視頻!
    X射線管是能夠發生X射線的一個設備或設備的部件。X線是由高速運行的電子束撞擊物質突然被阻時產生的。
  • 醫學英語視頻-肝臟活檢Liver Biopsy
    公眾號內關於國際護士考試的相關文章如何備考國際護士考試-內有視頻和圖片出國當護士離我們到底有多遠!考了ISPN後應該怎麼做?我和我的獅城夢-不負自已,不負時光!經驗分享|夯實基礎,以不變應萬變NCLEX-RN(美國註冊護士考試)Tina解析國際護士資格考試-缺鐵性貧血飲食Tina解析國際護士資格考試-缺鐵性貧血飲食-答案及題解Tina解析國際護士資格考試-低鉀血症Tina解析國際護士資格考試-低鉀血症-答案及題解Tina解析ISPN-這是啥病,談性色變
  • 網絡視頻服務域名動態解析以及DDNS工作原理
    每次ADSL虛擬撥號ISP通常會動態分配給用戶一個公共IP位址,在這種情況下,利用寬帶ADSL網絡進行遠程多點視頻監控應用時,如果監控前端在每次連網後均需將其最新IP位址人工通知監控中心,監控中心才能對該監控點實施監控將是比較困難的;從經濟的角度來講,為監控中心及每一個監控前端申請靜態IP也是不允許的。
  • 一張圖告訴你,練成巨石需要付出的代價!
    一張圖告訴你,練成巨石需要付出的代價! 很多人都很好奇巨石怎麼吃、怎麼練 想知道練成巨石這樣的體格需要付出多少代價
  • 靈性實相 | 吸收宇宙能量的奧秘(附視頻)
    宇宙能量在最強的國王密室裡向整個金字塔擴散,在金字塔頂端安置一個水晶,可以把接收的宇宙能量強化後再擴散到其它的部位,在金字塔裡靜坐,我們達到無念狀態的速度比其它地方快三倍。金字塔,可以與高層的頻率溝通。在金字塔裡靜坐有治療的效果,也可以提升靜坐的體驗。
  • 冥王星 基礎入門知識 By 國家地理,附視頻詳盡解釋
    月球 基礎入門知識 By 國家地理,附視頻詳盡解釋給娃看:地球 基礎入門知識 By 國家地理,附視頻詳盡解釋冥王星 基礎入門知識 By 國家地理,附視頻詳盡解釋Pluto is one of the most mysterious and controversial celestial objects in the solar system.
  • 2015-2016高考物理動量定理專題練習題(附解析)
    2015-2016高考物理動量定理專題練習題(附解析) 2015-11-16 16:47 來源:精品學習網 作者:
  • 天王星 基礎入門知識 By 國家地理,附視頻詳盡解釋
    回顧:給娃看:星星 基礎入門知識 Stars By 國家地理,附視頻詳盡解釋月球 基礎入門知識 By 國家地理,附視頻詳盡解釋火星 基礎入門知識 By 國家地理,附視頻詳盡解釋天王星 基礎入門知識 By 國家地理,附視頻詳盡解釋
  • 飛行員「蜻蜓點水」的功夫是怎樣練成的?請看下文!
    這樣的功夫又是怎樣練成的?時光倒流,讓我們一起回顧那場扣人心弦的精準著陸,領略中國空軍飛行員的風採。8月的這一天,遼闊的太平川靶場雲層低壓,聚焦靶場觀禮臺人頭攢動,數以千計的觀眾翹首以盼,天氣悶熱難耐卻絲毫不能阻擋中外觀眾一睹「航空飛鏢」國際軍事比賽的熱情。寬大的LED顯示屏上,開放日的視頻回放讓觀眾驚嘆之餘對第二階段的比賽充滿期待,不時仰望著高遠的天空。
  • 高中化學專題訓練:20個常考實驗匯總整理(附解析),為孩子收藏
    高中化學專題訓練:20個常考實驗匯總整理(附解析),為孩子收藏高中化學是高中理科當中非常重要的一門科目,特別是對於理科學生來講,學好化學更是學習任務當中的重中之重。可是,高中化學需要同學們掌握的知識點過於繁多,同學們在複習鞏固相關知識點的知識,定然會遇到相關的問題,那麼如何才能有效地解決這些問題呢?其實,對於高中的同學來講,每日的學習任務本來就很繁重,所以如何有效並快速地找到自己的薄弱點,並加以提高則是非常重要的,要學會利用較短的時間完成高質量的複習,只有這樣才能在高考當中取得一個不錯的好成績。