欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

使用R进行微阵列可视化(红绿热图)

发布时间:2024/3/12 编程问答 64 豆豆
生活随笔 收集整理的这篇文章主要介绍了 使用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进行微阵列可视化(红绿热图)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。