A square symmetric distance matrix in scikit-bio’s DistanceMatrix TSV form:
an empty top-left cell then the IDs as the header row, then one row per ID
(ID + delimited distances). This is what rsomics-beta-diversity emits.
ANOSIM (Clarke 1993). The R statistic is value-exact against
skbio.stats.distance.anosim; the p-value is a seeded permutation estimate
(its own RNG, not numpy’s, so it differs in the last digits from skbio for a
given seed but converges to the same value as permutations grows).
Parse the grouping TSV: one id<TAB>group line per sample (# comment /
header lines skipped), then return the group label for each matrix ID in
matrix order. Extra IDs in the grouping file are ignored; an ID missing from
it is an error (matching skbio’s superset rule).