【科研貓·繪圖】今夏最熱的「熱圖」(帶R程式碼分享)

  • 2019 年 10 月 6 日
  • 筆記

熱圖是科研論文中一種常見的可視化手段,因其豐富的色彩變化和飽滿的資訊涵蓋量,往往是一篇文章中最引人注目的所在之一。上至CNS頂刊,下至1到2分小文,可以說熱圖無處不在,堪稱文章C位。如何做出一張完美的熱圖,是居家旅行(科研寫作),拜訪親朋好友(征服editor和reviewer的心)必備技能。本次教程,我們將為大家詳細講述如何使用R語言繪製高大上的熱圖。

什麼是熱圖,比如上圖是來源於兩篇CNS級別文章中截取下來的主圖,一眼看去,一張合格的熱圖主要由四大部分組成,一個是像浴室瓷磚一樣的小色塊鋪成的色板,也可以稱作熱圖本身,是熱圖必不可少的部分,一個是色板上面的聚類樹,一個是色板和聚類樹中間附註,用來標註樣本的資訊,最後一個便是標註色板的顏色變化尺。

熱圖的本質是表現數值矩陣,色板中的每個方格都是一個數值,按照色彩變化尺的要求,根據數值大小顯示出不同顏色。在生物醫學領域的文章中,熱圖通常用來以樣本為列,基因等實驗得到的表型數值為行,用來展示不同組別/樣本之間的差異。

好了,理論知識就介紹到這裡,接下來就直接上乾貨啦~

本次教程介紹pheatmap這個R包,此包功能強大,製作熱圖方便給力。

1. pheatmap包安裝及載入

我們先在R上安裝pheatmap這個包,首先打開Rstudio。

2. 實戰演練

pheatmap包的數據輸入是一個矩陣(matrix),我們先讀入基因表達譜數據

expression.txt

使用head函數查看文件,expression.txt文件中一共包含10個樣本,50個基因,其中每一列為一個樣本,每一行為一個基因

比如第一行第一列數據,代表M1樣本中GBP4的表達量,直接使用pheatmap(data),便可以得到一張熱圖。

這樣,一張熱圖就出來啦~

如果我們要修改熱圖的顏色,只需要使用color這個參數就可以啦。這裡給大家推薦一個網址,https://www.bootcss.com/p/websafecolors/,裡面有非常多的顏色可供選擇。使用color顏色更改顏色變化尺之後的熱圖會更好看啦。我們可以參考文章中的繪圖顏色,這樣會讓我們的熱圖更富有視覺效果。

color.key是我們構建的顏色變化尺,以後只需要修改color.key的內容,就可以輕鬆搞定各種色圖顏色了。

在科研做圖過程中,有時候我們並不需要對基因或者樣本進行聚類,那麼如何調整熱圖中的聚類樹呢,在pheatmap函數中,cluster_row參數可以控制基因的聚類,cluster_col可以控制樣本的聚類。比如將cluster_row設置為FALSE,那麼基因就不會進行聚類運算了。

參考科研期刊中的文章熱圖,還有一個重要的部分,就是樣本的附註,用來標註哪些樣本是實驗組,哪些樣本是對照組。那麼如何實現在熱圖中添加標註呢?程式碼如下:

本期乾貨

!!繪製熱圖程式碼!!

原文詳情:「科研貓」公眾號