服务器画热图显示无效的变量,使用pheatmap包绘制热图

加载所需R包

library(pheatmap)

设置工作路径

setwd("/Users/Davey/Desktop/VennDiagram/")

# 清除当前环境中的变量

rm(list=ls())

构建测试数据集

test = matrix(rnorm(200), 20, 10)

test[1:10, seq(1, 10, 2)] = test[1:10, seq(1, 10, 2)] + 3

test[11:20, seq(2, 10, 2)] = test[11:20, seq(2, 10, 2)] + 2

test[15:20, seq(2, 10, 2)] = test[15:20, seq(2, 10, 2)] + 4

colnames(test) = paste("Test", 1:10, sep = "")

rownames(test) = paste("Gene", 1:20, sep = "")

head(test)

## Test1 Test2 Test3 Test4 Test5 Test6

## Gene1 4.064973 0.7535271 3.024070 -2.1294440 4.407945 -0.35677097

## Gene2 2.360043 1.6974946 3.273425 -2.3341406 3.839523 0.16982944

## Gene3 3.253465 -0.9011582 1.716257 -0.2294471 4.636610 -0.24520382

## Gene4 4.070226 -0.6191941 3.734437 1.9348314 4.426825 -0.17730957

## Gene5 3.821414 0.5584876 1.871479 -0.2784607 2.633761 0.01332901

## Gene6 3.012469 0.1738285 3.652423 -2.0083435 4.124951 -0.67899611

## Test7 Test8 Test9 Test10

## Gene1 3.602764 1.2903843 2.044119 1.826159e+00

## Gene2 3.083160 0.2642755 2.855381 1.988289e-01

## Gene3 3.417809 -0.1362079 3.858884 -8.390304e-01

## Gene4 2.911934 0.4299550 4.128398 -3.011521e+00

## Gene5 2.651758 -1.6884728 3.001079 1.861780e+00

## Gene6 1.934270 0.5811059 2.297763 6.878644e-05

# 默认绘图

pheatmap(test)

1c55ea64ff3f

image.png

# scale = "row"参数对行进行归一化

pheatmap(test, scale = "row")

1c55ea64ff3f

image.png

# clustering_method参数设定不同聚类方法,默认为"complete",可以设定为'ward', 'ward.D', 'ward.D2', 'single', 'complete', 'average', 'mcquitty', 'median' or 'centroid'

pheatmap(test,scale = "row", clustering_method = "average")

1c55ea64ff3f

image.png

# clustering_distance_rows = "correlation"参数设定行聚类距离方法为Pearson corralation,默认为欧氏距离"euclidean"

pheatmap(test, scale = "row", clustering_distance_rows = "correlation")

1c55ea64ff3f

image.png

# color参数自定义颜色

pheatmap(test, color = colorRampPalette(c("navy", "white", "firebrick3"))(50))

1c55ea64ff3f

image.png

# cluster_row = FALSE参数设定不对行进行聚类

pheatmap(test, cluster_row = FALSE)

1c55ea64ff3f

image.png

# legend_breaks参数设定图例显示范围,legend_labels参数添加图例标签

pheatmap(test, legend_breaks = c(1:5), legend_labels = c("1.0","2.0","3.0","4.0","5.0"))

1c55ea64ff3f

image.png

# legend = FALSE参数去掉图例

pheatmap(test, legend = FALSE)

1c55ea64ff3f

image.png

# border_color参数设定每个热图格子的边框色

pheatmap(test, border_color = "red")

1c55ea64ff3f

image.png

# border=FALSE参数去掉边框线

pheatmap(test, border=FALSE)

1c55ea64ff3f

image.png

# show_rownames和show_colnames参数设定是否显示行名和列名

pheatmap(test,show_rownames=F,show_colnames=F)

1c55ea64ff3f

image.png

# treeheight_row和treeheight_col参数设定行和列聚类树的高度,默认为50

pheatmap(test, treeheight_row = 30, treeheight_col = 50)

1c55ea64ff3f

image.png

# display_numbers = TRUE参数设定在每个热图格子中显示相应的数值,number_color参数设置数值字体的颜色

pheatmap(test, display_numbers = TRUE,number_color = "blue")

1c55ea64ff3f

image.png

# number_format = "%.1e"参数设定数值的显示格式

pheatmap(test, display_numbers = TRUE, number_format = "%.1e")

1c55ea64ff3f

image.png

# 自定义数值的显示方式

pheatmap(test, display_numbers = matrix(ifelse(test > 5, "*", ""), nrow(test)))

1c55ea64ff3f

image.png

# cellwidth和cellheight参数设定每个热图格子的宽度和高度,main参数添加主标题

pheatmap(test, cellwidth = 15, cellheight = 12, main = "Example heatmap")

1c55ea64ff3f

image.png

# 构建列注释信息

annotation_col = data.frame(

CellType = factor(rep(c("CT1", "CT2"), 5)),

Time = 1:5

)

rownames(annotation_col) = paste("Test", 1:10, sep = "")

head(annotation_col)

## CellType Time

## Test1 CT1 1

## Test2 CT2 2

## Test3 CT1 3

## Test4 CT2 4

## Test5 CT1 5

## Test6 CT2 1

# 构建行注释信息

annotation_row = data.frame(

GeneClass = factor(rep(c("Path1", "Path2", "Path3"), c(10, 4, 6)))

)

rownames(annotation_row) = paste("Gene", 1:20, sep = "")

head(annotation_row)

## GeneClass

## Gene1 Path1

## Gene2 Path1

## Gene3 Path1

