| testPhenotype {ramwas} | R Documentation |
An internal, function for fast association testing. It tests the phenotype of interest for association with methylation coverage (columns of the data parameter).
testPhenotype(phenotype, data1, cvrtqr)
phenotype |
Vector with phenotype. Can be numerical, character, or factor vector. |
data1 |
Matrix with data (normalized coverage), one variable (CpG) per column. |
cvrtqr |
Orthonormalized covariates, one covariate per column.
See |
The testing is performed using matrix operations and C/C++ code, emplying an approach similar to that in MatrixEQTL.
If the phenotype is numerical, the output is a list with
correlation |
Correlations between residualized phenotype and data columns. |
tstat |
Corresponding T-statistics |
pvalue |
Corresponding P-values |
nVarTested |
Always 1 |
dfFull |
Number of degrees of freedom of the T-test |
If the phenotype is a factor (or character)
Rsquared |
R-squared for the residualized ANOVA F-test. |
Fstat |
Corresponding F-test |
pvalue |
Corresponding P-values |
nVarTested |
First number of degrees of freedom for the F-test. Equal to the number of factor levels reduced by 1 |
dfFull |
Second number of degrees of freedom for the F-test. |
This function is used in several parts of the pipeline.
Andrey A Shabalin andrey.shabalin@gmail.com
See vignettes: browseVignettes("ramwas").
Also check orthonormalizeCovariates.
### Generate data inputs
# Random data matrix with signal in the first column
data = matrix(runif(30*5), nrow = 30, ncol = 5)
data[,1] = data[,1] + rep(0:2, each = 10)
# Two random covariates
cvrt = matrix(runif(2*30), nrow = 30, ncol = 2)
cvrtqr = orthonormalizeCovariates(cvrt)
### First, illustrate with numerical phenotype
# Numerical, 3 value phenotype
phenotype = rep(1:3, each = 10)
# Test for association
output = testPhenotype(phenotype, data, cvrtqr)
# Show the results
print(output)
# Comparing with standard R code for the first variable
summary(lm( data[,1] ~ phenotype + cvrt ))
### First, illustrate with numerical phenotype
# Categorical, 3 group phenotype
phenotype = rep(c("Normal", "Sick", "Dead"), each = 10)
# Test for association
output = testPhenotype(phenotype, data, cvrtqr)
# Show the results
print(output)
# Comparing with standard R code for the first variable
anova(lm( data[,1] ~ cvrt + phenotype ))