目录

  • 使用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进行微阵列可视化(红绿热图)相关推荐

  1. 如何在R语言中建立六边形矩阵热图heatmap可视化

    原文链接:http://tecdat.cn/?p=18879 这是一个六边形热图可视化程序,主要用到的知识RColorBrewer,fields,也就是R中的可视化绘图库(点击文末"阅读原文 ...

  2. R语言ggplot2可视化分组的重叠图实战:grouped overlay plot

    R语言ggplot2可视化分组的重叠图实战:grouped overlay plot 目录 R语言ggplot2可视化分组的重叠图实战:grouped overlay plot #仿真数据

  3. R语言ggplot2可视化:为箱图的均值进行连线、将多个分组的均值连接起来Joining means on a boxplot with a line

    R语言ggplot2可视化:为箱图的均值进行连线.将多个分组的均值连接起来Joining means on a boxplot with a line 目录

  4. R语言ggplot2可视化:组合箱图(boxplot)和直方图(histogram)输出组合可视化结果

    R语言ggplot2可视化:组合箱图(boxplot)和直方图(histogram)输出组合可视化结果 目录

  5. R语言ggplot2可视化绘制累积计数图(累加图,cumulative counts)

    R语言ggplot2可视化绘制累积计数图(累加图,cumulative counts) 目录 R语言ggplot2可视化绘制累积计数图(累加图,cumulative counts)

  6. R语言ggplot2可视化在分面图(facet_grid)的条形图上添加计数(count)或者百分比(percent)标签实战

    R语言ggplot2可视化在分面图(facet_grid)的条形图上添加计数(count)或者百分比(percent)标签实战 目录

  7. R语言ggplot2可视化绘制Marimekko/Mosaic图实战:自定义函数绘制Marimekko/Mosaic图(添加数值、标题、色彩配置)、ggmosaic包绘制Marimekko图

    R语言ggplot2可视化绘制Marimekko/Mosaic图实战:自定义函数绘制Marimekko/Mosaic图(添加数值.标题.色彩配置).ggmosaic包绘制Marimekko图 目录

  8. R语言ggplot2可视化在lines线图的尾端添加线图标签、并且去除图例实战

    R语言ggplot2可视化在lines线图的尾端添加线图标签实战 目录 R语言ggplot2可视化在lines线图的尾端添加线图标签实战 #仿真数据

  9. ML之MIC:利用某数据集计算机最大信息系数MIC并可视化MIC矩阵热图及其代码实现

    ML之MIC:利用某数据集计算机最大信息系数MIC并可视化MIC矩阵热图及其代码实现 目录 利用某数据集计算机最大信息系数MIC并可视化MIC矩阵热图及其代码实现 实现结果 实现代码 利用某数据集计算 ...

最新文章

  1. php curl for win7_解决windows7X64环境下开启PHP_Curl wamp curl PHP开启CURL无反应
  2. windows 7关闭休眠
  3. Luggage Lock 偏移,bfs,预处理(2021.11.沈阳)
  4. mysql c 多线程封装_mysqlConnectorC/C++多线程封装_MySQL
  5. [转]半角全角互转函数[JS版 VBS版]
  6. 移动web开发DRP问题
  7. 工厂方法模式--简单试例
  8. 容器编排技术 -- Kubernetes kubectl expose命令详解
  9. python如何调用参数配置文件_【Python学习笔记七】从配置文件中读取参数
  10. IE6下溢出多余文字
  11. Linux基础-1使用命令帮助
  12. 实战Vue:基于Vue的移动端购物车单界面实现
  13. oracle连接多个扫描
  14. ROS安装教程(ubuntu18.04+melodic版本)
  15. go语言实现家庭收支记账本
  16. std::decay 类型萃取
  17. 超纯水颗粒计数器在电子半导体中的应用
  18. 中国伸缩式起重机行业市场供需与战略研究报告
  19. 亦舒的话,我的感触...
  20. 1008:Maya Calendar

热门文章

  1. uIP TCP/IP协议栈
  2. 格林纳达常驻WTO大使孙宇晨受邀出席世贸组织首脑系列讲座
  3. VI/VIM 编辑器常用操作
  4. 机器视觉中的光源选型
  5. 关于TCP粘包和半包的处理
  6. 一本通1592【例 1】国王
  7. sr550服务器配置硬盘,【联想SR550配置】联想SR5502颗服务器配置-ZOL中关村在线
  8. 成都哪个java培训机构好?
  9. 实时即未来,车联网项目之电子围栏分析【六】
  10. 数据结构之稀疏数组队列