xQTLs 共定位分析(XQTLbiolinks包)

39 篇文章 9 订阅

XQTL 共定位分析

XQTLbiolinks 是一个端到端的生物信息学工具,由深圳湾实验室李磊研究团队开发,用于高效地分析公共或用户定制的个xQTLs数据。该软件提供了一个通过与 xQTLs 共定位分析进行疾病靶基因发现的流程,以检测易感基因和致病变异。

图片

github地址

https://github.com/dingruofan/xQTLbiolinks

0. R包下载与引用

用户可以通过以下代码安装或者引用:

#if (!require("BiocManager", quietly = TRUE)){install.packages("BiocManager")}
#BiocManager::install("SummarizedExperiment") # For windows or linux
#if(!require("devtools")){install.packages("devtools")}
#devtools::install_github("dingruofan/xQTLbiolinks")
library(data.table)
library(xQTLbiolinks)
library(stringr)
library(coloc)

1.数据预处理

使用示例文件(GRCh38 版本基因组)的 GWAS 摘要汇总数据,在大脑 - 小脑中执行共定位分析:

gwasDF <- fread("http://bioinfo.szbl.ac.cn/xQTL_biolinks/xqtl_data/gwasDFsub.txt")
tissueSiteDetail="Brain - Cerebellum"
head(gwasDF)

输入的数据必须要有以下几列,列名可以不一样,但顺序必须相同:

  • 列1. variants,使用rsID(例如“rs11966562”)

  • 列2. chromosome,染色体

  • 列3. position,snp的基因组位置

  • 列4. P-value

  • 列5. MAF,等位基因频率

  • 列6. beta,效应大小

  • 列7. se,标准误

示例使用的是内置的 GTEX 数据,可以使用以下代码查看其中可使用的组织来源 eqtl 数据:

xQTLbiolinks::tissueSiteDetailGTExv8$tissueSiteDetail %>% unique()

2.鉴定哨兵 snps

