最简单最实用的R语言热图绘制教程(没有R基础-掌握只需10min)

从R语言介绍与安装,再到出一个能看的热图

前面用Excel绘制热图,在熟练的情况下,操作起来其实还是比较快速和方便的,尤其对于具有代码恐惧症的朋友。教程发出去之后,即有收到消息,希望能写一个用R语言绘制热图的教程。考虑到目前本人的时间和精力以及”生信札记”公众号其实关注的人不多,我即应下,Excel绘制热图的推文阅读量超过500,我就写一个用R语言绘制热图的。然后….确实超过500了,那么也不爽约,动手写写。
?如何写一个实用的,简单的用R语言绘制热图的教程?我想这篇推文得从零基础的角度出发,从偏颇的R语言的介绍与安装开始。

简单介绍R语言

关于R语言,真的要了解他是什么,权威的答案google即可。这里只说我个人有偏颇的观点,重点在说清楚他是什么东西。R语言,从其名字来看,其是一门编程语言,也就是语言。语言就有其语法,跟我们学的外语如英语的语法是一个概念。几乎每一门编程语言都需要编译器或与解释器,这两个器的主要作用就是,把我们按照某种编程语言如R语言的语法写出来的语句,翻译成计算机能识别的代码或并执行这些代码并返回结果

为什么是R语言

计算机绘图或者出图,到底就是定点描线,后者最终也是点。GUI软件更或者是Excel等出图软件的操作界面实质是对代码的封装,将看似复杂的绘图代码隐藏起来,就如我们手上的智能手机如iphone,几乎所有人都可以直接上手使用,而不需要了解到底开机关机,打开微信等的具体硬件或者编程语言或代码实现。
编程语言有很多,目前也有较多的语言是支持出图的。而目前在我所了解的生信数据出图上,最常见的就是

  1. R (语言)

  2. Python

R语言,前身是S语言,是一门统计学家发明的语言,所以事实上其天生善于完成统计运算,内置了太多统计相关函数,如t.test()。而生物学研究,在现在每时每刻都产生大量数据的时间点上,从数据中抽取出信息,生物学研究比以往任何时候更依赖于统计(因为….数据太多,根本看不多来,正确的统计分析至少可以简化)。当然,可视化也是重点,对数据涵盖的信息进行可视化,我们甚至使用生物学家特有的直觉,用我们自己专业的视角去观察数据。对此,R正好两者都擅长或者现在都擅长。
R语言,其实存在不少人包括我,觉得他其实并不太像一门编程语言。但是这并没有所谓,我个人认可的有偏颇的观点是:一门编程语言的流行,要么其设计优秀,要么具有稳定而活跃的社区。设计优秀与社区活跃可以是相辅相成,但事实上只要有活跃的社区,设计是否优秀可能暂时并没那么重要。为此引入一句,大家可以看看perl曾经的火爆程度
R语言,就是一个庞大的帝国,他其实是一个全家桶,封装了各种,也调用了各种,包括了Java码,C码,C++码等等。对R语言的基本使用,其实就是用所谓的 R 包 (R package)。每一个R包的作者会把有用或者自己觉得有用的其写的函数更或者对象封装起来,最后,
对于我们使用者而言,就只要下载安装R包,然后准备数据和输入函数,得到结果
这一个R语言的使用逻辑简单到几乎所有人x3(重复三遍的意思)都会用,也非常适合完全没有计算机基础的生物学研究工作者。
无论如何,反正用R就对了,R语言现在很火,即使他隐藏的复杂统计模型的同时,也隐藏了各式各样的问题与坑。

进入正题

安装R语言的运行环境(解释器)

在windows下安装R语言运行环境,是一件再简单不过的事情(在LInux和Mac上也是类似)。进入R语言的官网主页,https://cran.r-project.org/,即可看到R语言环境的下载,根据自己的系统进行选择,点击跳转

这里默认使用的是一台完全没有安装过的R语言环境的电脑

如此,等待下载完毕之后,进行安装。安装R语言环境。一般改选为English,毕竟是外文开发的,中文的提示有时看起来很怪。然而当然也是用的中文。

随后建议一路默认,同样注意,

建议程序都安装在路径没有空格没有中文的目录下,如果这一行看不懂,那就不管了,默认先

最后,可以在桌面看到R语言运行环境的图标,现在需要做的是,双击打开它,并进入R的GUI运行环境(提示,当然有其他运行方式,如脚本运行,这里先不扯)

进来之后,那就开干。

安装R语言绘制热图最简单的R包(pheatmap)

最基本R语言使用,其实就是使用各式各样的函数,而这些函数,要么是内置的,要么是别人写好并封装成R包的。
进行热图绘制,最方便的R包,莫过于pheatmap
所以,第一步,安装这个R包
在保证网络畅通的情况下,输入

install.packages("pheatmap")

可能会弹出窗口,让选择镜像,选择一个距离自己近的地方,这样下载起来会快很多

如果出现下面这种提示,似乎是不用理会,一路确定或者下一步即可

完成安装之后,直接输入,如果发现没有任何提示,那么就是安装完成了

library(pheatmap)

使用pheatmap进行热图绘制

准备数据,最简单粗暴的方式,从Excel中复制

