导语
GUIDE ╲
曼哈顿、QQ 和火山图是用于可视化高维数据分析结果的流行图形方法 。
背景介绍
对于一些研究领域,如GWAS、EWAS研究,常常会用到曼哈顿图可视化基因组中与表型相关的潜在感兴趣区域、QQ图表示观察到的检验统计量的分布假设、火山图是针对其效应大小、优势比或对数倍数变化绘制的-log10 p值。今天小编给大家介绍的这个R包manhattanly,整合了这几种常用的绘图方式,可以方便的进行分析可视化!
R包安装
代码语言:javascript复制#CARN
install.packages("manhattanly")
#github(development version)
if (!require("pacman")) install.packages("pacman")
pacman::p_load_gh("sahirbhatnagar/manhattanly")
可视化展示
01
曼哈顿图
我们使用manhattanly包附带的HapMap数据集
代码语言:javascript复制library(manhattanly)
set.seed(12345)
HapMap.subset <- subset(HapMap, CHR %in% 4:7)
# for highlighting SNPs of interest
significantSNP <- sample(HapMap.subset$SNP, 20)
head(HapMap.subset)
代码语言:javascript复制manhattanly(HapMap.subset, snp = "SNP", gene = "GENE")
突出重点关注的SNPs
代码语言:javascript复制manhattanly(HapMap.subset, snp = "SNP", gene = "GENE", highlight = significantSNP)
如果我们确定了一些SNPs位点,我们可以添加一些文本注释
代码语言:javascript复制library(magrittr)
p <- manhattanly(HapMap.subset, snp = "SNP", gene = "GENE",
annotation1 = "DISTANCE", annotation2 = "EFFECTSIZE",
highlight = significantSNP)
# 从预处理数据中获取x和y坐标
plotData <- manhattanr(HapMap.subset, snp = "SNP", gene = "GENE")[["data"]]
# 注释最小的 p 值
annotate <- plotData[which.min(plotData$P),]
# 具有最小p值的SNP坐标
xc <- annotate$pos
yc <- annotate$logp
p %>% plotly::layout(annotations = list(
list(x = xc, y = yc,
text = paste0(annotate$SNP,"<br>","GENE: ",annotate$GENE),
font = list(family = "serif", size = 10))))
02
QQ图
代码语言:javascript复制qqly(HapMap.subset, snp = "SNP", gene = "GENE")
03
火山图
代码语言:javascript复制volcanoly(HapMap.subset, snp = "SNP", gene = "GENE", effect_size = "EFFECTSIZE")
小编总结
对于做GWAS和EWAS等相关的分析,manhattanly整合了多种常用的可视化方式,可以使用manhattanly做出必要的结果图!