Learn R Programming

SNPknock (version 0.8.2)

knockoffHaplotypes: Group-knockoffs of phased haplotypes

Description

This function efficiently constructs group-knockoffs of binary variables distributed according to the Li and Stephens model for phased haplotypes.

Usage

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

Arguments

X

a binary 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).

Value

A binary matrix of size n-by-p containing the knockoff variables.

Details

Generate group-knockoffs of phased haplotypes 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.

References

sesia2019multiSNPknock

See Also

Other knockoffs: knockoffDMC, knockoffGenotypes, knockoffHMM

Examples

Run this code
# NOT RUN {
# 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=TRUE)
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 = knockoffHaplotypes(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 = knockoffHaplotypes(X, hmm$r, hmm$alpha, hmm$theta, groups=groups)

# }

Run the code above in your browser using DataLab