knockoffGenotypes function

Group-knockoffs of unphased genotypes

Group-knockoffs of unphased genotypes

This function efficiently constructs group-knockoffs of 0,1,2 variables distributed according to the Li and Stephens model for unphased genotypes.

knockoffGenotypes(X, r, alpha, theta, groups = NULL, seed = 123, cluster = NULL, display_progress = FALSE)

Arguments

  • X: a 0,1,2 matrix of size n-by-p containing the original variables.
  • r: a vector of length p containing the "r" parameters estimated by fastPHASE.
  • alpha: a matrix of size p-by-K containing the "alpha" parameters estimated by fastPHASE.
  • theta: a matrix of size p-by-K containing the "theta" parameters estimated by fastPHASE.
  • groups: a vector of length p containing group memberships for each variable. Indices are assumed to be monotone increasing, starting from 1 (default: NULL).
  • seed: an integer random seed (default: 123).
  • cluster: a computing cluster object created by makeCluster (default: NULL).
  • display_progress: whether to show progress bar (default: FALSE).

Returns

A 0,1,2 matrix of size n-by-p containing the knockoff variables.

Details

Generate group-knockoffs of unphased genotypes according to the Li and Stephens HMM. The required model parameters can be obtained through fastPHASE and loaded with loadHMM . This function is more efficient than knockoffHMM for haplotype data.

Examples

# Problem size p = 10 n = 100 # Load HMM to generate data r_file = system.file("extdata", "haplotypes_rhat.txt", package = "SNPknock") alpha_file = system.file("extdata", "haplotypes_alphahat.txt", package = "SNPknock") theta_file = system.file("extdata", "haplotypes_thetahat.txt", package = "SNPknock") char_file = system.file("extdata", "haplotypes_origchars", package = "SNPknock") hmm.data = loadHMM(r_file, alpha_file, theta_file, char_file, compact=FALSE, phased=FALSE) hmm.data$Q = hmm.data$Q[1:(p-1),,] hmm.data$pEmit = hmm.data$pEmit[1:p,,] # Sample X from this HMM X = sampleHMM(hmm.data$pInit, hmm.data$Q, hmm.data$pEmit, n=n) # Load HMM to generate knockoffs hmm = loadHMM(r_file, alpha_file, theta_file, char_file) hmm$r = hmm$r[1:p] hmm$alpha = hmm$alpha[1:p,] hmm$theta = hmm$theta[1:p,] # Generate knockoffs Xk = knockoffGenotypes(X, hmm$r, hmm$alpha, hmm$theta) # Generate group-knockoffs for groups of size 3 groups = rep(seq(p), each=3, length.out=p) Xk = knockoffGenotypes(X, hmm$r, hmm$alpha, hmm$theta, groups=groups)

References

Rdpack::insert_ref(key="sesia2019multi",package="SNPknock")

See Also

Other knockoffs: knockoffDMC, knockoffHMM, knockoffHaplotypes

  • Maintainer: Matteo Sesia
  • License: GPL-3
  • Last published: 2019-05-17