Contents
INTRODUCTION
This is gudiance for LRTT and comparation of other methods.
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)

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[., ])
| 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
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
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
| 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
| 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 |
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