Package 'lit'

Title: Latent Interaction Testing for Genome-Wide Studies
Description: Identifying latent genetic interactions in genome-wide association studies using the Latent Interaction Testing (LIT) framework. LIT is a flexible kernel-based approach that leverages information across multiple traits to detect latent genetic interactions without specifying or observing the interacting variable (e.g., environment). LIT accepts standard PLINK files as inputs to analyze large genome-wide association studies.
Authors: Andrew Bass [aut, cre], Michael Epstein [aut]
Maintainer: Andrew Bass <[email protected]>
License: LGPL
Version: 1.0.0
Built: 2024-11-08 04:29:11 UTC
Source: https://github.com/ajbass/lit

Help Index


Latent Interaction Testing

Description

lit performs a kernel-based testing procedure, Latent Interaction Testing (LIT), using a set of traits and SNPs. LIT tests whether the squared residuals (SQ) and cross products (CP) are statistically independent of the genotypes. In particular, we construct a kernel matrix for the SQ/CP terms to measure the pairwise similarity between individuals, and also construct an analogous one for the genotypes. We then test whether these two matrices are independent. Currently, we implement the linear and projection kernel functions to measure pairwise similarity between individuals. We then combine the p-values of these implementations using a Cauchy combination test to maximize the number of discoveries.

Usage

lit(y, x, adjustment = NULL, pop_struct = NULL)

Arguments

y

matrix of traits (n observations by k traits)

x

matrix of SNPs (n observations by m SNPs)

adjustment

matrix of covariates to adjust traits

pop_struct

matrix of PCs that captures population structure

Value

A data frame of p-values where the columns are

  • wlit: LIT using a linear kernel

  • ulit: LIT using a projection kernel

  • alit: Cauchy combination test of the above two LIT implementations.

See Also

lit_plink

Examples

# set seed
set.seed(123)

# Generate SNPs and traits
X <- matrix(rbinom(10*2, size = 2, prob = 0.25), ncol = 2)
Y <- matrix(rnorm(10*4), ncol = 4)

out <- lit(Y, X)

LIT correcting for dominance effects

Description

Internal use for now

Usage

lit_h(y, x, adjustment = NULL, pop_struct = NULL)

Arguments

y

matrix of traits (n observations by k traits)

x

matrix of SNPs (n observations by m SNPs)

adjustment

matrix of covariates to adjust traits

pop_struct

matrix of PCs that captures population structure


Marginal (SQ/CP) approach

Description

The marginal function performs a trait-by-trait univariate test for latent interactions using the squared residuals and cross products.

Usage

marginal(y, x, adjustment = NULL, pop_struct = NULL)

Arguments

y

matrix of traits (n observations by k traits)

x

matrix of SNPs (n observations by m SNPs)

adjustment

matrix of covariates to adjust traits

pop_struct

matrix of PCs that captures population structure

Value

A data frame of p-values where the columns are the cross products/squared residuals and the rows are SNPs.

See Also

marginal_plink

Examples

# set seed
set.seed(123)

# Generate SNPs and traits
X <- matrix(rbinom(10*2, size = 2, prob = 0.25), ncol = 2)
Y <- matrix(rnorm(10*4), ncol = 4)

out <- marginal(Y, X)