跟着Cell学作图|10.复杂热图

10.复杂热图

“实践是检验真理的唯一标准。”

“复现是学习R语言的最好办法。”


DOI: 10.1016/j.cell.2020.05.032

这篇2020年发表在cell上关于新冠的组学文章里面有大量的生信内容。今天带大家复现其中的一个Figure热图


本文示例数据领取:后台回复“20210509

文件格式

  • 表达矩阵文件


  • 分组信息文件


绘制

#------
title: "heatmap"
author: "MZBJ"
date: "2020/5/8"
#-----
rm(list = ls())
setwd("F:/HJH/mzbj/cell/20210508")
library(readr)
library(plyr)
library(readxl)
library(RColorBrewer)
library(pheatmap)
matrix<-read.table("proteomic_matrix.txt",header = T,sep = "\t",row.names = 1) 
matrix[is.na(matrix)] <- 0 #给空值赋0

info<-read_excel("sampleinfo.xlsx") #导入分组信息

annotation_col<- data.frame(type = info$Type,  # 构建行注释信息
                            sex=info$Sex,
                            age=info$Age,
                            row.names = info$TMT)

type_color <- c("#85B22E","#5F80B4","#E29827","#922927") 
names(type_color) <- c("jkdz","jbdz","PT","ZX") #类型颜色

sex_color <- c("red","#016D06")
names(sex_color) <- c("F","M") #性别颜色

ann_colors <- list(type=type_color,sex=sex_color) #颜色设置

matrix_2<-data.frame(scale(matrix,center = T)) #中心化
#绘制热图
pheatmap(matrix_2,
         scale="row",#对行进行归一化
         color = colorRampPalette(c("blue", "white","red" ))(1000), # color参数自定义颜色
         annotation_col = annotation_col,
         annotation_colors = ann_colors, 
         fontsize_col = 10, 
         cluster_rows = T,# cluster_row = FALSE参数设定对行进行聚类 
         cluster_cols = F,
         show_rownames =T, # show_rownames和show_colnames参数设定是否显示行名和列名
         show_colnames = F,
         fontsize = 10,
         cellwidth=10,
         cellheight=10, # cellwidth和cellheight参数设定每个热图格子的宽度和高度
         main = "Heatmap") # main参数添加主标题

出图:


几个不足之处

  • 未标注富集分析通路对应蛋白(目前只能手动标注)。

  • 由于数据的原因,热图里的正负表达没有明显的区分。


写在后面:

本系列重在复现,所以有些细节可能讲的不是很详细。大家有问题可以后台私信,或者在我的B站:木舟笔记进行互动!制作不易,希望大家多多支持!


往期内容:

跟着CELL学作图|1.火山图

跟着Cell学作图 | 2.柱状图+误差棒+散点+差异显著性检验

跟着 Cell 学作图 | 3.箱线图+散点+差异显著性检验

跟着 Cell 学作图 | 4.小提琴图

跟着Cell学作图 | 5.UMAP降维分析

跟着Cell学作图 | 6.时间序列分析(Mfuzz包)

跟着Cell学作图|7.富集分析(Metascape数据库)

跟着Cell学作图|8.富集分析网络图(Cytoscape/ClueGO)

跟着Cell学作图|9.PPI分析(GeNets数据库)

### 回答1: 以下是一段使用R语言编写的热图代码: ```r # 导入所需的包 library(gplots) # 创建一个示例据框 mydata <- matrix(c(10, 20, 30, 40, 50, 60), nrow = 2, ncol = 3) # 绘制热图 heatmap.2(mydata, trace = "none", col = cm.colors(256), dendrogram = "none", key = TRUE, keysize = 1.5, density.info = "none", margins = c(5, 10)) ``` 这段代码会创建一个2行3列的矩阵,并绘制一个热图,其中每个单元格的颜色表示该单元格中的值的大小。该热图不包括行和列的聚类树,但包括一个颜色键,显示颜色对应的值的范围。您可以根据需要调整绘图参,以满足您的需求。 ### 回答2: 下面是一个使用R语言绘制复杂热图的代码示例: ``` # 导入必要的包 library(gplots) # 创建一个据框,包含10个样本和5个变量 data <- matrix(runif(50), ncol = 5) rownames(data) <- paste0("Sample", seq(1, 10)) colnames(data) <- paste0("Variable", seq(1, 5)) # 绘制热图 heatmap.2(data, col = colorRampPalette(c("blue", "white", "red"))(100), # 定义颜色渐变 scales = "column", # 使用列据范围进行归一化 dendrogram = "both", # 显示行和列的聚类树 trace = "none", # 不显示跟踪线 key = TRUE, # 显示颜色键 keysize = 1.0, # 颜色键大小 cexRow = 0.6, cexCol = 0.8, # 设置行和列标签字体大小 margins = c(10, 10) # 设置图像边距 ) # 添加标题和标签 title("Complex Heatmap Example", line = 0.5, cex.main = 1.2) mtext("Samples", side = 2, line = 2, cex = 0.8) mtext("Variables", side = 1, line = 2, cex = 0.8) ``` 这段代码使用了`gplots`包中的`heatmap.2`函来创建一个复杂热图。在这个示例中,我们使用`runif`函生成了一个10x5的随机据矩阵,并设置了行和列的名称。然后,我们使用`heatmap.2`函来绘制热图,包括定义颜色渐变、归一化等参。最后,我们添加了标题和标签来增强可读性。 ### 回答3: 下面是一个使用R语言绘制复杂热图的示例代码: ```R # 安装并加载需要的库 install.packages("ComplexHeatmap") library(ComplexHeatmap) # 创建一个随机的矩阵作为据 set.seed(123) matrix_data <- matrix(rnorm(100), nrow = 10) # 创建一个热图对象 heat_map <- Heatmap(matrix_data, col = colorRamp2(c(-3, 0, 3), c("blue", "white", "red"))) # 添加热图注释信息 row_annotation <- rowAnnotation(groups = sample(c("Group1", "Group2"), 10, replace = TRUE)) col_annotation <- HeatmapAnnotation(df = data.frame(Annotation = sample(c("A", "B"), 10, replace = TRUE)), which = "col") heat_map <- heat_map + row_annotation + col_annotation # 设置绘图参 ht_options <- HeatmapOptions(column_names_gp = gpar(fontsize = 10, fontface = "bold"), column_title_gp = gpar(fontsize = 12, fontface = "bold"), heatmap_legend_param = list(title_gp = gpar(fontsize = 12, fontface = "bold"))) # 绘制热图 draw(heat_map, heatmap_legend_side = "right", heatmap_legend_param = list(at = seq(-3, 3, 1)), heatmap_legend_width = unit(1, "cm"), heatmap_legend_direction = "horizontal", heatmap_legend_gp = gpar(fontsize = 10), heatmap_options = ht_options) ``` 该代码首先安装并加载了ComplexHeatmap库,然后创建了一个随机的矩阵作为热图据。接着创建了一个热图对象,并添加了行和列的注释信息。最后,设置了绘图参,并调用draw函绘制热图。绘图时,还设定了绘图的各种参,如热图注释位置、图例位置、字体大小等。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值