DNA甲基化探针与基因的关系是多对一的关系,可以通过基因的顺式调控区域进行查询甲基化探针对应的QTLs数据。 单个基因进行查询的逻辑是,获取基因的顺式调控区域,包括染色体序号、碱基起始位置和碱基结束位置。 多个基因进行查询的逻辑是,按照单个基因进行,使用循环的方式挨个查询单个基因对应的顺式区域探针,再进行SMR分析。

Usage,
smr_batch_mqtl2gwas(
  smr_exe_path = "",
  bfile = "",
  qtls_path = "",
  gwas_path = "",
  query_p = 5e-08,
  query_genes = "",
  query_genes_annotation = Ensembl_GRCh37,
  cis_wind = 1e+06,
  out_path = "./",
  out_prefix = "my",
  diff_freq = 0.2,
  diff_freq_prop = 0.05,
  maf = 0,
  smr_cis_wind = 2000,
  smr_peqtl = 5e-08,
  smr_multi_snp = T,
  smr_multi_set_wind = NULL,
  smr_multi_ld_prune = 0.1,
  heidi_method = 1,
  heidi_peqtl = 0.00157,
  heidi_ld_upper_limit = 0.9,
  heidi_ld_lower_limit = 0.05,
  heidi_min_m = 3,
  heidi_max_m = 20,
  thread_num = 1
)

参数

smr_exe_path

指定smr-1.3.1-win.exe可执行文件的地址

bfile

指定g1000参考基因组的文件地址,如欧洲人群数据:EUR.bed,EUR.bim,EUR.fam。指定到文件的前缀EUR即可。

qtls_path

指定qtls1文件的地址,用作暴露。这里指的是dna甲基化的smr-format数据,可以从smr官网数据下载LBC_BSGS_meta_lite。

gwas_path

指定gwas文件(xxx.ma)的地址,需要提前准备好。结局GWAS文件可以是一个或者多个。

query_p

用于查询snp的阈值p,满足小于值,则纳入。p值默认为5e-8。

query_genes

按照基因进行查询,指定用于查询探针的基因,也就说查询基因对应的探针qtls数据。

query_genes_annotation

用于基因注释的文件,默认为Ensembl_GRCh37。必须包含如下几列,参考examples部分展示,列名依次为:gene_name,seqnames,start,end; 分别对应基因名、染色体信息、基因的起始碱基位置、基因的结束碱基位置

cis_wind

按照基因进行查询,指定基因顺式区域的范围。默认为2000kb。

out_path

输出文件的路径,默认当前路径

out_prefix

输出文件的前缀

diff_freq

对等位基因频率进行质量控制,如果SNP的效应等位基因频率差异在两两配对的数据集中 (包括the LD reference sample, the eQTL summary data and the GWAS summary data) 的超过指定的差异阈值, 将排除该SNP。默认为0.2。

diff_freq_prop

SMR分析中,允许具有等位基因频率差异的的SNP的最大比例。如果由diff_freq排除的SNP比率大于diff_freq_prop指定的阈值,SMR分析将停止(提示错误信息)。默认值为0.05。

maf

根据参考样本中的次要等位基因频率 (MAF) 阈值去除 SNP,默认值为0。maf的取值范围在0-0.5。

smr_cis_wind

SMR分析中,定义一个以探针为中心的染色体范围,以选择cis-eQTL(通过p值阈值)进行SMR分析。默认值为 2000Kb,写作2000。

smr_peqtl

SMR分析中,筛选用于SMR分析的top显著相关QTL(如eQTL)的p值,默认为5.0e-8。

smr_multi_snp

是否进行基于多个SNP的smr分析,默认为T。反之则使用top snp进行SMR分析。

smr_multi_set_wind

当smr_multi_snp=T的时候,选定基于多个snp进行SMR分析的基因区域,定义最显著cis-QTL为中心的染色体区域。 默认是选择smr_cis_wind内所有的snp进行SMR分析,默认为NULL。反之,可进行自己指定,如500kb,写作500。

smr_multi_ld_prune

当smr_multi_snp=T的时候,去除纳入SMR分析的QTLs(如eQTL)中存在连锁不平衡的QTLs,默认值是0.1。

heidi_method

HEIDI检验中,指定一个方法进行HEIDI检验。0是最初的原始HEIDI检验,由Zhu et al (2016 Nature Genetics)提出; 1是新的HEIDI检验,模拟结果表明,使用cis-eQTL区域中排名前20位的SNP(按照p值进行排序)进行异质性测试,HEIDI测试的功效最初增加,但随着SNP数量(m)的增加而降低,峰值在m = ~20。 默认值为 1。

heidi_peqtl

HEIDI检验中,筛选用于HEIDI检验的QTL的p值,默认p值为1.57e-3,相当于卡方值 (df=1) 10。

heidi_ld_upper_limit

HEIDI检验中,用于排除与top SNP存在显著连锁不平衡的QTL(如eQTL),默认值是0.9。

heidi_ld_lower_limit

HEIDI检验中,用于排除与top SNP不存在连锁不平衡或者微弱连锁不平衡的QTL(如eQTL),默认值是0.05。

heidi_min_m

HEIDI检验中,使用顺式snp数量的最小数量,小于该阈值将不进行HEIDI检验。因为如果SNP的数量太少,HEIDI测试检测异质性的能力很小,并可能产生误导性的结果。默认值为3。

heidi_max_m

HEIDI检验中,使用顺式snp数量的最大数量,如果经过LD筛选后的cis-SNP的数量大于m,则仅使用前m个SNP进行HEIDI检验(按照QTL的p值进行排序),默认值为20。

thread_num

指定用于并行计算的 OpenMP 线程数。默认值为 1。

Examples

# 用于基因注释的文件必须包含如下几列,列名依次为:gene_name,seqnames,start,end;
# 分别对应基因名、染色体信息、基因的起始碱基位置、基因的结束碱基位置
# head(Ensembl_GRCh37[c("gene_name","seqnames","start","end")])
#       gene_name seqnames     start       end
# 1       TSPAN6        X  99883667  99894988
# 2         TNMD        X  99839799  99854882
# 3         DPM1       20  49551404  49575092
# 4        SCYL3        1 169818772 169863408
# 5     C1orf112        1 169631245 169823221
# 6          FGR        1  27938575  27961788

smr_batch_mqtl2gwas(
 smr_exe_path = "./smr-1.3.1-win.exe",
 bfile ="./data/1kg.v3/EUR",
 gwas_path=c("./LDL-ebi-a-GCST002222(treated).ma","./LDL-ebi-a-GCST002222.ma"),
 qtls_path ="./mQTLs/LBC_BSGS_meta_lite/LBC_BSGS_meta_lite",
 query_genes = c("PARP10","PLEC"),
 out_path = "./"
)