pheatmap
是简单常用的热图绘制包,可以快速、简单、可定制的绘制漂亮热图。具体见R语言学习-热图简化和免费高颜值可定制在线绘图工具 ImageGP。
现在要解决的一个问题是图出来了,想看下转换后用于绘图的表格,也就是获取聚类后的矩阵和聚类标准化后的矩阵。
生成测试数据
mat <- matrix(rnorm(30), nrow=5)
colnames(mat) <- paste("sample", 1:6, sep="_")
rownames(mat) <- paste("gene", 1:5, sep="_")
mat
结果如下
## sample_1 sample_2 sample_3 sample_4 sample_5 sample_6
## gene_1 -0.3286368 0.3153119 -0.7730821 -0.85242874 -0.5303812 0.5088226
## gene_2 -1.3153020 0.3193550 0.4496518 -1.08782734 1.7620763 -0.9312810
## gene_3 0.6545161 -0.8220414 -1.1916559 0.04775437 0.2814619 1.8720241
## gene_4 1.0810986 0.2298092 -0.3615045 0.70162614 1.8572989 0.7250737
## gene_5 -1.8931573 2.7013864 0.5049798 -0.13541785 -1.7796036 -0.3185864
绘图
library(pheatmap)
# 绘图同时存储绘图结果
(a <- pheatmap(mat, cluster_rows = T, cluster_cols = T))
image
提取聚类后的原始矩阵
# 查看绘图数据的结构
# 直接查看会很大,这里只展示其前2层
# str: structure
str(a, max.level = 2)
# Rstudio中
# View(a)
结果如下
## List of 4
## $ tree_row:List of 7
## ..$ merge : int [1:4, 1:2] -1 -4 -2 -5 -3 1 2 3
## ..$ height : num [1:4] 2.4 3.21 4.38 5.56
## ..$ order : int [1:5] 5 2 4 1 3
## ..$ labels : chr [1:5] "gene_1" "gene_2" "gene_3" "gene_4" ...
## ..$ method : chr "complete"
## ..$ call : language hclust(d = d, method = method)
## ..$ dist.method: chr "euclidean"
## ..- attr(*, "class")= chr "hclust"
## $ tree_col:List of 7
## ..$ merge : int [1:5, 1:2] -1 -6 -2 -5 3 -4 1 -3 2 4
## ..$ height : num [1:5] 1.98 2.29 2.55 3.78 5.21
## ..$ order : int [1:6] 2 3 5 6 1 4
## ..$ labels : chr [1:6] "sample_1" "sample_2" "sample_3" "sample_4" ...
## ..$ method : chr "complete"
## ..$ call : language hclust(d = d, method = method)
## ..$ dist.method: chr "euclidean"
## ..- attr(*, "class")= chr "hclust"
## $ kmeans : logi NA
## $ gtable :List of 6
## ..$ grobs :List of 6
## ..$ layout :'data.frame': 6 obs. of 7 variables:
## ..$ widths :List of 6
## .. ..- attr(*, "class")= chr [1:2] "unit.list" "unit"
## ..$ heights :List of 5
## .. ..- attr(*, "class")= chr [1:2] "unit.list" "unit"
## ..$ respect : logi FALSE
## ..$ rownames : NULL
## ..- attr(*, "class")= chr [1:4] "gtable" "gTree" "grob" "gDesc"
## - attr(*, "class")= chr "pheatmap"
image
重新排列行和列
mat_cluster <- mat[a$tree_row$order, a$tree_col$order]
mat_cluster
完成提取
## sample_2 sample_3 sample_5 sample_6 sample_1 sample_4
## gene_5 2.7013864 0.5049798 -1.7796036 -0.3185864 -1.8931573 -0.13541785
## gene_2 0.3193550 0.4496518 1.7620763 -0.9312810 -1.3153020 -1.08782734
## gene_4 0.2298092 -0.3615045 1.8572989 0.7250737 1.0810986 0.70162614
## gene_1 0.3153119 -0.7730821 -0.5303812 0.5088226 -0.3286368 -0.85242874
## gene_3 -0.8220414 -1.1916559 0.2814619 1.8720241 0.6545161 0.04775437
提取聚类后的标准化矩阵
(a <- pheatmap(mat, scale="row", display_numbers = T))
image
直接提取不太方便。这可以自己先对数据scale
标准化处理,再排序。
mat_scale <- round(t(apply(mat, 1, scale)),2)
colnames(mat_scale) <- colnames(mat)
mat_scale
最终结果
mat_cluster <- mat_scale[a$tree_row$order, a$tree_col$order]
mat_cluster
## sample_2 sample_3 sample_5 sample_6 sample_1 sample_4
## gene_3 -0.88 -1.22 0.13 1.58 0.47 -0.08
## gene_4 -0.63 -1.42 1.53 0.03 0.50 -0.01
## gene_2 0.38 0.49 1.59 -0.67 -0.99 -0.80
## gene_1 1.04 -0.87 -0.45 1.38 -0.09 -1.01
## gene_5 1.69 0.39 -0.96 -0.10 -1.03 0.01
R统计和作图
- Graphpad,经典绘图工具初学初探
- 你的包佩奇了吗?试试新版Rstudio,自动提醒缺失包!
- 原来Rstudio还可以这么使用,又方便了一些
- 在R中赞扬下努力工作的你,奖励一份CheatShet
- 别人的电子书,你的电子书,都在bookdown
- R语言 - 入门环境Rstudio
- R语言 - 热图绘制 (heatmap)
- R语言 - 基础概念和矩阵操作
- R语言 - 热图简化
- R语言 - 热图美化
- R语言 - 线图绘制
- R语言 - 线图一步法
- R语言 - 箱线图(小提琴图、抖动图、区域散点图)
- R语言 - 箱线图一步法
- R语言 - 火山图
- R语言 - 富集分析泡泡图
- R语言 - 散点图绘制
- R语言 - 韦恩图
- R语言 - 柱状图
- R语言 - 图形设置中英字体
- R语言 - 非参数法生存分析
- R语言 - 绘制seq logo图
- WGCNA分析,简单全面的最新教程
- psych +igraph:共表达网络构建
- 一文学会网络分析——Co-occurrence网络图在R中的实现
- 一文看懂PCA主成分分析
- 富集分析DotPlot,可以服
- 基因共表达聚类分析和可视化
- R中1010个热图绘制方法
- 还在用PCA降维?快学学大牛最爱的t-SNE算法吧, 附Python/R代码
- 一个函数抓取代谢组学权威数据库HMDB的所有表格数据
- 文章用图的修改和排版
- network3D: 交互式桑基图
- network3D 交互式网络生成
- Seq logo 在线绘制工具——Weblogo
- 生物AI插图素材获取和拼装指导
- ggplot2高效实用指南 (可视化脚本、工具、套路、配色)
- 图像处理R包magick学习笔记
- SOM基因表达聚类分析初探
- 利用gganimate可视化全球范围R-Ladies(R社区性别多样性组织)发展情况
- 一分钟绘制磷脂双分子层:AI零基础入门和基本图形绘制
- AI科研绘图(二):模式图的基本画法
- 你知道R中的赋值符号箭头(<-)和等号(=)的区别吗?
- R语言可视化学习笔记之ggridges包
- 利用ComplexHeatmap绘制热图(一)
- ggplot2学习笔记之图形排列
- R包reshape2,轻松实现长、宽数据表格转换
- 用R在地图上绘制网络图的三种方法
- PCA主成分分析实战和可视化 附R代码和测试数据
- iTOL快速绘制颜值最高的进化树!
- 12个ggplot2扩展包帮你实现更强大的可视化
- 编程模板-R语言脚本写作:最简单的统计与绘图,包安装、命令行参数解析、文件读取、表格和矢量图输出
- R语言统计入门课程推荐——生物科学中的数据分析Data Analysis for the Life Sciences
- 数据可视化基本套路总结
- 你知道R中的赋值符号箭头
<-
和等号=
的区别吗? - 使用dplyr进行数据操作30例
- 交集intersect、并集union、找不同setdiff
- R包reshape2,轻松实现长、宽数据表格转换
- 1数据类型(向量、数组、矩阵、 列表和数据框)
- 2读写数据所需的主要函数、与外部环境交互
- 3数据筛选——提取对象的子集
- 4向量、矩阵的数学运算
- 5控制结构
- 6函数及作用域
- 7认识循环函数lapply和sapply
- 8分解数据框split和查看对象str
- 9模拟—随机数、抽样、线性模型
- 1初识ggplot2绘制几何对象
- 2图层的使用—基础、加标签、注释
- 3工具箱—误差线、加权数、展示数据分布
- 4语法基础
- 5通过图层构建图像
- 6标度、轴和图例
- 7定位-分面和坐标系
- 8主题设置、存储导出
- 9绘图需要的数据整理技术
- 创建属于自己的调色板
- 28个实用绘图包,总有几个适合你
- 热图绘制
- R做线性回归
- 绘图相关系数矩阵corrplot
- 相关矩阵可视化ggcorrplot
- 绘制交互式图形recharts
- 交互式可视化CanvasXpress
- 聚类分析factoextra
- LDA分析、作图及添加置信-ggord
- 解决散点图样品标签重叠ggrepel
- 添加P值或显著性标记ggpubr
- Alpha多样性稀释曲线rarefraction curve
- 堆叠柱状图各成分连线画法:突出组间变化
- 冲击图展示组间时间序列变化ggalluvial
- 桑基图riverplot
- 微生物环境因子分析ggvegan
- 五彩进化树与热图更配ggtree
- 多元回归树分析mvpart
- 随机森林randomForest 分类Classification 回归Regression
- 加权基因共表达网络分析WGCNA
- circlize包绘制circos-plot
- R语言搭建炫酷的线上博客系统
- 维恩(Venn)图绘制工具大全 (在线+R包)
- R包circlize:柱状图用腻了?试试好看的弦状图
网友评论