POMaSPU {POMaSPU}R Documentation

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)

[Package POMaSPU version 1.0.0 Index]