## Gene4 Path1

## Gene5 Path1

## Gene6 Path1

# annotation_col参数添加列注释信息

pheatmap(test, annotation_col = annotation_col)

1c55ea64ff3f

image.png

# annotation_legend = FALSE参数去掉注释图例

pheatmap(test, annotation_col = annotation_col, annotation_legend = FALSE)

1c55ea64ff3f

image.png

# annotation_col和annotation_row参数同时添加行和列的注释信息

pheatmap(test, annotation_row = annotation_row, annotation_col = annotation_col)

1c55ea64ff3f

image.png

# 自定注释信息的颜色列表

ann_colors = list(

Time = c("white", "firebrick"),

CellType = c(CT1 = "#1B9E77", CT2 = "#D95F02"),

GeneClass = c(Path1 = "#7570B3", Path2 = "#E7298A", Path3 = "#66A61E")

)

head(ann_colors)

## $Time

## [1] "white" "firebrick"

##

## $CellType

## CT1 CT2

## "#1B9E77" "#D95F02"

##

## $GeneClass

## Path1 Path2 Path3

## "#7570B3" "#E7298A" "#66A61E"

# annotation_colors设定注释信息的颜色

pheatmap(test, annotation_col = annotation_col, annotation_colors = ann_colors, main = "Title")

1c55ea64ff3f

image.png

pheatmap(test, annotation_col = annotation_col, annotation_row = annotation_row,

annotation_colors = ann_colors)

1c55ea64ff3f

image.png

pheatmap(test, annotation_col = annotation_col, annotation_colors = ann_colors[2])

1c55ea64ff3f

image.png

# gaps_row = c(10, 14)参数在第10和14行处添加gap, 要求对行不进行聚类

pheatmap(test, annotation_col = annotation_col, cluster_rows = FALSE, gaps_row = c(10, 14))

1c55ea64ff3f

image.png

# cutree_col = 2参数将列按聚类树的结果分成两部分, 要求对列进行聚类

pheatmap(test, annotation_col = annotation_col, cluster_rows = FALSE, gaps_row = c(10, 14),

cutree_col = 2)

1c55ea64ff3f

image.png

# 对行和列都不聚类,自定义划分行和列的gap

pheatmap(test, annotation_col = annotation_col, cluster_rows = FALSE, cluster_cols = FALSE,

gaps_row = c(6, 10, 14), gaps_col = c(2, 5, 8))

1c55ea64ff3f

image.png

# 自定义行的标签名

labels_row = c("", "", "", "", "", "", "", "", "", "", "", "", "", "", "",

"", "", "Il10", "Il15", "Il1b")

# labels_row参数添加行标签

pheatmap(test, annotation_col = annotation_col, labels_row = labels_row)

1c55ea64ff3f

image.png

# 自定义聚类的距离方法

drows = dist(test, method = "minkowski")

dcols = dist(t(test), method = "minkowski")

# clustering_distance_rows和clustering_distance_cols参数设定行和列的聚类距离方法

pheatmap(test, clustering_distance_rows = drows, clustering_distance_cols = dcols)

1c55ea64ff3f

image.png

# fontsize参数设定标签字体大小,filename参数设定图片保存名称

pheatmap(test, cellwidth = 15, cellheight = 12, fontsize = 8, filename = "test.pdf")

将热图结果按聚类后的顺序输出

aa=pheatmap(test,scale="row") #热图,归一化,并聚类

1c55ea64ff3f

image.png

# 简要查看热图对象的信息

summary(aa)

## Length Class Mode

## tree_row 7 hclust list

## tree_col 7 hclust list

## kmeans 1 -none- logical

## gtable 6 gtable list

order_row = aa$tree_row$order #记录热图的行排序

order_col = aa$tree_col$order #记录热图的列排序

datat = data.frame(test[order_row,order_col]) # 按照热图的顺序,重新排原始数据

datat = data.frame(rownames(datat),datat,check.names =F) # 将行名加到表格数据中

colnames(datat)[1] = "geneid"

write.table(datat,file="reorder.txt",row.names=FALSE,quote = FALSE,sep='\t') #输出结果,按照热图中的顺序

sessionInfo()

## R version 3.5.1 (2018-07-02)

## Platform: x86_64-apple-darwin15.6.0 (64-bit)

## Running under: OS X El Capitan 10.11.3

##

## Matrix products: default

## BLAS: /Library/Frameworks/R.framework/Versions/3.5/Resources/lib/libRblas.0.dylib

## LAPACK: /Library/Frameworks/R.framework/Versions/3.5/Resources/lib/libRlapack.dylib

##

## locale:

## [1] zh_CN.UTF-8/zh_CN.UTF-8/zh_CN.UTF-8/C/zh_CN.UTF-8/zh_CN.UTF-8

##

## attached base packages:

## [1] stats graphics grDevices utils datasets methods base

##

## other attached packages:

## [1] pheatmap_1.0.10

##

## loaded via a namespace (and not attached):

## [1] Rcpp_0.12.18 digest_0.6.16 rprojroot_1.3-2

## [4] grid_3.5.1 gtable_0.2.0 backports_1.1.2

## [7] magrittr_1.5 scales_1.0.0 evaluate_0.11

## [10] stringi_1.2.4 rmarkdown_1.10 RColorBrewer_1.1-2

## [13] tools_3.5.1 stringr_1.3.1 munsell_0.5.0

## [16] yaml_2.2.0 compiler_3.5.1 colorspace_1.3-2

## [19] htmltools_0.3.6 knitr_1.20

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值