snp_ldsc {bigsnpr}R Documentation

LD score regression

Description

LD score regression

Usage

snp_ldsc(
  ld_score,
  ld_size,
  chi2,
  sample_size,
  blocks = 200,
  intercept = NULL,
  chi2_thr1 = 30,
  chi2_thr2 = Inf,
  ncores = 1
)

snp_ldsc2(
  corr,
  df_beta,
  blocks = NULL,
  intercept = 1,
  ncores = 1,
  ind.beta = cols_along(corr),
  ...
)

Arguments

ld_score

Vector of LD scores.

ld_size

Number of variants used to compute ld_score.

chi2

Vector of chi-squared statistics.

sample_size

Sample size of GWAS corresponding to chi-squared statistics. Possibly a vector, or just a single value.

blocks

Either a single number specifying the number of blocks, or a vector of integers specifying the block number of each chi2 value. Default is 200 for snp_ldsc(), dividing into 200 blocks of approximately equal size. NULL can also be used to skip estimating standard errors, which is the default for snp_ldsc2().

intercept

You can constrain the intercept to some value (e.g. 1). Default is NULL in snp_ldsc() (the intercept is estimated) and is 1 in snp_ldsc2() (the intercept is fixed to 1). This is equivalent to parameter --intercept-h2.

chi2_thr1

Threshold on chi2 in step 1. Default is 30. This is equivalent to parameter --two-step.

chi2_thr2

Threshold on chi2 in step 2. Default is Inf (none).

ncores

Number of cores used. Default doesn't use parallelism. You may use nb_cores.

corr

Sparse correlation matrix. Can also be an SFBM.

df_beta

A data frame with 3 columns:

  • ⁠$beta⁠: effect size estimates

  • ⁠$beta_se⁠: standard errors of effect size estimates

  • ⁠$n_eff⁠: sample size when estimating beta (in the case of binary traits, this is 4 / (1 / n_control + 1 / n_case))

ind.beta

Indices in corr corresponding to df_beta. Default is all.

...

Arguments passed on to snp_ldsc

Value

Vector of 4 values (or only the first 2 if blocks = NULL):

Examples

bigsnp <- snp_attachExtdata()
G <- bigsnp$genotypes
y <- bigsnp$fam$affection - 1
corr <- snp_cor(G, ind.col = 1:1000)

gwas <- big_univLogReg(G, y, ind.col = 1:1000)
df_beta <- data.frame(beta = gwas$estim, beta_se = gwas$std.err,
                      n_eff = 4 / (1 / sum(y == 0) + 1 / sum(y == 1)))

snp_ldsc2(corr, df_beta)
snp_ldsc2(corr, df_beta, blocks = 20, intercept = NULL)


[Package bigsnpr version 1.12.2 Index]