BioF3 FigCode · SCI 绘图代码集

WGCNA 模块-性状(WGCNA Module-Trait)

导出日期:2026年6月27日

分类:聚类可视化 | 依赖包:WGCNA、ComplexHeatmap、circlize

解决的生物学问题

哪些共表达模块与肿瘤分期/生存/突变状态最相关?后续重点研究哪个模块?

应用场景

输入数据格式

MEs 矩阵(样本 × 模块)+ trait 矩阵(样本 × 性状)

关键参数

快速开始

1. 直接在线运行

打开 FigCode 在线绘图,点击本工具卡片的"在线绘图"按钮即可用内置示例数据出图,零环境配置。

2. 本地复现

下载脚本和示例数据,本地 RStudio 运行:

# 下载
curl -O https://<your-site>/figcode/scripts/wgcna-module-trait.R
curl -O https://<your-site>/figcode/data/wgcna-module-trait.csv

3. 安装依赖

# CRAN 包
install.packages(c("WGCNA", "ComplexHeatmap", "circlize"))

# Bioconductor 包(如需)
# BiocManager::install(c())

完整代码

library(WGCNA)
library(ComplexHeatmap)
library(circlize)

# --- Demo: 50 样本 × 8 模块 + 4 性状 ---
set.seed(42)
n_samp <- 50
mod_names <- paste0("ME_", c("turquoise","blue","brown","yellow","green","red","black","pink"))
MEs <- matrix(rnorm(n_samp * length(mod_names)), nrow = n_samp,
              dimnames = list(paste0("S", 1:n_samp), mod_names))

traits <- data.frame(
  Stage   = sample(1:4, n_samp, replace = TRUE),
  OS_time = rexp(n_samp, 0.05),
  Status  = rbinom(n_samp, 1, 0.4),
  Age     = sample(40:80, n_samp, replace = TRUE)
)

# --- Compute correlations ---
mod_trait_cor <- cor(MEs, traits, method = "pearson")
mod_trait_p   <- corPvalueStudent(mod_trait_cor, n_samp)

# --- Build text matrix: r (p) ---
text_mat <- matrix(
  paste0(round(mod_trait_cor, 2), "\n(", signif(mod_trait_p, 1), ")"),
  nrow = nrow(mod_trait_cor)
)

# --- Heatmap ---
col_fun <- colorRamp2(c(-1, 0, 1), c("#2563eb", "white", "#dc2626"))
Heatmap(
  mod_trait_cor,
  name = "Cor (r)",
  col = col_fun,
  cluster_rows = FALSE, cluster_columns = FALSE,
  cell_fun = function(j, i, x, y, w, h, fill) {
    grid::grid.text(text_mat[i, j], x, y,
                    gp = grid::gpar(fontsize = 9))
  },
  column_title = "Module–Trait Relationships",
  row_names_side = "left",
  rect_gp = grid::gpar(col = "white", lwd = 1)
)

替换为自己的数据

脚本中以 # --- Demo data --- 标注的段落是示例数据生成代码。替换为自己的数据时,保持列名一致即可:

延伸阅读