powerGE: Power for GxE interactions in genetic association studies

Description Usage Arguments Details Value Author(s) References See Also Examples

Description

This routine carries out (analytical, approximate) power calculations for identifying Gene-Environment interactions in Genome Wide Association Studies

Usage

1
powerGE(n, power, model, caco, alpha, alpha1, maintain.alpha)

Arguments

n

Sample size: combined number of cases and controls. Note: exactly one of n and power should be specified.

power

Power: targeted power. Note: exactly one of n and power should be specified.

model

List specifying the genetic model. This list contains the following objects:

  • prev Prevalence of the outcome in the population. Note that for case-only and empirical Bayes estimators to be valid, the prevalence needs to be low.

  • pGene Probability that a binary SNP is 1 (i.e. not the minor allele frequency for a three level SNP).

  • pEnv Frequency of the binary environmental variable.

  • orGE Odds ratio between the binary SNP and binary environmental variable.

  • beta.LOR Vector of length three with the odds ratios of the genetic, environmental, and GxE interaction effect, respectively.

  • nSNP Number of SNPs (genes) being tested.

caco

Fraction of the sample that are cases (default = 0.5).

alpha

Overall (family-wise) Type 1 error (default = 0.05).

alpha1

Significance level at which testing during the first stage (screening) takes place. If alpha1 = 1, there is no screening.

maintain.alpha

Some combinations of screening and GxE testing methods do not maintain the proper Type 1 error. Default is True: combinations that do not maintain the Type 1 error are not computed. If maintain.alpha is False all combinations are computed.

Details

The routine computes power for a variety of two-stage procedures. Five different screening procedures are used:

After screening, the SNPs that pass the screen can be tested using

If screening took place using the correlation or chi-square screening, the Type 1 error won't be maintained if the final GxE testing is carried out using either the case-only or empirical Bayes estimator. See Dai et al. (2012). The cocktail screening maintains the Type 1 family wise error rate, since only those SNPs that pass on to the second stage using marginal screening will use the case-only or empirical Bayes estimator, the SNPs that pass on to the second stage using correlation screening will always use the case-control estimator.

When SNP and environment are correlated in the population (i.e. model$orGE does not equal 1) the case-only estimator does not maintain the Type 1 error. The empirical Bayes estimator may also have a moderately inflated Type 1 error. When the disease is common either the case-only estimator or the empirical Bayes estimator also may not estimate the GxE interaction.

Power calculations are described in Kooperberg, Dai, and Hsu (2014). Briefly, for a given genetic model we compute the expected p-values for all screening statistics. We then use a normal approximation to compute the probability that this SNP passes the screening (e.g., if alpha1 equaled this expected p-value this probability would be exactly 0.5), and combine this with power calculations for the second stage of GxE testing.

Value

A list with three components.

power

A 5x3 matrix with estimated power for all testing approaches, only if n was specified.

samplesize

A 5x3 matrix with required sample sizes for all testing approaches, only if power was specified.

expected.p

A 5x3 matrix with the expected p value for the SNP to pass screening. This p-value depends on the sample size, but not on the second stage testing.

prob.select

A 5x3 matrix with the probability that the interacting SNP would pass the screening stage. This probability depends on the sample size, but not on the second stage testing.

Author(s)

Li Hsu lih@fredhutch.org and Charles Kooperberg clk@fredhutch.org.

References

Dai JY, Kooperberg C, LeBlanc M, Prentice RL (2012). Two-stage testing procedures with independent filtering for genome-wide gene-environment interaction. Biometrika, 99, 929-944.

Gauderman WJ, Zhang P, Morrison JL, Lewinger JP (2013). Finding novel genes by testing GxE interactions in a genome-wide association study. Genetic Epidemiology, 37, 603-613.

Hsu L, Jiao S, Dai JY, Hutter C, Peters U, Kooperberg C (2012). Powerful cocktail methods for detecting genome-wide gene-environment interaction. Genetic Epidemiology, 36, 183-194.

