Gemelli Joint-RPCA biplot axis 1 is 100%

I am using qiime2-amplicon-2025.7 conda environment. I am following the Joint-RPCA tutorial on my shotgun metagenomic and 16S V4 shared samples. I used the following code to produce the volatility plot and biplot (My data tables are raw, and not normalized in any way):

qiime gemelli joint-rpca \
  --i-tables renamed-matching-16s-sweden-metagenomics-filtered-table-BP-W.qza table-150-BP-W-gg2-filter-features.qza \
  --m-sample-metadata-file metadata_AVITI_16S_filtered.tsv \
  --p-max-iterations 15 \
  --p-min-feature-frequency 5 \
  --o-biplot joint_biplot.qza \
  --o-distance-matrix joint_distance_matrix.qza \
  --o-cross-validation-error cross_validation_error.qza
#i did not specify a train_test variable but I have 36 samples so I though the default 10 samples would be fine

qiime longitudinal volatility \
    --m-metadata-file cross_validation_error.qza \
    --p-state-column 'iteration' \
    --o-visualization volatility_plot.qzv

qiime emperor biplot \
    --i-biplot joint_biplot.qza \
    --m-sample-metadata-file metadata_AVITI_16S_filtered.tsv \
    --p-number-of-features 25 \
    --o-visualization emperor-biplot.qzv

The resulting plots look like this:
Image

Image

I am confused because my axis 1 is 100% which must not be correct. I thought maybe the difference in read depth could be an issue so I rarefied both datasets and re-ran everything and got a similar axis 1:
Image

Why do you think my axis 1 is 100%? Is rarefying even an accurate thing to do for a joint-RPCA? I noticed in the general RPCA tutorial you can use the rarefied data if the QC test (qiime gemelli qc-rarefy) is significant.

Additionally to my above question, I am interested in doing this strictly in R and came across #105 and https://github.com/vegandevs/vegan/pull/667 but #105 uses vegan::decostand(table, method = "rclr") and vegan::vegdist(rclr_table, method = "euclidean") but the Fix to na.rm in decostand methods alr/clr by antagomir · Pull Request #667 · vegandevs/vegan · GitHub has a Robust Aitchison distance vegdist(..., method="robust.aitchison"). Which one is correctly doing RPCA like gemelli? Can you do Joint-RPCA or phylo-RPCA in R with these vegan functions?

1 Like

Hi @Bark9299,

Could you please run a jaccard PCoA with your rarefied data for us?

Could you also please give some more details about your pipeline.

Thanks,
Justine

1 Like