MiSPU: microbiome based sum of powered score (MiSPU)

Description Usage Arguments Value Author(s) References Examples

Description

We propose a class of microbiome based sum of powered score (MiSPU) tests based on a newly defined generalized taxon proportion that combines observed microbial composition information with phylogenetic tree information. Different from the existing methods, a MiSPU test is based on a weighted score of the generalized taxon proportion in a general framework of regression, upweighting more likely to be associated microbial lineages. Our simulations demonstrated that one or more MiSPU tests were more powerful than MiRKAT while correctly controlling type I error rates. An adaptive MiSPU (aMiSPU) test is proposed to combine multiple MiSPU tests with various weights, approximating the most powerful MiSPU for a given scenario, consequently being highly adaptive and high powered across various scenarios.

Usage

1
2
MiSPU(y, X, tree, cov = NULL,model = c("gaussian", "binomial"),
 pow = c(2:8, Inf), n.perm = 1000)

Arguments

y

Outcome of interest. It can be a disease indicator; =0 for controls, =1 for cases. Or it can be a quantitative trait. A vector with length n (number of observations).

X

OTU count table, row - n sample, column - q OTU

tree

Rooted phylogenetic tree of R class “phylo”

cov

Covariates. A matrix with dimension n by p (n :number of observation, p : number of covariates).

model

Use "gaussian" for a quantitative trait, and use "binomial" for a binary trait.

pow

The gamma which controls the weight. Larger pow puts more weight on the variables that have larger absolute score.

n.perm

number of permutations or bootstraps.

Value

A list object, including the results for MiSPU_u, MiSPU_w and aMiSPU.

Author(s)

Chong Wu

References

Pan, W., et al.(2014) A powerful and adaptive association test for rare variants, Genetics, 197(4), 1081-95

Chong, W., Pan, W. (2015) An Adaptive Association Test for Microbiome Data, submitted.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
data(throat.otu.tab)
data(throat.tree)
data(throat.meta)

Y.tmp =throat.meta[,3]
Y = rep(0,dim(throat.meta)[1])
Y[Y.tmp=="Smoker"] = 1

cov.tmp = throat.meta[,c(10,12)]
cov = matrix(1,dim(throat.meta)[1],2)
cov[cov.tmp[,1]== "None",1] = 0
cov[cov.tmp[,2]== "Male",2] = 0

start.time = proc.time()
X = as.matrix(throat.otu.tab)

out = MiSPU(Y,X, throat.tree,cov,model =  "binomial", pow = c(2:8, Inf), n.perm = 1000)
out

Example output

Loading required package: vegan
Loading required package: permute
Loading required package: lattice
This is vegan 2.4-4
Loading required package: ape
Loading required package: aSPU
Loading required package: gee
Loading required package: MASS
Loading required package: mvtnorm
Loading required package: fields
Loading required package: spam
Loading required package: dotCall64
Loading required package: grid
Spam version 2.1-1 (2017-07-02) is loaded.
Type 'help( Spam)' or 'demo( spam)' for a short introduction 
and overview of this package.
Help for individual functions is also obtained by adding the
suffix '.spam' to the function name, e.g. 'help( chol.spam)'.

Attaching package: 'spam'

The following objects are masked from 'package:base':

    backsolve, forwardsolve

Loading required package: maps
Loading required package: matrixStats
Loading required package: cluster

Attaching package: 'cluster'

The following object is masked from 'package:maps':

    votes.repub

$Unweighted
$Unweighted$Ts
      SPU2       SPU3       SPU4       SPU5       SPU6       SPU7       SPU8 
 4.7298495 -0.3944415  0.6027891 -0.2832744  0.2744694 -0.1910116  0.1604917 
    SPUInf       aSPU 
 0.7930445  0.0190000 

$Unweighted$pvs
      SPU2       SPU3       SPU4       SPU5       SPU6       SPU7       SPU8 
0.01900000 0.21400000 0.03900000 0.05300000 0.04100000 0.04400000 0.04200000 
    SPUInf       aSPU 
0.04100000 0.03796204 


$Weighted
$Weighted$Ts
         SPU2          SPU3          SPU4          SPU5          SPU6 
 8.816789e-03 -1.452608e-04  9.389882e-06 -4.534595e-07  2.477021e-08 
         SPU7          SPU8        SPUInf          aSPU 
-1.318319e-09  7.110702e-11  5.387574e-02  1.000000e-03 

$Weighted$pvs
       SPU2        SPU3        SPU4        SPU5        SPU6        SPU7 
0.014000000 0.003000000 0.003000000 0.001000000 0.001000000 0.001000000 
       SPU8      SPUInf        aSPU 
0.001000000 0.001000000 0.001998002 


$aMiSPU
$aMiSPU$Ts
[1] 0.001

$aMiSPU$pvalue
[1] 0.002997003

MiSPU documentation built on May 1, 2019, 8:41 p.m.