BioF3 FigCode · SCI 绘图代码集
WGCNA 模块-性状(WGCNA Module-Trait)
分类:聚类可视化 | 依赖包:WGCNA、ComplexHeatmap、circlize
解决的生物学问题
哪些共表达模块与肿瘤分期/生存/突变状态最相关?后续重点研究哪个模块?
应用场景
- WGCNA 标准下游分析
- 肿瘤模块-临床关联
- 发育时期-基因模块对应
- 药物处理时间-模块响应
输入数据格式
MEs 矩阵(样本 × 模块)+ trait 矩阵(样本 × 性状)
关键参数
- cor.method = "pearson" / "spearman"
- textMatrix 在每格写 r 和 p
- colorRamp 红蓝对称
快速开始
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 --- 标注的段落是示例数据生成代码。替换为自己的数据时,保持列名一致即可:
- 输入格式:MEs 矩阵(样本 × 模块)+ trait 矩阵(样本 × 性状)
- 使用
read.csv()/readRDS()读取本地文件
延伸阅读
- 相关教程:WGCNA 模块-性状 完整流程
- 出现 bug?欢迎在 FigCode 页面 点击对应卡片,在评论区留言。