BioF3 FigCode · SCI 绘图代码集
曼哈顿图(Manhattan Plot)
分类:基因组 | 依赖包:qqman
解决的生物学问题
全基因组上哪些 SNP 与表型显著相关?显著位点在染色体上如何分布?
应用场景
- GWAS 主结果展示
- Meta-GWAS
- eQTL 结果可视化
- PheWAS 多表型扫描
输入数据格式
数据框:SNP, CHR, BP, P
关键参数
- suggestiveline = -log10(1e-5)(提示阈值)
- genomewideline = -log10(5e-8)(全基因组显著阈值)
- highlight(高亮特定 SNP 列表)
- annotatePval(自动注释超过阈值的 SNP)
快速开始
1. 直接在线运行
打开 FigCode 在线绘图,点击本工具卡片的"在线绘图"按钮即可用内置示例数据出图,零环境配置。
2. 本地复现
下载脚本和示例数据,本地 RStudio 运行:
# 下载
curl -O https://<your-site>/figcode/scripts/manhattan.R
curl -O https://<your-site>/figcode/data/manhattan.csv
3. 安装依赖
# CRAN 包
install.packages(c("qqman"))
# Bioconductor 包(如需)
# BiocManager::install(c())
完整代码
library(qqman)
# --- Demo GWAS data ---
set.seed(42)
n <- 50000
df <- data.frame(
SNP = paste0("rs", 1:n),
CHR = sample(1:22, n, replace = TRUE),
BP = sample(1:1e8, n, replace = TRUE),
P = runif(n)
)
# Inject a few significant hits
hits <- sample(n, 30)
df$P[hits] <- runif(30, 1e-12, 5e-8)
# --- Manhattan plot ---
manhattan(
df,
chr = "CHR", bp = "BP", p = "P", snp = "SNP",
col = c("#1d4ed8", "#94a3b8"),
suggestiveline = -log10(1e-5),
genomewideline = -log10(5e-8),
annotatePval = 5e-8,
main = "Manhattan Plot — GWAS"
)
替换为自己的数据
脚本中以 # --- Demo data --- 标注的段落是示例数据生成代码。替换为自己的数据时,保持列名一致即可:
- 输入格式:数据框:SNP, CHR, BP, P
- 使用
read.csv()/readRDS()读取本地文件
延伸阅读
- 相关教程:曼哈顿图 完整流程
- 出现 bug?欢迎在 FigCode 页面 点击对应卡片,在评论区留言。