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:
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:
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?