R 數(shù)據(jù)可視化 01 | 聚類熱圖

一. 示例數(shù)據(jù)準(zhǔn)備

下載:鏈接:https://pan.baidu.com/s/1_b8swSkWDqIHZi6UwKaspA
提取碼:pll7

文件說明

示例數(shù)據(jù)巢墅,其中數(shù)據(jù)均為虛擬數(shù)據(jù)蛹头,與實(shí)際生物學(xué)過程無關(guān)

文件名:dataset_heatmap.txt

列分別為基因函卒,cell1的5個(gè)重復(fù)樣本,cell2的5個(gè)重復(fù)樣本

行代表每個(gè)基因在所有樣本的FPKM值

二. 環(huán)境需求

Rstudio:
如果系統(tǒng)中沒有 Rstudio泵额,先下載安裝:https://www.rstudio.com/products/rstudio/download/#download

heatmaps 包:

如果沒有安裝該R包配深,執(zhí)行以下代碼:

if (!requireNamespace("BiocManager", quietly = TRUE))
    install.packages("BiocManager")

BiocManager::install("heatmaps")

三. 繪制聚類熱圖

1. 聚類熱圖繪制
# 執(zhí)行前設(shè)置====================================
# 清空暫存數(shù)據(jù)
rm(list=ls())
# 載入R包
library(pheatmap)
# 設(shè)置工作目錄
setwd("E:/R/WorkSpace/baimoc/visualization")

# 整理數(shù)據(jù)集====================================
# 載入數(shù)據(jù)
dataset <- read.table('resource/dataset_heatmap.txt',header = TRUE, row.names = 1)
# 截取表達(dá)矩陣的一部分?jǐn)?shù)據(jù)來繪制熱圖
exp_ds = dataset[c(1:60),c(1:10)]
# 構(gòu)建樣本分類數(shù)據(jù)
cell_list=c(rep('cell_1',5),
            rep('cell_2',5))
annotation_c <- data.frame(cell_list)
rownames(annotation_c) <- colnames(exp_ds)

# 繪制熱圖=====================================
pheatmap(exp_ds, #表達(dá)數(shù)據(jù)
         cluster_rows = T,#行聚類
         cluster_cols = T,#列聚類
         annotation_col =annotation_c, #樣本分類數(shù)據(jù)
         annotation_legend=TRUE, # 顯示樣本分類
         show_rownames = T,# 顯示行名
         show_colnames = T,# 顯示列名
         scale = "row", #對行標(biāo)準(zhǔn)化
         color =colorRampPalette(c("#8854d0", "#ffffff","#fa8231"))(100) # 熱圖基準(zhǔn)顏色
)

2. 無分類信息熱圖
# 將繪制熱圖部分替換為下列代碼
# 繪制熱圖=====================================
pheatmap(exp_ds, 
         show_rownames = T,
         show_colnames = T,
         scale = "row", 
         color =colorRampPalette(c("#8854d0", "#ffffff","#fa8231"))(100)
)
3. 無聚類熱圖
# 將繪制熱圖部分替換為下列代碼
pheatmap(exp_ds, #表達(dá)數(shù)據(jù)
         cluster_rows = F,
         cluster_cols = F,
         show_rownames = T,
         show_colnames = T,
         scale = "row", 
         color =colorRampPalette(c("#8854d0", "#ffffff","#fa8231"))(100)
)
4. 分割聚類樹熱圖
# 繪制熱圖=====================================
pheatmap(exp_ds, 
         show_rownames = T,
         show_colnames = T,
         scale = "row", 
         color =colorRampPalette(c("#8854d0", "#ffffff","#fa8231"))(100),
         cutree_cols = 2,
         cutree_rows = 20
)
5. 多分組聚類熱圖
# 清空暫存數(shù)據(jù)
rm(list=ls())
# 載入R包
library(pheatmap)
# 設(shè)置工作目錄
setwd("E:/R/WorkSpace/baimoc/visualization")

# 整理數(shù)據(jù)集====================================
# 參數(shù)'./resource/dataset.txt',表示載入E:/R/WorkSpace/baimoc/visualization/resource/dataset_heatmap.txt
dataset <- read.table('resource/dataset_heatmap.txt',header = TRUE, row.names = 1)
# 截取表達(dá)矩陣的一部分?jǐn)?shù)據(jù)來繪制熱圖
exp_ds = dataset[c(1:60),c(1:10)]
# 構(gòu)建樣本分類數(shù)據(jù)
cell_type=c(rep('cell_1',5),
            rep('cell_2',5))
sample_calss=c(rep('normal',5),
               rep('cancer',5))
sample_type=c(rep('control',5),
               rep('case',5))
level = c(1:10)

annotation_c <- data.frame(cell_type, sample_calss, sample_type, level)
rownames(annotation_c) <- colnames(exp_ds)

gene_class=c(rep('good',30),
             rep('bad',30))
gene_type=c(rep('fat',20),
            rep('blood',20),
            rep('Immunology',20))
