Last updated: 2024-10-28
Checks: 6 1
Knit directory:
2022_cihr_hiv_rv306_vaginal/
This reproducible R Markdown analysis was created with workflowr (version 1.7.1). The Checks tab describes the reproducibility checks that were applied when the results were created. The Past versions tab lists the development history.
The R Markdown is untracked by Git. To know which version of the R
Markdown file created these results, you’ll want to first commit it to
the Git repo. If you’re still working on the analysis, you can ignore
this warning. When you’re finished, you can run
wflow_publish to commit the R Markdown file and build the
HTML.
Great job! The global environment was empty. Objects defined in the global environment can affect the analysis in your R Markdown file in unknown ways. For reproduciblity it’s best to always run the code in an empty environment.
The command set.seed(20240321) was run prior to running
the code in the R Markdown file. Setting a seed ensures that any results
that rely on randomness, e.g. subsampling or permutations, are
reproducible.
Great job! Recording the operating system, R version, and package versions is critical for reproducibility.
Nice! There were no cached chunks for this analysis, so you can be confident that you successfully produced the results during this run.
Great job! Using relative paths to the files within your workflowr project makes it easier to run your code on other machines.
Great! You are using Git for version control. Tracking code development and connecting the code version to the results is critical for reproducibility.
The results in this page were generated with repository version 704477d. See the Past versions tab to see a history of the changes made to the R Markdown and HTML files.
Note that you need to be careful to ensure that all relevant files for
the analysis have been committed to Git prior to generating the results
(you can use wflow_publish or
wflow_git_commit). workflowr only checks the R Markdown
file, but you know if there are other scripts or data files that it
depends on. Below is the status of the Git repository when the results
were generated:
Ignored files:
Ignored: .Rhistory
Ignored: .Rproj.user/
Ignored: analysis/.Rhistory
Ignored: code/.RData
Ignored: code/.Rhistory
Ignored: data/preprocessed/
Untracked files:
Untracked: analysis/clustering.Rmd
Note that any generated files, e.g. HTML, png, CSS, etc., are not included in this status report because it is ok for generated content to have uncommitted changes.
There are no past versions. Publish this analysis with
wflow_publish() to start tracking its development.
We are exploring the clustering of samples into vaginotype groups and comparing the best approach.
## mre init
mre <- readr::read_rds(here::here("data", "preprocessed", "filt_mre.rds"))
## sub mre init & filter
mre_sub <-
metar::get_meta(mre) %>%
dplyr::filter(Timepoint %in% c(0, 14, 26),
!PatientID %in% c("p_1004","p_1024","p_1037","p_1093","p_1095","p_1108","p_1117","p_1144","p_2006","p_2053","p_2059","p_2096","p_2105","p_2124","p_3021","p_3025")) %>%
dplyr::pull(SampleID) %>%
metar::filter_samples(mre, sample_ids = .)
phy <- metar::get_phyloseq(mre_sub, type = "virgo")
mre_sub <- metar::remove_cat(mre_sub, "Plasm_IgG_3_A244_D11")
mre_sub@taxa@virgo@phyloseq <- phy
sam_vag <- readr::read_csv("~/Documents/RV306/vaginal/Samantha data 08_10_24/RV306_CVM_MBGroups_n97_Pearson4Branches_MSdata.csv") %>%
dplyr::select(-...1, -freq)
colnames(sam_vag)[1] <- "PatientID"
colnames(sam_vag)[2] <- "V1_Sam"
colnames(sam_vag)[3] <- "V4_Sam"
colnames(sam_vag)[4] <- "V6_Sam"
colnames(sam_vag)[5] <- "Long_changes_Sam"
all_vag <- sam_vag %>%
dplyr::mutate(PatientID = paste("p_", PatientID, sep = "")) %>%
dplyr::select(-5)
# generate cluster data
sam_ordered <- all_vag %>%
tidyr::pivot_longer(cols = starts_with("V"), names_to = "Sample", values_to = "Value") %>%
dplyr::select(-2)
sam_ordered$SampleID <- mre_sub@metadata@metadata_df$SampleID
sam_ordered <- sam_ordered %>%
dplyr::arrange(SampleID)
clusters <- as.vector(sam_ordered$Value)
# Plot NMDS
distance_matrix <- vegan::vegdist(as.data.frame(phyloseq::otu_table(mre_sub@taxa@virgo@phyloseq@otu_table)) %>%
t(.) %>% as.data.frame(), method = "bray")
nmds <- vegan::metaMDS(distance_matrix, k = 2, trymax = 100, trace = 0)
nmds_data <- as.data.frame(nmds$points)
nmds_data$Cluster <- as.factor(clusters)
nmds_data$SampleID <- rownames(nmds_data)
ggplot(nmds_data, aes(x = MDS1, y = MDS2, color = Cluster, label = SampleID)) +
geom_point(size = 4) +
geom_text(vjust = -0.5, hjust = 0.5) +
theme_minimal() +
labs(title = "NMDS Plot Colored by Sam Generated Clusters", x = "NMDS1", y = "NMDS2") +
scale_color_manual(values = c("red", "blue", "green", "purple"))
ps <- metar::get_phyloseq(mre_sub, type = "virgo")
ps_RA <- phyloseq::transform_sample_counts(ps, function(x) x / sum(x))
bray_pcoa <-
phyloseq::ordinate(physeq = ps_RA, method = "PCoA", distance = "bray")
ps@sam_data$Cluster <- as.factor(clusters)
phyloseq::plot_ordination(
physeq = ps_RA,
ordination = bray_pcoa,
axes = c(1,2)
) +
geom_point(aes(
color = clusters
), size = 1, stroke = 1) +
theme_classic() +
labs(title = "PCo1 vs PCo2", color = "Cluster")
## run barplots
mre_sub <- metar::virgo_barplots(mre_sub, top_n = 30, save_files = FALSE)
met <- metar::get_meta(mre_sub) %>%
dplyr::right_join(sam_ordered, met, by = NULL) %>%
dplyr::right_join(mre_sub@taxa@virgo@barplots$ta1$top_30$rel_abundance$bray_NMDS1_order_barplot$data, met, by = "SampleID")
plot <- mre_sub@taxa@virgo@barplots$ta1$top_30$rel_abundance$bray_NMDS1_order_barplot
plot$data <- met
plot +
theme(axis.text.x = element_blank()) +
facet_wrap(Value ~ ., scales = "free") +
theme_classic() +
theme(axis.text.x = element_blank())
We’ll first perform the PAM (Partitioning Around Medoids) clustering analysis in order to broadly detect these vagintoypes and be able to uniquely assign each sample to a vaginotype, while ensuring that this assignment does not change in downstream analysis.
## run nmds
mre <- metar::virgo_nmds(mre, top_n = 30, save_files = FALSE)
## create dataframe
metar_all_vag <-
mre %>%
metar::get_taxa("virgo", "nmds") %>%
purrr::pluck("ta1", "top_30", "clustering_results", "sample_cluster_labels") %>%
dplyr::mutate(
vaginotype = dplyr::case_when(
cluster == 1 ~ "L.crispatus",
cluster == 2 ~ "G.vaginalis",
cluster == 3 ~ "L.iners"
),
vaginotype_condition = dplyr::if_else(cluster == 2, "nLD", "LD")
) %>%
dplyr::select(SampleID, vaginotype, vaginotype_condition) %>%
dplyr::left_join(mre@metadata@metadata_df %>% dplyr::select(SampleID, PatientID, Timepoint)) %>%
dplyr::arrange(PatientID, Timepoint) %>%
dplyr::group_by(PatientID) %>%
dplyr::mutate(Timepoint_label = paste0("V", dplyr::row_number(), "_Metar")) %>%
dplyr::select(PatientID, Timepoint_label, vaginotype) %>%
tidyr::spread(key = Timepoint_label, value = vaginotype) %>%
dplyr::select(-5, -6)
colnames(metar_all_vag)[2] <- "V1_metar_all"
colnames(metar_all_vag)[3] <- "V4_metar_all"
colnames(metar_all_vag)[4] <- "V6_metar_all"
# join
all_vag <- merge(all_vag, metar_all_vag, all=TRUE)
# Plot NMDS
clusters <-
mre %>%
metar::get_taxa("virgo", "nmds") %>%
purrr::pluck("ta1", "top_30", "clustering_results", "sample_cluster_labels") %>%
dplyr::mutate(
vaginotype = dplyr::case_when(
cluster == 1 ~ "L.crispatus",
cluster == 2 ~ "G.vaginalis",
cluster == 3 ~ "L.iners"
)) %>%
dplyr::select(cluster) %>%
dplyr::pull()
distance_matrix <- vegan::vegdist(as.data.frame(phyloseq::otu_table(mre@taxa@virgo@phyloseq@otu_table)) %>%
t(.) %>% as.data.frame(), method = "bray")
nmds <- vegan::metaMDS(distance_matrix, k = 2, trymax = 100, trace = 0)
nmds_data <- as.data.frame(nmds$points)
nmds_data$Cluster <- as.factor(clusters)
nmds_data$SampleID <- rownames(nmds_data)
ggplot(nmds_data, aes(x = MDS1, y = MDS2, color = Cluster, label = SampleID)) +
geom_point(size = 4) +
geom_text(vjust = -0.5, hjust = 0.5) +
theme_minimal() +
labs(title = "NMDS Plot Colored by metar_all samples Clusters", x = "NMDS1", y = "NMDS2") +
scale_color_manual(values = c("red", "blue", "green", "purple"))
ps <- metar::get_phyloseq(mre, type = "virgo")
ps_RA <- phyloseq::transform_sample_counts(ps, function(x) x / sum(x))
bray_pcoa <-
phyloseq::ordinate(physeq = ps_RA, method = "PCoA", distance = "bray")
ps@sam_data$Cluster <- as.factor(clusters)
phyloseq::plot_ordination(
physeq = ps_RA,
ordination = bray_pcoa,
axes = c(1,2)
) +
geom_point(aes(
color = as.factor(clusters)
), size = 1, stroke = 1) +
theme_classic() +
labs(title = "PCo1 vs PCo2", color = "Cluster")
# Create dataframe to merge
metar_all_vag <-
mre %>%
metar::get_taxa("virgo", "nmds") %>%
purrr::pluck("ta1", "top_30", "clustering_results", "sample_cluster_labels") %>%
dplyr::mutate(
vaginotype = dplyr::case_when(
cluster == 1 ~ "L.crispatus",
cluster == 2 ~ "G.vaginalis",
cluster == 3 ~ "L.iners"
),
vaginotype_condition = dplyr::if_else(cluster == 2, "nLD", "LD")
) %>%
dplyr::select(SampleID, vaginotype)
## run barplots
mre <- metar::virgo_barplots(mre, top_n = 30, save_files = FALSE)
met <- metar::get_meta(mre) %>%
dplyr::right_join(metar_all_vag, met, by = NULL) %>%
dplyr::right_join(mre@taxa@virgo@barplots$ta1$top_30$rel_abundance$bray_NMDS1_order_barplot$data, met, by = "SampleID")
plot <- mre@taxa@virgo@barplots$ta1$top_30$rel_abundance$bray_NMDS1_order_barplot
plot$data <- met
plot +
theme(axis.text.x = element_blank()) +
facet_wrap(vaginotype ~ ., scales = "free") +
theme_classic() +
theme(axis.text.x = element_blank())
## run nmds
mre_sub <- metar::virgo_nmds(mre_sub, top_n = 30, save_files = FALSE)
## create dataframe
metar_sel_vag <-
mre_sub %>%
metar::get_taxa("virgo", "nmds") %>%
purrr::pluck("ta1", "top_30", "clustering_results", "sample_cluster_labels") %>%
dplyr::mutate(
vaginotype = dplyr::case_when(
cluster == 1 ~ "L.iners",
cluster == 2 ~ "L.crispatus",
cluster == 3 ~ "G.vaginalis"
),
vaginotype_condition = dplyr::if_else(cluster == 2, "nLD", "LD")
) %>%
dplyr::select(SampleID, vaginotype, vaginotype_condition) %>%
dplyr::left_join(mre_sub@metadata@metadata_df %>% dplyr::select(SampleID, PatientID, Timepoint)) %>%
dplyr::arrange(PatientID, Timepoint) %>%
dplyr::group_by(PatientID) %>%
dplyr::mutate(Timepoint_label = paste0("V", dplyr::row_number(), "_Metar")) %>%
dplyr::select(PatientID, Timepoint_label, vaginotype) %>%
tidyr::spread(key = Timepoint_label, value = vaginotype)
colnames(metar_sel_vag)[2] <- "V1_metar_selected"
colnames(metar_sel_vag)[3] <- "V4_metar_selected"
colnames(metar_sel_vag)[4] <- "V6_metar_selected"
# join
all_vag <- merge(all_vag, metar_sel_vag, all=TRUE)
# Plot NMDS
clusters <-
mre_sub %>%
metar::get_taxa("virgo", "nmds") %>%
purrr::pluck("ta1", "top_30", "clustering_results", "sample_cluster_labels") %>%
dplyr::mutate(
vaginotype = dplyr::case_when(
cluster == 1 ~ "L.iners",
cluster == 2 ~ "L.crispatus",
cluster == 3 ~ "G.vaginalis"
)) %>%
dplyr::select(cluster) %>%
dplyr::pull()
distance_matrix <- vegan::vegdist(as.data.frame(phyloseq::otu_table(mre_sub@taxa@virgo@phyloseq@otu_table)) %>%
t(.) %>% as.data.frame(), method = "bray")
nmds <- vegan::metaMDS(distance_matrix, k = 2, trymax = 100, trace = 0)
nmds_data <- as.data.frame(nmds$points)
nmds_data$Cluster <- as.factor(clusters)
nmds_data$SampleID <- rownames(nmds_data)
ggplot(nmds_data, aes(x = MDS1, y = MDS2, color = Cluster, label = SampleID)) +
geom_point(size = 4) +
geom_text(vjust = -0.5, hjust = 0.5) +
theme_minimal() +
labs(title = "NMDS Plot Colored by metar_selected samples Clusters", x = "NMDS1", y = "NMDS2") +
scale_color_manual(values = c("red", "blue", "green", "purple"))
ps <- metar::get_phyloseq(mre_sub, type = "virgo")
ps_RA <- phyloseq::transform_sample_counts(ps, function(x) x / sum(x))
bray_pcoa <-
phyloseq::ordinate(physeq = ps_RA, method = "PCoA", distance = "bray")
ps@sam_data$Cluster <- as.factor(clusters)
phyloseq::plot_ordination(
physeq = ps_RA,
ordination = bray_pcoa,
axes = c(1,2)
) +
geom_point(aes(
color = as.factor(clusters)
), size = 1, stroke = 1) +
theme_classic() +
labs(title = "PCo1 vs PCo2", color = "Cluster")
# Create dataframe to merge
metar_sel_vag <-
mre_sub %>%
metar::get_taxa("virgo", "nmds") %>%
purrr::pluck("ta1", "top_30", "clustering_results", "sample_cluster_labels") %>%
dplyr::mutate(
vaginotype = dplyr::case_when(
cluster == 1 ~ "L.iners",
cluster == 2 ~ "L.crispatus",
cluster == 3 ~ "G.vaginalis"
),
vaginotype_condition = dplyr::if_else(cluster == 2, "nLD", "LD")
) %>%
dplyr::select(SampleID, vaginotype)
## run barplots
mre <- metar::virgo_barplots(mre, top_n = 30, save_files = FALSE)
met <- metar::get_meta(mre_sub) %>%
dplyr::right_join(metar_sel_vag, met, by = NULL) %>%
dplyr::right_join(mre_sub@taxa@virgo@barplots$ta1$top_30$rel_abundance$bray_NMDS1_order_barplot$data, met, by = "SampleID")
plot <- mre_sub@taxa@virgo@barplots$ta1$top_30$rel_abundance$bray_NMDS1_order_barplot
plot$data <- met
plot +
theme(axis.text.x = element_blank()) +
facet_wrap(vaginotype ~ ., scales = "free") +
theme_classic() +
theme(axis.text.x = element_blank())
However, we will try to split the samples as the Burgener lab did, determining MB Groups based on complete hierarchical clustering using pearson distance, and split into 4 branches, using same samples as Sam:
# Obtain abundance data dataframe
abundance_data <- as.data.frame(phyloseq::otu_table(mre@taxa@virgo@phyloseq@otu_table)) %>%
t(.) %>% as.data.frame()
# calculate Pearson distance matrix
pearson_distance <- as.dist(1 - cor(t(abundance_data), method = "pearson"))
# Perform hierarchical clustering using complete linkage
hc <- hclust(pearson_distance, method = "complete")
# Cut the dendrogram to create 4 clusters
clusters <- cutree(hc, k = 4)
# Add the cluster assignments to the original data
abundance_data$Cluster <- clusters
abundance_data$SampleID <- rownames(abundance_data)
# Optional: Plot the dendrogram
plot(hc, main = "Hierarchical Clustering Dendrogram", sub = "", xlab = "",
ylab = "Height")
rect.hclust(hc, k = 4, border = "red")
oriol_all_vag <-
abundance_data %>%
dplyr::select(SampleID, Cluster) %>%
dplyr::left_join(mre@metadata@metadata_df %>% dplyr::select(SampleID, PatientID, Timepoint)) %>%
dplyr::arrange(PatientID, Timepoint) %>%
dplyr::group_by(PatientID) %>%
dplyr::mutate(Timepoint_label = paste0("V", dplyr::row_number(), "_Metar")) %>%
dplyr::select(PatientID, Timepoint_label, Cluster) %>%
tidyr::spread(key = Timepoint_label, value = Cluster) %>%
dplyr::select(-5, -6)
colnames(oriol_all_vag)[2] <- "V1_oriol_all"
colnames(oriol_all_vag)[3] <- "V4_oriol_all"
colnames(oriol_all_vag)[4] <- "V6_oriol_all"
# join
all_vag <- merge(all_vag, oriol_all_vag, all=TRUE)
# Plot NMDS
distance_matrix <- vegan::vegdist(as.data.frame(phyloseq::otu_table(mre@taxa@virgo@phyloseq@otu_table)) %>%
t(.) %>% as.data.frame(), method = "bray")
nmds <- vegan::metaMDS(distance_matrix, k = 2, trymax = 100, trace = 0)
nmds_data <- as.data.frame(nmds$points)
nmds_data$Cluster <- as.factor(clusters)
nmds_data$SampleID <- rownames(nmds_data)
ggplot(nmds_data, aes(x = MDS1, y = MDS2, color = Cluster, label = SampleID)) +
geom_point(size = 4) +
geom_text(vjust = -0.5, hjust = 0.5) +
theme_minimal() +
labs(title = "NMDS Plot Colored by hierarchical clustering_all samples Clusters", x = "NMDS1", y = "NMDS2") +
scale_color_manual(values = c("red", "blue", "green", "purple"))
ps <- metar::get_phyloseq(mre, type = "virgo")
ps_RA <- phyloseq::transform_sample_counts(ps, function(x) x / sum(x))
bray_pcoa <-
phyloseq::ordinate(physeq = ps_RA, method = "PCoA", distance = "bray")
ps@sam_data$Cluster <- as.factor(clusters)
phyloseq::plot_ordination(
physeq = ps_RA,
ordination = bray_pcoa,
axes = c(1,2)
) +
geom_point(aes(
color = as.factor(clusters)
), size = 1, stroke = 1) +
theme_classic() +
labs(title = "PCo1 vs PCo2", color = "Cluster")
# Create dataframe to merge
oriol_all_vag <-
abundance_data %>%
dplyr::select(SampleID, Cluster)
met <- metar::get_meta(mre) %>%
dplyr::right_join(oriol_all_vag, met, by = NULL) %>%
dplyr::right_join(mre@taxa@virgo@barplots$ta1$top_30$rel_abundance$bray_NMDS1_order_barplot$data, met, by = "SampleID")
plot <- mre@taxa@virgo@barplots$ta1$top_30$rel_abundance$bray_NMDS1_order_barplot
plot$data <- met
plot +
theme(axis.text.x = element_blank()) +
facet_wrap(Cluster ~ ., scales = "free") +
theme_classic() +
theme(axis.text.x = element_blank())
# Obtain abundance data dataframe
abundance_data <- as.data.frame(phyloseq::otu_table(mre_sub@taxa@virgo@phyloseq@otu_table)) %>%
t(.) %>% as.data.frame()
# calculate Pearson distance matrix
pearson_distance <- as.dist(1 - cor(t(abundance_data), method = "pearson"))
# Perform hierarchical clustering using complete linkage
hc <- hclust(pearson_distance, method = "complete")
# Cut the dendrogram to create 4 clusters
clusters <- cutree(hc, k = 4)
# Add the cluster assignments to the original data
abundance_data$Cluster <- clusters
abundance_data$SampleID <- rownames(abundance_data)
# Optional: Plot the dendrogram
plot(hc, main = "Hierarchical Clustering Dendrogram", sub = "", xlab = "",
ylab = "Height")
rect.hclust(hc, k = 4, border = "red")
oriol_sel_vag <-
abundance_data %>%
dplyr::select(SampleID, Cluster) %>%
dplyr::left_join(mre_sub@metadata@metadata_df %>% dplyr::select(SampleID, PatientID, Timepoint)) %>%
dplyr::arrange(PatientID, Timepoint) %>%
dplyr::group_by(PatientID) %>%
dplyr::mutate(Timepoint_label = paste0("V", dplyr::row_number(), "_Metar")) %>%
dplyr::select(PatientID, Timepoint_label, Cluster) %>%
tidyr::spread(key = Timepoint_label, value = Cluster)
colnames(oriol_sel_vag)[2] <- "V1_oriol_selected"
colnames(oriol_sel_vag)[3] <- "V4_oriol_selected"
colnames(oriol_sel_vag)[4] <- "V6_oriol_selected"
# join
all_vag <- merge(all_vag, oriol_sel_vag, sort = TRUE, all=TRUE)
# Plot NMDS
distance_matrix <- vegan::vegdist(as.data.frame(phyloseq::otu_table(mre_sub@taxa@virgo@phyloseq@otu_table)) %>%
t(.) %>% as.data.frame(), method = "bray")
nmds <- vegan::metaMDS(distance_matrix, k = 2, trymax = 100, trace = 0)
nmds_data <- as.data.frame(nmds$points)
nmds_data$Cluster <- as.factor(clusters)
nmds_data$SampleID <- rownames(nmds_data)
ggplot(nmds_data, aes(x = MDS1, y = MDS2, color = Cluster, label = SampleID)) +
geom_point(size = 4) +
geom_text(vjust = -0.5, hjust = 0.5) +
theme_minimal() +
labs(title = "NMDS Plot Colored by hierarchical clustering_selected samples Clusters", x = "NMDS1", y = "NMDS2") +
scale_color_manual(values = c("red", "blue", "green", "purple"))
ps <- metar::get_phyloseq(mre_sub, type = "virgo")
ps_RA <- phyloseq::transform_sample_counts(ps, function(x) x / sum(x))
bray_pcoa <-
phyloseq::ordinate(physeq = ps_RA, method = "PCoA", distance = "bray")
ps@sam_data$Cluster <- as.factor(clusters)
phyloseq::plot_ordination(
physeq = ps_RA,
ordination = bray_pcoa,
axes = c(1,2)
) +
geom_point(aes(
color = as.factor(clusters)
), size = 1, stroke = 1) +
theme_classic() +
labs(title = "PCo1 vs PCo2", color = "Cluster")
# Create dataframe to merge
oriol_sel_vag <-
abundance_data %>%
dplyr::select(SampleID, Cluster)
met <- metar::get_meta(mre_sub) %>%
dplyr::right_join(oriol_sel_vag, met, by = NULL) %>%
dplyr::right_join(mre_sub@taxa@virgo@barplots$ta1$top_30$rel_abundance$bray_NMDS1_order_barplot$data, met, by = "SampleID")
plot <- mre_sub@taxa@virgo@barplots$ta1$top_30$rel_abundance$bray_NMDS1_order_barplot
plot$data <- met
plot +
theme(axis.text.x = element_blank()) +
facet_wrap(Cluster ~ ., scales = "free") +
theme_classic() +
theme(axis.text.x = element_blank())
all_vag %>%
kableExtra::kable(caption = "Clustering of samples using different methods") %>%
kableExtra::kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive")) %>%
kableExtra::row_spec(0, bold = TRUE) %>%
kableExtra::column_spec(1, bold = FALSE) %>%
kableExtra::add_header_above(c(" ", "Sam" = 3, "Metar package all samples" = 3, "Metar package selected samples" = 3, "Oriol all samples" = 3, "Oriol selected samples" = 3))
| PatientID | V1_Sam | V4_Sam | V6_Sam | V1_metar_all | V4_metar_all | V6_metar_all | V1_metar_selected | V4_metar_selected | V6_metar_selected | V1_oriol_all | V4_oriol_all | V6_oriol_all | V1_oriol_selected | V4_oriol_selected | V6_oriol_selected |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| p_1004 | NA | NA | NA | L.iners | L.iners | L.iners | NA | NA | NA | 1 | 2 | 2 | NA | NA | NA |
| p_1005 | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | 1 | 1 | 1 | 1 | 1 | 1 |
| p_1008 | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | 1 | 1 | 1 | 1 | 1 | 1 |
| p_1009 | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | G.vaginalis | L.crispatus | G.vaginalis | 1 | 1 | 1 | 1 | 1 | 1 |
| p_1019 | Polymicrobial | L.crispatus | L.crispatus | G.vaginalis | L.crispatus | L.crispatus | G.vaginalis | L.crispatus | L.crispatus | 2 | 1 | 1 | 3 | 1 | 1 |
| p_1024 | NA | NA | NA | G.vaginalis | G.vaginalis | G.vaginalis | NA | NA | NA | 2 | 2 | 2 | NA | NA | NA |
| p_1025 | L.iners | Li-anaerobes | Polymicrobial | L.iners | G.vaginalis | G.vaginalis | L.iners | G.vaginalis | G.vaginalis | 1 | 2 | 2 | 1 | 3 | 3 |
| p_1026 | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | 1 | 1 | 1 | 1 | 1 | 1 |
| p_1030 | Polymicrobial | Polymicrobial | Polymicrobial | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | 2 | 2 | 2 | 3 | 3 | 3 |
| p_1033 | Polymicrobial | Polymicrobial | Li-anaerobes | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | 2 | 2 | 2 | 3 | 3 | 3 |
| p_1037 | NA | NA | NA | L.crispatus | L.iners | NA | NA | NA | NA | 1 | 1 | NA | NA | NA | NA |
| p_1039 | Polymicrobial | Polymicrobial | Polymicrobial | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | 2 | 2 | 2 | 3 | 3 | 3 |
| p_1043 | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | 1 | 1 | 1 | 1 | 1 | 1 |
| p_1044 | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | 1 | 1 | 1 | 1 | 1 | 1 |
| p_1046 | Polymicrobial | L.crispatus | L.crispatus | G.vaginalis | L.crispatus | L.crispatus | G.vaginalis | L.crispatus | L.crispatus | 2 | 1 | 1 | 3 | 1 | 1 |
| p_1050 | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | 1 | 1 | 1 | 1 | 1 | 1 |
| p_1057 | Li-anaerobes | Polymicrobial | Polymicrobial | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | 2 | 2 | 2 | 3 | 3 | 3 |
| p_1058 | L.iners | L.crispatus | Polymicrobial | L.iners | L.crispatus | L.crispatus | L.iners | L.crispatus | G.vaginalis | 1 | 1 | 1 | 1 | 1 | 1 |
| p_1059 | L.crispatus | L.crispatus | L.crispatus | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | 2 | 2 | 2 | 3 | 3 | 3 |
| p_1061 | Polymicrobial | Polymicrobial | Polymicrobial | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | 2 | 2 | 2 | 3 | 3 | 3 |
| p_1063 | L.crispatus | L.iners | L.iners | L.crispatus | L.iners | L.iners | L.crispatus | L.iners | L.iners | 1 | 1 | 1 | 1 | 1 | 1 |
| p_1067 | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | 1 | 1 | 1 | 1 | 1 | 1 |
| p_1069 | Polymicrobial | Polymicrobial | L.iners | G.vaginalis | G.vaginalis | L.iners | G.vaginalis | G.vaginalis | L.iners | 2 | 2 | 1 | 3 | 3 | 1 |
| p_1072 | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | 1 | 1 | 1 | 1 | 1 | 1 |
| p_1073 | Polymicrobial | L.crispatus | L.iners | G.vaginalis | G.vaginalis | L.iners | G.vaginalis | G.vaginalis | L.iners | 2 | 2 | 1 | 3 | 3 | 1 |
| p_1074 | L.crispatus | L.crispatus | Polymicrobial | L.crispatus | L.crispatus | G.vaginalis | L.crispatus | L.crispatus | G.vaginalis | 1 | 1 | 2 | 1 | 1 | 3 |
| p_1078 | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | 1 | 1 | 1 | 1 | 1 | 1 |
| p_1081 | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | 1 | 1 | 1 | 1 | 1 | 1 |
| p_1082 | L.crispatus | Polymicrobial | Polymicrobial | L.crispatus | G.vaginalis | G.vaginalis | L.crispatus | G.vaginalis | G.vaginalis | 1 | 2 | 2 | 1 | 3 | 3 |
| p_1083 | Polymicrobial | L.iners | Polymicrobial | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | 2 | 2 | 2 | 3 | 3 | 3 |
| p_1086 | L.iners | L.iners | NA | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | 1 | 1 | 1 | 1 | 1 | 1 |
| p_1088 | L.crispatus | L.crispatus | L.iners | L.crispatus | L.crispatus | L.iners | L.crispatus | L.crispatus | L.iners | 1 | 1 | 1 | 1 | 1 | 1 |
| p_1090 | L.iners | L.iners | Polymicrobial | L.crispatus | L.iners | G.vaginalis | L.iners | L.iners | G.vaginalis | 1 | 1 | 2 | 1 | 1 | 3 |
| p_1091 | L.iners | L.iners | L.iners | L.iners | L.crispatus | L.iners | L.iners | L.crispatus | L.iners | 1 | 1 | 1 | 1 | 1 | 1 |
| p_1093 | NA | NA | NA | L.iners | L.iners | NA | NA | NA | NA | 1 | 1 | NA | NA | NA | NA |
| p_1094 | Polymicrobial | Polymicrobial | Polymicrobial | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | 2 | 2 | 2 | 3 | 3 | 3 |
| p_1095 | NA | NA | NA | G.vaginalis | G.vaginalis | G.vaginalis | NA | NA | NA | 2 | 2 | 2 | NA | NA | NA |
| p_1096 | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | 1 | 1 | 1 | 1 | 1 | 1 |
| p_1100 | L.iners | Polymicrobial | L.iners | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | 2 | 2 | 2 | 3 | 3 | 3 |
| p_1103 | L.crispatus | L.iners | Li-anaerobes | L.crispatus | L.iners | G.vaginalis | L.crispatus | L.iners | G.vaginalis | 1 | 1 | 2 | 1 | 1 | 3 |
| p_1104 | L.iners | Polymicrobial | Polymicrobial | L.iners | G.vaginalis | G.vaginalis | L.iners | G.vaginalis | G.vaginalis | 1 | 2 | 2 | 1 | 3 | 3 |
| p_1108 | NA | NA | NA | L.crispatus | L.crispatus | NA | NA | NA | NA | 1 | 1 | NA | NA | NA | NA |
| p_1110 | L.crispatus | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | 4 | 1 | 1 | 4 | 1 | 1 |
| p_1112 | Polymicrobial | L.iners | Li-anaerobes | G.vaginalis | L.iners | G.vaginalis | G.vaginalis | L.iners | G.vaginalis | 2 | 2 | 2 | 3 | 1 | 3 |
| p_1113 | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | 1 | 1 | 1 | 1 | 1 | 1 |
| p_1117 | NA | NA | NA | L.crispatus | L.crispatus | G.vaginalis | NA | NA | NA | 1 | 1 | 2 | NA | NA | NA |
| p_1118 | Polymicrobial | L.iners | L.iners | G.vaginalis | L.iners | L.iners | G.vaginalis | L.iners | L.iners | 2 | 1 | 1 | 3 | 1 | 1 |
| p_1119 | Li-anaerobes | Li-anaerobes | Li-anaerobes | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | 2 | 2 | 2 | 3 | 3 | 3 |
| p_1122 | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | 1 | 1 | 1 | 1 | 1 | 1 |
| p_1124 | Polymicrobial | Polymicrobial | Polymicrobial | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | 2 | 2 | 2 | 3 | 3 | 3 |
| p_1125 | Polymicrobial | L.iners | L.iners | G.vaginalis | L.iners | L.iners | G.vaginalis | L.iners | L.iners | 2 | 1 | 1 | 3 | 1 | 1 |
| p_1129 | Polymicrobial | Polymicrobial | L.iners | G.vaginalis | G.vaginalis | L.iners | G.vaginalis | G.vaginalis | L.iners | 2 | 2 | 1 | 3 | 3 | 1 |
| p_1130 | L.iners | Polymicrobial | L.iners | L.iners | G.vaginalis | L.iners | L.iners | G.vaginalis | L.iners | 1 | 2 | 1 | 1 | 3 | 1 |
| p_1132 | L.iners | L.iners | Polymicrobial | L.iners | L.iners | G.vaginalis | L.iners | L.iners | G.vaginalis | 2 | 1 | 2 | 1 | 1 | 3 |
| p_1135 | Polymicrobial | Polymicrobial | Polymicrobial | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | 2 | 2 | 2 | 3 | 3 | 3 |
| p_1136 | L.iners | L.iners | Polymicrobial | L.iners | L.crispatus | G.vaginalis | L.iners | L.crispatus | G.vaginalis | 1 | 1 | 2 | 1 | 1 | 3 |
| p_1137 | Li-anaerobes | Polymicrobial | Polymicrobial | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | 2 | 2 | 2 | 3 | 3 | 3 |
| p_1138 | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | 1 | 1 | 1 | 1 | 1 | 1 |
| p_1141 | Li-anaerobes | L.iners | Li-anaerobes | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | 2 | 2 | 2 | 3 | 3 | 3 |
| p_1144 | NA | NA | NA | G.vaginalis | G.vaginalis | G.vaginalis | NA | NA | NA | 2 | 2 | 2 | NA | NA | NA |
| p_1145 | L.iners | L.crispatus | L.iners | L.iners | L.crispatus | L.crispatus | L.iners | L.crispatus | L.crispatus | 1 | 1 | 1 | 1 | 1 | 1 |
| p_1147 | L.crispatus | L.iners | L.crispatus | L.crispatus | L.iners | L.crispatus | L.crispatus | L.iners | L.crispatus | 1 | 1 | 1 | 1 | 1 | 1 |
| p_1149 | Li-anaerobes | Polymicrobial | Polymicrobial | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | 2 | 2 | 2 | 3 | 3 | 3 |
| p_1150 | Polymicrobial | Polymicrobial | Polymicrobial | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | 2 | 2 | 2 | 3 | 3 | 3 |
| p_1151 | L.iners | Polymicrobial | Polymicrobial | L.iners | G.vaginalis | G.vaginalis | L.iners | G.vaginalis | G.vaginalis | 1 | 2 | 2 | 1 | 3 | 3 |
| p_1152 | Polymicrobial | Polymicrobial | Polymicrobial | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | 2 | 2 | 2 | 3 | 3 | 3 |
| p_2001 | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | 1 | 1 | 1 | 1 | 1 | 1 |
| p_2002 | Polymicrobial | Polymicrobial | Polymicrobial | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | 3 | 3 | 3 | 2 | 2 | 2 |
| p_2004 | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | 1 | 1 | 1 | 1 | 1 | 1 |
| p_2005 | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | 1 | 1 | 1 | 1 | 1 | 1 |
| p_2006 | NA | NA | NA | L.iners | G.vaginalis | NA | NA | NA | NA | 1 | 2 | NA | NA | NA | NA |
| p_2008 | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | 1 | 1 | 1 | 1 | 1 | 1 |
| p_2010 | NA | Polymicrobial | L.iners | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | 2 | 2 | 2 | 3 | 3 | 3 |
| p_2011 | L.iners | Li-anaerobes | Polymicrobial | L.iners | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | 1 | 2 | 2 | 1 | 3 | 3 |
| p_2012 | L.iners | L.iners | Polymicrobial | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | 1 | 1 | 2 | 1 | 1 | 3 |
| p_2017 | L.iners | Polymicrobial | Polymicrobial | L.iners | G.vaginalis | G.vaginalis | L.iners | G.vaginalis | G.vaginalis | 2 | 2 | 2 | 1 | 3 | 3 |
| p_2018 | Polymicrobial | L.iners | L.iners | G.vaginalis | L.iners | L.iners | G.vaginalis | L.iners | L.iners | 2 | 1 | 1 | 3 | 1 | 1 |
| p_2019 | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | 1 | 1 | 1 | 1 | 1 | 1 |
| p_2021 | L.iners | L.iners | L.iners | L.iners | L.iners | L.crispatus | L.iners | L.iners | L.crispatus | 1 | 1 | 1 | 1 | 1 | 1 |
| p_2025 | Polymicrobial | Polymicrobial | Polymicrobial | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | 3 | 3 | 3 | 2 | 2 | 2 |
| p_2044 | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | 1 | 1 | 2 | 1 | 1 | 3 |
| p_2050 | NA | L.iners | Li-anaerobes | G.vaginalis | L.iners | G.vaginalis | G.vaginalis | L.iners | G.vaginalis | 2 | 1 | 2 | 3 | 1 | 3 |
| p_2053 | NA | NA | NA | G.vaginalis | L.iners | L.iners | NA | NA | NA | 2 | 1 | 1 | NA | NA | NA |
| p_2055 | Polymicrobial | Polymicrobial | Li-anaerobes | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | 2 | 2 | 2 | 3 | 3 | 3 |
| p_2059 | NA | NA | NA | L.iners | L.crispatus | L.crispatus | NA | NA | NA | 1 | 1 | 1 | NA | NA | NA |
| p_2071 | L.iners | L.iners | L.iners | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | 1 | 1 | 1 | 1 | 1 | 1 |
| p_2074 | Li-anaerobes | Polymicrobial | Polymicrobial | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | 1 | 1 | 1 | 1 | 1 | 1 |
| p_2079 | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | 1 | 1 | 1 | 1 | 1 | 1 |
| p_2094 | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | 1 | 1 | 1 | 1 | 1 | 1 |
| p_2096 | NA | NA | NA | L.iners | L.iners | L.iners | NA | NA | NA | 1 | 1 | 2 | NA | NA | NA |
| p_2099 | L.iners | L.crispatus | Polymicrobial | L.iners | L.crispatus | G.vaginalis | L.iners | L.crispatus | G.vaginalis | 1 | 1 | 2 | 1 | 1 | 3 |
| p_2101 | Polymicrobial | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | 4 | 1 | 1 | 4 | 1 | 1 |
| p_2102 | L.iners | Polymicrobial | Polymicrobial | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | 2 | 2 | 2 | 3 | 3 | 3 |
| p_2105 | NA | NA | NA | G.vaginalis | G.vaginalis | L.iners | NA | NA | NA | 2 | 2 | 1 | NA | NA | NA |
| p_2106 | L.iners | L.iners | L.iners | L.iners | G.vaginalis | L.iners | G.vaginalis | G.vaginalis | L.iners | 2 | 2 | 1 | 3 | 3 | 1 |
| p_2109 | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | 1 | 1 | 1 | 1 | 1 | 1 |
| p_2110 | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | 1 | 1 | 1 | 1 | 1 | 1 |
| p_2119 | L.crispatus | NA | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | L.crispatus | 1 | 1 | 1 | 1 | 1 | 1 |
| p_2120 | Polymicrobial | Polymicrobial | Polymicrobial | L.iners | G.vaginalis | G.vaginalis | L.iners | G.vaginalis | G.vaginalis | 2 | 2 | 2 | 3 | 3 | 3 |
| p_2123 | L.crispatus | L.crispatus | L.iners | L.crispatus | L.crispatus | L.iners | L.crispatus | L.crispatus | L.iners | 1 | 1 | 2 | 1 | 1 | 3 |
| p_2124 | NA | NA | NA | L.crispatus | L.crispatus | L.crispatus | NA | NA | NA | 1 | 1 | 1 | NA | NA | NA |
| p_2134 | L.iners | L.iners | L.crispatus | L.iners | L.iners | L.crispatus | L.iners | L.iners | L.crispatus | 1 | 1 | 1 | 1 | 1 | 1 |
| p_2140 | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | 1 | 1 | 1 | 1 | 1 | 1 |
| p_2153 | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | 1 | 1 | 1 | 1 | 1 | 1 |
| p_3001 | Polymicrobial | NA | Polymicrobial | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | 2 | 2 | 2 | 3 | 3 | 3 |
| p_3002 | Polymicrobial | L.iners | L.iners | G.vaginalis | L.iners | L.iners | G.vaginalis | L.iners | L.iners | 2 | 1 | 1 | 3 | 1 | 1 |
| p_3008 | L.iners | Li-anaerobes | Polymicrobial | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | 2 | 2 | 2 | 3 | 3 | 3 |
| p_3012 | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | L.iners | 2 | 2 | 1 | 3 | 3 | 1 |
| p_3021 | NA | NA | NA | L.crispatus | L.crispatus | L.crispatus | NA | NA | NA | 1 | 1 | 1 | NA | NA | NA |
| p_3025 | NA | NA | NA | L.iners | L.iners | L.iners | NA | NA | NA | 1 | 1 | 1 | NA | NA | NA |
| p_3046 | Polymicrobial | Polymicrobial | L.iners | G.vaginalis | G.vaginalis | L.iners | G.vaginalis | G.vaginalis | L.iners | 2 | 2 | 1 | 3 | 3 | 1 |
| p_3048 | L.iners | Polymicrobial | Polymicrobial | L.iners | G.vaginalis | G.vaginalis | L.iners | G.vaginalis | G.vaginalis | 1 | 2 | 2 | 1 | 3 | 3 |
| p_3056 | L.crispatus | L.crispatus | L.crispatus | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | G.vaginalis | 2 | 2 | 2 | 3 | 3 | 3 |
sessionInfo()
#> R version 4.4.1 (2024-06-14)
#> Platform: x86_64-pc-linux-gnu
#> Running under: Ubuntu 24.04.1 LTS
#>
#> Matrix products: default
#> BLAS: /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
#> LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.26.so; LAPACK version 3.12.0
#>
#> locale:
#> [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
#> [3] LC_TIME=es_ES.UTF-8 LC_COLLATE=en_US.UTF-8
#> [5] LC_MONETARY=es_ES.UTF-8 LC_MESSAGES=en_US.UTF-8
#> [7] LC_PAPER=es_ES.UTF-8 LC_NAME=C
#> [9] LC_ADDRESS=C LC_TELEPHONE=C
#> [11] LC_MEASUREMENT=es_ES.UTF-8 LC_IDENTIFICATION=C
#>
#> time zone: Europe/Madrid
#> tzcode source: system (glibc)
#>
#> attached base packages:
#> [1] stats graphics grDevices utils datasets methods base
#>
#> other attached packages:
#> [1] ggplot2_3.5.1 magrittr_2.0.3
#>
#> loaded via a namespace (and not attached):
#> [1] ggstatsplot_0.12.4 splines_4.4.1 later_1.3.2
#> [4] tibble_3.2.1 polyclip_1.10-7 datawizard_0.13.0
#> [7] ggmosaic_0.3.3 janitor_2.2.0 lifecycle_1.0.4
#> [10] rstatix_0.7.2 rprojroot_2.0.4 lattice_0.22-6
#> [13] vroom_1.6.5 MASS_7.3-61 insight_0.20.5
#> [16] backports_1.5.0 plotly_4.10.4 sass_0.4.9
#> [19] rmarkdown_2.28 jquerylib_0.1.4 yaml_2.3.10
#> [22] wesanderson_0.3.7 httpuv_1.6.15 ggside_0.3.1
#> [25] RColorBrewer_1.1-3 ade4_1.7-22 lubridate_1.9.3
#> [28] abind_1.4-8 zlibbioc_1.50.0 purrr_1.0.2
#> [31] BiocGenerics_0.50.0 phyloseq_1.48.0 tweenr_2.0.3
#> [34] git2r_0.33.0 GenomeInfoDbData_1.2.12 IRanges_2.38.1
#> [37] S4Vectors_0.42.1 ggrepel_0.9.6 correlation_0.8.5
#> [40] vegan_2.6-8 svglite_2.1.3 permute_0.9-7
#> [43] codetools_0.2-20 xml2_1.3.6 ggforce_0.4.2
#> [46] tidyselect_1.2.1 SuppDists_1.1-9.8 UCSC.utils_1.0.0
#> [49] farver_2.1.2 gmp_0.7-5 effectsize_0.8.9
#> [52] stats4_4.4.1 jsonlite_1.8.9 multtest_2.60.0
#> [55] Formula_1.2-5 survival_3.7-0 iterators_1.0.14
#> [58] systemfonts_1.1.0 foreach_1.5.2 BWStest_0.2.3
#> [61] tools_4.4.1 PMCMRplus_1.9.12 Rcpp_1.0.13
#> [64] glue_1.8.0 xfun_0.48 here_1.0.1
#> [67] mgcv_1.9-1 kSamples_1.2-10 metar_0.1.5
#> [70] GenomeInfoDb_1.40.1 dplyr_1.1.4 withr_3.0.1
#> [73] fastmap_1.2.0 boot_1.3-31 rhdf5filters_1.16.0
#> [76] fansi_1.0.6 digest_0.6.37 timechange_0.3.0
#> [79] R6_2.5.1 colorspace_2.1-1 utf8_1.2.4
#> [82] tidyr_1.3.1 generics_0.1.3 data.table_1.16.2
#> [85] httr_1.4.7 htmlwidgets_1.6.4 parameters_0.22.2
#> [88] pkgconfig_2.0.3 gtable_0.3.5 Rmpfr_0.9-5
#> [91] workflowr_1.7.1 statsExpressions_1.6.0 XVector_0.44.0
#> [94] htmltools_0.5.8.1 carData_3.0-5 biomformat_1.32.0
#> [97] multcompView_0.1-10 scales_1.3.0 kableExtra_1.4.0
#> [100] Biobase_2.64.0 snakecase_0.11.1 knitr_1.48
#> [103] rstudioapi_0.16.0 tzdb_0.4.0 reshape2_1.4.4
#> [106] nlme_3.1-166 cachem_1.1.0 rhdf5_2.48.0
#> [109] stringr_1.5.1 parallel_4.4.1 pillar_1.9.0
#> [112] grid_4.4.1 logger_0.3.0 vctrs_0.6.5
#> [115] promises_1.3.0 ggpubr_0.6.0 car_3.1-3
#> [118] cluster_2.1.6 paletteer_1.6.0 evaluate_1.0.1
#> [121] readr_2.1.5 zeallot_0.1.0 mvtnorm_1.3-1
#> [124] cli_3.6.3 compiler_4.4.1 rlang_1.1.4
#> [127] crayon_1.5.3 ggsignif_0.6.4 labeling_0.4.3
#> [130] rematch2_2.1.2 plyr_1.8.9 forcats_1.0.0
#> [133] fs_1.6.4 stringi_1.8.4 viridisLite_0.4.2
#> [136] munsell_0.5.1 Biostrings_2.72.1 lazyeval_0.2.2
#> [139] bayestestR_0.14.0 Matrix_1.7-0 hms_1.1.3
#> [142] patchwork_1.3.0 bit64_4.5.2 Rhdf5lib_1.26.0
#> [145] highr_0.11 igraph_2.0.3 broom_1.0.7
#> [148] memoise_2.0.1 bslib_0.8.0 bit_4.5.0
#> [151] ape_5.8