Contents


0.1 INTRODUCTION

This is gudiance for LRTT and comparation of other methods.

0.2 Data simulation

library(ape)
p <- 18
set.seed(p); tree <- rtree(p)
plot(tree, use.edge.length = F, show.tip.label = F)
nodelabels(frame = "circle", cex=0.5)
tiplabels(text = tree$tip.label, frame = "circle", cex=0.4)
nodelabels(frame = "circle", node = 32, cex=0.6, bg = 2)

0.2.1 parameter setting on the tree for two group

# chosing the internal node 32 as the differential one
para_mn <- parameter.setting(tree, dist='MN', Group=2, beta=1, taxa.dif=32, seed=11)
para_dm <- parameter.setting(tree, dist='DM', Group=2, beta=1, taxa.dif=32, seed=11, theta = 0.1)
para_zidm <- parameter.setting(tree, dist='ZIDM', Group=2, beta=3, taxa.dif=32, seed=11, theta = 0.1, pi=0.1)

(dif_info<- para_mn$diff.otu%>%match(.,tree$edge[, 2])%>% .[!is.na(.)]%>% para_mn$parameters[., ])
edge.1 edge.2 a1 a2 pi theta Cp1 Cp2
26 32 13 0.1 0.15 0 0 0.0082489 0.0123733
27 32 14 0.9 0.85 0 0 0.0742399 0.0701155
diffotu <- para_zidm$diff.otu

0.2.2 Data simulation

N1 <- N2 <- 50
piz <- runif(tree$Nnode, 0.1, 0.5)
D <- round(runif(N1+N2, p*50, p*1000))
data <-DataSimulate(tree, dist='ZIDM', N1 = N1, N2 = N2,Depth=D,theta = 0.1,
                    a1=para_zidm$parameters$a1, a2=para_zidm$parameters$a2, pi = piz)
otu<- data$data[, 1:length(tree$tip.label)]
colnames(otu) <- tree$tip.label
head(otu)
##      t14   t2  t5 t15 t17  t7 t1 t11 t12  t10  t18  t6 t13   t9   t3   t8
## [1,]   0    0   0   0   0   0  0   0   0    0    0   0 119  960    0  219
## [2,]   0    0   0   0   0   0  0   0   0    0    0   0   0    0 1094    0
## [3,]   0    0   0   0   0   0  0   0   0    0 2585 227  73 4529    0  828
## [4,] 435  137   0  11  15  25  0   0   2  240    0   0   0  191  188  241
## [5,]   0 2950 143 136 292 200 47  63  51 3738 1371  49 155 1092  936    0
## [6,]   0    0   0   0   0   0  0   0   0    0    0   0   0    0  746 1117
##       t16   t4
## [1,]  284  109
## [2,]    0 3273
## [3,] 1148  486
## [4,]  518   88
## [5,] 2432  208
## [6,] 3924  488

0.3 LRTT test

 lrtt1 <- LRTT(tree, otu=otu, Group=data$Group, type='T3', tfun = t.test, pseudo=1)
 lrtt2 <- LRTT(tree, otu=otu, Group=data$Group, type='T3', tfun = t.test, pseudo=0.5)
 lrtt3 <- LRTT(tree, otu=otu, Group=data$Group, type='T3', tfun = t.test,
               pseudo='DM')
 lrtt4 <- LRTT(tree, otu=otu, Group=data$Group, type='T3', tfun = t.test,
               pseudo='ZIDM')
 lrtt5 <- LRTT(tree, otu=otu, Group=data$Group, type='T3', tfun = t.test,
               pseudo='MIX')

 lrtt5$taxa_info
taxa p.value p.adj
19 0.6595051 0.8624298
20 0.0906117 0.5134662
21 0.0075869 0.0644888
22 0.0000296 0.0005032
23 0.3631913 0.6469750
24 0.4112222 0.6469750
25 0.9117972 0.9687845
26 0.1654939 0.6469750
27 0.4176996 0.6469750
28 0.3549442 0.6469750
29 0.8913918 0.9687845
30 0.4566883 0.6469750
31 0.4329498 0.6469750
32 0.9743358 0.9743358
33 0.8258650 0.9687845
34 0.4558057 0.6469750
35 0.4031921 0.6469750
 lrtt5$otu_info
otu p.value deg
t14 0.0000296 FALSE
t2 0.2171269 FALSE
t5 0.0068415 FALSE
t15 0.0429637 FALSE
t17 0.0349003 FALSE
t7 0.1259477 FALSE
t1 0.0088515 FALSE
t11 0.0720934 FALSE
t12 0.0001192 FALSE
t10 0.0075869 FALSE
t18 0.4329498 FALSE
t6 0.4329498 FALSE
t13 0.9743358 FALSE
t9 0.9743358 FALSE
t3 0.8258650 FALSE
t8 0.4031921 FALSE
t16 0.4031921 FALSE
t4 0.4558057 FALSE

0.4 other methods

 # t.test for log relative data
r1 <- apply(log(otu/rowSums(otu)+1), 2, function(x) { 
  t.test(x[1:N1], x[(N1+1):(N1+N2)])$p.value})
# wilcox 
r2 <- apply(otu, 2, function(x) { wilcox.test(x[1:N1], x[(N1+1):(N1+N2)])$p.value})

# zig
r3 <- ZIG(otu, group = data$Group)
## Default value being used.
# ANCOM
adat <- data.frame(otu=otu, Group=data$Group)
r4 <- ANCOM(adat)$detected

ndata <-  list(count=t(otu), dataLabel=c(rep(0, N1), rep(1, N2)))
test.obj <- testDATs(ndata, DE.methods=c("DESeq","edgeR",'Cuffdiff'), nor.methods="default")
r5 <- test.obj$edgeR@data$PValue 
r6 <- test.obj$DESeq@data$pval
r7 <- as.numeric(test.obj$Cuffdiff@data$pValue)
round(cbind(r1, r2, r3, r5, r6, r7), 4)
##         r1     r2     r5     r6     r7
## t14 0.3583 0.5026 0.0067 0.2648 0.7827
## t2  0.9830 0.9114 0.0478 0.4181 0.7912
## t5  0.3273 0.4611 0.0948 0.4623 0.7928
## t15 0.9717 0.9344 0.2410 0.4941 0.8064
## t17 0.2643 0.7146 0.2754 0.5445 0.8576
## t7  0.8142 0.5366 0.2777 0.5576 0.8580
## t1  0.1519 0.4965 0.5358 0.5713 0.8902
## t11 0.0375 0.1004 0.5425 0.6615 0.8960
## t12 0.8071 0.2843 0.6483 0.7691 0.9226
## t10 0.0793 0.4192 0.6599 0.7775 0.9240
## t18 0.4850 0.6131 0.7554 0.8968 0.9449
## t6  0.6073 0.6731 0.7935 1.0000 0.9567
## t13 0.0577 0.2590 0.7938 1.0000 0.9662
## t9  0.4565 0.6020 0.8738 1.0000 0.9692
## t3  0.9894 0.5764 0.8918 1.0000 0.9751
## t8  0.7704 0.5248 0.9337 1.0000 0.9846
## t16 0.3206 0.8055 0.9714 1.0000 0.9958
## t4  0.8364 0.4441 0.9847 1.0000 0.9990