Learn R Programming

chopsticks (version 1.36.0)

snp.rhs.tests: Score tests with SNP genotypes as independent variable

Description

This function fits a generalized linear model with phenotype as dependent variable and, optionally, one or more potential confounders of a phenotype-genotype association as independent variable. A series of SNPs (or small groups of SNPs) are then tested for additional association with phenotype. In order to protect against misspecification of the variance function, "robust" tests may be selected.

Usage

snp.rhs.tests(formula, family = "binomial", link, weights, subset, data = parent.frame(), snp.data, tests=NULL, robust = FALSE, control=glm.test.control(maxit=20, epsilon=1.e-4, R2Max=0.98), allow.missing=0.01)

Arguments

formula
The base model formula, with phenotype as dependent variable
family
A string defining the generalized linear model family. This currently should (partially) match one of "binomial", "Poisson", "Gaussian" or "gamma" (case-insensitive)
link
A string defining the link function for the GLM. This currently should (partially) match one of "logit", "log", "identity" or "inverse". The default action is to use the "canonical" link for the family selected
data
The dataframe in which the base model is to be fitted
snp.data
An object of class "snp.matrix" or "X.snp.matrix" containing the SNP data
tests
Either a vector of column names or numbers for the SNPs to be tested, or a list of short vectors defining groups of SNPs to be tested (again by name or number). The default action is to carry out all single SNP tests, but single.snp.tests will often achieve the same result much faster
weights
"Prior" weights in the generalized linear model
subset
Array defining the subset of rows of data to use
robust
If TRUE, robust tests will be carried out
control
An object giving parameters for the IRLS algorithm fitting of the base model and for the acceptable aliasing amongst new terms to be tested. See\ codeglm.test.control
allow.missing
The maximum proportion of SNP genotype that can be missing before it becomes necessary to refit the base model

Value

A data frame containing, for each SNP,
Chi.squared
The value of the chi-squared test statistic
Df
The corresponding degrees of freedom
Df.residual
The residual degrees of freedom for the base model; i.e. the number of observations minus the number of parameters fitted
For the binomial family model, the base model can, in some circumstances, lead to perfect prediction of some observations (i.e. fitted probabilities of 0 or 1). These observations are ignored in subsequent calculations; in particular they are not counted in the residual degrees of freedom. Similarly for Poisson means fitted exactly to zero.

Details

The tests used are asymptotic chi-squared tests based on the vector of first and second derivatives of the log-likelihood with respect to the parameters of the additional model. The "robust" form is a generalized score test in the sense discussed by Boos(1992). The "base" model is first fitted, and a score test is performed for addition of one or more SNP genotypes to the model. Homozygous SNP genotypes are coded 0 or 2 and heterozygous genotypes are coded 1. For SNPs on the X chromosome, males are coded as homozygous females. For X SNPs, it will often be appropriate to include sex of subject in the base model (this is not done automatically). If a data argument is supplied, the snp.data and data objects are aligned by rowname. Otherwise all variables in the model formulae are assumed to be stored in the same order as the columns of the snp.data object.

References

Boos, Dennis D. (1992) On generalized score tests. The American Statistician, 46:327-333.

See Also

single.snp.tests, snp.lhs.tests, snp.matrix-class, X.snp.matrix-class

Examples

Run this code
data(testdata)
slt3 <- snp.rhs.tests(cc~strata(region), family="binomial",
   data=subject.data, snp.data= Autosomes, tests=1:10)
print(slt3)

Run the code above in your browser using DataLab