annotation_r <- data.frame(gene_class, gene_type)
rownames(annotation_r) <- rownames(exp_ds)
# 繪制熱圖=====================================
pheatmap(exp_ds, #表達(dá)數(shù)據(jù)
         cluster_rows = T,#行聚類
         cluster_cols = T,#列聚類
         annotation_col =annotation_c, #樣本分類數(shù)據(jù)
         annotation_row = annotation_r,
         annotation_legend=TRUE, # 顯示樣本分類
         show_rownames = T,# 顯示行名
         show_colnames = T,# 顯示列名
         scale = "row", #對行標(biāo)準(zhǔn)化
         color =colorRampPalette(c("#8854d0", "#ffffff","#fa8231"))(100), # 熱圖基準(zhǔn)顏色
)
6. 分組調(diào)色
# 清空暫存數(shù)據(jù)
rm(list=ls())
# 載入R包
library(pheatmap)
# 設(shè)置工作目錄
setwd("E:/R/WorkSpace/baimoc/visualization")

# 整理數(shù)據(jù)集====================================
# 參數(shù)'./resource/dataset.txt'嫁盲,表示載入E:/R/WorkSpace/baimoc/visualization/resource/dataset_heatmap.txt
dataset <- read.table('resource/dataset_heatmap.txt',header = TRUE, row.names = 1)
# 截取表達(dá)矩陣的一部分?jǐn)?shù)據(jù)來繪制熱圖
exp_ds = dataset[c(1:60),c(1:10)]
# 構(gòu)建樣本分類數(shù)據(jù)
sample_calss=c(rep('Normal',5),
               rep('Cancer',5))

annotation_c <- data.frame(sample_calss)
rownames(annotation_c) <- colnames(exp_ds)

gene_type=c(rep('Fat',20),
            rep('Blood',20),
            rep('Immunology',20))
annotation_r <- data.frame(gene_type)
rownames(annotation_r) <- rownames(exp_ds)

annotation_colors = list(sample_calss=c(Normal='#F8EFBA', Cancer='#FD7272'),
                         gene_type=c(Fat='#f1f2f6', Blood='#ced6e0', Immunology='#57606f'))
# 繪制熱圖=====================================
pheatmap(exp_ds, #表達(dá)數(shù)據(jù)
         cluster_rows = T,#行聚類
         cluster_cols = T,#列聚類
         annotation_col =annotation_c, #樣本分類數(shù)據(jù)
         annotation_row = annotation_r,
         annotation_colors = annotation_colors,
         annotation_legend=TRUE, # 顯示樣本分類
         show_rownames = T,# 顯示行名
         show_colnames = T,# 顯示列名
         scale = "row", #對行標(biāo)準(zhǔn)化
         color =colorRampPalette(c("#8854d0", "#ffffff","#fa8231"))(100), # 熱圖基準(zhǔn)顏色
)
7. 顯示文本
# 繪制熱圖=====================================
pheatmap(exp_ds, 
         show_rownames = T,
         show_colnames = T,
         scale = "row", 
         color =colorRampPalette(c("#8854d0", "#ffffff","#fa8231"))(100),
         display_numbers = T, # 顯示數(shù)值
         fontsize_number = 8, # 設(shè)置字體大小
         number_color = '#4a4a4a', #設(shè)置顏色
         number_format = '%.2f' # 設(shè)置顯示格式
)
8. 去除描邊
pheatmap(exp_ds, #表達(dá)數(shù)據(jù)
         show_rownames = T,# 顯示行名
         show_colnames = T,# 顯示列名
         scale = "row", #對行標(biāo)準(zhǔn)化
         color =colorRampPalette(c("#8854d0", "#ffffff","#fa8231"))(100), # 熱圖基準(zhǔn)顏色
         border_color = 'NA',
)
9. 字體相關(guān)
pheatmap(exp_ds, #表達(dá)數(shù)據(jù)
         show_rownames = T,# 顯示行名
         show_colnames = T,# 顯示列名
         scale = "row", #對行標(biāo)準(zhǔn)化
         color =colorRampPalette(c("#8854d0", "#ffffff","#fa8231"))(100), # 熱圖基準(zhǔn)顏色
         fontsize = 10, # 全局字體大小篓叶,會被后邊設(shè)置所覆蓋
         fontsize_row = 8, # 行字體大小
         fontsize_col = 12, # 列字體大小
         angle_col = 45, # 設(shè)置列偏轉(zhuǎn)角度,可選 270, 0, 45, 90, 315羞秤,
         gaps_row = T
)
10. 調(diào)整聚類樹高
pheatmap(exp_ds, 
         show_rownames = T,
         show_colnames = T,
         scale = "row", 
         color =colorRampPalette(c("#8854d0", "#ffffff","#fa8231"))(100),
         treeheight_row = 50,
         treeheight_col = 30
)
11. 聚類方法選擇
pheatmap(exp_ds, 
         show_rownames = T,
         show_colnames = T,
         scale = "row", 
         color =colorRampPalette(c("#8854d0", "#ffffff","#fa8231"))(100),
         clustering_distance_rows = 'euclidean', # 計(jì)算聚類間距的算法缸托,可選'correlation', 'euclidean', 'maximum', 'manhattan', 'canberra', 'binary', 'minkowski'
         clustering_method = 'complete', # 聚類方法, 可選'ward', 'ward.D', 'ward.D2', 'single', 'complete', 'average', 'mcquitty', 'median' or 'centroid'
)

