BioF3 FigCode · SCI 绘图代码集
MA 图(MA Plot)
分类:差异分析 | 依赖包:ggplot2
解决的生物学问题
差异表达是否与基因表达丰度相关?低表达基因的 fold change 是否可信?
应用场景
- DESeq2 差异分析质控
- 评估 LFC shrinkage 效果
- 检测表达量依赖的偏差
- 对比不同归一化方法
输入数据格式
数据框:baseMean, log2FoldChange, padj
关键参数
- LFC shrinkage 方法(apeglm / ashr / normal)
- padj 阈值
- baseMean 下限过滤
- alpha 透明度
快速开始
1. 直接在线运行
打开 FigCode 在线绘图,点击本工具卡片的"在线绘图"按钮即可用内置示例数据出图,零环境配置。
2. 本地复现
下载脚本和示例数据,本地 RStudio 运行:
# 下载
curl -O https://<your-site>/figcode/scripts/ma-plot.R
curl -O https://<your-site>/figcode/data/ma-plot.csv
3. 安装依赖
# CRAN 包
install.packages(c("ggplot2"))
# Bioconductor 包(如需)
# BiocManager::install(c())
完整代码
library(ggplot2)
# --- Demo data ---
set.seed(123)
n <- 3000
ma_df <- data.frame(
baseMean = 10^runif(n, 0, 5),
log2FC = rnorm(n, 0, 1),
padj = runif(n, 0, 1)
)
ma_df$padj[sample(n, 150)] <- runif(150, 1e-8, 0.01)
ma_df$sig <- ifelse(ma_df$padj < 0.05, "DE", "NS")
# --- Plot ---
ggplot(ma_df, aes(x = baseMean, y = log2FC, color = sig)) +
geom_point(size = 0.4, alpha = 0.5) +
scale_x_log10() +
scale_color_manual(values = c(DE="#dc2626", NS="#9ca3af")) +
geom_hline(yintercept = 0, color = "grey40") +
labs(x = "Mean expression (log10)", y = "log2 Fold Change", title = "MA Plot") +
theme_classic()
替换为自己的数据
脚本中以 # --- Demo data --- 标注的段落是示例数据生成代码。替换为自己的数据时,保持列名一致即可:
- 输入格式:数据框:baseMean, log2FoldChange, padj
- 使用
read.csv()/readRDS()读取本地文件
延伸阅读
- 相关教程:MA 图 完整流程
- 出现 bug?欢迎在 FigCode 页面 点击对应卡片,在评论区留言。