Learn R Programming

corrcoverage (version 1.2.1)

ppfunc.mat: Find PPs of SNPs from matrix of Z-scores

Description

Posterior probabilities of causality from matrix of marginal Z-scores (1 simulation per row)

Usage

ppfunc.mat(zstar, V, W = 0.2)

Arguments

zstar

Matrix of marginal z-scores, one replicate per row

V

Variance of the estimated effect size, one element per column of zstar

W

Prior for the standard deviation of the effect size parameter, beta

Value

Matrix of posterior probabilities of causality

Details

This function converts a matrix of Z-scores (one row per simulation) to posterior probabilities of causality, not including the null model of no genetic effects, so that the sum of the posterior probabilities for each simulation (each row) is 1.

Examples

Run this code
# NOT RUN {
set.seed(1)
nsnps = 100
N0 = 5000
N1 = 5000

## generate example LD matrix and MAFs
library(mvtnorm)
nsamples = 1000

simx <- function(nsnps, nsamples, S, maf=0.1) {
    mu <- rep(0,nsnps)
    rawvars <- rmvnorm(n=nsamples, mean=mu, sigma=S)
    pvars <- pnorm(rawvars)
    x <- qbinom(1-pvars, 1, maf)
}

S <- (1 - (abs(outer(1:nsnps,1:nsnps,`-`))/nsnps))^4
X <- simx(nsnps,nsamples,S)
maf <- colMeans(X)

varbeta <- Var.data.cc(f = maf, N = N0+N1, s = N1/(N0+N1))

# simulate matrix of Z scores
# 1 simulation per row
z_scores <- matrix(rnorm(nsnps*100, 0, 3), ncol = nsnps)

# each row is a vector of simulated PPs
res <- ppfunc.mat(zstar = z_scores, V = varbeta)

rowSums(res)

# }

Run the code above in your browser using DataLab