四. 保存為圖片

  • 這里可導(dǎo)出像素圖和PDF,也可拷貝到PS調(diào)整

  • 選擇合適的文件格式瘾蛋,調(diào)整合適長寬俐镐,印刷或投稿選PDF,TIFF哺哼,EPS就好

  • 文件默認(rèn)存儲在剛剛設(shè)置的工作目錄里

五. 詳細(xì)參數(shù)設(shè)置說明

1. 設(shè)置工作目錄
setwd("E:/R/WorkSpace/baimoc/visualization")

在R的執(zhí)行過程中佩抹,為了方便叼风,需要指定一個(gè)獲取文件和輸出文件所在的目錄,這樣就不需要每次設(shè)置全路徑棍苹,只需要指定相對目錄

setwd("E:/R/WorkSpace/baimoc/visualization")的意思就是設(shè)置工作目錄為E:/R/WorkSpace/baimoc/visualization

2. 載入數(shù)據(jù)
dataset <- read.table('resource/dataset_heatmap.txt',header = TRUE, row.names = 1)

因?yàn)楣ぷ髂夸浺呀?jīng)設(shè)置无宿,如果要獲取E:/R/WorkSpace/baimoc/visualization/resource/dataset_heatmap.txt文件,那么就只需要設(shè)置相對路徑resource/dataset_heatmap.txt

對于header = TRUE, row.names = 1代表讀取文件表頭枢里,設(shè)置第一列為行名

3. 獲取數(shù)據(jù)子集
# 截取表達(dá)矩陣的一部分?jǐn)?shù)據(jù)來繪制熱圖
exp_ds = dataset[c(1:60),c(1:10)]

原始數(shù)據(jù):

如果獲取前兩個(gè)基因和cell1與cell2的前兩個(gè)樣本孽鸡,只需要執(zhí)行

exp_ds = dataset[c(1:5),c(1:3,6:8)]
4. 樣本分類數(shù)據(jù)
# 構(gòu)建樣本分類數(shù)據(jù)
cell_list=c(rep('cell_1',5),
            rep('cell_2',5))
annotation_c <- data.frame(cell_list)
rownames(annotation_c) <- colnames(exp_ds)

這段代碼目的是構(gòu)建分類名與原始數(shù)據(jù)的列名的對應(yīng)關(guān)系

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市栏豺,隨后出現(xiàn)的幾起案子彬碱,更是在濱河造成了極大的恐慌,老刑警劉巖奥洼,帶你破解...
    沈念sama閱讀 221,820評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件巷疼,死亡現(xiàn)場離奇詭異,居然都是意外死亡灵奖,警方通過查閱死者的電腦和手機(jī)皮迟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來桑寨,“玉大人,你說我怎么就攤上這事忿檩∥疚玻” “怎么了?”我有些...
    開封第一講書人閱讀 168,324評論 0 360
  • 文/不壞的土叔 我叫張陵燥透,是天一觀的道長沙咏。 經(jīng)常有香客問我,道長班套,這世上最難降的妖魔是什么肢藐? 我笑而不...
    開封第一講書人閱讀 59,714評論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮吱韭,結(jié)果婚禮上吆豹,老公的妹妹穿的比我還像新娘。我一直安慰自己理盆,他們只是感情好痘煤,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,724評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著猿规,像睡著了一般衷快。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上姨俩,一...
    開封第一講書人閱讀 52,328評論 1 310
  • 那天蘸拔,我揣著相機(jī)與錄音师郑,去河邊找鬼。 笑死调窍,一個(gè)胖子當(dāng)著我的面吹牛宝冕,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播陨晶,決...
    沈念sama閱讀 40,897評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼猬仁,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了先誉?” 一聲冷哼從身側(cè)響起湿刽,我...
    開封第一講書人閱讀 39,804評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎褐耳,沒想到半個(gè)月后诈闺,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,345評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡铃芦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,431評論 3 340
  • 正文 我和宋清朗相戀三年雅镊,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片刃滓。...
    茶點(diǎn)故事閱讀 40,561評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡仁烹,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出咧虎,到底是詐尸還是另有隱情卓缰,我是刑警寧澤,帶...
    沈念sama閱讀 36,238評論 5 350
  • 正文 年R本政府宣布砰诵,位于F島的核電站征唬,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏茁彭。R本人自食惡果不足惜总寒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,928評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望理肺。 院中可真熱鬧摄闸,春花似錦、人聲如沸哲嘲。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽眠副。三九已至画切,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間囱怕,已是汗流浹背霍弹。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評論 1 272
  • 我被黑心中介騙來泰國打工毫别, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人典格。 一個(gè)月前我還...
    沈念sama閱讀 48,983評論 3 376
  • 正文 我出身青樓岛宦,卻偏偏與公主長得像,于是被迫代替她去往敵國和親耍缴。 傳聞我的和親對象是個(gè)殘疾皇子砾肺,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,573評論 2 359

推薦閱讀更多精彩內(nèi)容