您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“怎么用R語言的pheatmap繪制熱圖”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“怎么用R語言的pheatmap繪制熱圖”吧!
Pretty Heatmaps——Implementation of heatmaps that offers more control over dimensions and appearance.
熱圖是對實驗數(shù)據(jù)(尤其是基因的表達量)分布情況進行分析的直觀可視化方法,可以用來進行實驗數(shù)據(jù)的質(zhì)量控制和差異數(shù)據(jù)的具像化展示,還可以對數(shù)據(jù)和樣品進行聚類,觀測樣品實驗數(shù)據(jù)的相似性。
pheatmap使用方法,參數(shù)很多,這里給大家介紹比較常用的參數(shù):
mat | 需要繪制熱圖的數(shù)字矩陣。 |
color | 表示顏色,賦值漸變顏色調(diào)色板colorRampPalette屬性,選擇“藍,白,紅”漸變,分為100個等級,,例:color = colorRampPalette(c(“navy”, “white”, “red”))(100) |
kmeans_k | 繪制熱圖的行聚類數(shù),如果是NA,那么行不會聚類。 |
breaks | 設(shè)置mat數(shù)值范圍的數(shù)字序列 |
border_color | 表示熱圖上單元格邊框的顏色,如果不繪制邊框,則使用NA |
cellwidth | 表示每個單元格的寬度,若選擇NA則表示適應(yīng)窗口 |
cellheight | 表示每個單元格的高度,若選擇NA則表示適應(yīng)窗口 |
scale | 表示值均一化的方向,或者按照行或列,或者沒有,值可以是"row", “column” 或者"none" |
cluster_rows | 表示進行行的聚類,值可以是FALSE或TRUE |
cluster_cols | 表示進行列的聚類,值可以是FALSE或TRUE |
clustering_distance_rows | 表示行聚類使用的距離:歐式距離,相關(guān)系數(shù)等等 |
clustering_distance_cols | 表示列聚類使用的距離:歐式距離,相關(guān)系數(shù)等等 |
clustering_method | 表示聚類方法,值可以是hclust的任何一種,如"ward.D",“single”, “complete”, “average”, “mcquitty”, “median”, “centroid”, “ward.D2” |
clustering_callback | 回調(diào)函數(shù)來修改聚類 |
cutree_rows | 基于層次聚類(使用cutree)劃分行的簇數(shù)(如果未聚集行,則忽略參數(shù)) |
cutree_cols | 基于層次聚類(使用cutree)劃分列的簇數(shù)(如果未聚集行,則忽略參數(shù)) |
treeheight_row | 行的樹的高度, |
treeheight_col | 列的樹的高度 |
legend | TRUE或者FALSE,表示是否顯示圖例 |
legend_breaks | 設(shè)置圖例的斷點,如legend_breaks = -1:4 |
legend_labels | legend_breaks對應(yīng)的標(biāo)簽例:legend_breaks = -1:4, legend_labels = c(“0”,“1e-4”, “1e-3”, “1e-2”, “1e-1”, “1”) |
annotation_row | 行的分組信息,需要使用相應(yīng)的行名稱來匹配數(shù)據(jù)和注釋中的行,注意之后顏色設(shè)置會考慮離散值還是連續(xù)值,格式要求為數(shù)據(jù)框 |
annotation_col | 列的分組信息,需要使用相應(yīng)的列名稱來匹配數(shù)據(jù)和注釋中的列,格式要求為數(shù)據(jù)框 |
annotation_colors | 用于手動指定annotation_row和annotation_col track顏色的列表。 |
annotation_legend | 是否顯示圖例的名稱。 |
annotation_names_row | 是否顯示行注釋的名稱。 |
annotation_names_col | 是否顯示列注釋的名稱。 |
show_rownames | 是否顯示行名 |
show_colnames | 是否顯示列名 |
main | 圖的名字 |
fontsize | 圖的字體大小 |
fontsize_row | 行名的字體大小,默認(rèn)與圖的字體大小相同 |
fontsize_col | 列名的字體大小,默認(rèn)與圖的字體大小相同 |
angle_col | 列標(biāo)簽的角度,可選擇 (0, 45, 90, 270 and 315) |
display_numbers | 表示是否將數(shù)值顯示在熱圖的格子中,如果這是一個矩陣(與原始矩陣具有相同的尺寸),則顯示矩陣的內(nèi)容而不是原始值。 |
number_format | 設(shè)置顯示數(shù)值的格式,較常用的有"%.2f"(保留小數(shù)點后兩位),"%.1e"(科學(xué)計數(shù)法顯示,保留小數(shù)點后一位) |
number_color | 設(shè)置顯示內(nèi)容的顏色 |
fontsize_number | 設(shè)置顯示內(nèi)容的字體大小 |
labels_row | 代替行名的自定義標(biāo)簽 |
labels_col | 代替列名的自定義標(biāo)簽 |
filename | 圖片保存位置以及文件名 |
width | 手動設(shè)置輸出文件的寬度(單位:英寸) |
height | 手動設(shè)置輸出文件的高度(單位:英寸) |
silent | 不繪制熱圖 |
na_col | 缺失值的顏色 |
install.packages(pheatmap) #安裝包 # load package library(pheatmap) data <- read.delim("D:/test.txt", header=T, row.names="gene") data_subset <- as.matrix(data[rowSums(data)>80000,]) test<-data_subset
# 默認(rèn)繪圖 pheatmap(test)
# scale = "row"參數(shù)對行進行歸一化,還可設(shè)置 "column" and "none" pheatmap(test, scale = "row")
# clustering_method參數(shù)設(shè)定不同聚類方法,默認(rèn)為"complete",可以設(shè)定為'ward', 'ward.D', 'ward.D2', 'single', 'complete', 'average', 'mcquitty', 'median' or 'centroid' pheatmap(test,scale = "row", clustering_method = "average")
# clustering_distance_rows = "correlation"參數(shù)設(shè)定行聚類距離方法為Pearson corralation,默認(rèn)為歐氏距離"euclidean" pheatmap(test, scale = "row", clustering_distance_rows = "correlation")
# color參數(shù)自定義顏色 更多顏色設(shè)置見:https://www.億速云.com/article/783 pheatmap(test, color = colorRampPalette(c("navy", "white", "firebrick3"))(50))
# cluster_row = FALSE參數(shù)設(shè)定不對行進行聚類 pheatmap(test, cluster_row = FALSE)
# legend_breaks參數(shù)設(shè)定圖例顯示范圍,legend_labels參數(shù)添加圖例標(biāo)簽 pheatmap(test, legend_breaks = c(10000,20000,30000,40000,60000), legend_labels = c("10000","20000","30000","40000","60000"))
# legend = FALSE參數(shù)去掉圖例 pheatmap(test, legend = FALSE)
# border_color參數(shù)設(shè)定每個熱圖格子的邊框色 pheatmap(test, border_color = "black")
# border=FALSE參數(shù)去掉邊框線 pheatmap(test, border=FALSE)
# show_rownames和show_colnames參數(shù)設(shè)定是否顯示行名和列名 pheatmap(test,show_rownames=F,show_colnames=F)
# treeheight_row和treeheight_col參數(shù)設(shè)定行和列聚類樹的高度,默認(rèn)為50 pheatmap(test, treeheight_row = 30, treeheight_col = 50)
# display_numbers = TRUE參數(shù)設(shè)定在每個熱圖格子中顯示相應(yīng)的數(shù)值,number_color參數(shù)設(shè)置數(shù)值字體的顏色 pheatmap(test, display_numbers = TRUE,number_color = "black")
# number_format = "%.1e"參數(shù)設(shè)定數(shù)值的顯示格式 pheatmap(test, display_numbers = TRUE, number_format = "%.1e")
# 自定義數(shù)值的顯示方式 pheatmap(test, display_numbers = matrix(ifelse(test > 40000, "*", ""), nrow(test)))
# cellwidth和cellheight參數(shù)設(shè)定每個熱圖格子的寬度和高度,main參數(shù)添加主標(biāo)題 pheatmap(test, cellwidth = 15, cellheight = 12, main = "Example heatmap")
# 構(gòu)建列注釋信息 my_sample_col <- data.frame(sample = rep(c("tumour", "normal"), c(4,2)), Time=c(1,1,2,2,2,1) ) row.names(my_sample_col) <- colnames(test) head(my_sample_col) sample Time T1a tumour 1 T1b tumour 1 T2 tumour 2 T3 tumour 2 N1 normal 2 N2 normal 1
# 構(gòu)建行注釋信息,這里代碼產(chǎn)生分組信息,也可以從數(shù)據(jù)讀入一個表格,聚類樹分隔詳情見:https://www.億速云.com/article/508 list=pheatmap(test) my_gene_col=cutree(list$tree_row,k=2) my_gene_col <- data.frame(cluster = ifelse(test = my_gene_col == 1, yes = "cluster 1", no = "cluster 2")) set.seed(1984) my_random <- as.factor(sample(x = 1:2, size = nrow(my_gene_col), replace = TRUE)) my_gene_col$random <- my_random head(my_gene_col) cluster random Gene_00562 cluster 1 2 Gene_02296 cluster 2 2 Gene_03861 cluster 2 2 Gene_07390 cluster 2 2 Gene_08042 cluster 2 1 Gene_08694 cluster 1 1
準(zhǔn)備好行列注釋就可以繪圖:
pheatmap(test, annotation_row = my_gene_col, annotation_col = my_sample_col)
自定義分組顏色:
ann_colors = list( Time = c("white", "firebrick"), sample = c(normal = "#1B9E77", tumour = "#D95F02"), cluster = c(`cluster 1` = "#7570B3", `cluster 2` = "#E7298A"), random=c(`1`="red",`2`="blue") ) head(ann_colors) # annotation_colors設(shè)定注釋信息的顏色 pheatmap(test, annotation_col = my_sample_col,annotation_row =my_gene_col , annotation_colors = ann_colors, main = "Title")
# 手動指定gap劃分區(qū)塊:gaps_row = c(6, 10)參數(shù)在第6和10行處添加gap, 要求對行不進行聚類。對應(yīng)的還有g(shù)aps_col,大家也可以試試 pheatmap(test, annotation_col = my_sample_col, cluster_rows = FALSE, gaps_row = c(6, 10))
# cutree_col = 2,cutree_rows=2參數(shù)將列按聚類樹的結(jié)果分成兩部分, 要求對列和進行聚類 pheatmap(test, annotation_row = my_gene_col, annotation_col = my_sample_col, cutree_rows = 2, cutree_cols = 2)
# 自定義行的標(biāo)簽名。注意:基因名稱的順序與原始表格的順序一致,而不是聚類后的順序: labels_row = c("", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "TP53", "FLC", "her2","","","","","","AKT") # labels_row參數(shù)添加行標(biāo)簽 pheatmap(test, annotation_col = my_sample_col, labels_row = labels_row)
到此,相信大家對“怎么用R語言的pheatmap繪制熱圖”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。