BioF3 FigCode · SCI 绘图代码集
集合交集图(UpSet Plot)
分类:聚类可视化 | 依赖包:UpSetR
解决的生物学问题
不同分析方法 / 不同条件之间的差异基因有多少交集?哪些是各方法独有?
应用场景
- DESeq2 / edgeR / limma 多工具对比
- 多组比较的差异基因交集
- 富集结果的通路重叠
- Multi-omics 共享 feature
输入数据格式
基因集列表(list of vectors)或 0/1 矩阵
关键参数
- nsets(要展示的集合数量)
- order.by = "freq"(按交集大小排序)
- mainbar.y.label / sets.x.label
- sets.bar.color(每个集合的颜色)
快速开始
1. 直接在线运行
打开 FigCode 在线绘图,点击本工具卡片的"在线绘图"按钮即可用内置示例数据出图,零环境配置。
2. 本地复现
下载脚本和示例数据,本地 RStudio 运行:
# 下载
curl -O https://<your-site>/figcode/scripts/upset.R
curl -O https://<your-site>/figcode/data/upset.csv
3. 安装依赖
# CRAN 包
install.packages(c("UpSetR"))
# Bioconductor 包(如需)
# BiocManager::install(c())
完整代码
library(UpSetR)
# --- Demo data: gene lists from 4 methods ---
set.seed(42)
all_genes <- paste0("Gene", 1:500)
gene_sets <- list(
DESeq2 = sample(all_genes, 200),
edgeR = sample(all_genes, 220),
limma = sample(all_genes, 180),
NOISeq = sample(all_genes, 160)
)
# --- UpSet plot ---
upset(
fromList(gene_sets),
nsets = 4,
nintersects = 15,
order.by = "freq",
decreasing = TRUE,
mainbar.y.label = "Intersection size",
sets.x.label = "Set size",
sets.bar.color = c("#dc2626", "#2563eb", "#059669", "#d97706"),
matrix.color = "#0f172a",
main.bar.color = "#475569",
point.size = 3,
line.size = 1,
text.scale = c(1.2, 1.1, 1.1, 1, 1.1, 1.1)
)
替换为自己的数据
脚本中以 # --- Demo data --- 标注的段落是示例数据生成代码。替换为自己的数据时,保持列名一致即可:
- 输入格式:基因集列表(list of vectors)或 0/1 矩阵
- 使用
read.csv()/readRDS()读取本地文件
延伸阅读
- 相关教程:集合交集图 完整流程
- 出现 bug?欢迎在 FigCode 页面 点击对应卡片,在评论区留言。