GUniFrac | R Documentation |
A generalized version of commonly used UniFrac distances. It is defined as:
d^{(\alpha)} = \frac{\sum_{i=1}^m b_i (p^A_{i} + p^B_{i})^\alpha
\left\vert \frac{ p^A_{i} - p^B_{i} }{p^A_{i} + p^B_{i}} \right\vert } {
\sum_{i=1}^m b_i (p^A_{i} + p^B_{i})^\alpha},
where m
is the number of branches, b_i
is the length of
i
th branch, p^A_{i}, p^B_{i}
are the branch
proportion for community A and B.
Generalized UniFrac distance contains an extra parameter \alpha
controlling the weight on abundant lineages so the distance is not dominated
by highly abundant lineages. \alpha=0.5
("d_0.5") is overall very robust.
The unweighted ("d_1") and weighted UniFrac ("d_UW") are also implemented.
GUniFrac(otu.tab, tree, size.factor = NULL, alpha = c(0, 0.5, 1), verbose = TRUE)
otu.tab |
a matrix, the OTU count table, row - n sample, column - q OTU |
tree |
a rooted phylogenetic tree of R class “phylo” |
size.factor |
a numeric vector of the normalizing factors to divide the counts. The length is the number of samples. This provides the flexibility to normalize data using the preferred normalization method (e.g. GMPR normalizing factor). If not supplied, the total sum will be used. |
alpha |
a numeric vector, parameters controlling the weight on abundant lineages |
verbose |
logical value, whether to print out the messages |
Return a list containing
unifracs |
a three dimensional array containing all the UniFrac distance matrices |
The function only accepts rooted tree. To root a tree, you may consider using midpoint
from the package phangorn
.
Jun Chen <chen.jun2@mayo.edu>
Chen, J., Bittinger, K., Charlson, E.S., Hoffmann, C., Lewis, J., Wu, G.D., Collman, R.G., Bushman, F.D. and Li, H. (2012). Associating microbiome composition with environmental covariates using generalized UniFrac distances. 28(16): 2106–2113.
Rarefy
, PermanovaG
## Not run:
data(throat.otu.tab)
data(throat.tree)
data(throat.meta)
groups <- throat.meta$SmokingStatus
# Rarefaction
otu.tab.rff <- Rarefy(throat.otu.tab)$otu.tab.rff
# Calculate the UniFracs
unifracs <- GUniFrac(otu.tab.rff, throat.tree, alpha=c(0, 0.5, 1))$unifracs
dw <- unifracs[, , "d_1"] # Weighted UniFrac
du <- unifracs[, , "d_UW"] # Unweighted UniFrac
d0 <- unifracs[, , "d_0"] # GUniFrac with alpha 0
d5 <- unifracs[, , "d_0.5"] # GUniFrac with alpha 0.5
# Permanova - Distance based multivariate analysis of variance
adonis3(as.dist(d5) ~ groups)
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.