1 环境

为了能够正常下载并且安装该R包,新创建一个R环境

conda create -n locuszoomr r-base r-essentials
conda activate locuszoomr

R version 4.3.1 (2023-06-16)

2 安装

if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install("ensembldb")
BiocManager::install("EnsDb.Hsapiens.v75")
BiocManager::install("AnnotationFilter")
BiocManager::install("GenomicRanges")
BiocManager::install("rtracklayer")

install.packages("locuszoomr")
library(locuszoomr)

3 Code

3.1 数据输入及整理

data(SLE_gwas_sub) # 示例数据
head(SLE_gwas_sub)
# r2:与指定基因的连锁不平衡程度

另外:EnsDb.Hsapiens.v75是基于 Ensembl release 75 的注释数据,而 Ensembl 75 是基于 GRCh37(也称为 hg19) 的人类参考基因组构建的。相对应的EnsDb.Hsapiens.v86(Ensembl v86, GRCh38)。

也可以动态查找对应的版本:

library(AnnotationHub)
ah <- AnnotationHub()
# query(ah, c("EnsDb", "Homo sapiens", "GRCh38"))

# 可以直接选择老版,更加稳定
# BiocManager::install("EnsDb.Hsapiens.v86")
library(EnsDb.Hsapiens.v86)
edb <- EnsDb.Hsapiens.v86

# 而最新的显示的是version111
# BiocManager::install("EnsDb.Hsapiens.v111")
library(EnsDb.Hsapiens.v111)
edb111 <- EnsDb.Hsapiens.v111

3.2 Plot

GWAS显著图的个性化设置:

library(EnsDb.Hsapiens.v75)

loc <- locus(data = SLE_gwas_sub, # 内置函数detect_cols会自动检测
chrom = "chrom",
pos = "pos",
p = "p",
labs = "rsid",
# index_snp = "xxx", # 指定的SNP 不设置则自动索引最低p值的snp
# yvar = "beta", # 默认是p的对数
LD = "r2",
gene = 'UBE2L3',
flank = c(1e4, 1e5), # 设定Windows
ens_db = "EnsDb.Hsapiens.v75")
summary(loc)
locus_plot(loc,
labels = c("index", "rs140492"), # 标注指定的snp
label_x = c(4, -5)) # 标注的label在图上的x轴位置

Gene Track的个性化设置:

loc <- locus(data = SLE_gwas_sub,
gene = 'UBE2L3',
ens_db = "EnsDb.Hsapiens.v75")
summary(loc)

# 仅展示基因注释中的蛋白质编码基因
locus_plot(loc,
filter_gene_biotype = "protein_coding")

# 仅展示指定的基因注释
locus_plot(loc, filter_gene_name = c('UBE2L3', 'RIMBP3C', 'YDJC', 'PPIL2',
'PI4KAP2', 'MIR301B'))
# 高亮指定基因
locus_plot(loc,
highlight = 'PPIL2')

添加重组率:

loc3 <- locus(SLE_gwas_sub, 
gene = 'STAT4',
flank = 1e5,
ens_db = "EnsDb.Hsapiens.v75")
loc3 <- link_recomb(loc3,
genome = "hg19")
locus_plot(loc3)