【R语言】热图绘制-heatmap函数
语言 函数 绘制 热图 heatmap
2023-06-13 09:13:02 时间
前面给大家介绍过
有小伙伴留言问,绘制热图的数据从哪里来?
其实每一张热图后面都对应一个表达矩阵。如上图所示,每一行是一个基因,每一列是一个样本。每一个小的色块,就是这个基因在这个样本中的表达量。只是这里用颜色的深浅来表示基因表达值的高低而已,颜色越红,表达值越高。颜色越蓝表达值越低。
也就是说绘制热图的原始数据就是一个表达矩阵。这个表达矩阵理论上可以包含所有基因,但在实际应用中,一般会去挑选差异表达的基因。因为绘制热图的一个目的,也是为了展示和检查挑选出的差异表达基因是否能够很好的将不同类型的样本区分开,这里有tumor和normal两种类型的样本。从图中我们可以看到,挑选出的差异表达基因能够很好的将tumor样本和normal样本区分开来。
下面我们结合一个具体的例子来讲解如何使用R的heatmap函数绘制热图
#读取所有miRNA的表达矩阵
expr=read.table("miRNA_expr.txt",header=T,row.names=1,sep="\t")
#读取差异表达分析结果
#差异表达分析可以参考 https://ke.qq.com/course/package/37513
deg=read.table("MIR_DEG_fc_2.5_pval_0.01.txt",header=T,row.names = 1,sep="\t")
#设置样本类型
type=factor(rep(c("CR","CC"),each=3))
#提取差异表达miRNA的名字
miRNA=rownames(deg)
#提取差异表达miRNA对应的表达矩阵
data=as.matrix(expr[miRNA,])
#绘制热图
heatmap(data,
cexCol = 1, #设置列标签字体大小
scale="row" #按行做归一化
)
得到热图如下
这个热图是使用默认配色方案来绘制的,前面我给大家介绍过
里面提到过
R自带了5个跟颜色相关的函数,即:
- rainbow
- heat.colors
- terrain.colors
- topo.colors
- cm.colors
接下来我们就使用其他几种配色方案来绘制热图
heatmap(data, cexCol = 1,scale="row",col = cm.colors(256))
heatmap(data, cexCol = 1,scale="row",col = terrain.colors(256))
heatmap(data, cexCol = 1,scale="row",col = topo.colors(256))
heatmap(data, cexCol = 1,scale="row",col = heat.colors(256))
本文中使用的表达矩阵来自GEO公共数据库
https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE82236
关于GEO数据库检索和差异表达分析可以参考
基于GEO公共数据库的数据挖掘
课程网址:
https://ke.qq.com/course/package/37513
参考资料:
相关文章
- Metro磁贴应用显示语言变为英文解决办法
- c语言list的使用方法,c语言list操作
- 【R语言】获取最新的人的所有miRNA的ID号
- 文件读写api函数是什么_c语言文件的读和写
- c语言scanf函数用法详解_c语言输入scanf格式
- 归并排序(Java语言实现)
- 【说站】c语言中函数的两种形式
- 【说站】c语言中fopen函数的使用
- 【说站】c语言中sizeof是什么
- PHP小程序开发_微信小程序后端语言
- 2-SQL语言中的函数
- python用冒泡法排序_数组冒泡排序c语言函数
- c语言bzero函数_hikaricp源码分析
- 常见语言编写的exe入口点代码
- Go 语言开源项目使用的函数选项模式
- 【C++ 语言】引用数据类型 ( 引用数据类型定义 | 引用数据类型使用 | 引用类型参数 )
- 【C 语言】文件操作 ( ftell 函数 | 使用 ftell 函数获取当前指针位置 | 通过 ftell 计算文件大小 )
- 【C 语言】文件操作 ( fseek 使用注意事项 | fseek 函数返回值分析 )
- 【C 语言】字符串模型 ( strstr-while 模型 | 抽象函数模型 | 业务子函数接口定义要点 | 形参指针间接赋值 | 返回值状态 | 形参指针处理 | 形参指针判空 | 形参返回值 )
- 【C 语言】二级指针作为输入 ( 二维数组 | 抽象业务函数 | 二维数组打印函数 | 二维数组排序函数 )
- 【C 语言】文件操作 ( 按照文本行的方式读写文件 | fgets 函数 | fputs 函数 )
- 【C 语言】动态库封装与设计 ( 动态库调用环境搭建 | 创建应用 | 拷贝动态库相关文件到源码路径 | 导入头文件 | 配置动态库引用 | 调用动态库中的函数 )
- 2023.4生信马拉松day7-R语言综合应用
- SQL数据查询之DQL语言介绍
- Go语言圣经–接口约定习题详解编程语言
- Go语言圣经-Deferred函数详解编程语言
- Go语言圣经-匿名函数习题2详解编程语言
- Go语言圣经-匿名函数习题详解编程语言
- Go语言使用range复用临时变量
- Go语言函数类型
- Linux之下编写C语言程序的试验记(linux c语言试题)
- 在Oracle中提升语言缓存性能(oracle 中文缓存)
- python基础教程之简单入门说明(变量和控制语言使用方法)
- Go语言的方法接受者类型用值类型还是指针类型?
- GO语言实现的端口扫描器分享