snp_ldpred2_inf(corr, df_beta, h2)

snp_ldpred2_grid(
  corr,
  df_beta,
  grid_param,
  burn_in = 50,
  num_iter = 100,
  ncores = 1,
  return_sampling_betas = FALSE
)

snp_ldpred2_auto(
  corr,
  df_beta,
  h2_init,
  vec_p_init = 0.1,
  burn_in = 500,
  num_iter = 200,
  sparse = FALSE,
  verbose = FALSE,
  report_step = num_iter + 1L,
  allow_jump_sign = TRUE,
  shrink_corr = 1,
  alpha_bounds = c(-1.5, 0.5),
  ncores = 1
)

Arguments

corr

Sparse correlation matrix as an SFBM. If corr is a dsCMatrix or a dgCMatrix, you can use as_SFBM(corr).

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))

h2

Heritability estimate.

grid_param

A data frame with 3 columns as a grid of hyper-parameters:

  • $p: proportion of causal variants

  • $h2: heritability (captured by the variants used)

  • $sparse: boolean, whether a sparse model is sought They can be run in parallel by changing ncores.

burn_in

Number of burn-in iterations.

num_iter

Number of iterations after burn-in.

ncores

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

return_sampling_betas

Whether to return all sampling betas (after burn-in)? This is useful for assessing the uncertainty of the PRS at the individual level (see doi: 10.1101/2020.11.30.403188 ). Default is FALSE (only returns the averaged final vectors of betas). If TRUE, only one set of parameters is allowed.

h2_init

Heritability estimate for initialization.

vec_p_init

Vector of initial values for p. Default is 0.1.

sparse

In LDpred2-auto, whether to also report a sparse solution by running LDpred2-grid with the estimates of p and h2 from LDpred2-auto, and sparsity enabled. Default is FALSE.

verbose

Whether to print "p // h2" estimates at each iteration. Disabled when parallelism is used.

report_step

Step to report sampling betas (after burn-in and before unscaling). Nothing is reported by default. If using num_iter = 200 and report_step = 20, then 10 vectors of sampling betas are reported (as a sparse matrix with 10 columns).

allow_jump_sign

Whether to allow for effects sizes to change sign in consecutive iterations? Default is TRUE (normal sampling). You can use FALSE to force effects to go through 0 first before changing sign. Setting this parameter to FALSE could be useful to prevent instability (oscillation and ultimately divergence) of the Gibbs sampler. This would also be useful for accelerating convergence of chains with a large initial value for p.

shrink_corr

Shrinkage multiplicative coefficient to apply to off-diagonal elements of the correlation matrix. Default is 1 (unchanged). You can use e.g. 0.95 to add a bit of regularization.

alpha_bounds

Boundaries for the estimates of \(\alpha\). Default is c(-1.5, 0.5). You can use the same value twice to fix \(\alpha\).

Value

snp_ldpred2_inf: A vector of effects, assuming an infinitesimal model.

snp_ldpred2_grid: A matrix of effect sizes, one vector (column) for each row of grid_param. Missing values are returned when strong divergence is detected. If using return_sampling_betas, each column corresponds to one iteration instead (after burn-in).

snp_ldpred2_auto: A list (over vec_p_init) of lists with

  • $beta_est: vector of effect sizes (on the allele scale)

  • $beta_est_sparse (only when sparse = TRUE): sparse vector of effect sizes

  • $corr_est, the "imputed" correlations between variants and phenotypes, which can be used for post-QCing variants by comparing those to with(df_beta, beta / sqrt(n_eff * beta_se^2 + beta^2))

  • $sample_beta: Sparse matrix of sampling betas (see parameter report_step), not on the allele scale, for which you need to multiply by with(df_beta, sqrt(n_eff * beta_se^2 + beta^2))

  • $postp_est: vector of posterior probabilities of being causal

  • $p_est: estimate of p, the proportion of causal variants

  • $h2_est: estimate of the (SNP) heritability (also see coef_to_liab)

  • $path_p_est: full path of p estimates (including burn-in); useful to check convergence of the iterative algorithm

  • $path_h2_est: full path of h2 estimates (including burn-in); useful to check convergence of the iterative algorithm

  • $h2_init and $p_init, input parameters for convenience

Details

For reproducibility, set.seed() can be used to ensure that two runs of LDpred2 give the exact same results (since v1.10).