分享

用R做heatmap图,附加差异表达分析代码~

 生信交流平台 2021-12-29

众所周知,R是统计分析大师,拥有大量开源的包,同时R也是一个绘图大师,只不过它的各种参数让小白们头疼。今天就给大家介绍一下如何用R做芯片表达数据的haatmap图(PS:当然可以用于其他数据)。

代码如下,我主要用了heatmap.2函数,来自gplots包,下面的代码中还贴了用limma包筛选差异表达基因的代码。

#导入ALL包library(ALL)#导入数据data(ALL)eset<-ALL[,ALL$mol.biol %in% c("BCR/ABL","ALL1/AF4")]
#差异表达分析library(limma)f<-factor(as.character(eset$mol.biol))design<-model.matrix(~f)fit<-eBayes(lmFit(eset,design))
#差异表达阈值selected<-p.adjust(fit$p.value[,2])<0.05
#差异基因表达量esetSel<-eset[selected,]color.map<-function(mol.biol){if(mol.biol=="ALL1/AF4") "#FF0000" else "#0000FF"}
#样本标记颜色patientcolors<-unlist(lapply(esetSel$mol.biol,color.map))
library(gplots)#输入是表达矩阵,横轴表示基因,纵轴表示样本heatmap.2(exprs(esetSel),col=greenred(75),scale="none",ColSideColors = patientcolors, key=T,symkey = F,density.info = "none",trace = "none",cexRow=0.5 )

接下来就会生成这样一张常见的红绿heatmap图,纵轴color bar中红色、蓝色表示实验、对照组,ColSideColors参数控制。heatmap图红色高表达,绿色低表达,col参数控制。heatmap.2功能非常强大,可以控制对是否对横、纵轴分别聚类,以及绘制相应的聚类树,等等。更多可以参考heatmap.2的说明文档,或者http://www2./fac/sci/moac/people/students/peter_cock/r/heatmap/

显摆一下,自己做的:

赶紧follow上面的代码,做一个美美的热图吧~

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多