干貨分享 | 請叫我“熱圖”君-技術前沿-資訊-生物在線

干貨分享 | 請叫我“熱圖”君

作者:上海阿趣生物科技有限公司 2022-06-23T13:00 (訪問量:7332)

熱圖用來對采集的因子響應強度或其他的一些因素進行歸一化,從而利用顏色條的變化來直觀地表示不同樣本之間的變量變化情況。

其本質是有一個個用預設顏色表示數值大小的小方格組成的一個數據矩陣,并通過對因子或樣本進行聚類,從而觀察不同樣品數據間的相似性。


R中繪制基因表達熱圖的方法

由于熱圖的畫法較多,小編對以下幾種比較常用的畫法做了歸納。


01.使用heatmap函數繪制熱圖

Heatmap的畫法比較簡單,參數較少。

df <-read.delim("bioladder.cn/shiny/zyp/", #文件名稱 注意文件路徑,格式
header = T, # 是否有標題
sep = "\t", # 分隔符是Tab鍵
row.names = 1, # 指定第一列是行名
fill=T) # 是否自動填充,一般選擇是
########heatmap########
dt<-as.matrix(df)
###顏色###
cmcolor <- cm.colors(256)
rowcolor <- rainbow(nrow(dt), start = 0, end = 0.3)
colcolor <- rainbow(ncol(dt), start = 0, end = 0.3)
####繪圖
heatmap(dt,scale = "row",
RowSideColors = rowcolor,
ColSideColors = colcolor,
margins = c(6,10),
xlab = NULL,
ylab = NULL)

02.使用pheatmap包畫熱圖

pheatmap包由于用法簡單,個性化參數較多,故非常受歡迎,是主流的熱圖繪制工具,這里簡單介紹一種熱圖畫法。

####加載包###
library(pheatmap)
dfSamplebioladder.cn/shiny/zyp/",header = T,row.names = 1,fill = T,sep = "\t")
dfGene<-read.delim("bioladder.cn/shiny/zyp/",
header = T,row.names = 1,fill = T,sep = "\t")
#####繪圖#####
pheatmap(df,
annotation_row=dfGene, # (可選)指定行分組文件
annotation_col=dfSample, # (可選)指定列分組文件
show_colnames = TRUE, # 是否顯示列名
show_rownames=TRUE, # 是否顯示行名
fontsize=8, # 字體大小
display_numbers=F, #是否顯示值
number_format="%.3f", #顯示值保留小數位數
color = colorRampPalette(c('#0000ff','#ffffff','#ff0000'))(50), # 指定熱圖的顏色
annotation_legend=TRUE, # 是否顯示圖例
# legend_breaks=c(0.05,0.25,0.5,0.75,0.95),#圖例范圍設置
# legend_labels=c("0.05","0.25","0.5","0.75","0.95"),#圖例坐標設置
border_color=NA, # 邊框顏色 NA表示沒有
scale="row", # 指定歸一化的方式。"row"按行歸一化,"column"按列歸一化,"none"不處理
cluster_rows = TRUE, # 是否對行聚類
cluster_cols = TRUE # 是否對列聚類
)

03.使用ComplexHeatmap包畫熱圖

ComplexHeatmap包是一個繪制復雜熱圖的神器,這里主要介紹如何組合熱圖的畫法。

###安裝及加載ComplexHeatmap包#####
# if (!requireNamespace("BiocManager", quietly = TRUE))
# install.packages("BiocManager")
# BiocManager::install("ComplexHeatmap")
library(ComplexHeatmap)
library(circlize)
###顏色設置#####
col_rnorm = colorRamp2(c(-3, 0, 3), c("green", "white", "red"))
col_runif = colorRamp2(c(0, 3), c("white", "orange"))
col_letters = c("a" = "pink", "b" = "purple", "c" = "blue")


######數據設置
set.seed(123)
mat1 = matrix(rnorm(80, 2), 8, 10)
mat1 = rbind(mat1, matrix(rnorm(40, -2), 4, 10))
rownames(mat1) = paste0("R", 1:12)
colnames(mat1) = paste0("C", 1:10)

