上海阿趣生物科技有限公司

13

手机商铺

qrcode
商家活跃:
产品热度:
  • NaN
  • 0.20000000000000018
  • 1.2000000000000002
  • 0.20000000000000018
  • 3.2
中药质量评价
询价

上海阿趣生物科技有限公司

入驻年限:13

  • 联系人:

    官方电话

  • 所在地区:

    上海

  • 业务范围:

    技术服务、耗材、实验室仪器 / 设备

  • 经营模式:

    代理商 生产厂商

在线沟通

公司新闻/正文

干货分享 | 请叫我“热图”君

440 人阅读发布时间:2022-06-23 12:59

热图用来对采集的因子响应强度或其他的一些因素进行归一化,从而利用颜色条的变化来直观地表示不同样本之间的变量变化情况。

其本质是有一个个用预设颜色表示数值大小的小方格组成的一个数据矩阵,并通过对因子或样本进行聚类,从而观察不同样品数据间的相似性。


R中绘制基因表达热图的方法

由于热图的画法较多,小编对以下几种比较常用的画法做了归纳。
 

01.使用heatmap函数绘制热图

Heatmap的画法比较简单,参数较少。

df <-read.delim("https://www.bioladder.cn/shiny/zyp/demoData/heatmap/data.heatmap.txt", #文件名称 注意文件路径,格式
header = T, # 是否有标题
sep = "\t", # 分隔符是Tab键
row.names = 1, # 指定第一列是行名
fill=T) # 是否自动填充,一般选择是
########heatmap########
dt<-as.matrix(df)
###颜色###
cmcolor <- cm.colors(256)
rowcolor <- rainbow(nrow(dt), start = 0, end = 0.3)
colcolor <- rainbow(ncol(dt), start = 0, end = 0.3)
####绘图
heatmap(dt,scale = "row",
RowSideColors = rowcolor,
ColSideColors = colcolor,
margins = c(6,10),
xlab = NULL,
ylab = NULL)
新闻图片1

02.使用pheatmap包画热图

pheatmap包由于用法简单,个性化参数较多,故非常受欢迎,是主流的热图绘制工具,这里简单介绍一种热图画法。

####加载包###
library(pheatmap)
dfSamplehttps://www.bioladder.cn/shiny/zyp/demoData/heatmap/sample.class.txt",header = T,row.names = 1,fill = T,sep = "\t")
dfGene<-read.delim("https://www.bioladder.cn/shiny/zyp/demoData/heatmap/gene.class.txt",
header = T,row.names = 1,fill = T,sep = "\t")
#####绘图#####
pheatmap(df,
annotation_row=dfGene, # (可选)指定行分组文件
annotation_col=dfSample, # (可选)指定列分组文件
show_colnames = TRUE, # 是否显示列名
show_rownames=TRUE, # 是否显示行名
fontsize=8, # 字体大小
display_numbers=F, #是否显示值
number_format="%.3f", #显示值保留小数位数
color = colorRampPalette(c('#0000ff','#ffffff','#ff0000'))(50), # 指定热图的颜色
annotation_legend=TRUE, # 是否显示图例
# legend_breaks=c(0.05,0.25,0.5,0.75,0.95),#图例范围设置
# legend_labels=c("0.05","0.25","0.5","0.75","0.95"),#图例坐标设置
border_color=NA, # 边框颜色 NA表示没有
scale="row", # 指定归一化的方式。"row"按行归一化,"column"按列归一化,"none"不处理
cluster_rows = TRUE, # 是否对行聚类
cluster_cols = TRUE # 是否对列聚类
)
新闻图片2

03.使用ComplexHeatmap包画热图

ComplexHeatmap包是一个绘制复杂热图的神器,这里主要介绍如何组合热图的画法。

###安装及加载ComplexHeatmap包#####
# if (!requireNamespace("BiocManager", quietly = TRUE))
# install.packages("BiocManager")
# BiocManager::install("ComplexHeatmap")
library(ComplexHeatmap)
library(circlize)
###颜色设置#####
col_rnorm = colorRamp2(c(-3, 0, 3), c("green", "white", "red"))
col_runif = colorRamp2(c(0, 3), c("white", "orange"))
col_letters = c("a" = "pink", "b" = "purple", "c" = "blue")

 

######数据设置
set.seed(123)
mat1 = matrix(rnorm(80, 2), 8, 10)
mat1 = rbind(mat1, matrix(rnorm(40, -2), 4, 10))
rownames(mat1) = paste0("R", 1:12)
colnames(mat1) = paste0("C", 1:10)

mat2 = matrix(runif(60, max = 3, min = 1), 6, 10)
mat2 = rbind(mat2, matrix(runif(60, max = 2, min = 0), 6, 10))
rownames(mat2) = paste0("R", 1:12)
colnames(mat2) = paste0("C", 1:10)

le = sample(letters[1:3], 12, replace = TRUE)
names(le) = paste0("R", 1:12)

mat1t = t(mat1)
mat2t = t(mat2)
######绘图#######
ht1 <- Heatmap(mat1t, name = "rnorm", col = col_rnorm, row_km = 2,
left_annotation = rowAnnotation(foo1 = 1:10, bar1 = anno_barplot(1:10)))
ha <- HeatmapAnnotation(foo = anno_barplot(1:12, height = unit(2, "cm"),
axis_param = list(side = "right")))
ht2 <- Heatmap(mat2t, name = "runif", col = col_runif, row_km = 2,
left_annotation = rowAnnotation(foo2 = 1:10))
ht3 <- Heatmap(rbind(letters = le), name = "letters", col = col_letters)
ht_list <- ht1 %v% ha %v% ht2 %v% ht3
draw(ht_list, column_km = 2)
新闻图片3

本次干货分享,小编就heatmap(),pheatmap包, ComplexHeatmap包做了简单的介绍。接下来对以上三种做一个简单的汇总:

  • heatmap()[R基本函数,统计数据包]:绘制一个简单的热图
  • pheatmap()[pheatmap R包]:绘制漂亮的热图,并提供更多控件来更改热图的外观
  • ComplexHeatmap[R/Bioconductor的包]:绘制注释和排列复杂热图(用于基因组数据分析是非常有用的)

然而在R语言中还有更多热图的画法,eg: heatmap.2(),d3heatmap()等,欢迎有兴趣的小伙伴留言,和小编一起探索高级聚类热图的画法。

上一篇

合作文章 | 蜜蜂遗传学在社会传播中塑造肠道微生物群的菌株结构

下一篇

合作文章 | 人体“无声杀手”——慢性肾病的延缓方法有了!

更多资讯

我的询价