使用R进行微阵列可视化(红绿热图)
目录
- 使用R中的ggplot2进行微阵列可视化(红绿热图)
- 1、常用的方法:biclust包
- 1.1 biclust包的安装
- 1.2 导入biclust包
- 1.3 生成一些测试数据
- 1.4 调用drawHeatmap()函数绘制热图
- 2、ggplot2绘制红绿热图
- 2.1 ggplot2、reshape2包的安装
- 1.2 导入ggplot2、reshape2包
- 1.3 生成要绘制微阵列的模拟数据
- 1.3 对数据进行相应的变形处理
- 1.4 为ggplot2绘图设置颜色(红绿色设置!)
- 1.5 绘制微阵列(红绿热图)
使用R中的ggplot2进行微阵列可视化(红绿热图)
前段时间做RNA甲基化水平的分析,查了很多绘制热图的资料,发现基本都是绘制普通的热图,生信这一块微阵列可视化的代码几乎找不到,尤其是调成红绿色系的热图的就更少了,然后自己总结了一下,希望能帮大家少走一些弯路。
1、常用的方法:biclust包
常用的方法基本都是在RStudio里面导入biclust包,然后调用drawHeatmap()函数进行热图绘制,但是绘制出的热图是固定形式的,后续要加图例或者标题特别麻烦,不像ggplot2画图那样方便,下面给出drawHeatmap()的使用说明。
1.1 biclust包的安装
install.packages("biclust")
这里因为我已经安装了,就不提供截图了,自己用上面的代码装包就好。
1.2 导入biclust包
library(biclust)
1.3 生成一些测试数据
data <- rbeta(15000, 2.4, 2)
data <- matrix(data, nrow = 1000, ncol = 15)
data[112:279,3:5] = rbeta(504, 12, 4)
data[429:592,5:7] = rbeta(492, 11, 5)
data[429:592,8:9] = rbeta(328, 9, 4)
data[676:832,8:13] = rbeta(942, 15, 6)
1.4 调用drawHeatmap()函数绘制热图
drawHeatmap(data)
这就出现了之前说的问题,没法直接通过代码加标签、标题或者图例之类的信息,因此自己用ggplot2写了下面的热图可视化程序。
2、ggplot2绘制红绿热图
2.1 ggplot2、reshape2包的安装
install.packages("ggplot2")
install.packages("reshape2")
1.2 导入ggplot2、reshape2包
`library(ggplot2)
`library(reshape2)
1.3 生成要绘制微阵列的模拟数据
# 生成符合beta分布,大小为1000*15的模拟数据
#如果要绘制其他数据的,把这一部分的数据换了就可以
data <- rbeta(15000, 2.4, 2)
data <- matrix(data, nrow = 1000, ncol = 15)
data[112:279,3:5] = rbeta(504, 12, 4)
data[429:592,5:7] = rbeta(492, 11, 5)
data[429:592,8:9] = rbeta(328, 9, 4)
data[676:832,8:13] = rbeta(942, 15, 6)
1.3 对数据进行相应的变形处理
#把自己的数据读进data后,往后的操作可以直接拿来用
data <- as.data.frame(data)
colnames(data) <- seq(1, ncol(data), 1)
data$ID <- rownames(data)
data_melt <- melt(data, id.vars=c("ID"))
data_melt[, 2] <- as.numeric(as.character(data_melt[, 2]))
data_melt[, 1] <- as.numeric(data_melt[, 1])
1.4 为ggplot2绘图设置颜色(红绿色设置!)
numColores = 255 * 2
gvect = c(array(255:0), array(0, dim = 255))
rvect = c(array(0, dim = 255), array(0:255))
bvect = array(0, dim = numColores)
paleta = rgb(rvect, gvect, bvect, 255, maxColorValue = 255)
1.5 绘制微阵列(红绿热图)
draw <- ggplot(data_melt, aes(x = variable, y = ID)) + geom_tile(aes(fill = value)) +xlab("conditions") + ylab("sites") +scale_fill_gradientn(colours = paleta)
通过上述方法获得的热图可以自己进一步进行美化,灵活度比drawHeatmap()函数要高许多!
下面是生成的其他数据的微阵列红绿热图:
生信小白,如果大家有什么问题,欢迎随时交流~
使用R进行微阵列可视化(红绿热图)相关推荐
- 如何在R语言中建立六边形矩阵热图heatmap可视化
原文链接:http://tecdat.cn/?p=18879 这是一个六边形热图可视化程序,主要用到的知识RColorBrewer,fields,也就是R中的可视化绘图库(点击文末"阅读原文 ...
- R语言ggplot2可视化分组的重叠图实战:grouped overlay plot
R语言ggplot2可视化分组的重叠图实战:grouped overlay plot 目录 R语言ggplot2可视化分组的重叠图实战:grouped overlay plot #仿真数据
- R语言ggplot2可视化:为箱图的均值进行连线、将多个分组的均值连接起来Joining means on a boxplot with a line
R语言ggplot2可视化:为箱图的均值进行连线.将多个分组的均值连接起来Joining means on a boxplot with a line 目录
- R语言ggplot2可视化:组合箱图(boxplot)和直方图(histogram)输出组合可视化结果
R语言ggplot2可视化:组合箱图(boxplot)和直方图(histogram)输出组合可视化结果 目录
- R语言ggplot2可视化绘制累积计数图(累加图,cumulative counts)
R语言ggplot2可视化绘制累积计数图(累加图,cumulative counts) 目录 R语言ggplot2可视化绘制累积计数图(累加图,cumulative counts)
- R语言ggplot2可视化在分面图(facet_grid)的条形图上添加计数(count)或者百分比(percent)标签实战
R语言ggplot2可视化在分面图(facet_grid)的条形图上添加计数(count)或者百分比(percent)标签实战 目录
- R语言ggplot2可视化绘制Marimekko/Mosaic图实战:自定义函数绘制Marimekko/Mosaic图(添加数值、标题、色彩配置)、ggmosaic包绘制Marimekko图
R语言ggplot2可视化绘制Marimekko/Mosaic图实战:自定义函数绘制Marimekko/Mosaic图(添加数值.标题.色彩配置).ggmosaic包绘制Marimekko图 目录
- R语言ggplot2可视化在lines线图的尾端添加线图标签、并且去除图例实战
R语言ggplot2可视化在lines线图的尾端添加线图标签实战 目录 R语言ggplot2可视化在lines线图的尾端添加线图标签实战 #仿真数据
- ML之MIC:利用某数据集计算机最大信息系数MIC并可视化MIC矩阵热图及其代码实现
ML之MIC:利用某数据集计算机最大信息系数MIC并可视化MIC矩阵热图及其代码实现 目录 利用某数据集计算机最大信息系数MIC并可视化MIC矩阵热图及其代码实现 实现结果 实现代码 利用某数据集计算 ...
最新文章
- php curl for win7_解决windows7X64环境下开启PHP_Curl wamp curl PHP开启CURL无反应
- windows 7关闭休眠
- Luggage Lock 偏移,bfs,预处理(2021.11.沈阳)
- mysql c 多线程封装_mysqlConnectorC/C++多线程封装_MySQL
- [转]半角全角互转函数[JS版 VBS版]
- 移动web开发DRP问题
- 工厂方法模式--简单试例
- 容器编排技术 -- Kubernetes kubectl expose命令详解
- python如何调用参数配置文件_【Python学习笔记七】从配置文件中读取参数
- IE6下溢出多余文字
- Linux基础-1使用命令帮助
- 实战Vue:基于Vue的移动端购物车单界面实现
- oracle连接多个扫描
- ROS安装教程(ubuntu18.04+melodic版本)
- go语言实现家庭收支记账本
- std::decay 类型萃取
- 超纯水颗粒计数器在电子半导体中的应用
- 中国伸缩式起重机行业市场供需与战略研究报告
- 亦舒的话,我的感触...
- 1008:Maya Calendar