manhattanly--一个R包拿下曼哈顿图+QQ图+火山图!

2022-03-29 09:20:58 浏览数 (1)

导语

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做出必要的结果图!

0 人点赞