| ALINEAMIENTO DE SECUENCIAS BIOLÓGICAS |
|
|||||||||
16-11-2023
|
La publicación “After the storm—Perspectives on the taxonomy of Lactobacillaceae” [1] analiza la reorganización taxonómica de las bacterias pertenecientes a la familia Lactobacillaceae, específicamente los lactobacilos. En 2020, hubo una importante reclasificación taxonómica, donde más de 300 especies bacterianas se reorganizaron en una familia, Lactobacillaceae, con 31 géneros, incluidos 23 nuevos géneros que anteriormente pertenecían a la especie Lactobacillus.
Esta reorganización tiene varias implicaciones:
Facilitación de nuevas descripciones de especies y géneros: la nueva taxonomía facilita la descripción y clasificación de nuevas especies dentro de la familia Lactobacillaceae, proporcionando un marco sólido para la descripción de nuevos géneros.
Resolución mejorada para enfoques de secuenciación: mejora la resolución de técnicas de secuenciación a nivel de género, como la metagenómica basada en 16S rRNA, que ayuda a comprender la composición y función de las comunidades microbianas.
Vinculación de la filogenia con el metabolismo y la ecología: la taxonomía actual permite hipótesis que conectan la historia evolutiva (filogenia) de los lactobacilos con su metabolismo y funciones ecológicas.
Aprobación regulatoria: La nueva taxonomía puede facilitar la aprobación regulatoria de Lactobacillaceae para su uso en alimentos y piensos, ya que aborda criterios relacionados con la evaluación de la seguridad.
Además, la publicación enfatiza la importancia de la familia Lactobacillaceae, particularmente en la fermentación de alimentos, la microbiota intestinal animal y los probióticos, destacando su importancia en diversos aspectos de la salud, el bienestar y las actividades económicas humanas.
En 2020, se publicaron en IJSEM dos cambios taxonómicos en la familia Lactobacillaceae. El primero fue la fusión de la familia Leuconostocaceae en Lactobacillaceae, y el segundo fue la división del género Lactobacillus en 25 géneros separados, siendo uno de ellos conservando el nombre Lactobacillus. Estos cambios taxonómicos resultaron en un aumento de la resolución taxonómica en los estudios de secuenciación de amplicones de ARNr 16S. Ahora, las secuencias pueden ser clasificadas en géneros más específicos y relevantes. En este contexto, se proporciona un código que permite la reclasificación de las secuencias pertenecientes a la familia Lactobacillaceae en un conjunto de datos de amplicones, donde aún se conservan las secuencias de referencia de ASV/OTU, según la nueva taxonomía.
El estudio “After the storm—Perspectives on the taxonomy of Lactobacillaceae” [1] Toma los datos de dos fuentes: El primer grupo de datos obtenidos de la publicación “Carrot Juice Fermentations as Man-Made Microbial Ecosystems Dominated by Lactic Acid Bacteria” [2] y que se han denominado. ferme_pekes_preprocessed que corresponde a muestras de fermentaciones de jugo de zanahoria que los voluntarios hicieron en casa, esto en el contexto del estudio denominado “Fermentaciones de jugo de zanahoria como ecosistemas microbianos artificiales dominados por bacterias del ácido láctico”.
Este estudio se enfoca en el creciente interés por las fermentaciones vegetales espontáneas, que han ganado popularidad debido a sus sabores ricos y presuntos beneficios para la salud. A pesar de su atractivo, la microbiología de estas fermentaciones sigue siendo insuficientemente comprendida, lo que genera preocupaciones en términos de seguridad alimentaria.
Se llevó a cabo un estudio que involucró la recolección de muestras de 38 fermentaciones de jugo de zanahoria y tres fermentaciones de laboratorio. Los resultados mostraron que las bacterias del ácido láctico (BAL) superaron a las enterobacterias entre el tercer y el decimotercer día de fermentación. Se observaron niveles significativos de ácido láctico, manitol y cadaverina en las muestras. El análisis genético reveló que las fermentaciones estuvieron mediadas principalmente por especies de Leuconostoc y Lactobacillus.
A pesar de la detección de enterobacterias en el ADN, su abundancia relativa fue baja en la secuenciación basada en ARN, lo que sugiere la presencia de células bacterianas metabólicamente activas en las muestras. Además, se identificaron nueve grupos filogenéticos diferentes de Lactobacillus en las fermentaciones, pero solo las cepas de los grupos más comunes conservaron la dinámica de fermentación.
En resumen, este estudio demostró que las fermentaciones de jugo de zanahoria generan ecosistemas microbianos robustos, adecuados para investigaciones sobre la diversidad de BAL y la especificidad de nicho. Además, se destacó que la secuenciación basada en ARN reduce significativamente la contaminación de lecturas del huésped en estos tipos de análisis. Finalmente, este estudio demostró que el uso de la secuenciación de amplicones de ARNr 16S basada en ARN reduce en gran medida la contaminación de lectura del huésped.
El segundo grupo de datos pertenecientes al estudio denominado “Microbial enrichment and storage for metagenomics of vaginal, skin, and saliva samples” [3] y que se ha denominado isala_pilot_amplicon_preprocessed que corresponde a muestras vaginales de voluntarias (no tomadas en un contexto clínico), esto en el contexto del estudio denominado “Enriquecimiento y almacenamiento microbiano para metagenómica de muestras vaginales, de piel y de saliva”.
En el estudio, se investigó la recolección, el almacenamiento y el agotamiento del ADN del huésped en muestras de microbioma de la vagina, la piel y la boca. Se utilizó secuenciación metagenómica y de amplicones del gen 16S rRNA, así como qPCR. Se encontró que el hisopo eNAT fue eficaz para mantener la composición microbiana estable. Se evaluaron tres métodos de agotamiento del ADN del huésped, y se descubrió que algunos mostraban sesgo contra taxones gramnegativos. Sin embargo, no se observó una agrupación significativa de las muestras según el método de agotamiento. Se recomendó un enfoque adecuado para cada sitio de muestreo debido a las diferencias en las comunidades microbianas. Este estudio buscaba optimizar los métodos para la secuenciación metagenómica en proyectos de ciencia ciudadana a gran escala.
La secuenciación del gen 16S rRNA utilizando la plataforma MiSeq 16S de Illumina en el ADN extraído mediante diferentes métodos de extracción y agotamiento del ADN del huésped. Se emplearon cebadores específicos para amplificar la región V4 del gen 16S rRNA. Los productos de PCR resultantes se verificaron en un gel de agarosa y se purificaron. Se preparó una biblioteca con las muestras de PCR y se realizó la secuenciación en un secuenciador MiSeq Desktop.
Para la fuente de datos base que denominados ferme_pekes_preprocessed [2], donde los genomas complejos pertenecientes al género Lactobacillus fueron recuperados de la base de datos del genoma NCBI (fecha de descarga: 27 de septiembre de 2017). Posteriormente, se empleó la herramienta barrnap para extraer los genes de ARNr 16S de todos los ensamblajes genómicos obtenidos. Estas secuencias fueron alineadas mediante MAFFT (Multiple Alignment using Fast Fourier Transform), un programa reconocido por su eficacia en la alineación múltiple de secuencias biológicas, especialmente en casos de regiones conservadas y variables, como el gen 16S.
Es importante señalar que, aunque los detalles específicos de los parámetros utilizados para configurar MAFFT no fueron mencionados explícitamente, su configuración puede variar según las necesidades específicas de cada análisis. En general, MAFFT ofrece diferentes estrategias de alineación y configuraciones que pueden adaptarse según la naturaleza de las secuencias y los objetivos del análisis, como la elección de algoritmos específicos y opciones de ajuste.
Con la alineación resultante, se procedió a construir un árbol filogenético utilizando RAxML (versión 8.2.11). RAxML, abreviatura de “Randomized Axelerated Maximum Likelihood”, es un programa especializado en la inferencia filogenética basada en máxima verosimilitud. Esta metodología busca encontrar el árbol que maximiza la probabilidad de observar las secuencias dadas bajo un modelo evolutivo específico. La versión utilizada, RAxML 8.2.11, ofrece funcionalidades mejoradas y opciones avanzadas para la construcción precisa de árboles filogenéticos, lo que permite visualizar las relaciones evolutivas entre las diferentes cepas de Lactobacillus analizadas de manera más detallada y robusta. El árbol filogenético generado proporciona una representación visual de la diversidad y la relación evolutiva entre las cepas de Lactobacillus consideradas en el estudio.
Para el analisis bioinformatico del primer estudio en el entorno R versión 3.4.0, se utilizó el paquete DADA2, que es un paquete utilizado para analizar datos de secuenciación de amplicones, que son fragmentos de ADN amplificado por la reacción en cadena de la polimerasa (PCR) o cualquier otro proceso que dé lugar a la producción de diferentes copias de ese fragmento.
Como primer paso del análisis, se eliminaron secuencias que contenían al menos una base ambigua, lecturas conteniendo un puntaje de calidad menor a 2 y aquellas con más de dos “errores esperados”. Se utilizo el proceso de realizar el recorte de los primeros 10 pares de bases, para truncar las lecturas directas en la posición 240, mientras que las lecturas inversas se truncaron en la posición 160. Se aplico el algoritmo central de DADA2 para la inferencia de muestras, en conjunto con la fusión de lecturas. Se creó una tabla de secuencias que incluía todas las variantes de secuencia de amplicones (ASV), se procedió a la eliminación de quimeras, y la asignación de taxonomía se realizó mediante el uso de la versión 14 del programa RDP (Ribosomal Database Project) que es una plataforma bioinformática que se utiliza para la clasificación taxonómica de secuencias de ARN ribosómico (ARNr).
Se utilizó el paquete Phyloseq versión 1.19.1, para importar la tabla de secuencia y la taxonomía. Se realizo el proceso de eliminación de ADN contaminante, el cálculo de métricas de diversidad alfa y beta, se realizó la agrupación basada en el enlace promedio de la matriz de disimilitud de Bray-Curtis de las 30 muestras del día, utilizando la versión 2.4-4 de Vegan y la generación de perfiles taxonómicos. Además, se llevó a cabo una clasificación adicional de los ASV de interés utilizando la base de datos EzBioCloud 16S.
Para la fuente de datos base denominada isala_pilot_amplicon_preprocessed [3], el análisis bioinformático se llevó a cabo mediante el paquete R DADA2, versión 1.6.0. En este proceso, se aplicaron varios filtros, incluyendo la eliminación de lecturas con más de dos errores esperados, sin realizar recortes. Posteriormente, las lecturas directas e inversas fueron eliminadas por muestra utilizando el algoritmo DADA2. Para optimizar la calidad, las lecturas fueron fusionadas, y durante este procedimiento, se eliminaron pares de lecturas con conflictos de secuencia.
Para abordar la presencia de quimeras, se empleó la función removeBimeraDenovo, garantizando la integridad de las lecturas fusionadas y la eliminación del ruido. La anotación taxonómica de las variantes de secuencia de amplicón (ASV) se realizó desde el nivel de filo hasta el nivel de género mediante la función asignarTaxonomia, utilizando la base de datos de ARNr 16S de referencia de EzBioCloud (Yoon et al., 2017).
Con el objetivo de refinar aún más los datos, se procedió a eliminar los ASV no bacterianos, como mitocondrias y cloroplastos, y aquellos con una longitud superior a 299 bases. En promedio, cada muestra contenía 22,287 lecturas de alta calidad. Todo el manejo y visualización de los datos se llevó a cabo en R versión 3.4.4 (R Core Team, 2020), utilizando el conjunto de paquetes tidyverse y el paquete interno tidyamplicons. Este enfoque integral garantizó la calidad y consistencia en todas las etapas del análisis.
Las secuencias encontradas en estos dos trabajos son base para el trabajo de reorganización taxonómica de las bacterias, en el que se orienta la investigación seleccionada.
En base a los datos obtenidos de los dos estudios antes
caracterizados y utilizados en el estudio que se analiza en este trabajo
(secuencias selecionadas), se procede a realizar los siguientes pasos:
Paso 1: Obtención de las secuencias de las
bacterias encontradas en los dos estudios indicados anteriormente, las
que agruparon en el archivo
SSUrRNA_GTDB05-lactobacillaceae-all_DADA2.fna, en este contexto se toma
una secuencia, por ejemplo, la siguiente:
secuencia_a_buscar = "AGGAGGTGATCCAGCCGCAGGTTCTCCTACGGCTACCTTGTTACGACTTCACCCTAATCA
TCTATCCCACCTTAGGCGGCTGGTTCCTAAAAGGTTACCCCACCGACTTTGGGTGTTACA
AACTCTCATGGTGTGACGGGCGGTGTGTACAAGGCCCGGGAACGTATTCACCGCGGCATG
CTGATCCGCGATTACTAGCGATTCCGACTTCATGTAGGCGAGTTGCAGCCTACAATCCGA
ACTGAGAATGGCTTTAAGAGATTAGCTTACTCTCGCGAGTTCGCAACTCGTTGTACCATC
CATTGTAGCACGTGTGTAGCCCAGGTCATAAGGGGCATGATGATTTGACGTCATCCCCAC
CTTCCTCCGGTTTGTCACCGGCAGTCTCACCAGAGTGCCCAACTTAATGCTGGCAACTGA
TAATAAGGGTTGCGCTCGTTGCGGGACTTAACCCAACATCTCACGACACGAGCTGACGAC
AACCATGCACCACCTGTATCCATGTCCCCGAAGGGAACGTCTAATCTCTTAGATTTGCAT
AGTATGTCAAGACCTGGTAAGGTTCTTCGCGTAGCTTCGAATTAAACCACATGCTCCACC
GCTTGTGCGGGCCCCCGTCAATTCCTTTGAGTTTCAGCCTTGCGGCCGTACTCCCCAGGC
GGAATGCTTAATGCGTTAGCTGCAGCACTGAAGGGCGGAAACCCTCCAACACTTAGCATT
CATCGTTTACGGTATGGACTACCAGGGTATCTAATCCTGTTTGCTACCCATACTTTCGAG
CCTCAGCGTCAGTTACAGACCAGACAGCCGCCTTCGCCACTGGTGTTCTTCCATATATCT
ACGCATTTCACCGCTACACATGGAGTTCCACTGTCCTCTTCTGCACTCAAGTTTCCCAGT
TTCCGATGCACTTCTTCGGTTGAGCCGAAGGCTTTCACATCAGACTTAAAAAACCGCCTG
CGCTCGCTTTACGCCCAATAAATCCGGACAACGCTTGCCACCTACGTATTACCGCGGCTG
CTGGCACGTAGTTAGCCGTGGCTTTCTGGTTAAATACCGTCAATACCTGAACAGTTACTC
TCAGATATGTTCTTCTTTAACAACAGAGTTTTACGAGCCGAAACCCTTCTTCACTCACGC
GGCGTTGCTCCATCAGACTTTCGTCCATTGTGGAAGATTCCCTACTGCTGCCTCCCGTAG
GAGTTTGGGCCGTGTCTCAGTCCCAATGTGGCCGATTACCCTCTCAGGTCGGCTACGTAT
CATCGCCATGGTGAGCCGTTACCCCACCATCTAGCTAATACGCCGCGGGACCATCCAAAA
GTGATAGCTGAAGCCATCTTTCAAACTCGGACCATGCGGTCCAAGTTGTTATGCGGTATT
AGCATCTGTTTCCAGGTGTTATCCCCCGCTTCTGGGCAGGTTTCCCACGTGTTACTCACC
AGTTCGCCACTCACTCAAATGTAAATCATGATGCAAGCACCAATCAATACCAGAGTTCGT
TCGACTTGCATGTATTAGGCACGCCGCCAGCGTTCGTCCTGAGCCAGGATCAAACTCTCA
AATT"
Paso 2: Se procese a buscar en BLAST la
secuencia y obtener información del alineamiento y búsqueda.
library("rentrez")
# Realizar una búsqueda en NCBI para obtener el ID de la secuencia
search_result <- entrez_search(db = "nucleotide", term = secuencia_a_buscar)
# Obtener el ID de la primera secuencia encontrada
if (search_result$count > 0) {
id_secuencia <- search_result$ids[1]
# Obtener información de taxonomía de la secuencia utilizando la API de Entrez
tax_info <- entrez_fetch(db = "nucleotide", id = id_secuencia, rettype = "gb", retmode = "text")
# Extraer la información de taxonomía de la respuesta
taxon_info <- regmatches(tax_info, regexpr("ORGANISM .*", tax_info))
# Imprimir la información de taxonomía
cat(taxon_info, "\n")
} else {
cat("No se encontraron secuencias que coincidan con la búsqueda.\n")
}
## ORGANISM Homo sapiens
## Eukaryota; Metazoa; Chordata; Craniata; Vertebrata; Euteleostomi;
## Mammalia; Eutheria; Euarchontoglires; Primates; Haplorrhini;
## Catarrhini; Hominidae; Homo.
## REFERENCE 1 (bases 1 to 12)
## AUTHORS Coll,M., Aymami,J., van der Marel,G.A., van Boom,J.H., Rich,A. and
## Wang,A.H.
## TITLE Molecular structure of the netropsin-d(CGCGATATCGCG) complex: DNA
## conformation in an alternating AT segment
## JOURNAL Biochemistry 28 (1), 310-320 (1989)
## PUBMED 2539859
## REFERENCE 2 (bases 1 to 12)
## AUTHORS Ogbonna,E.N., Paul,A., Farahat,A.A., Terrell,J.R., Mineva,E.,
## Ogbonna,V., Boykin,D.W. and Wilson,W.D.
## TITLE X-ray Structure Characterization of the Selective Recognition of AT
## Base Pair Sequences
## JOURNAL ACS Bio Med Chem Au 3 (4), 335-348 (2023)
## PUBMED 37599788
## REFERENCE 3 (bases 1 to 12)
## AUTHORS Ogbonna,E.N. and Wilson,W.D.
## TITLE Direct Submission
## JOURNAL Submitted (09-NOV-2022)
## COMMENT DNA (5'-D(*CP*GP*CP*GP*AP*TP*AP*TP*CP*GP*CP*G)-3').
## FEATURES Location/Qualifiers
## source 1..12
## /organism="Homo sapiens"
## /mol_type="other DNA"
## /db_xref="taxon:9606"
## ORIGIN
## 1 cgcgatatcg cg
## //
##
##
# Accede a la página web de NCBI BLAST
url <- paste("https://blast.ncbi.nlm.nih.gov/Blast.cgi?PROGRAM=blastn&PAGE_TYPE=BlastSearch&LINK_LOC=blasthome&DATABASE=nr&QUERY=", secuencia_a_buscar, sep = "")
# browseURL(url)
Paso 3: Se selecciona en el análisis BLAST
el ID (por ejemplo en este caso id=1590 ) de la taxonomía y se procede a
obtener el linaje, esto puede hacerse manualmente o por medio de un
programa como el siguiente.
library(rvest)
# URL de la página de NCBI Taxonomy que deseas analizar
url <- "https://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?id=1590"
# Realiza web scraping de la página
pagina <- read_html(url)
# Encuentra el elemento que contiene el linaje a partir de la palabra "Bacteria"
linaje_elemento <- pagina %>%
html_nodes("a[title='superkingdom'][alt='superkingdom']") %>%
html_text() %>%
trimws()
# Encuentra todos los elementos de linaje a continuación de "Bacteria"
linaje_completo <- c(linaje_elemento, pagina %>%
html_nodes("a[title='clade'], a[title='phylum'], a[title='class'], a[title='order'], a[title='family'], a[title='genus']") %>%
html_text() %>%
trimws())
# Imprime el linaje completo
cat("Linaje:", paste(linaje_completo, collapse = "; "), "\n")
## Linaje: Bacteria; Terrabacteria group; Bacillota; Bacilli; Lactobacillales; Lactobacillaceae; Lactiplantibacillus
Paso 4: El proceso del paso 1 al paso 3 se
repite iterativamente hasta recorrer todas las secuencias seleccionadas
en los dos estudios antes indicados y se obtiene los siguientes grupos
de datos
Para estudio ferme_pekes_preprocessed
Para estudio isala_pilot_amplicon_preprocessed
Paso 5: Con los archivos obtenidos, se
procede a realizar el análisis de la información usaron el siguiente
programa.
# The goal of this script is to demonstrate the reclassification of lactobacilli
# to the new taxonomy introduced by Zheng et al. (2020).
# dependencies: tidyverse v1.3.1, tidyamplicons v0.2.2, dada2 v1.20.0
# install.packages("tidyverse")
# install.packages("devtools")
# devtools::install_github("SWittouck/tidyamplicons")
# BiocManager::install("dada2", version = "3.16")
library(tidyamplicons)
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.3 ✔ readr 2.1.4
## ✔ forcats 1.0.0 ✔ stringr 1.5.0
## ✔ ggplot2 3.4.4 ✔ tibble 3.2.1
## ✔ lubridate 1.9.3 ✔ tidyr 1.3.0
## ✔ purrr 1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::everything() masks tidyr::everything(), tidyamplicons::everything()
## ✖ dplyr::filter() masks stats::filter()
## ✖ readr::guess_encoding() masks rvest::guess_encoding()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(glue)
source("/Users/adolfogonzalez/desa_r/bioinformatica/laboratorio_01/functions.R")
# specify locations of test data, reference database and output files
din_pekes <- "/Users/adolfogonzalez/desa_r/bioinformatica/laboratorio_01/data/ferme_pekes_preprocessed/"
din_isala <- "/Users/adolfogonzalez/desa_r/bioinformatica/laboratorio_01/data/isala_pilot_amplicon_preprocessed/"
fin_refdb <- "/Users/adolfogonzalez/desa_r/bioinformatica/laboratorio_01/data/SSUrRNA_GTDB05-lactobacillaceae-all_DADA2.fna"
dout <- "results"
# create results folder
if (! dir.exists(dout)) dir.create(dout)
# import isala data and select a subset of samples (vaginal samples only,
# extracted with powerfecal, single sample per participant, high quality only)
vaginal <-
din_isala %>%
read_tidyamplicons() %>%
filter_samples(body_site == "V", method == "A", rep == "rep3") %>%
filter_samples(high_quality) %>%
mutate_samples(
dataset = glue("vaginal swabs (n = {numbers(.)[['n_samples']]})")
) %>%
select_samples(sample_id, dataset) %>%
modify_at("taxa", rename, sequence = taxon)
# import ferme pekes data and select high quality samples at day 30 of
# fermentation
pekes <-
din_pekes %>%
read_tidyamplicons() %>%
filter_samples(day == "D30", high_quality) %>%
mutate_samples(
dataset = glue("fermented carrots (n = {numbers(.)[['n_samples']]})")
) %>%
select_samples(sample_id, dataset)
# merge the datasets
combined <- merge_tidyamplicons(vaginal, pekes, taxon_identifier = sequence)
# inspect the data
bar_plot_simplified(combined)
# adapt to the new taxonomy of Lactobacillaceae
combined$taxa <-
combined$taxa %>%
{.$family[.$family == "Leuconostocaceae"] <- "Lactobacillaceae"; .}
combined <-
combined %>%
mutate_taxa(genus_old = genus) %>%
classify_taxa(
refdb = fin_refdb, family == "Lactobacillaceae", sequence_var = "sequence",
min_boot = 30
)
# compare Lactobacillaceae pre- and post-reclassification
combined %>% taxcomp_plot_abundances()
## Warning in RColorBrewer::brewer.pal(n, pal): n too large, allowed maximum for palette Paired is 12
## Returning the palette you asked for with that many colors
ggsave(
paste0(dout, "/lactobacillaceae_reclassifiation.png"), units = "cm",
width = 16, heigh = 12
)
## Warning in RColorBrewer::brewer.pal(n, pal): n too large, allowed maximum for palette Paired is 12
## Returning the palette you asked for with that many colors
Las funciones R (functions.R), son las siguientes:
bar_plot_simplified <- function(ta) {
bar_plot(ta) +
ylab("") + xlab("") +
theme(
axis.text.x = element_blank(),
axis.text.y = element_blank(),
axis.ticks = element_blank()
)
}
taxcomp_plot_abundances_new <- function(ta) {
family <- "Lactobacillaceae"
taxa_pre <-
ta %>%
mutate_taxa(genus = genus_old) %>%
aggregate_taxa(rank = "genus") %>%
add_taxon_name() %>%
add_mean_rel_abundances(condition = "dataset") %>%
taxa() %>%
filter(family == {{family}}) %>%
select(taxon_name, starts_with("mean_rel_abundance")) %>%
mutate(taxonomy = "old genus")
taxa_post <-
ta %>%
aggregate_taxa(rank = "genus") %>%
add_taxon_name() %>%
add_mean_rel_abundances(condition = "dataset") %>%
taxa() %>%
filter(family == {{family}}) %>%
select(taxon_name, starts_with("mean_rel_abundance")) %>%
mutate(taxonomy = "new genera")
levels <- c("old genus", "new genera")
taxa <-
bind_rows(taxa_pre, taxa_post) %>%
pivot_longer(
cols = starts_with("mean_rel_abundance"), names_to = "dataset",
values_to = "mean_rel_abundance"
) %>%
mutate(dataset = str_remove(dataset, "^mean_rel_abundance_in_")) %>%
mutate(dataset = str_replace_all(dataset, "_", " ")) %>%
mutate(taxonomy = factor(taxonomy, levels = levels)) %>%
group_by(taxonomy, dataset) %>%
mutate(
mean_rel_abundance = mean_rel_abundance / sum(mean_rel_abundance)
) %>%
ungroup()
taxonlevels <-
taxa %>%
group_by(taxon_name) %>%
summarize(max = max(mean_rel_abundance), .groups = "drop") %>%
filter(! is.na(taxon_name)) %>%
arrange(desc(max)) %>%
pull(taxon_name)
# Utilizar una paleta de colores personalizada con 12 colores
my_custom_palette <- c("#E41A1C", "#377EB8", "#4DAF4A", "#984EA3", "#FF7F00", "#FFFF33", "#A65628", "#F781BF", "#999999", "#66C2A5", "#FC8D62", "#8DA0CB", "#FF33CC", "#CCFF66", "#FF6600")
taxa %>%
mutate(taxon_name = factor(taxon_name, levels = taxonlevels)) %>%
ggplot(aes(x = 1, y = mean_rel_abundance, fill = taxon_name)) +
geom_col() +
coord_polar(theta = "y") +
facet_grid(taxonomy ~ dataset) +
scale_fill_manual(values = my_custom_palette, name = "taxon") + # Usar la paleta personalizada
theme_bw() +
theme(
axis.text = element_blank(),
axis.ticks = element_blank(),
axis.title = element_blank(),
panel.grid = element_blank()
)
}
taxcomp_plot_abundances <- function(ta) {
family <- "Lactobacillaceae"
taxa_pre <-
ta %>%
mutate_taxa(genus = genus_old) %>%
aggregate_taxa(rank = "genus") %>%
add_taxon_name() %>%
add_mean_rel_abundances(condition = "dataset") %>%
taxa() %>%
filter(family == {{family}}) %>%
select(taxon_name, starts_with("mean_rel_abundance")) %>%
mutate(taxonomy = "old genus")
taxa_post <-
ta %>%
aggregate_taxa(rank = "genus") %>%
add_taxon_name() %>%
add_mean_rel_abundances(condition = "dataset") %>%
taxa() %>%
filter(family == {{family}}) %>%
select(taxon_name, starts_with("mean_rel_abundance")) %>%
mutate(taxonomy = "new genera")
levels <- c("old genus", "new genera")
taxa <-
bind_rows(taxa_pre, taxa_post) %>%
pivot_longer(
cols = starts_with("mean_rel_abundance"), names_to = "dataset",
values_to = "mean_rel_abundance"
) %>%
mutate(dataset = str_remove(dataset, "^mean_rel_abundance_in_")) %>%
mutate(dataset = str_replace_all(dataset, "_", " ")) %>%
mutate(taxonomy = factor(taxonomy, levels = levels)) %>%
group_by(taxonomy, dataset) %>%
mutate(
mean_rel_abundance = mean_rel_abundance / sum(mean_rel_abundance)
) %>%
ungroup()
taxonlevels <-
taxa %>%
group_by(taxon_name) %>%
summarize(max = max(mean_rel_abundance), .groups = "drop") %>%
filter(! is.na(taxon_name)) %>%
arrange(desc(max)) %>%
pull(taxon_name)
taxa %>%
mutate(taxon_name = factor(taxon_name, levels = taxonlevels)) %>%
ggplot(aes(x = 1, y = mean_rel_abundance, fill = taxon_name)) +
geom_col() +
coord_polar(theta = "y") +
facet_grid(taxonomy ~ dataset) +
scale_fill_brewer(palette = "Paired", na.value = "grey", name = "taxon") +
theme_bw() +
theme(
axis.text = element_blank() ,
axis.ticks = element_blank(),
axis.title = element_blank(),
panel.grid = element_blank()
)
}
# probably won't work anymore
taxcomp_plot_asvs <- function(ta, old, new) {
old <- rlang::enquo(old)
new <- rlang::enquo(new)
asv_counts <-
ta %>%
taxa() %>%
filter(family == "Lactobacillaceae") %>%
{bind_rows(
mutate(., taxonomy = "new", genus = {{new}}),
mutate(., taxonomy = "old", genus = {{old}})
)} %>%
mutate(
taxonomy =
factor(
taxonomy, levels = c("old", "new"),
labels = c("old taxonomy", "new taxonomy")
)
) %>%
count(taxonomy, genus, name = "n_asvs")
genuslevels <-
asv_counts %>%
group_by(genus) %>%
summarize(tot = sum(n_asvs), .groups = "drop") %>%
filter(! is.na(genus)) %>%
arrange(desc(tot)) %>%
pull(genus)
asv_counts %>%
mutate(genus = factor(genus, levels = genuslevels)) %>%
ggplot(aes(x = 1, y = n_asvs, fill = genus)) +
geom_col() +
coord_polar(theta = "y") +
facet_wrap(~ taxonomy, ncol = 1) +
scale_fill_brewer(palette = "Paired", na.value = "grey") +
theme_bw() +
theme(
axis.text = element_blank() ,
axis.ticks = element_blank(),
axis.title = element_blank(),
panel.grid = element_blank()
)
}
Parámetros BLASTN
Parámetros generales
Max target sequences: 100
Short
queries: yes
Expect threshold: 0.05
Word size: 28
Parámetros de score
Match: 1
Mismatch: -2
Gap Costs:
Linear
Para replicar la ejecución de la investigación, se tuvo
que inferir una forma de obtener los datos, pasando por los pasos de
validación de las secuencias mediante el alineamiento con BLAST para
obtener información que permitiera determinar el linaje. Estos pasos,
que comprenden desde el Paso 1 hasta el Paso 4, se llevaron a cabo para
obtener los datos necesarios en el contexto de este estudio. La
implementación de estos pasos fue necesaria ya que el estudio original
no proporcionó información detallada sobre cómo se realizó este
proceso.
Se selecciona el artículo científico “Después de la tormenta: perspectivas sobre la taxonomía de Lactobacillaceae”. Se descargan desde el github los dos conjuntos de datos que se utilizan en este estudio, uno relacionado con muestras metagenómicas de lactobacilos en jugo fermentado de zanahoria, y otro de lactobacilos en muestras metagenómicas de saliva, fluidos vaginales y piel. Se repite el análisis de alineamiento sobre una muestra de ADN utilizando la herramienta de alineamiento local BLASTN en línea, se obtiene que la muestra corresponde la misma cepa Lactiplantibacillus plantarum que se indica en el archivo original. Los resultados obtenidos son solo una muestra en comparación con el artículo original. Se observa como diferencia que en la base de datos NCBI existen secuencias más actuales a las que se presentan en el estudio original.
La reorganización taxonómica de las bacterias es crucial debido a la evolución constante de estos microorganismos, las mejoras en las técnicas de investigación y su impacto en herramientas de bioinformática y aplicaciones prácticas. Mantener una taxonomía actualizada es esencial para garantizar la precisión y utilidad de los datos en microbiología y disciplinas afines.
Las bacterias experimentan cambios evolutivos con nuevas especies y relaciones filogenéticas clarificadas, lo que requiere una taxonomía precisa para reflejar la evolución actual. Las técnicas de secuenciación genómica avanzadas proporcionan datos más precisos, impulsando la necesidad de ajustar la taxonomía para abordar la creciente comprensión de la diversidad bacteriana.
Las bases de datos de secuencias genómicas, como BLAST, dependen de la taxonomía actualizada para interpretar secuencias de manera precisa, lo que afecta la filogenia y la identificación de organismos en estudios genéticos y metagenómicos.
Una taxonomía desactualizada puede dificultar la identificación de bacterias patógenas, la selección de cepas beneficiosas y la seguridad alimentaria, lo que tiene implicaciones en medicina, agricultura e industria alimentaria.
[1] N. Qiao, S. Wittouck, P. Mattarelli, J. Zheng, S. Lebeer, G. E.
Felis, y M. G. Gänzle, “After the storm—Perspectives on the taxonomy of
Lactobacillaceae,” JDS communications, vol. 3, no. 3, pp. 222-227, 2022.
[2] S. Wuyts, W. Van Beeck, E. F. M. Oerlemans, S. Wittouck, I.
J. J. Claes, I. De Boeck, S. Weckx, B. Lievens, L. De Vuyst y S. Lebeer,
“Carrot juice fermentations as man-made microbial ecosystems dominated
by lactic acid bacteria,” Applied and Environmental Microbiology,
vol. 84, no. 12, p. e00134-18, 2018.
[3] S. Ahannach, L.
Delanghe, I. Spacova, S. Wittouck, W. Van Beeck, I. De Boeck, y S.
Lebeer, “Microbial enrichment and storage for metagenomics of vaginal,
skin, and saliva samples,” iScience, vol. 24, no. 11, 2021.