tdtGxG {trio} | R Documentation

## Genotypic TDT for Two-Way Interactions

### Description

`tdtGxG` and `colGxG` perform the genotypic TDT for the interaction of two SNPs or of each pair of columns of a genotype matrix, respectively.

`fastGxG` provides a fast implementation for the genotypic TDT for two-way interactions when considering the simplest conditional logistic regression model only containing one parameter for the interaction effect. It thus leads to the same results as `colGxG` with `test = "screen"`. In `fastGxGrec`, an analytic solution to the genotypic TDT based on the simplest model for testing a recessive x recessive model is implemented, which is even faster than `fastGxG` with `model = "recessive"`. In future versions of this package, `fastGxG` and `fastGxGrec` will be joint with `colGxG`.

The genotypic TDT for testing two-way interactions makes use of the 16 possible genotypes that can be obtained from combining the parents' genotypes of the two considered SNPs. Thus, for each family, genotypes for one case (i.e. the affected offspring) and 15 pseudo-controls are used.

### Usage

    tdtGxG(snp1, snp2, test = c("epistatic", "lrt", "full", "screen"),
         model = c("additive", "dominant", "recessive"))

    colGxG(mat.snp, test = c("epistatic", "lrt", "full", "screen"), genes = NULL,
       maf = FALSE, model = c("additive", "dominant", "recessive"))

    fastGxG(mat.snp, model = c("additive", "dominant", "recessive"),
       genes = NULL, interval = c(-10, 10), tol = 10^-8, maxiter = 1000,
       size = 20)

    fastGxGrec(mat.snp, genes = NULL, size = 20)

### Arguments

`snp1, snp2` | numeric vectors of length 3 * t representing two SNPs genotyped at t trios. Each of the t blocks (i.e. `snp1[1:3]`, `snp1[4:6]`, ..., and `snp2[1:3]`, `snp2[4:6]`, ...) must consist of the genotypes of father, mother, and offspring (in this order). The genotypes must be coded by 0, 1, and 2. Missing values are allowed and need to be coded by `NA`. The vectors must thus have the same structure as the output of `trio.check`, or the genotype example data sets such as `trio.gen1` (see `data(trio.gen1)`), and can be generated from a ped-file by, e.g., employing `ped2geno`.
`mat.snp` | a numeric matrix in which each column represents a SNP. Each of the SNPs must have the same structure as `snp`, and can, e.g., be generated from a ped-file by employing `ped2geno`.
`test` | character string naming the GxG test that should be performed. If `test = "epistatic"`, then a conditional logistic regression version of the test proposed by Cordell (2002) is used to test for epistatistical interactions. If `test = "full"`, a conditional logistic regression model containing one parameter for each SNP and one parameter for the interaction of these two SNPs will be fitted and a Wald test for the interaction term will be performed, where a genetic model specified by `model` is assumed for both SNPs. If `test = "lrt"`, a likelihood ratio test is performed comparing the fit of this model with the fit of a conditional logistic regression model only containing the two parameters for the main effects of the SNPs. If `test = "screen"`, a conditional logistic regression model only composed of one parameter for the interaction of the two SNPs will be fitted and a Wald test will be performed, where the genetic model specified by `model` is assumed for both SNPs.
`genes` | a character vector containing the names of the genes to which the SNPs belong. If specified, only the two-way interactions between SNPs from different genes are tested. If `NULL`, all two-way interactions between all possible pairs of SNPs are tested.
`maf` | logical indicating whether the minor allele frequency (computed by considering the genotypes of only the parents) should be added to the output.
`model` | type of model that should be considered. Abbreviations are allowed. Thus, e.g., `model = "dom"` will consider a dominant model for each of the respective two SNPs, and `model = "r"` an recessive model. Ignored if `epistatic = TRUE`.
`interval` | the end-points of the interval to be searched for the root. For details, see `uniroot`.
`tol` | the desired accuracy/convergence tolerance. For details, see `uniroot`.
`maxiter` | the maximum number of iterations. For details, see `uniroot`.
`size` | the number of interactions considered simultaneously when computing the parameter estimates.

### Value

Depending on `test`, the output contains statistics and p-values either of a likelihood ratio test (`test = "epistatic"` or `test = "lrt"`) or the Wald statistics and the corresponding p-values for the interaction term in the conditional logistic regression model (`test = "full"` or `test = "screen"`). If `maf = TRUE`, a vector `maf` containing the minor allele frequencies of each SNP and a matrix `mat.maf` with two columns containing the SNP-wise minor allele frequencies for each tested pair of SNPs are added to the output of `colGxG`.

### Author(s)

Holger Schwender, holger.schwender@udo.edu

### References

Cordell, H. J. (2002). Epistasis: What it Means, what it Doesn't mean, and Statistical Methods to Detect it in Humans. Human Molecular Genetics, 11, 2463-2468.

Schwender, H., Taub, M.A., Beaty, T.H., Marazita, M.L., and Ruczinski, I. (2011). Rapid Testing of SNPs and Gene-Environment Interactions in Case-Parent Trio Data Based on Exact Analytic Parameter Estimation. Biometrics, 68, 766-773.

### See Also

`tdt`, `ped2geno`

### Examples

    # Load the simulated data.
    data(trio.data)

    # The interaction between a particular pair of SNPs
    # (e.g., the ones in the first and second column of
    # mat.test) can be tested by
    gxg.out <- tdtGxG(mat.test[,1], mat.test[,2])

    # All pairs of SNPs in mat.test can be tested by
    gxg.out2 <- colGxG(mat.test)

    # By default, Cordell's likelihood ratio test for
    # epistatistic interactions is used. This is the
    # most sophisticated, but also most time-consuming
    # test. If another test, e.g., the one considering
    # a conditional logistic regression model only
    # containing a term for the interaction, should
    # be used, then this can be done by
    gxg.out3 <- colGxG(mat.test, test = "screen")

    # In this case, different modes of inheritance can
    # be considered (by default, the additive mode is
    # considered). If a dominant model (for both SNPs)
    # should be tested, this can be done by
    gxg.out4 <- colGxG(mat.test, test = "screen", model ="dom")

    # If just a subset of all pairs of SNPs should be
    # tested, e.g., only pairs of SNPs belonging to different
    # genes, then this can be done by first specifying a
    # vector specifying which SNP belongs to which genes.
    # If we, e.g., assume that the first two SNPs in mat.test
    # belong to gene G1 and the other four SNPs to G2, then
    # this vector can be specified by
    genes <- paste("G", rep(1:2, c(2,4)), sep="")

    # and only the pairs of SNPs in which the two SNPs belong
    # to different genes can be tested with Cordell's
    # likelihood ratio test by
    gxg.out5 <- colGxG(mat.test, genes = genes)

[Package trio version 3.25.2 Index]