Procrustes analysis: p-value


I was recently testing the Procrustes analysis in Qiime2 using these two methods: procrustes_analysis and procrustes_plot. The plot was generated successfully. Yet, it would be nice if we can also obtain the p-value for the statistical significance of the observed object separation congruency, subsequently. It seems Qiime1 could generate the p-value through a Monte Carlo simulation. Is there a workaround in Qiime2 for generating the p-value? I would suggest that a method is included to generate the p-value. Thanks!


(Justine) #2

HI @bsen2018,

Have you checked out the mantel test (qiime diversity mantel)? That’s my go to for showing that two distance matrices are correlated!


1 Like


Hi @jwdebelius, thanks for the suggestion. Yes, I do use mantel test quite often but it has several drawbacks as discussed by Pierre Legendre. More importantly, procrustes analysis (PA) provides a better visualization of the object congruency and serves the specific objective of the study. I noticed that @Nicholas_Bokulich used the PA in one of his paper on quality filtering and included the p- value, which was indeed an apt approach.

1 Like

(Justine) #4

I tend to use procrustes for global patterns and visualisations, and I advocate that, but for p-values, I prefer mantel for my correlations. That said, I clearly need to re-read Legrande & Legrande again, thank you for the suggestion!



Hi @jwdebelius,
I compared the p-values with the protest and mantel functions in the vegan package ®, and it turns out that they are different for the same two OTU tables. Since the underlying algorithms are different for these outputs, it would be nice if the p-value and the Procrustes sum of squares are outputted in Qiime2 PA. In my opinion, it may also not be appropriate to include the p-value output of the Mantel test to support the PA results. Moreover, we are not quite certain if the algorithm/steps for the pcoa (bray distance based) in Qiime2 is the same as the cmdscale (bray distance based) function in R. Also, I am not sure if pcoa method in Qiime2 does any sort of data transformation (e.g., log transformation etc.) or not. :face_with_monocle:

1 Like