aGE package

2018-11-19

This package implements aGE tests, which is a data-adaptive set-based gene-environment interaction (GxE) test, specifically designed for rare variants.

• Works both on linux R and windows R
• See more in the paper: Yang T, et al. (2018) <10.1002/sim.8037>

• The method is able to control type 1 error rates when the environmental variable is a linear or nonlinear function of the outcome.
• Incorporate a wide range of tests, including burden test, variance component tests (rareGE), and beyond
• The test is adaptive to different directions of GxE effects and the different number of neutral varints, i.e., variants with no GxE effects.
• Works for both binary and continuous outcome

Model

The model is $$g(\mu_i)= X_i\beta_0+ G_i\beta_1 + S_i\beta_2$$,

where $$g(\cdot)$$ is the link function, $$X_i$$ is the covariate matrix including the environmental variable, $$G_i$$ is the $$q \times q$$ genotype matrix and $$S_i$$ is the $$q \times q$$ GxE interaction matrix.

The interaction test, the null hypothesis is that $$\beta_2=[\beta_{21},\ldots,\beta_{2q}]^T=[0,\ldots,0]^T.$$

For joint test,the null hypothesis is that $$\beta_1=\beta_2=[0,\ldots,0]^T.$$

Installation

Other than CRAN, github can be checked for most recent update.

Install from github

• Step 2: open R, and set the directory to this local folder
 setwd('local folder')
• Step 3: install the package in R
install.packages('aGE.version.tar.gz',repos=NULL,type='source')

Usage

Two functions are available: aGE and aGE.joint. The former performs adaptive GxE test and the later performs joint test for both genetic main and GxE effects. The details of inputs of the functions can be foound by typing ?aGE and ?aGE.joint in R command line.

A simple example

A simple demonstration of the usage and output of the package. The simulation method is recommended to use for sample size $$>$$ 500.

     library(aGE)
set.seed(12345)
phenotype <- c(rep(1,50),rep(0,50))
genotype <- data.frame(g1=sample(c(rep(1,10),rep(0,90))),g2=sample(c(rep(1,5), rep(0,95))))
covariates <- data.frame(Envir=rnorm(100), Age=rnorm(100,60,5))
exD <- list(Y=phenotype, G=genotype, X=covariates)
aGE(Y=exD$Y, G=exD$G, cov=exD$X, model='binomial', nonparaE=F, stepwise=F)  ## aGEsm1 aGEsm2 aGEsm3 aGEsm4 aGEsm5 ## 0.02800000 0.11800000 0.11900000 0.17000000 0.16000000 ## aGEsm6 aGEsm aGEsm_fisher ## 0.19100000 0.05194805 0.10389610  aGE.joint(Y=exD$Y, G=exD$G, cov=exD$X, model='binomial', nonparaE=T, DF=5, method='Simulation') 
##       aGEj1       aGEj2       aGEj3       aGEj4       aGEj5       aGEj6
##   0.4870000   0.2000000   0.2120000   0.2430000   0.2200000   0.2410000
##        aGEj   aGEj_minp aGEj_fisher
##   0.3316683   0.1198801   0.1228771

The stepwise option in aGE function is suggested for real-data GxE analysis, where a high genome-wide significant level is required. It performs Monte Carlo method with the number of permutation (B) equals 1,000 and then increase B gradually if small p-values are observed.