语言绘制基因表达热图_R语言绘制基因表达热图(简易版)

作者:恺忻

排版,审核:恺忻 

2990439369cb1c504e4213354dedcd4f.png

R中有很多绘制基因表达热图的包,下面介绍其中一种较为简单的绘制方法(使用pheatmap包)。所绘制的基因可以是筛选出来的差异表达基因,也可以是自己感兴趣的基因。本推送中所使用的输入数据input.txt如下所示:

6566229339f9d7c727bcc99e9cd2244c.png

每一行为一个基因,每一列为一个样本,WT为对照组,HOM为实验组。这里值得注意的是,这组数据为RNA-seq的数据(fpkm标准化后),通常而言,这种数值几千或几百的数据都是没有取log,如果数值是在10左右的,一般是取了log之后的。我们从GEO datasets中下载的matrix数据需要在网站上阅读一下他的数据处理过程。通常在筛选差异基因或绘制热图之前,我们可以先取log,来缩小数值的变化范围。下面是绘图的代码:

library(pheatmap)#载入所需包,没有安装的需要先安装 setwd("D:\\kwkx")         #设置工作目录                           data=read.table("input.txt",sep="\t",header=T,check.names=F)#读取输入文件rownames(data)=data[,1]data=data[,-1]exp=log2(data+0.01)##以2为底取logpdf(file="heatmap1.pdf",height=8,width=5)##根据所绘制热图的大小,调整长和宽pheatmap(exp,          color = colorRampPalette(c("green", "black", "red"))(50),         cluster_cols =F,####如果需要对行也不进行聚类,可添加cluster_rows =F         show_colnames = T,##也可不显示列名         show_rownames = T,##也可不显示行名         fontsize = 12,         fontsize_row=5)dev.off()

上述代码所绘制结果如下:

7e47dd08e288588a95d88f70c7763eab.png

现在的热图中样本数比较少,所以可以将8个样本的名称全部标出,但如果有几十或几百个样本时,这样标出这些样本就会导致画面非常不清晰。如果我们希望将样本的表型在热图中进一步进行显示,则可以使用下述代码对每个样本用不同颜色的标签表示:

library(pheatmap)setwd("D:\\kwkx")           #设置工作目录                        data=read.table("input.txt",sep="\t",header=T,check.names=F)#读取输入文件rownames(data)=data[,1]data=data[,-1]exp=log2(data+0.01)label=c(rep("WT",4),rep("HOM",4))###根据实际情况设定标签names(label)=colnames(exp)label=as.data.frame(label)pdf(file="heatmap2.pdf",height=8,width=5)pheatmap(exp,          annotation=label, ###对样本在上方加标签         color = colorRampPalette(c("green", "black", "red"))(50),         cluster_cols =F,         show_colnames = T,         show_rownames = T,         fontsize = 12,         fontsize_row=5)dev.off()

所绘制结果如下图所示:

d6a09b3758863da32529209d620d75e0.png

上述便是基因表达热图的简单绘制方法。

我们建立了一个读者群,将在里面分享一些生信编程小知识,生物信息化学信息文献,欢迎加入:

4d662c0ef0c31eae94422d16f49aa831.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值