Pheatmap热图的绘制及如何调整图片

Pheatmap热图的绘制及如何调整图片

Pheatmap包是R语言绘制热图比较强大的软件包,当然现在也有很多资料介绍这个包的使用,但是今天我写的重点不是如何使用这个包绘制热图,而是如何绘制出更好看的热图。(我使用的矩阵是1663x594),下面的左图和右图来源于同一个数据。明显可以看出左图更加直观和美观。那么绘制左图的步骤主要分下面三步:

第一步,绘制成普通热图:

数据格式

#读取数据

rt=read.table("diffmRNAExp.txt",sep="\t",header=T,check.names=F)

#第一列为行名

rownames(rt) = rt[,1]

#去掉行名,将表达量取均值

rt = rt[,-1]
rt=log10(rt+1)

#加载R包

library(ggplot2) library(pheatmap)

#绘制热图

pheatmap(rt,scale = "row",cluster_row =T,cluster_col =F,show_rownames=F,
	  color = colorRampPalette(colors = ("blue","white","red"))(102))

第二步,右边的颜色尺度范围默认是(-20,20),通过设置自行调整,比如说调整成(-4,4)。

bk <- c(seq(-4,-0.1,by=0.01),seq(0,4,by=0.01))
pheatmap(rt,scale = "row",cluster_row =T,cluster_col =F,show_rownames=F,
color=c(colorRampPalette(colors=c("blue","white"))(length(bk)/2),colorRampPalette(color=c("white","red"))(length(bk)/2)),fontsize=8,fontsize_row=4,legend_breaks=seq(-4,4,2),breaks=bk)
 

第三,添加分组,这里我们分别对行和列分别添加分组为例,如样本为T和N,而基因分为上调和下调。

annotation_row=read.table("group.txt",sep="\t",header=T)
annotation_col=read.table("group1.txt",sep="\t",header=T)
row_anno=data.frame(Type=annotation_row$type,row.names=annotation_row$gene)
col_anno=data.frame(Group=annotation_col$mm,row.names=colnames(rt))
分组

的格式文件如下:

pheatmap(rt,scale = "row",cluster_row =T,cluster_col =F,show_rownames=F,annotation_row=row_anno,annotation_col=col_anno,   
	  color = c(colorRampPalette(colors = c("blue","white"))(length(bk)/2),colorRampPalette(colors = c("white","red"))(length(bk)/2)),
	  fontsize=8,fontsize_row=4,legend_breaks=seq(-4,4,2),breaks=bk)
 

看到这里可能有的人说,里面分组的颜色太丑了,想换掉行不行?当然是可以的

ann_colors = list(Type=c("up"="red","down"="blue"),Group=c("N"="blue","T"="red"))
tiff(file="heatmap-1.tiff",width = 10,height =10,units ="cm",compression="lzw",bg="white",res=500)
pheatmap(rt,scale = "row",cluster_row =T,cluster_col =F,show_rownames=F,annotation_row=row_anno,annotation_col=col_anno,
      clustering_column_method = "complete",show_colnames=F,main="lncRNA",annotation_colors =ann_colors,
	  color = c(colorRampPalette(colors = c("blue","white"))(length(bk)/2),colorRampPalette(colors = c("white","red"))(length(bk)/2)),
	  fontsize=8,fontsize_row=4,legend_breaks=seq(-4,4,2),breaks=bk)
 

这里我只是以红色和蓝色为例,大家可以换成自己想要的颜色!

图片:
普通的热图
在这里插入图片描述
我们想要绘制的形式
在这里插入图片描述

数据格式
在这里插入图片描述
修改右边的标尺
在这里插入图片描述
添加分组在这里插入图修改右边的标尺片描述在这里插入图片描述

pheatmap是R语言中常用的数据可视化库`ComplexHeatmap`的一部分,用于绘制高维数据集的相关性或相似性。如果你想在相关性中标记出显著的部分,可以结合`ComplexHeatmap`提供的功能和其他统计方法。 首先,你需要计算数据集的相关系数矩阵(如皮尔逊相关系数),然后创建`pheatmap`对象。在这里,你可以设置`show_rownames`和`show_colnames`来显示行名和列名,以及`col_title`来添加列标题,比如“变量”。 为了标记显著部分,一种常见的做法是通过颜色映射来表示显著的正相关、负相关或非显著性。这通常涉及到假设检验(如t检验或ANOVA),找出那些显著的差异值。你可以先筛选出显著的关联,例如使用`cor.test()`函数,然后将结果(如p值)转化为颜色分段,比如: ```r # 假设你的数据框是df,相关性矩阵是corr_matrix sig_threshold <- 0.05 # 显著性阈值 corr_pvalues <- cor.test(df)[["p.value"]] # 计算p值 # 使用p.adjust()进行多重比较校正,如果需要 corr_pvalues_adj <- p.adjust(corr_pvalues, method = "bonferroni") # 将p值映射到颜色,比如红色代表显著正相关,蓝色代表显著负相关,白色代表非显著 corr_colors <- ifelse(corr_pvalues_adj <= sig_threshold, "red", ifelse(corr_pvalues_adj >= 1 - sig_threshold, "blue", "white")) # 创建,并使用colors参数 pheatmap(corr_matrix, color=corr_colors, scale="column", show_signif = TRUE, sig_level = sig_threshold, border_color="black") ``` 在这个例子中,`show_signif = TRUE`会让`pheatmap`自动在显著的单元格上画星号或圈,`sig_level`指定了显著性的阈值。你可以调整这些参数以满足你的需求。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值