跟着 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 学作图 | 相关性热图(显示相关性散点图)
364 0
|
数据可视化 Python
使用递归图 recurrence plot 表征时间序列
在本文中,我将展示如何使用递归图 Recurrence Plots 来描述不同类型的时间序列。我们将查看具有500个数据点的各种模拟时间序列。我们可以通过可视化时间序列的递归图并将其与其他已知的不同时间序列的递归图进行比较,从而直观地表征时间序列。
373 0
|
6月前
|
数据可视化 算法
R语言主成分分析(PCA)葡萄酒可视化:主成分得分散点图和载荷图
R语言主成分分析(PCA)葡萄酒可视化:主成分得分散点图和载荷图
|
6月前
|
机器学习/深度学习 数据可视化
如何在R语言中建立六边形矩阵热图heatmap可视化
如何在R语言中建立六边形矩阵热图heatmap可视化
|
6月前
|
数据可视化 算法 数据挖掘
R语言用温度对城市层次聚类、kmean聚类、主成分分析和Voronoi图可视化
R语言用温度对城市层次聚类、kmean聚类、主成分分析和Voronoi图可视化
跟着 Cell 学作图 | 柱状图+误差棒+蜂群图
跟着 Cell 学作图 | 柱状图+误差棒+蜂群图
188 0
|
数据挖掘
R语言中如何进行PCA分析?利用ggplot和prcomp绘制基因表达量分析图(下)
R语言中如何进行PCA分析?利用ggplot和prcomp绘制基因表达量分析图(下)
R语言中如何进行PCA分析?利用ggplot和prcomp绘制基因表达量分析图(上)
R语言中如何进行PCA分析?利用ggplot和prcomp绘制基因表达量分析图
|
数据可视化 数据挖掘 Python
跟着Nature Communications学作图:R语言ggplot2箱线图和小提琴展示结构变异的长度分布
跟着Nature Communications学作图:R语言ggplot2箱线图和小提琴展示结构变异的长度分布
|
数据可视化 数据挖掘 Python