Procrustes analysis: p-value

Hello!
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!

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!

Best,
Justine

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

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 (R), 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