欢迎光临散文网 会员登陆 & 注册

5分钟学会绘制热图pheatmap

2023-07-26 19:00 作者:尔云间  | 我要投稿

热图在个组学中的应用十分的广泛,在文献中经常出现,利用颜色直接展示在不同样本中展示基因、代谢物物种等表达的水平一张热图像五颜六色的瓷砖一样铺在整张图中给人视觉上的美感通过R做heatmap是常用的方法,那我们今天就来学习一下怎样快速绘制热图吧~

安装并加载pheatmap包

#安装pheatmap包

install.packages("pheatmap")

#加载

library(pheatmap)

#设置工作路径

setwd("/Users/sansan/Desktop/未命名文件夹/")

构建测试数据集

#首先构建一个数据集作为我们学习的示例

test <- matrix(rnorm(100),10,10)

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

test[5:10,seq(1,10,2)] <- test[5:10,seq(1,10,2)]+3

colnames(test) <- paste("Sample",1:10,sep = "")

rownames(test) <- paste("Gene",1:10,sep = "")

test

绘制简单的热图

归一化处理的必要性:是一种数据预处理中特征缩放的(feature scaling)的方法,可以让所有的数据处于一种量纲级别进行分析,更容易直观的阐明数据的差异性。例如归一化到【1,-1】的范围内,消除了异常样本导致结果不良的影响。

在应用前首先需要了解一些必要的参数

#scalec = "row" 参数设定对行进行归一化处理

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

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

# legend_breaks参数设定图例显示范围,legend_labels参数添加图例标签legend_labels = c("1.0","2.0","3.0","4.0","5.0")

#border=FALSE参数去掉边框线

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

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

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

#display_numbers = TRUE参数设定在每个热图格子中显示相应的数值

#number_color参数设置数值字体的颜色

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

了解后来简单绘制一个尝试一下

pheatmap(test,scale = "row",clustering_method = "average",clustering_distance_rows = "correlation",border=FALSE,treeheight_row = 50,treeheight_col =50,cellwidt = 15,cellheight = 20)

这里用到的参数如果你不明白意义记得去上文中寻找

添加行信息/列信息(用于代谢通路分析等)

在分析过程中通常会在行或者列添加一行属于

#先构建一个行的信息(用于一些代谢通路富集分析)

annotation_row <- data.frame(Path = factor(rep(c("one","two"),5)))

rownames(annotation_row) <- paste("Gene",1:10,sep = "")

#         Path

#Gene1   one

#Gene2   two

#Gene3   one

#Gene4   two

#Gene5   one

#Gene6   two

#Gene7   one

#Gene8   two

#Gene9   one

#Gene10  two

pheatmap(test, annotation_row = annotation_row)

#创建一个行的色块

ann_col = list(Path = c(one = "red",two = "yellow"))

#把色块映射到图上

pheatmap(test, annotation_row = annotation_row, annotation_colors = ann_col)

其它一些操作

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

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

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

#labels_row 参数设置行标签

pheatmap(test, annotation_col = annotation_col, cluster_rows = FALSE, cluster_cols = FALSE, gaps_row = c(3,6), gaps_col = c(2, 5),labels_row = c())

 

在做图的过程中我们应该充分考虑你想展示的内容是什么要传达怎样的生物学内容告诉读者你的研究结果而不是一味的只追求好看在作图的过程中你需要什么就去搜索和探索什么这里只是简单的热图绘制方法但是具体怎样呈现还需要进一步的学习

此外还可以寻找很多小工具绘制热图例如:http://www.biocloudservice.com/747/747.php

今天的分享就到这里叭,小伙伴们如果有什么问题就和小云讨论吧~


5分钟学会绘制热图pheatmap的评论 (共 条)

分享到微博请遵守国家法律