使用R进行微阵列可视化(红绿热图)
生活随笔
收集整理的这篇文章主要介绍了
使用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进行微阵列可视化(红绿热图)的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 会声会影2022版本软件下载安装使用激活
- 下一篇: 技术人员必会英语单词