mat2 = matrix(runif(60, max = 3, min = 1), 6, 10)
mat2 = rbind(mat2, matrix(runif(60, max = 2, min = 0), 6, 10))
rownames(mat2) = paste0("R", 1:12)
colnames(mat2) = paste0("C", 1:10)

le = sample(letters[1:3], 12, replace = TRUE)
names(le) = paste0("R", 1:12)

mat1t = t(mat1)
mat2t = t(mat2)
######繪圖#######
ht1 <- Heatmap(mat1t, name = "rnorm", col = col_rnorm, row_km = 2,
left_annotation = rowAnnotation(foo1 = 1:10, bar1 = anno_barplot(1:10)))
ha <- HeatmapAnnotation(foo = anno_barplot(1:12, height = unit(2, "cm"),
axis_param = list(side = "right")))
ht2 <- Heatmap(mat2t, name = "runif", col = col_runif, row_km = 2,
left_annotation = rowAnnotation(foo2 = 1:10))
ht3 <- Heatmap(rbind(letters = le), name = "letters", col = col_letters)
ht_list <- ht1 %v% ha %v% ht2 %v% ht3
draw(ht_list, column_km = 2)

本次干貨分享,小編就heatmap(),pheatmap包, ComplexHeatmap包做了簡單的介紹。接下來對以上三種做一個簡單的匯總:

  • heatmap()[R基本函數,統計數據包]:繪制一個簡單的熱圖
  • pheatmap()[pheatmap R包]:繪制漂亮的熱圖,并提供更多控件來更改熱圖的外觀
  • ComplexHeatmap[R/Bioconductor的包]:繪制注釋和排列復雜熱圖(用于基因組數據分析是非常有用的)

然而在R語言中還有更多熱圖的畫法,eg: heatmap.2(),d3heatmap()等,歡迎有興趣的小伙伴留言,和小編一起探索高級聚類熱圖的畫法。

上海阿趣生物科技有限公司 商家主頁

地 址: 嘉定區新培路51號焦點夢想園5層

聯系人: 高小姐

電 話: 400-664-9912

傳 真:

Email:marketing@biotree.cn

相關咨詢

Circulation (IF=38.7)|上海兒童醫學中心張浩/劉一為聯合南京鼓樓醫院王東進團隊破解肥胖心衰患者LVAD療效困局,胰島素增敏劑點亮心肌恢復新希望! (2026-04-25T00:00 瀏覽數:8027)

J. Adv. Res. (IF=13)|血漿蛋白質組學賦能:暴發性心肌炎精準診斷與靶向治療新突破 (暫無發布時間 瀏覽數:7503)

NP(IF=8.1)|西北農林研究團隊解碼黑枸杞“高品質密碼”:光響應轉錄調控網絡如何驅動類黃酮合成與藥用活性? (暫無發布時間 瀏覽數:7527)

LWT(IF=6.6)|四川大學研究團隊通過同位素標記代謝流與脂質組學的“夢幻聯動”,帶你看清酵母的耐鹽策略 (暫無發布時間 瀏覽數:8206)

破微量極限,啟代謝新程|微量NGM 3 Pro,以微量樣本,全景解碼生命代謝 (暫無發布時間 瀏覽數:8199)

JEP (IF=5.4)|福建中醫藥大學研究團隊:多組學揭秘丹瓜方調控GLUD1改善糖尿病代謝機制 (暫無發布時間 瀏覽數:9432)

Food Chem.(IF=9.8)|南農陳暄教授研究團隊多組學揭秘:云南“金花茶”的風味煉金術—匍匐散囊菌如何點“茶”成“香”? (暫無發布時間 瀏覽數:9698)

J.Agric.Food Chem.(IF=6.2)|中國熱科院胡偉/丁澤紅團隊突破性成果!解碼木薯塊根3類蛋白修飾圖譜,解鎖淀粉積累與抗逆調控密碼 (暫無發布時間 瀏覽數:9885)

nat commun(IF=15.7)|北大白玉教授團隊突破靜態局限:動態單細胞代謝組學揭秘腫瘤-巨噬細胞互作新機制 (暫無發布時間 瀏覽數:11445)

nat.commun.(IF=15.7)|復旦大學附屬中山醫院詹成團隊:靶向多胺代謝提升KRAS靶向藥療效 (暫無發布時間 瀏覽數:12697)

ADVERTISEMENT