Maaslin2 all-groups outcome different from paired-groups

I performed Humann (v3.7) analysis on 23 samples belonging to three groups - A (n=8), B(n=11) and C(n=4). Genefamilies and Pathabundance tables for each sample were converted into relative abundance and all files were joined. Joined table was analyzed by Maaslin2 (v1.14.1) setting group A as reference. It resulted in 423 significant differences (128 between A and B, 295 between A and C).

I also compared genefamilies between two groups. I ran maaslin2 with subset of metadata files as below
metadata-AB (removed samples for group C), A as reference
metadata-BC (removed samples of group A), B as reference
metadata-AC (removed samples of group B), A as reference.

Results of group-pairs analysis
AB - 0 feature with significant difference (vs 128 above)
AC - 28 features with significant difference (vs 295 above)

Any idea what is the reason for this discrepancy?
Which approach should I use - all 3 groups at once or pair-wise?


Hi @gsidhu,

Thanks for using Maaslin. It’s possible that the default prevalence filtering is causing some features to be dropped in one comparison versus the other. In this case check that the total number of features is the same between the two tests. The other thing I would suggest looking at is comparing the raw p-values as the q-values will depend on p-value distributions and as such can differ between runs in this case.

Jacob Nearing

Hi @nearinj

Appreciate your comments. Thanks for taking time to answer.

For all runs, I set
Min Abundance: 0.000000
Min Prevalence: 0.000000

However, removing samples from metadata did result in filtering of features

Group ABC: n=23. Total features fitted - 1,401,839. Filtered features - 0
Group AB: n=19. Total features fitted - 1,268,569. Filtered features - 133270

Shouldn’t filtered features be the features that are present only in samples that were excluded? And this should not affect outcome of remaining features?

I didn’t quite get your comment about raw p-values. Below is range of p-values (qval)

Group ABC: 9.17E-15(2.57E-08) to 3.77E-05(0.249670609)

Group AB: did not get 9.222596e-07(0.5425161) to 0.9999958 (0.9999958)

Why qval for lowest pval for Group Ab is 0.54? What do think happened here? How do I resolve this?