哨兵 SNP 可以通过使用 xQTLanalyze_getSentinelSnp 及其参数 p-value < 5e-8SNP-to-SNP distance > 10e6 bp来检测。如果提供的 GWAS 文件基因组版本是 GRCh37,推荐将其转换为 GRCh38(使用参数:genomeVersion="grch37)。

sentinelSnpDF <- xQTLanalyze_getSentinelSnp(gwasDF, pValueThreshold = 5e-08)
# 筛选过后的snp如下
sentinelSnpDF
#>          rsid  chr position   pValue    maf    beta      se
#> 1: rs13120565 chr4 10702513 5.66e-10 0.6429 0.01825 0.00294

3.确定 snps 相关性状基因

性状基因是指位于哨兵 SNPs 1Mb 范围内(默认值,可以通过参数detectRange更改)的基因,使用函数 xQTLanalyze_getTraits 搜索哨兵 SNPs 1Mb 范围内的每个基因。

traitsAll <- xQTLanalyze_getTraits(sentinelSnpDF, detectRange=1e6, tissueSiteDetail=tissueSiteDetail)
# 总共检测到3个特征基因与1个SNP之间的3个关联
traitsAll
#>          rsid  chr position   pValue    maf    beta      se       gencodeId
#> 1: rs13120565 chr4 10702513 5.66e-10 0.6429 0.01825 0.00294 ENSG00000002587
#> 2: rs13120565 chr4 10702513 5.66e-10 0.6429 0.01825 0.00294 ENSG00000109684
#> 3: rs13120565 chr4 10702513 5.66e-10 0.6429 0.01825 0.00294 ENSG00000261490

4.进行共定位分析

共定位方法中有四个统计假设

  • H0:表型1(GWAS)和 表型2 (*QTL)与某个基因组区域的所有SNP位点无显著相关

  • H1/H2:表型1(GWAS)或表型2(*QTL)与某个基因组区域的SNP位点显著相关

  • H3:表型1(GWAS)和 表型2 (*QTL)与某个基因组区域的SNP位点显著相关,但由不同的因果变异位点驱动

  • H4:表型1(GWAS)和 表型2 (*QTL)与某个基因组区域的SNP位点显著相关,且由同一个因果变异位点驱动

① 对于单个特征基因,例如上步骤中的 ENSG00000109684,可以使用coloc方法执行共定位分析:

output <- xQTLanalyze_coloc(gwasDF, "ENSG00000109684", tissueSiteDetail=tissueSiteDetail) # using gene symbol
# 输出是一个列表,包括两部分:coloc_Out_summary 和 gwasEqtlInfo
output$coloc_Out_summary
#>    nsnps    PP.H0.abf   PP.H1.abf    PP.H2.abf  PP.H3.abf PP.H4.abf
#> 1:  7107 7.097893e-11 1.32221e-07 3.890211e-06 0.00625302  0.993743
#>          traitGene candidate_snp SNP.PP.H4
#> 1: ENSG00000109684    rs13120565 0.5328849

② 对于多个特征基因,可以使用for循环或lapply函数来获取所有基因的输出(使用coloc和hyprcoloc方法)

outputs <- rbindlist(lapply( unique(traitsAll$gencodeId), function(x){ # using gencode ID.
           xQTLanalyze_coloc(gwasDF, x, tissueSiteDetail=tissueSiteDetail, method = "Both")$colocOut }))
# outputs是一个data.table,它合并了所有基因的 coloc_Out_summary 的所有结果
outputs
#>          traitGene nsnps    PP.H0.abf    PP.H1.abf    PP.H2.abf  PP.H3.abf
#> 1: ENSG00000002587  6452 1.730175e-05 3.218430e-02 6.603361e-05 0.12198838
#> 2: ENSG00000109684  7107 7.097893e-11 1.322210e-07 3.890211e-06 0.00625302
#> 3: ENSG00000261490  6601 5.287051e-05 9.848309e-02 4.801374e-04 0.89435622
#>     PP.H4.abf candidate_snp SNP.PP.H4 hypr_posterior hypr_regional_prob
#> 1: 0.84574398    rs13120565 0.4140146         0.5685             0.9694
#> 2: 0.99374296    rs13120565 0.5328849         0.9793             0.9999
#> 3: 0.00662768    rs13120565 0.4219650         0.0000             0.0101
#>    hypr_candidate_snp hypr_posterior_explainedBySnp
#> 1:         rs13120565                        0.2726
#> 2:         rs13120565                        0.4747
#> 3:         rs13120565                        0.4118

5. 结果可视化

对于潜在的因果基因ENSG00000109684(PP4=0.9937 & hypr_posterior=0.9999,数值越大越显著),我们可以获得其跨组织的显著关联:

xQTLvisual_eqtl("ENSG00000109684")

图片

为了可视化 p 值分布和比较 GWAS 和 eQTL 的信号,首先通过 rsid 合并 GWAS 和 eQTL 的变异

eqtlAsso <- xQTLdownload_eqtlAllAsso(gene="ENSG00000109684", 
                                     tissueLabel = tissueSiteDetail, data_source = "liLab")
gwasEqtldata <- merge(gwasDF, eqtlAsso, by="rsid", suffixes = c(".gwas",".eqtl"))

函数 xQTLvisual_locusCompare 在右上角显示候选 SNP rs13120565:

xQTLvisual_locusCompare(gwasEqtldata[,.(rsid, pValue.eqtl)], 
                        gwasEqtldata[,.(rsid, pValue.gwas)], legend_position = "bottomright")
# 注意:SNP连锁不平衡信息会自动在线下载。由于网络问题,下载有时可能会失败。如果这种情况发生,请再次尝试运行。

图片

GWAS 信号的 Locuszoom 图

xQTLvisual_locusZoom(gwasEqtldata[,.(rsid, chrom, position, pValue.gwas)], legend=FALSE)

图片

eQTL 信号的 LocusZoom 图

xQTLvisual_locusZoom(gwasEqtldata[,.(rsid, chrom, position, pValue.eqtl)], 
                     highlightSnp = "rs13120565", legend=FALSE)

图片

eQTL(rs13120565-ENSG00000187323.11)标准化表达的小提琴图

xQTLvisual_eqtlExp("rs13120565", "ENSG00000109684", tissueSiteDetail = tissueSiteDetail)

图片

xQTLvisual_locusCombine结合locuscompare和locuszoom图

xQTLvisual_locusCombine(gwasEqtldata[,c("rsid","chrom", "position", "pValue.gwas", "pValue.eqtl")], 
                        highlightSnp="rs13120565")

图片

共定位位点应显示出一般模式,其中高 LD 的 SNPs 将显示出与共定位基因表达水平的强关联,而低 LD 的 SNPs 的 eQTL 关联将减弱。eQTL 的这种模式在不同组织/细胞类型中变化,其强度表明了变异的调节效应的力量。我们可以使用 xQTLvisual_coloc 可视化不同组织/细胞类型中 eQTL 的 p 值与 LD 之间的相关性,以轻松区分这种模式:

multi_tissue_coloc <- xQTLvisual_coloc(gene="ENSG00000109684", variantName="rs13120565", 
                                      tissueLabels = c("Brain - Cerebellar Hemisphere", 
                                                        "Brain - Cerebellum", "Thyroid", "Lung",
                                                        "Cells - EBV-transformed lymphocytes"))

图片

速来速去 

图片

今天就分享到这

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

皮肤小白生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值