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

View source: R/assocRegression.R

Run association testing with regression

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | ```
assocRegression(genoData,
outcome,
model.type = c("linear", "logistic", "poisson", "firth"),
gene.action = c("additive", "dominant", "recessive"),
covar = NULL,
ivar = NULL,
scan.exclude = NULL,
CI = 0.95,
robust = FALSE,
LRtest = FALSE,
PPLtest = TRUE,
effectAllele = c("minor", "alleleA"),
snpStart = NULL,
snpEnd = NULL,
block.size = 5000,
verbose = TRUE)
``` |

`genoData` |
a |

`outcome` |
the name of the phenotype of interest (a column in the scan annotation of |

`model.type` |
the type of model to be run. "linear" uses |

`gene.action` |
"additive" coding sets the marker variable for homozygous minor allele samples = 2, heterozygous samples = 1,
and homozygous major allele samples = 0.
"dominant" coding sets the marker variable for homozygous minor allele samples = 2, heterozygous samples = 2,
and homozygous major allele samples = 0.
"recessive" coding sets the marker variable for homozygous minor allele samples = 2, heterozygous samples = 0,
and homozygous major allele samples = 0.
(If |

`covar` |
a vector of the names of the covariates to adjust for (columns in the scan annotation of |

`ivar` |
the name of the variable in |

`scan.exclude` |
a vector of scanIDs for scans to exclude |

`CI` |
a value between 0 and 1 defining the confidence level for the confidence interval calculations |

`robust` |
logical for whether to use sandwich-based robust standard errors for the "linear" or "logistic" method. The default value is |

`LRtest` |
logical for whether to perform Likelihood Ratio Tests in addition to Wald tests (which are always performed). Applies to linear, logistic, or poisson main effects only. NOTE: Performing the LR tests adds a noticeable amount of computation time. |

`PPLtest` |
logical for whether to use the profile penalized likelihood to compute p values for the "firth" method (in addition to Wald tests, which are always performed). |

`effectAllele` |
whether the effects should be returned in terms of the minor allele for the tested sample ( |

`snpStart` |
index of the first SNP to analyze, defaults to first SNP |

`snpEnd` |
index of the last SNP to analyze, defaults to last SNP |

`block.size` |
number of SNPs to read in at once |

`verbose` |
logical for whether to print status updates |

When using models without interaction terms, the association tests compare the model including the covariates and genotype value to the model
including only the covariates (a test of genotype effect). When using a model with an interaction term, tests are performed for the
interaction term separately as well as a joint test of all the genotype terms (main effects and interactions) to detect any genotype effect.
All tests and p-values are always computed using Wald tests with p-values computed from Chi-Squared distribtuions.
The option of using either sandwich based robust standard errors (which make no model assumptions) or using model based standard errors for the
confidence intervals and Wald tests is specified by the `robust`

parameter.
The option of also performing equivalent Likelihood Ratio tests is available and is specified by the `LRtest`

parameter.

For logistic regression models, if the SNP is monomorphic in either cases or controls, then the slope parameter is not well-defined, and the result will be `NA`

.

Note: Y chromosome SNPs must be analyzed separately because they only use males.

a data.frame with some or all of the following columns:

`snpID` |
the snpIDs |

`chr` |
chromosome SNPs are on |

`effect.allele` |
which allele ("A" or "B") is the effect allele |

`EAF` |
effect allele frequency |

`MAF` |
minor allele frequency |

`n` |
number of samples used to analyze each SNP |

`n0` |
number of controls (outcome=0) used to analyze each SNP |

`n1` |
number of cases (outcome=1) used to analyze each SNP |

`Est` |
beta estimate for genotype |

`SE` |
standard error of beta estimate for the genotype |

`LL` |
Lower limit of confidence interval for Est |

`UL` |
Upper limit of confidence interval for Est |

`Wald.Stat` |
chi-squared test statistic for association |

`Wald.pval` |
p-value for association |

`LR.Stat` |
likelihood ratio test statistic for association |

`LR.pval` |
p-value for association |

`PPL.Stat` |
profile penalized likelihood test statistic for association |

`PPL.pval` |
p-value for association |

`GxE.Est` |
beta estimate for the genotype*ivar interaction parameter ( |

`GxE.SE` |
standard error of beta estimate for the genotype*ivar interaction parameter |

`GxE.Stat` |
Wald test statistic for the genotype*ivar interaction parameter |

`GxE.pval` |
Wald test p-value for the genotype*ivar interaction parameter |

`Joint.Stat` |
Wald test statistic for jointly testing all genotype parameters |

`Joint.pval` |
Wald test p-value for jointly testing all genotype parameters |

Tushar Bhangale, Matthew Conomos, Stephanie Gogarten

`GenotypeData`

, `lm`

,
`glm`

, `logistf`

, `vcovHC`

, `lrtest`

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | ```
library(GWASdata)
data(illuminaScanADF)
scanAnnot <- illuminaScanADF
# exclude duplicated subjects
scan.exclude <- scanAnnot$scanID[scanAnnot$duplicated]
# create some variables for the scans
scanAnnot$sex <- as.factor(scanAnnot$sex)
scanAnnot$age <- rnorm(nrow(scanAnnot), mean=40, sd=10)
scanAnnot$case.cntl.status <- rbinom(nrow(scanAnnot), 1, 0.4)
scanAnnot$blood.pressure[scanAnnot$case.cntl.status==1] <- rnorm(sum(scanAnnot$case.cntl.status==1), mean=100, sd=10)
scanAnnot$blood.pressure[scanAnnot$case.cntl.status==0] <- rnorm(sum(scanAnnot$case.cntl.status==0), mean=90, sd=5)
# create data object
gdsfile <- system.file("extdata", "illumina_geno.gds", package="GWASdata")
gds <- GdsGenotypeReader(gdsfile)
genoData <- GenotypeData(gds, scanAnnot=scanAnnot)
## linear regression
res <- assocRegression(genoData,
outcome="blood.pressure",
model.type="linear",
covar=c("sex", "age"),
scan.exclude=scan.exclude,
snpStart=1, snpEnd=100)
## logistic regression
res <- assocRegression(genoData,
outcome="case.cntl.status",
model.type="logistic",
covar=c("sex", "age"),
scan.exclude=scan.exclude,
snpStart=1, snpEnd=100)
close(genoData)
``` |

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.