Skip to content

Publication Plots in R (Self-Study)

This page is a self-study reference. It expands the short Day 2 demo on Getting Data Into R into a complete export checklist, every artifact you're likely to want for a publication-quality figure pipeline, plus the steps to set up the workshop's R project and knit visualizations.Rmd into a finished report.

Work through it at your own pace after the workshop. Every export below assumes you're sitting in the working directory you used during Day 2 with core_metrics/, taxonomy_gg2.qza, and the rest of your artifacts in place.

Export α-Diversity Vectors

qiime tools export \
  --input-path core_metrics/evenness_vector.qza \
  --output-path output_for_R

mv output_for_R/alpha-diversity.tsv output_for_R/evenness_vector.tsv

qiime tools export \
  --input-path core_metrics/faith_pd_vector.qza \
  --output-path output_for_R

mv output_for_R/alpha-diversity.tsv output_for_R/faith_pd_vector.tsv

qiime tools export \
  --input-path core_metrics/observed_features_vector.qza \
  --output-path output_for_R

mv output_for_R/alpha-diversity.tsv output_for_R/observed_features_vector.tsv

qiime tools export \
  --input-path core_metrics/shannon_vector.qza \
  --output-path output_for_R

mv output_for_R/alpha-diversity.tsv output_for_R/shannon_vector.tsv

Why the renames?

Every alpha export writes to alpha-diversity.tsv by default, without the immediate mv, each subsequent export overwrites the previous one.

Export β-Diversity Distance Matrices

qiime tools export \
  --input-path core_metrics/bray_curtis_distance_matrix.qza \
  --output-path output_for_R

mv output_for_R/distance-matrix.tsv output_for_R/bray_curtis_distance_matrix.tsv

qiime tools export \
  --input-path core_metrics/jaccard_distance_matrix.qza \
  --output-path output_for_R

mv output_for_R/distance-matrix.tsv output_for_R/jaccard_distance_matrix.tsv

qiime tools export \
  --input-path core_metrics/unweighted_unifrac_distance_matrix.qza \
  --output-path output_for_R

mv output_for_R/distance-matrix.tsv output_for_R/unweighted_unifrac_distance_matrix.tsv

qiime tools export \
  --input-path core_metrics/weighted_unifrac_distance_matrix.qza \
  --output-path output_for_R

mv output_for_R/distance-matrix.tsv output_for_R/weighted_unifrac_distance_matrix.tsv

Export Taxonomy & Feature Table

Transpose the feature table and join with sequence and taxonomy data into a single tabulated visualization:

qiime feature-table transpose \
  --i-table table_nomitochloro.qza \
  --o-transposed-feature-table table_nomitochloro_transposed.qza

qiime metadata tabulate \
  --m-input-file table_nomitochloro_transposed.qza \
  --m-input-file seqs.qza \
  --m-input-file taxonomy_gg2.qza \
  --o-visualization tabulated_results.qzv

tabulated_results.qzv opens on view.qiime2.org and exports straight to TSV from the table view.

Export ANCOM-BC2 Results

qiime tools export \
  --input-path ancombc_sample_type.qza \
  --output-path output_for_R/ancombc/sample_type

qiime tools export \
  --input-path ancombc_facility.qza \
  --output-path output_for_R/ancombc/facility

Export Machine Learning Feature Importances

Sample type classifier:

qiime feature-table transpose \
  --i-table sample_classifier_results_sample_type/filtered_table_100_features.qza \
  --o-transposed-feature-table sample_classifier_results_sample_type/filtered_table_100_features_transposed.qza

qiime metadata tabulate \
  --m-input-file sample_classifier_results_sample_type/filtered_table_100_features_transposed.qza \
  --m-input-file sample_classifier_results_sample_type/feature_importance.qza \
  --o-visualization sample_classifier_results_sample_type/table_100_feature_importances.qzv

Facility classifier:

qiime feature-table transpose \
  --i-table sample_classifier_results_facility/filtered_table_100_features.qza \
  --o-transposed-feature-table sample_classifier_results_facility/filtered_table_100_features_transposed.qza

qiime metadata tabulate \
  --m-input-file sample_classifier_results_facility/filtered_table_100_features_transposed.qza \
  --m-input-file sample_classifier_results_facility/feature_importance.qza \
  --o-visualization sample_classifier_results_facility/table_100_feature_importances.qzv

Set Up the R Environment

Create output directories and copy the workshop's R project files into your working directory:

mkdir R_output_data
mkdir R_figures

cp /pl/active/courses/2025_summer/CSU_2025/q2_workshop_final/R/visualizations.Rmd .
cp /pl/active/courses/2025_summer/CSU_2025/q2_workshop_final/R/R.Rproj .

Open R.Rproj in RStudio and knit visualizations.Rmd to generate the figures. The Rmd reads from output_for_R/ and writes plots to R_figures/.

Final Directory Layout

After completing all exports your working directory should look like this:

qiime2_tutorial/ ├── visualizations.Rmd ├── R.Rproj ├── tabulated_results.qzv ├── output_for_R/ │ ├── evenness_vector.tsv │ ├── faith_pd_vector.tsv │ ├── observed_features_vector.tsv │ ├── shannon_vector.tsv │ ├── bray_curtis_distance_matrix.tsv │ ├── jaccard_distance_matrix.tsv │ ├── unweighted_unifrac_distance_matrix.tsv │ ├── weighted_unifrac_distance_matrix.tsv │ └── ancombc/ │ ├── sample_type/ │ └── facility/ ├── R_output_data/ └── R_figures/