Package 'POMaSPU'

Title: Adaptive Association Tests for Multiple Phenotypes using Proportional Odds Model (POM-aSPU)
Description: POM-aSPU test evaluates an association between an ordinal response and multiple phenotypes, for details see Kim and Pan (2017) <DOI:10.1002/gepi.22033>.
Authors: Junghi Kim and Wei Pan
Maintainer: Junghi Kim <[email protected]>
License: GNU General Public License (>= 3)
Version: 1.0.0
Built: 2024-11-15 06:34:51 UTC
Source: CRAN

Help Index


Adaptive Association Tests for Multiple Phenotypes using Proportional Odds Model (POM)

Description

Provides adaptive association tests for multiple phenotypes.

Details

POM-aSPU test evaluates an association between an ordinal response (categorical variable) and multiple variables (a set of phenotypes). We treat single SNP as an ordinal response and multiple traits as predictors in a proportional odds model (POM). The proposed method can be applied to a high dimensional setting where the number of phenotypes (p) can be larger than the sample size (n), in addition to the usual small (p) setting.

Author(s)

Junghi Kim and Wei Pan

References

Kim J, and Pan W (2017). "Adaptive testing for multiple traits in a proportional odds model with applications to detect SNP-brain network associations." Genetic Epidemiology, 41(3), 259–277.


An adaptive sum of powered score (SPU) test for single SNP and mutiple phenotypes

Description

POM-aSPU test evaluates an associations between an ordinal response (e.g. SNP) and multiple phenotypes; provides a series of p-values of POM-SPU(pow) and POM-aSPU tests.

Usage

POMaSPU(Y, Y.level, pheno, Z = NULL, pow = c(1:8, Inf), n.perm)

Arguments

Y

a vector of categorical indicators

Y.level

a vector indicating an order of categories either numeric or character e.g. Y.level = c(0, 1, 2) or Y.level = c("Well", "Mild", "Impaired").

pheno

a numeric phenotype matrix with each row as a different individual and each column as a separate phenotype.

Z

a numeric covariate matrix with each row as a different individual and each column as a covariate to be adjusted.

pow

a vector of the power weight to be used at a trait level (default = c(1:8, Inf)).

n.perm

a numeric value of number of null statistics (default = 1000).

Details

Adaptive association tests for an ordinal variable (e.g. SNP) and multiple phenotypes using POM.

Value

a vector of p-values from POM-SPU(pow) tests and POM-aSPU test.

Note

We provide a permutation based POM-aSPU test where null statistics are generated from permutations.

Author(s)

Junghi Kim and Wei Pan

References

Kim J, and Pan W (2017). "Adaptive testing for multiple traits in a proportional odds model with applications to detect SNP-brain network associations." Genetic Epidemiology, 41(3), 259–277.

Examples

# Example 1) 
# -- simulating phenotypes
# -- n.subjects: number of subjects
# -- n.traits: number of phenotypes

set.seed(136)
n.subjects <- 100
n.traits <- 10
pheno <- matrix(rnorm(n.subjects*n.traits), n.subjects, n.traits)


# -- simulating genotype (Y) and covariates (Z)
Y <- sample(c(0,1,2), n.subjects, replace = TRUE)
Z <- matrix(rnorm(n.subjects*2, 2, 1), n.subjects, 2)

# -- Computing the p-value of POMaSPU test with the permutation based method
Pvl <- POMaSPU(Y = Y, Y.level = c(0,1,2), pheno = pheno, Z = Z,  pow = c(1,2,4,Inf), n.perm = 1000)


# -- Each element of Pvl is a p value of POM-SPU(pow) in order
# -- The last element of Pvl is a p value of POM-aSPU test
Pvl
Pvl[length(Pvl)]


# > Pvl
#     SPU.1     SPU.2     SPU.4   SPU.Inf      aSPU 
# 0.1800000 0.5010000 0.3220000 0.1720000 0.3506494 


# > Pvl[length(Pvl)]
#      aSPU
# 0.3506494



# Example 2) 
# n.subjects <- 100
# n.traits <- 10
# Y <- sample(c("Well", "Mild", "Sick"), n.subjects, replace = TRUE)
# pheno <- matrix(rnorm(n.subjects*n.traits), n.subjects, n.traits)
# Z <- matrix(rnorm(n.subjects*2, 2, 1), n.subjects, 2)
# Pvl <- POMaSPU(Y = Y, Y.level = c("Sick", "Mild",  "Well"), pheno = pheno, Z = Z,  
# 		 pow = c(1,2,4,Inf), n.perm = 1000)