跟着 Cancer Cell 学作图 | 相关性热图(不对称版)

简介: 跟着 Cancer Cell 学作图 | 相关性热图(不对称版)

cor_heapmap

本期图片

R, Fong C, Smith S, Riely GJ, Rudin CM, Gomez DR, Solit DB, Berger MF, Li BT, Mayo MW, Matei I, Lyden DC, Adusumilli PS, Schultz N, Sanchez-Vega F, Jones DR. Genomic mapping of metastatic organotropism in lung adenocarcinoma. Cancer Cell. 2023 May 8;41(5):970-985.e3. doi: 10.1016/j.ccell.2023.03.018.

实际上该图是 Co-occurrence and mutual exclusivity of genes 。按照协同和互斥的作用模式,可将突变分为以下两类:「1. Co-occurencing mutations;2. Mutually exclusive mutations」。互斥的驱动基因往往共享相同的通路 (Pathway) 或 不同进展途径 (Different progression pathways,如不同肿瘤类型) 中的基因。

我们这里这里为了方便,直接以相关性分析的结果做图。

该图的难点是上三角和下三角分别只显示正相关和负相关的值j及其对应的显著性标记。我们只需要对数据进行前期的预处理即可。

复现结果

fig

示例数据和代码领取

data+code

绘图

rm(list = ls())
library(corrplot)
# 准备数据(示例数据)
cor_matrix <- cor(mtcars)  # 使用mtcars数据集作为示例数据
# 创建相关性矩阵
corr_matrix <- cor_matrix  # 复制相关性矩阵
corr_matrix[corr_matrix == 1] <- NA # 将值为1的元素替换为NA
corr_matrix[upper.tri(corr_matrix) & corr_matrix > 0] <- 0  # 上三角大于0的值替换为0
corr_matrix[lower.tri(corr_matrix) & corr_matrix < 0] <- 0  # 下三角小于0的值替换为0
p.mat <- cor.mtest(cor_matrix)$p  # 计算相关系数的显著性
# 预处理使得显著性只显示在对应的区域
# 这一步为了让结果好看 有点问题 大家可以加群讨论
p.mat[p.mat == 0] <- 0 
p.mat[corr_matrix != 0] <- 1
# 创建热图
library(ComplexHeatmap)
ht_list <- Heatmap(
  corr_matrix, 
  name = " ", 
  border = "white",
  col = colorRampPalette(c("#417e46", "#f7f8f9", "#6f2f7e"))(100),
  rect_gp = gpar(col = "white", lwd = 2),
  column_order = colnames(corr_matrix),
  row_order = rownames(corr_matrix),
  row_names_side = "left",  # 行标签放在左边
  column_names_side = "top",   # 列标签放在上边
  row_names_gp = gpar(
    fontsize = 10),
  column_names_gp = gpar(
    fontsize = 10),
  heatmap_legend_param = list(
  title = "correlation", 
  direction = "horizontal",
  legend_width = unit(10, "cm"),
  legend_height = unit(4, "cm")),
  cell_fun = function(j, i, x, y, w, h, fill) {
    if(p.mat[i, j] > 0.05) { # 为了结果美观修改,实际上因该上<0.05,可以加群讨论
      grid.text("*", x, y,
                gp = gpar(col = 'white',
                          fontsize = 25))
    } 
  }
  )
pdf('cor_heapmap.pdf',width = 8,height = 8)
draw(ht_list, heatmap_legend_side = "bottom")
dev.off()

往期内容

  1. 资源汇总 | 2022 木舟笔记原创推文合集(附数据及代码领取方式)
  2. CNS图表复现|生信分析|R绘图 资源分享&讨论群!
  3. R绘图 | 浅谈散点图及其变体的作图逻辑
  4. 这图怎么画| 有点复杂的散点图
  5. 这图怎么画 | 相关分析棒棒糖图
  6. 组学生信| Front Immunol |基于血清蛋白质组早期诊断标志筛选的简单套路
  7. (免费教程+代码领取)|跟着Cell学作图系列合集
  8. Q&A | 如何在论文中画出漂亮的插图?
  9. 跟着 Cell 学作图 | 桑葚图(ggalluvial)
  10. R实战 | Lasso回归模型建立及变量筛选
  11. 跟着 NC 学作图 | 互作网络图进阶(蛋白+富集通路)(Cytoscape)
  12. R实战 | 给聚类加个圈圈(ggunchull)
  13. R实战 | NGS数据时间序列分析(maSigPro)
  14. 跟着 Cell 学作图 | 韦恩图(ggVennDiagram)
相关文章
|
数据挖掘
跟着 Nature 学作图 | 相关性热图(显示相关性散点图)
跟着 Nature 学作图 | 相关性热图(显示相关性散点图)
402 0
|
7月前
|
机器学习/深度学习 数据可视化
如何在R语言中建立六边形矩阵热图heatmap可视化
如何在R语言中建立六边形矩阵热图heatmap可视化
跟着 Cell 学作图 | 柱状图+误差棒+蜂群图
跟着 Cell 学作图 | 柱状图+误差棒+蜂群图
200 0
|
数据可视化 数据挖掘 Python
跟着Nature Communications学作图:R语言ggplot2箱线图和小提琴展示结构变异的长度分布
跟着Nature Communications学作图:R语言ggplot2箱线图和小提琴展示结构变异的长度分布
|
数据可视化 数据挖掘 Python
|
数据可视化
scRNA分析|单细胞文献Fig1中的分组umap图和细胞比例柱形图
scRNA分析|单细胞文献Fig1中的分组umap图和细胞比例柱形图
368 0
|
数据可视化
Forest plot(森林图) | Cox生存分析可视化
Forest plot(森林图) | Cox生存分析可视化
290 0
|
数据可视化 数据挖掘 Python
跟着Nature学作图:R语言ggplot2柱形图添加误差线和频率分布直方图
跟着Nature学作图:R语言ggplot2柱形图添加误差线和频率分布直方图
|
数据可视化 数据挖掘 Python
跟着Nature学作图:R语言ggplot2频率分布直方图和散点图添加误差线
跟着Nature学作图:R语言ggplot2频率分布直方图和散点图添加误差线
|
数据可视化 数据挖掘 Python
跟着Nature Metabolism学作图:R语言ggplot2柱形图和下三角热图完整示例
跟着Nature Metabolism学作图:R语言ggplot2柱形图和下三角热图完整示例