Hi, I attended the QIIME 2.0 workshop at NIH. It was a great opportunity to learn a lot about the new features of QIIME 2.0. I had one suggestion.
For the qiime diversity beta-group-significance command, in the visualization you see pairwise dispersion plots. These plots appear to be the distance to the centroid for each body site. The boxplots are here: https://view.qiime2.org/visualization/?type=html&src=https%3A%2F%2Fdocs.qiime2.org%2F2018.2%2Fdata%2Ftutorials%2Fmoving-pictures%2Fcore-metrics-results%2Funweighted-unifrac-body-site-significance.qzv
You are also given PERMANOVA test statistics.
The issue is PERMANOVA is not testing dispersion. If you were testing dispersion using a PERMDISP it would not be testing the among-group dispersion that the plots are showing in QIIME. From Anderson & Walsh 2013, Ecological Monograph:
The null hypothesis tested by PERMANOVA is that, under the assumption of exchangeability of the sample units among the groups, H0: ββthe centroids of the groups, as defined in the space of the chosen resemblance measure, are equivalent for all groups.ββ
When you are showing dispersion from centroids, you are visualizing results from a PERMDISP, but those should be within-group distances (not among-groups as shown in QIIME):
Even if centroids differ, PERMDISP explicitly tests only H0: ββthe average within-group dispersion (measured by the average distance to group centroid and as defined in the space of the chosen resemblance measure), is equivalent among the groups.ββ
I recommend replacing the plots with package 'vegan' plot from betadisper function. It's a great visualization for both dispersion and centroid positions per group. Here's an example using phlyoseq (and vegan) packages
library(phyloseq)
data("GlobalPatterns")
jacc_GP <- distance(GlobalPatterns, "jaccard", binary = T)
df_GP <- as(sample_data(GlobalPatterns), "data.frame")
## PERMANOVA
adonis_jaccGP <- adonis(jacc_GP ~ SampleType, data = df_GP)
adonis_jaccGP
## Significant PERMANOVA indicates that centroid (or spatial median) among groups is different and/or with-group dispersion among groups is different
## PERMDISP
groups_GP <- df_GP[["SampleType"]]
jacc_dispGP <-betadisper(jacc_GP, groups_GP, type=c("median"))
anova(jacc_dispGP)
## If PERMANOVA and PERMDISP are both significant, you can use plotting to tell if PERMANOVA was significant based on centroid (or spatial median)
plot(jacc_dispGP)
?plot.betadisper
## Would look better with higher replication for groups
plot(jacc_dispGP, label = F)
## Plot with 1 standard deviation ellipses around the group medians
## sample size issue here, but you get the idea
plot(jacc_dispGP, label = F, hull = F, ellipse = T)
## Within-group dispersion that PERMDISP is testing
boxplot(jacc_dispGP)
## pairwise p-values
TukeyHSD(jacc_dispGP)
more here on plot.betadisper: A new default plot for multivariate dispersions