跨表型关联分析可以通过寻找对多种性状有贡献的变异来提高统计能力。 参考:Li X, Zhu X. Cross-Phenotype Association Analysis Using Summary Statistics from GWAS. Methods Mol Biol. 2017;1666:455-467. doi:10.1007/978-1-4939-7274-6_22

Usage,
postgwas_cpassoc(
  files_path = c(),
  sample_sizes = c(0, 0),
  traits = NULL,
  SHet_test = T,
  SHom_test = T,
  method = 1,
  plink_exe = get_plink_exe(),
  bfile = NULL,
  window_kb = 500,
  step_snp = 50,
  r2 = 0.2,
  set.seed = 666,
  mvrnorm_n = 1e+06,
  strategy = "multisession",
  workers = 2,
  out_path = "./",
  out_prefix = "cpassoc"
)

参数

files_path

用于关联分析trait的文件路径,可以是两个或者多个文件,数据中需要包含列名:SNP,effect_allele,other_allele,eaf,beta,se,pval,samplesize,chr,pos。

sample_sizes

files_path对应的样本数量,确保与files_path一一对应。

traits

files_path对应的疾病或者性状特征,确保与files_path一一对应。

SHet_test

是否进行SHet检验,默认为T。

SHom_test

是否进行SHom检验,默认为T。

method

默认为方法1。 SNP过滤包括3种方式:

  • ①确保file_path输入文件中的snp、effect_allele和other_allele方向一致,调整z分数;

  • ②去掉z分数绝对值大于1.96的snp;

  • ③除线粒体(MT)、性染色体和未定位的支架,因为连锁不平衡(LD)可能非常高;对于绝大部分GWAS数据输入而言,SNP都不会被③过滤。

  • ④通过选取每100个SNP中的一个来减少连锁不平衡,通过降低SNPs的密度来实现。

  • ⑤通过plink Pruning选择独立的snp,主要用到–indep-pairwise选项。

    • method =1,对应使用①②③过滤,参考代码:https://github.com/Ax3man/vdBijl_etal_2024_GuppyColorPatterns/blob/main/sequencing/gwas/combine_gwas.R。

    • method =2,对应使用①②③④进行过滤,参考代码:https://github.com/galagoz/pleiotropyevo/blob/main/CPASSOC/CPASSOC.Rmd。

    • method =3,对应使用①②③⑤进行过滤,参考代码:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6417431/。

plink_exe

使用方法3,需要用到的plink.exe路径,默认为get_plink_exe()。

bfile

使用方法3,需要用到的参考文件,bfile文件,写到bfile文件的前缀即可。如“EUR.bed;EUR.bim;EUR.fam”,写为“EUR”即可。

window_kb

使用方法3,窗口大小 (window size),这个参数以碱基对(kb)为单位,决定了分析时考虑的基因组范围。默认为500。

step_snp

使用方法3,步长 (step size),步长定义了窗口在基因组上移动时跳过的SNP数量。默认为50。

r2

使用方法3,r²阈值 (r2 threshold),r²是衡量两个SNP之间连锁不平衡程度的指标。默认为0.2。

set.seed

设置随机数种子,保证结果的可重复性,默认为666。

mvrnorm_n

默认为1e6,为多元正态分布随机样本的数量,在进行SHet检验时使用。该值越大,程序执行的时间越长。

strategy

并行方式,同future::plan参数。

workers

并行线程数,默认2个,根据自己电脑内存及CUP核心数填写。

out_path

结果输出路径。

out_prefix

结果输出的文件名前缀,默认为cpassoc。

返回cpasso跨性状关联分析结果

Examples

## 方法1:指定方法1进行cpassoc
postgwas_cpassoc(
  files_path = c(
    "./data_prepare/IBD_ebi-a-GCST004131.txt",
    "./data_prepare/PBC_34033851-GCST90061440-EFO_1001486.h.txt"
  ),
  traits = c("IBD","PBC"),
  sample_sizes = c(59957,24510),
  method = 1,
  out_path = './result_cpassoc/',
  out_prefix = "cpassoc"
)


## 方法2:指定方法2进行cpassoc
postgwas_cpassoc(
  files_path = c(
    "./data_prepare/IBD_ebi-a-GCST004131.txt",
    "./data_prepare/PBC_34033851-GCST90061440-EFO_1001486.h.txt"
  ),
  traits = c("IBD","PBC"),
  sample_sizes = c(59957,24510),
  method = 2,
  out_path = './result_cpassoc/',
  out_prefix = "cpassoc"
)

## 方法3:指定方法3进行cpassoc
postgwas_cpassoc(files_path = c("./data_prepare/IBD_ebi-a-GCST004131.txt",
                                "./data_prepare/PBC_34033851-GCST90061440-EFO_1001486.h.txt" ),
                 traits = c("IBD","PBC"),
                 sample_sizes  = c(59957,24510),
                 method = 3,
                 bfile ="f:/data_ref/1kg.v3/EUR" ,
                 out_path = './result_cpassoc/',
                 out_prefix = "cpassoc")