【R语言】——聚类热图行列分组信息注释热图2
上一期”【R语言】——聚类热图绘制(pheatmap)“介绍了R语言pheatmap包绘制聚类热图的基础代码,本期介绍当需要同时在热图上显示分组情况时,可利用pheatmap包构建分组信息,从而以不同的颜色等方式来展现分组情况。
1 数据准备
数据输入格式(csv格式):
2 R包加载及数据导入
#下载包#install.packages("pheatmap")install.packages("RColorBrewer")#加载包#library("pheatmap")library("RColorBrewer")#加载绘图数据#data<-read.table(file='C:/Rdata/jc/pheatmap.csv',header=TRUE,row.names= 1,sep=',')head(data) #查看数据
#data=log2(data[,1:6]+1) #对基因表达量数据处理#data <- as.matrix(data) #转变为matrix格式矩阵#head(data)
3 分组热图的绘制
首先需要对分组对象进行注释,随后使用“annotation_row”、“annotation_col”、“annotation_colors”、“annotation_legend”、“annotation_names_row”和“annotation_names_col”分别对行和列进行注释、行和列注释的颜色、图例信息注释显示、行和列注释的名称显示
3.1 简单分组
3.1.1 列信息注释及热图绘制
ann_col = data.frame(Sample=factor(c(rep("control.1",1),rep("control.2",1),rep("control.3",1),rep("test.1",1),rep("test.2",1),rep("test.3",1))))#创建分组列row.names(ann_col) = colnames(data) #这一行必须有,否则会报错:Error in check.length("fill") : 'gpar' element 'fill' must not be length 0ann_color = list(Sample = c(control.1="#0089CF", control.2="#0081A1", control.3="#007360",test.1="#E889BD", test.2="#B286D7", test.3="#5189E0")) #定义分组颜色
pheatmap(data, scale = "row", #表示进行均一化的方向,值为 “row”, “column” 或者"none"cluster_rows = T,cluster_cols = T, #cluster_rows表示仅对行聚类,cluster_cols表示仅对列聚类,值为TRUE或FALSEcutree_rows = NA, cutree_cols = NA, #若进行了行/列聚类,根据行/列聚类数量分隔热图行,cutree_rows=num分割行,cutree_cols=num分割列treeheight_row = 30, treeheight_col = 30, #若行、列聚类树高度调整border_color = "grey60", #表示热图每个小的单元格边框的颜色,默认为 "grey60"cellwidth = 60, cellheight = 7.5, #表示单个单元格的宽度\高度,默认为 “NA”display_numbers = F, #表示是否在单元格上显示原始数值或按照特殊条件进行区分标记fontsize_number = 6, #表示热图上显示数字的字体大小number_format = "%.2f", #表示热图单元格上显示的数据格式,“%.2f” 表示两位小数,“%.1e”表示科学计数法number_color = "grey30", #表示热图单元格上显示的数据字体颜色fontsize =10, fontsize_row = 6, fontsize_col = 10, #热图中字体大小、行、列名字体大小show_rownames = T, show_colnames = T, #表示是否显示行名、列名main = "Gene标题", #表示热图的标题名字color = colorRampPalette(c("navy","white","firebrick3"))(100), #表示热图颜色,(100)表示100个等级angle_col = "45", #表示列标签的角度gaps_row = NULL, #仅在未进行行聚类时使用,表示在行方向上热图的隔断位置gaps_col = c(1,2,3,4,5,6), #仅在未进行列聚类时使用,表示在列方向上热图的隔断位置annotation_row = NA, annotation_col = ann_col, #表示是否对行、列进行注释,默认NAannotation = NA, annotation_colors = ann_color, #表示行注释及列注释的颜色,默认NAannotation_legend = TRUE, #表示是否显示注释的图例信息annotation_names_row = TRUE, annotation_names_col = TRUE) #表示是否显示行、列注释的名称
图1 行分组后热图
3.1.2 行信息注释和热图绘制
#行和列注释ann_col = data.frame(Sample=factor(c(rep("control",3),rep("test",3))))#创建分组列ann_row = data.frame(pathway=factor(c(rep("pathway1",25),rep("pathway2",15),rep("pathway3",10))))#创建分组行row.names(ann_col) = colnames(data) #这一行必须有,否则会报错:Error in check.length("fill") : 'gpar' element 'fill' must not be length 0row.names(ann_row) = rownames(data)ann_color = list(Sample = c(control="#0089CF", test="#E889BD")) #定义分组颜色
#热图绘制pheatmap(data, scale = "row", #表示进行均一化的方向,值为 “row”, “column” 或者"none"cluster_rows = T,cluster_cols = T, #cluster_rows表示仅对行聚类,cluster_cols表示仅对列聚类,值为TRUE或FALSEcutree_rows = NA, cutree_cols = NA, #若进行了行/列聚类,根据行/列聚类数量分隔热图行,cutree_rows=num分割行,cutree_cols=num分割列treeheight_row = 30, treeheight_col = 30, #若行、列聚类树高度调整border_color = "grey60", #表示热图每个小的单元格边框的颜色,默认为 "grey60"cellwidth = 60, cellheight = 7.5, #表示单个单元格的宽度\高度,默认为 “NA”display_numbers = F, #表示是否在单元格上显示原始数值或按照特殊条件进行区分标记fontsize_number = 6, #表示热图上显示数字的字体大小number_format = "%.2f", #表示热图单元格上显示的数据格式,“%.2f” 表示两位小数,“%.1e”表示科学计数法number_color = "grey30", #表示热图单元格上显示的数据字体颜色fontsize =10, fontsize_row = 6, fontsize_col = 10, #热图中字体大小、行、列名字体大小show_rownames = T, show_colnames = T, #表示是否显示行名、列名main = "Gene标题", #表示热图的标题名字color = colorRampPalette(c("navy","white","firebrick3"))(100), #表示热图颜色,(100)表示100个等级angle_col = "45", #表示列标签的角度gaps_row = NULL, #仅在未进行行聚类时使用,表示在行方向上热图的隔断位置gaps_col = c(1,2,3,4,5,6), #仅在未进行列聚类时使用,表示在列方向上热图的隔断位置annotation_row = ann_row, annotation_col = ann_col, #表示是否对行、列进行注释,默认NAannotation = NA, annotation_colors = ann_color, #表示行注释及列注释的颜色,默认NAannotation_legend = TRUE, #表示是否显示注释的图例信息annotation_names_row = TRUE, annotation_names_col = TRUE) #表示是否显示行、列注释的名称
图2 行和列注释的热图
3.2 多条件分组
#多条件分组行和列注释ann_col = data.frame(Sample=c(rep("control",3),rep("test",3)), Stage = c(rep("Stage1",1), rep("Stage2",2), rep("Stage3", 3)), time = c(rep("(March",2),rep("July",2),rep("December",2)))#创建分组列ann_row = data.frame(pathway=c(rep("pathway1",25),rep("pathway2",15),rep("pathway3",10)),Biological_process = c(rep("process1",20), rep("process2", 10),rep("process3", 5),rep("process4", 5),rep("process5", 10) ))#创建分组行row.names(ann_col) = colnames(data) #这一行必须有,否则会报错:Error in check.length("fill") : 'gpar' element 'fill' must not be length 0row.names(ann_row) = rownames(data)ann_color = list(Sample = c(control="#0089CF", test="#E889BD"),Stage=c(Stage1="#FFFFCC",Stage2="#CCFFFF",Stage3="#CCCCFF"),Sex = c(March = "orange", July = "purple", December = "yellow")) #定义分组颜色#热图绘制pheatmap(data, scale = "row", #表示进行均一化的方向,值为 “row”, “column” 或者"none"cluster_rows = T,cluster_cols = T, #cluster_rows表示仅对行聚类,cluster_cols表示仅对列聚类,值为TRUE或FALSEcutree_rows = NA, cutree_cols = NA, #若进行了行/列聚类,根据行/列聚类数量分隔热图行,cutree_rows=num分割行,cutree_cols=num分割列treeheight_row = 30, treeheight_col = 30, #若行、列聚类树高度调整border_color = "grey60", #表示热图每个小的单元格边框的颜色,默认为 "grey60"cellwidth = 60, cellheight = 7.5, #表示单个单元格的宽度\高度,默认为 “NA”display_numbers = F, #表示是否在单元格上显示原始数值或按照特殊条件进行区分标记fontsize_number = 6, #表示热图上显示数字的字体大小number_format = "%.2f", #表示热图单元格上显示的数据格式,“%.2f” 表示两位小数,“%.1e”表示科学计数法number_color = "grey30", #表示热图单元格上显示的数据字体颜色fontsize =10, fontsize_row = 6, fontsize_col = 10, #热图中字体大小、行、列名字体大小show_rownames = T, show_colnames = T, #表示是否显示行名、列名main = "Gene标题", #表示热图的标题名字color = colorRampPalette(c("navy","white","firebrick3"))(100), #表示热图颜色,(100)表示100个等级angle_col = "45", #表示列标签的角度gaps_row = NULL, #仅在未进行行聚类时使用,表示在行方向上热图的隔断位置gaps_col = c(1,2,3,4,5,6), #仅在未进行列聚类时使用,表示在列方向上热图的隔断位置annotation_row = ann_row, annotation_col = ann_col, #表示是否对行、列进行注释,默认NAannotation = NA, annotation_colors = ann_color, #表示行注释及列注释的颜色,默认NAannotation_legend = TRUE, #表示是否显示注释的图例信息annotation_names_row = TRUE, annotation_names_col = TRUE) #表示是否显示行、列注释的名称
图3 多条件分组注释的热图
好了本次分享就到这里,下一期将分享根据聚类情况绘制热图的分组。
扫码关注公众号,私聊获得完整代码和演示数据包,以及其他精彩内容
【R语言】——聚类热图行列分组信息注释热图2相关推荐
- 热图pheatmap 热图3:热图行列分组信息注释
热图pheatmap library(pheatmap) getwd() setwd("D:\Win10 System\Documents\WeChat Files\wxid_f27yna0 ...
- 热图3:热图行列分组信息注释
这次我们要让热图更加复杂化. 实际上,有些情况下做热图可能只需要标注对照组.实验组即可.但是大多时候,可以在热图上体现更多信息,比如,除了分组,还有不同得处理.年龄.性别.疾病阶段等等,以及不同功能基 ...
- R语言绘制热图实践(一)pheatmap包
目录 前言 pheatmap包 pheatmap简介 常用参数介绍 使用 安装 绘制样本间相关系数图(简单使用) 差异表达基因热图(进阶使用) 如何查看pheatmap的聚类结果 pheatmap总结 ...
- R语言绘制热图(其实是相关系数图)实践(二)corrplot包
目录 前言 corrplot包简介 语法和常用参数介绍 函数语法 参数介绍 实践 summary 参考资料 前言 在我的上一篇的内容中(R语言绘制热图实践(一)pheatmap包 ),我以绘制相关系数 ...
- R语言使用ggplot2包使用geom_density()函数绘制密度图(自定义颜色填充、线条色彩、分组、均值线)实战(density plot)
R语言使用ggplot2包使用geom_density()函数绘制密度图(自定义颜色填充.线条色彩.分组.均值线)实战(density plot) 目录 R语言使用ggplot2包使用geom_den ...
- R语言ggplot2可视化:可视化分组的小提琴图(violin plot)并在分组小提琴内部嵌入箱图(box plot)
R语言ggplot2可视化:可视化分组的小提琴图(violin plot)并在分组小提琴内部嵌入箱图(box plot) 目录
- R语言使用compareGroups包绘制分组患者基线信息表实战:基于survival包lung数据集
R语言使用compareGroups包绘制分组患者基线信息表实战:基于survival包lung数据集 目录 R语言使
- R语言使用lm函数构建分组线性回归模型、构建具有交互项的线性回归模型、使用coef函数获取模型系数及截距信息
↵ R语言使用lm函数构建分组线性回归模型.构建具有交互项的线性回归模型.使用coef函数获取模型系数及截距信息 目录
- R语言绘图—热图绘制
R语言绘图-热图绘制 原创 R语言与医学生 2022-06-24 20:59 发表于广东 热图使用颜色来表示二维图中第三个变量的变化和大小.热图能清楚直观的看到数据的变化.今天就简单介绍下R语言中热 ...
最新文章
- Datawhale来杭电啦!
- Linux下解决“shutdown: command not found“问题
- 思科isis路由的优先级_何谓“路由” ,带你了解路由的本质,轻松配置路由简单排除故障...
- 使用vSphere Host Update Utility 4.0升级ESX 3到4.0版本
- mybatis if test 用法_SpringBoot整合Mybatis-Plus 实战之动态SQL,Mybatis拿得出手的功能之一...
- 写出float x 与“零值”比较的if语句
- nginx upstream setting
- HTML 文档流和文本流的理解
- spring-boot项目打war包并部署到本地的tomcat容器
- jQuery的hide() 、show() 、toggle()
- jQuery实现的简单文字提示效果模拟title
- java 内部类调用_Java内部类使用总结
- mysql数据库过滤数据_MySQL数据库常规操作一些简单绕过过滤的方法
- [LeetCode] Reverse Linked List 倒置链表
- merge()函数--R语言
- Spring Boot实战笔记(四)-- Spring常用配置(事件Application Event)
- 计算机学报2020.1-2022.5感兴趣论文简单通览笔记
- 深度模型训练之learning rate
- python search返回值_python正则表达式--match search方法
- clion:输出中文乱码终极解决方案