此时,这个基因表达矩阵已经存放在电脑的剪切板中,回到R语言运行环境,输入(如果是直接复制下面这行代码,那么注意,复制代码的同时已经替换了剪贴板内容,此时黏贴代码之后不要回车,先回去Excel重新复制表达开矩阵)

Exp<-read.delim("clipboard",header=T,row.names=1)

注意,所有字符都是外文的,如果出错,注意是不是 横杆 在复制代码的时候被转码成 中文的,自己输入就没问题。

此时你只需要第三行代码,就可以输出一张可以看的热图

pheatmap(Exp)

一般情况下,我们需要相对基因进行标准化

pheatmap(Exp,scale="row")

列的顺序是时间序列,我们不应该对列进行聚类

pheatmap(Exp,scale="row",cluster_cols=F)

配色似乎也不好看,

pheatmap(Exp,scale="row",cluster_cols=F,color = colorRampPalette(c("navy", "white", "firebrick3"))(50))

差不多了,剩下的就看自己造化了

差点忘了保存图片

即可保存为各种格式的图片

写到这里

用了一个多小时写了这个,相信应该可以让零基础的朋友用R语言出一张能看的热图。pheatmap的功能还是可以的,出几个不错的热图,有很多细节可以调整。操作的灵活,修改的便捷,可能才是用代码绘图的方便之处。用R语言绘图,那么基础就是掌握R语言。如此才能更好的R,出更好看的图。
学习R语言,还是需要时间的。具体或许后面再写写R学习的个人经验。
当然,假期已经结束了,今天就回校干课题了。如果后面可以抽出时间,那么R语言绘制热图的,或许至少再出一个 pheatmap 更多的使用细节。毕竟,做一张拿得出手的热图,还是需要更多的操作。

最后附上使用的代码

library(pheatmap)# 注意,剪切板中必须是表达矩阵Exp<-read.delim(file="clipboard",header=T,row.names=1,sep="\t") pheatmap(Exp) pheatmap(Exp,scale="row") pheatmap(Exp,scale="row",cluster_cols=F) pheatmap(Exp,scale="row",cluster_cols=F,color = colorRampPalette(c("navy", "white", "firebrick3"))(50))

参与讨论交流

扫码添加 我的个人微信,如果以上二维码过期了的话,有问题请直接在微信群聊中交流
如果要直接向我提问,那么请扫码加入我的 知识星球,发帖交流,生信相关,TBtools相关的学习讨论沉淀
(0)

相关推荐

  • R基础绘图,你真的会了么?

    学徒和学员已经陆续出师,是时候把生信技能树的舞台交给后辈了! 下面是转录组讲师在实战单细胞数据分析的投稿 老板扔给我的一堆带有代码的可实现单细胞图文复现资料,又是学习的一周,本次在学习的过程中再次遇到 ...

  • 技术贴 | R语言:大样本多组学的相关性计算、热图绘制

    本文由可爱的乔巴根据实践经验而整理,希望对大家有帮助. 原创微文,欢迎转发转载. 导读 上期介绍了利用psych包计算两组小样本的相关性并进行热图可视化,但当样本数据量非常大时,psych包会耗费的时 ...

  • 技术贴 | R语言:小样本多组学的相关性计算、热图绘制

    本文由可爱的乔巴根据实践经验而整理,希望对大家有帮助. 原创微文,欢迎转发转载. 导读 在多组学数据关联挖掘中,在我们筛选到目标基因集以及目标蛋白质集合或目标代谢物集合后,在进行基因与蛋白质或代谢关联 ...

  • 技术贴 | R语言:如何绘制合并气泡图?

    本文由yang根据实践经验而整理,希望对大家有帮助. 原创微文,欢迎转发转载. 导读 在组学数据挖掘中在进行差异基因表达分析时,得到显著差异基因后,接下来就需要分析这些基因参与了哪些功能,常见的就是G ...

  • 技术贴 | R语言:pie绘制饼图

    本文由阿童木根据实践经验而整理,希望对大家有帮助. 原创微文,欢迎转发转载. 导读 饼图可以展示整体中各个部分占整体的比例.利用label,col,border可分别调整pie图的标签.饼颜色.边颜色 ...

  • SPSS与R语言分层卡方检验案例教程集锦

    卡方检验-分层卡方 主要内容: 1)病因研究中的混杂因素 2)混杂因素的调整和校正 3)CMH统计检验概念 4)CMH统计检验步骤 5)SPSS案例操作 6)结果解读,做出统计推断 7)CMH统计检验 ...

  • R语言动态图可视化:如何、创建具有精美动画的图

    原文链接:http://tecdat.cn/?p=8003 演示数据集 library(gapminder) head(gapminder)## # A tibble: 6 x 6 ## countr ...

  • R语言用igraph绘制网络图可视化

    原文链接:http://tecdat.cn/?p=22886 这篇文章假定你已经知道如何用igraph库建立一个基本的网络图. 基本上,igraph允许将几种类型的输入转化为一个图形对象,可以使用pl ...

  • R绘图笔记 | 热图绘制

    关于绘图,前面介绍了一些: R绘图笔记 | 一般的散点图绘制 R绘图笔记 | 柱状图绘制 R绘图笔记 | 直方图和核密度估计图的绘制 R绘图笔记 | 二维散点图与统计直方图组合 R绘图笔记 | 散点分 ...