Kooperberg C, Dai, JY, Hsu L (2014). Two-stage procedures for the identification of gene x environment and gene x gene interactions in genome-wide association studies. To appear.

Kooperberg C, LeBlanc ML (2008). Increasing the power of identifying gene x gene interactions in genome-wide association studies. Genetic Epidemiology, 32, 255-263.

Mukherjee B, Chatterjee N (2008). Exploiting gene-environment inde- pendence for analysis of case-control studies: an empirical Bayes-type shrinkage estimator to trade-off between bias and efficiency Biometrics, 64, 685-694.

Murcray CE, Lewinger JP, Gauderman WJ (2009). Gene-environment interaction in genome-wide association studies. American Journalk of Epidemiology, 169, 219-226.

See Also

powerGG

Examples

1
2
3
4
5
6
7
mod1 <- list(prev=0.01,pGene=0.2,pEnv=0.2,beta.LOR=log(c(1.0,1.2,1.4)),orGE=1.2,nSNP=10^6)
results <- powerGE(n=20000, model=mod1,alpha1=.01)
print(results)

mod2 <- list(prev=0.01,pGene=0.2,pEnv=0.2,beta.LOR=log(c(1.0,1.0,1.4)),orGE=1,nSNP=10^6)
results <- powerGE(power=0.8, model=mod2,alpha1=.01)
print(results)

Example output

Loading required package: mvtnorm
Loading required package: pwr
$power
                       st2.case.control st2.case.only ste2.empirical.Bayes
st1.no.filter                0.09923846            NA            0.1176402
st1.marginal.screen          0.22405239            NA            0.2481928
st1.correlation.screen       0.34480651            NA                   NA
st1.cocktail.screen          0.34480651            NA            0.3448065
st1.chi.square.screen        0.34480651            NA                   NA

$expected.p
                       st2.case.control st2.case.only ste2.empirical.Bayes
st1.no.filter                        NA            NA                   NA
st1.marginal.screen         0.003070531            NA          0.003070531
st1.correlation.screen      0.000000000            NA                   NA
st1.cocktail.screen         0.000000000            NA          0.000000000
st1.chi.square.screen       0.000000000            NA                   NA

$prob.select
                       st2.case.control st2.case.only ste2.empirical.Bayes
st1.no.filter                 1.0000000            NA            1.0000000
st1.marginal.screen           0.6497916            NA            0.6497916
st1.correlation.screen        1.0000000            NA                   NA
st1.cocktail.screen           1.0000000            NA            1.0000000
st1.chi.square.screen         1.0000000            NA                   NA

$samplesize
                       st2.case.control st2.case.only ste2.empirical.Bayes
st1.no.filter                     50131         23282                23282
st1.marginal.screen               51603            NA                   NA
st1.correlation.screen            37037            NA                   NA
st1.cocktail.screen               37046         37018                37018
st1.chi.square.screen             37009            NA                   NA

$expected.p
                       st2.case.control st2.case.only ste2.empirical.Bayes
st1.no.filter                        NA            NA                   NA
st1.marginal.screen        4.247342e-04            NA                   NA
st1.correlation.screen     9.606292e-09            NA                   NA
st1.cocktail.screen        1.913369e-08  1.938021e-08         1.938021e-08
st1.chi.square.screen      2.025147e-09            NA                   NA

$prob.select
                       st2.case.control st2.case.only ste2.empirical.Bayes
st1.no.filter                 1.0000000     1.0000000            1.0000000
st1.marginal.screen           0.8285343            NA                   NA
st1.correlation.screen        0.9992158            NA                   NA
st1.cocktail.screen           0.9988321     0.9988234            0.9988234
st1.chi.square.screen         0.9996868            NA                   NA

powerGWASinteraction documentation built on May 1, 2019, 8:48 p.m.