Análisis evolutivo y funcional de genes asociados al complejo TORC1 en Saccharomyces cerevisiae mediante técnicas de inteligencia artificial
1. Introducción
La Saccharomyces cerevisiae es un hongo unicelular de gran relevancia tanto en la investigación científica como en la industria. Este organismo es ampliamente conocido por su papel clave en la producción de bebidas fermentadas, tales como vino, cerveza, sidra y sake, además de ser indispensable en la elaboración de productos de panadería y repostería. Su versatilidad en procesos industriales se debe, en gran medida, a su capacidad para realizar la fermentación alcohólica, un proceso que convierte los azúcares en etanol y dióxido de carbono, lo cual no solo es fundamental para la producción de alcohol, sino también para dar textura y sabor a productos horneados.
A nivel celular, las quinasas TOR (Target of Rapamycin) desempeñan un rol central en la regulación del crecimiento celular y el metabolismo en respuesta a la disponibilidad de nutrientes. Estas quinasas forman dos complejos funcionales: TORC1 y TORC2, cada uno con funciones específicas y no redundantes. En particular, el complejo TORC1 es crítico para la respuesta al nitrógeno, un nutriente clave que regula una variedad de procesos celulares. En presencia de nitrógeno, TORC1 se activa, desencadenando una cascada de señales que promueven la biosíntesis de proteínas y ribosomas. Este proceso es esencial para mantener la proliferación celular y asegurar una fermentación eficiente, lo que resulta en una mejora significativa en la calidad de los productos fermentados.
La activación de TORC1 no solo permite un buen crecimiento celular , sino que también regula procesos anabólicos como la producción de lípidos y la síntesis de nucleótidos, lo que es vital para soportar la demanda metabólica durante la fermentación. A pesar de su importancia, los mecanismos precisos mediante los cuales TORC1 detecta y responde a las fluctuaciones en los niveles de nitrógeno permanecen en gran parte desconocidos. Comprender estos mecanismos podría ofrecer oportunidades para optimizar procesos industriales y mejorar la eficiencia en la producción de alimentos y bebidas fermentadas.
Investigadores(as) del Centro de Estudios en Ciencia y Tecnología de la Universidad de Santiago de Chile han identificado varios SNPs (polimorfismos de un solo nucleótido) asociados a diferentes Open Reading Frames (ORFs) o marcos de lectura abiertos (127) de los 6,015 que están vinculados a esta quinasa en 270 cepas vínicas. En los casos donde se detectaron SNPs en regiones no codificantes, se registraron los más cercanos a los ORFs, considerando ambas direcciones.
2. Metodología
Para llevar a cabo el análisis, se deben cargar las bibliotecas esenciales que permitirán el procesamiento, modelado y visualización de los datos. En esta fase, se utilizarán herramientas estadísticas y técnicas de inteligencia artificial para examinar la relación entre las variantes genéticas identificadas y la funcionalidad del complejo TORC1 en Saccharomyces cerevisiae.
El flujo de trabajo consta de las siguientes etapas:
Lectura y preprocesamiento de datos. Importación y filtrado de las secuencias alineadas, identificación de ORFs codificantes y no codificantes, y selección de cepas de interés.
Inferencia filogenética. Construcción de árboles filogenéticos mediante métodos de distancia, considerando tanto el conjunto completo de cepas como una selección de 270 cepas vínicas.
Inferencia de árboles de evidencia total. Generación de árboles consenso mediante el cálculo de matrices de distancia acumuladas.
Construcción del espacio de árboles. Evaluación de la variabilidad filogenética mediante distancias de Robinson-Foulds.
Filtrado de genes codificantes y no codificantes. Extracción de subconjuntos específicos de la matriz de distancias para facilitar comparaciones.
Clustering. Agrupamiento de cepas basado en similitudes filogenéticas utilizando métodos de clustering jerárquico y k-means.
A continuación, se procede con la carga de las bibliotecas necesarias para la ejecución del análisis.
# ========================
# CARGAR LIBRERÍAS NECESARIAS
# ========================
library(stringr) # Manejo y manipulación avanzada de cadenas de texto
library(phangorn) # Construcción y análisis de árboles filogenéticos
library(plotly) # Generación de gráficos interactivos en R
library(reshape2) # Transformación y reestructuración de datos en formato largo/ancho
library(visNetwork) # Creación y visualización de grafos interactivos en la web
library(igraph) # Modelado, análisis y visualización de redes y grafos complejos
library(DT) # Cargar librería para tabla interactiva
2.1 Lectura y preprocesamiento de datos
En esta etapa, se realiza la carga y preparación de los datos esenciales para el análisis. Inicialmente, se obtiene la lista de secuencias alineadas almacenadas en la base de datos, eliminando las extensiones de los nombres de archivo para facilitar su manipulación posterior. Posteriormente, se importa la base de datos de ORFs, permitiendo la distinción entre aquellos que son codificantes y no codificantes. A partir de esta clasificación, se seleccionan los ORFs presentes en las secuencias alineadas y se organizan según su funcionalidad.
Adicionalmente, se incorpora la base de datos de cepas vínicas, filtrando exclusivamente aquellas seleccionadas para el estudio, totalizando 270 cepas. Este subconjunto es clave para los análisis posteriores, ya que permite evaluar la variabilidad genética y la relación filogenética entre las distintas variantes. Un adecuado preprocesamiento de los datos garantiza su calidad y correcta integración en las siguientes fases del análisis, lo que resulta fundamental para la inferencia filogenética, la construcción de árboles de evidencia total y el clustering de las cepas en función de su similitud genética.
# Lectura de archivos
lista_orfs <- list.files("BD/Secuencias_alineadas/") # Obtener la lista de archivos de secuencias alineadas
lista_orfs <- gsub(".fasta.phylip", "", lista_orfs) # Remover la extensión del archivo para obtener los nombres base
# Cargar base de datos de ORFs
datos_orfs <- read.csv("BD/BD_EDUARDO/BD_ORFS.csv", sep = ";") # Leer archivo de base de datos con los ORFs
# Selección de ORFs codificantes y no codificantes
orfs_codificantes <- intersect(datos_orfs$ORF[datos_orfs$STATUS == "COD"], lista_orfs) # ORFs codificantes
orfs_no_codificantes <- intersect(datos_orfs$ORF[datos_orfs$STATUS == "NO_COD"], lista_orfs) # ORFs no codificantes
# Lectura de cepas seleccionadas
datos_cepas <- read.csv("BD/BD_EDUARDO/BD_cepas.csv", sep = ";") # Leer archivo de cepas seleccionadas
idx <- which(datos_cepas$Seleccionadas..270 != "") # Filtrar cepas seleccionadas
cepas_seleccionadas <- datos_cepas$Seleccionadas..270.[idx]
2.2 Inferencia filogenética
En esta sección, se lleva a cabo la construcción de árboles filogenéticos para analizar la relación evolutiva entre las cepas de Saccharomyces cerevisiae en función de las variantes genéticas identificadas. Para ello, se inicializan listas y matrices que almacenarán los árboles generados y las distancias genéticas acumuladas.
El proceso de inferencia filogenética se desarrolla en dos niveles. En primer lugar, se construyen árboles filogenéticos basados en todas las cepas disponibles, permitiendo obtener una visión general de la diversidad genética en el conjunto de datos. Estos árboles se generan mediante el método de Neighbor-Joining (NJ), utilizando distancias de Hamming calculadas a partir de las secuencias alineadas. Adicionalmente, se obtiene un árbol consenso a partir de la acumulación de las matrices de distancia, lo que proporciona una representación integrada de la relación filogenética entre las variantes.
En segundo lugar, se realiza una inferencia específica para el subconjunto de 270 cepas seleccionadas, aplicando el mismo procedimiento de construcción de árboles NJ. Este enfoque permite examinar con mayor detalle la estructura filogenética dentro del grupo de interés y comparar las diferencias entre los ORFs codificantes y no codificantes. Para facilitar estos análisis, se construyen matrices de distancia diferenciadas para cada tipo de ORF, asegurando una caracterización precisa de las relaciones evolutivas.
Los árboles filogenéticos generados en esta etapa constituyen la base para los análisis posteriores, incluyendo la inferencia de árboles de evidencia total y la evaluación de similitudes filogenéticas mediante distancias de Robinson-Foulds.
# ========================
# INICIALIZACIÓN DE LISTAS Y MATRICES
# ========================
# Inicialización de listas para almacenar árboles filogenéticos
arboles_completos <- list() # Lista para almacenar árboles de todas las cepas
arboles_filtrados <- list() # Lista para almacenar árboles de cepas seleccionadas
# Inicialización de matrices de distancia acumulada
matriz_distancia_completa <- matrix(0, ncol = 1011, nrow = 1011)
matriz_distancia_codificantes <- matrix(0, ncol = 1011, nrow = 1011)
matriz_distancia_no_codificantes <- matrix(0, ncol = 1011, nrow = 1011)
matriz_distancia_todos <- matrix(0, ncol = 1011, nrow = 1011)
matriz_distancia_completa_270 <- matrix(0, ncol = 270, nrow = 270)
matriz_distancia_codificantes_270 <- matrix(0, ncol = 270, nrow = 270)
matriz_distancia_no_codificantes_270 <- matrix(0, ncol = 270, nrow = 270)
matriz_distancia_todos_270 <- matrix(0, ncol = 270, nrow = 270)
# ========================
# CÁLCULO DE ÁRBOLES FILOGENÉTICOS
# ========================
# Calcular árboles
for (idx in 1:length(lista_orfs)) { # Iterar sobre los primeros 10 ORFs
message(sprintf("\t- Procesando árbol %d de %d...", idx, length(lista_orfs)))
secuencia <- read.phyDat(paste("BD/Secuencias_alineadas/", lista_orfs[idx], ".fasta.phylip", sep = ""))
# Árboles con todas las cepas
arbol <- NJ(dist.hamming(secuencia))
arbol <- midpoint(multi2di(arbol))
arboles_completos[[idx]] <- arbol
# Árbol consenso
matriz_distancia_completa <- matriz_distancia_completa + as.matrix(dist.hamming(secuencia))
# Actualizar matrices de distancia según el tipo de ORF
if (lista_orfs[idx] %in% orfs_codificantes)
matriz_distancia_codificantes <- matriz_distancia_codificantes + as.matrix(dist.hamming(secuencia))
if (lista_orfs[idx] %in% orfs_no_codificantes)
matriz_distancia_no_codificantes <- matriz_distancia_no_codificantes + as.matrix(dist.hamming(secuencia))
if ((lista_orfs[idx] %in% orfs_no_codificantes) | (lista_orfs[idx] %in% orfs_codificantes))
matriz_distancia_todos <- matriz_distancia_todos + as.matrix(dist.hamming(secuencia))
# Árbol con 270 cepas seleccionadas
idx_cepas <- match(cepas_seleccionadas, names(secuencia))
secuencias_filtradas <- secuencia[idx_cepas]
arbol <- NJ(dist.hamming(secuencias_filtradas))
arbol <- midpoint(multi2di(arbol))
arboles_filtrados[[idx]] <- arbol
# Actualizar matrices de distancia para 270 cepas
matriz_distancia_completa_270 <- matriz_distancia_completa_270 + as.matrix(dist.hamming(secuencias_filtradas))
if (lista_orfs[idx] %in% orfs_codificantes)
matriz_distancia_codificantes_270 <- matriz_distancia_codificantes_270 + as.matrix(dist.hamming(secuencias_filtradas))
if (lista_orfs[idx] %in% orfs_no_codificantes)
matriz_distancia_no_codificantes_270 <- matriz_distancia_no_codificantes_270 + as.matrix(dist.hamming(secuencias_filtradas))
if ((lista_orfs[idx] %in% orfs_no_codificantes) | (lista_orfs[idx] %in% orfs_codificantes))
matriz_distancia_todos_270 <- matriz_distancia_todos_270 + as.matrix(dist.hamming(secuencias_filtradas))
}
2.3 Inferencia de árboles de evidencia total
En esta etapa, se construyen árboles de evidencia total (TE) con el objetivo de integrar la información de múltiples ORFs en un único árbol filogenético representativo. Estos árboles permiten sintetizar la variabilidad genética observada en las distintas cepas de Saccharomyces cerevisiae, proporcionando una visión consolidada de sus relaciones evolutivas.
El procedimiento se basa en la generación de árboles consenso a partir de las matrices de distancia acumuladas obtenidas en la inferencia filogenética previa. Se emplea el método Neighbor-Joining (NJ) sobre las siguientes matrices de distancia: (i) la matriz completa con todas las variantes analizadas, (ii) la matriz específica para los ORFs codificantes, (iii) la matriz de ORFs no codificantes y (iv) la combinación de ambas matrices. Este enfoque permite evaluar si las estructuras filogenéticas difieren dependiendo del tipo de ORF considerado.
Para mejorar la precisión de la inferencia, se aplican transformaciones de midpoint rooting y multi2di para asegurar una correcta bifurcación en los árboles generados. Posteriormente, los árboles obtenidos se almacenan en archivos .tree, facilitando su visualización y análisis posterior. Se realiza este procedimiento tanto para el conjunto completo de 1011 cepas como para el subconjunto de 270 cepas seleccionadas.
Estos árboles de evidencia total servirán como referencia en los análisis posteriores, incluyendo la evaluación de distancias filogenéticas mediante el cálculo de distancias de Robinson-Foulds y el análisis de clustering basado en similitudes genéticas.
#========================
# CÁLCULO DE ÁRBOLES DE EVIDENCIA TOTAL (TE)
#========================
#Calcular árbol de evidencia total (TE)
arbol_TE_1011 <- midpoint(multi2di(NJ(matriz_distancia_completa)))
arbol_TE_1011_COD <- midpoint(multi2di(NJ(matriz_distancia_codificantes)))
arbol_TE_1011_NOCOD <- midpoint(multi2di(NJ(matriz_distancia_no_codificantes)))
arbol_TE_1011_ALL <- midpoint(multi2di(NJ(matriz_distancia_no_codificantes+matriz_distancia_codificantes)))
arboles_1011 = c(arboles_completos,list(arbol_TE_1011),list(arbol_TE_1011_COD),list(arbol_TE_1011_NOCOD),list(arbol_TE_1011_ALL))
names(arboles_1011) <- c(lista_orfs,"arbol_TE_1011","arbol_TE_1011_COD","arbol_TE_1011_NOCOD","arbol_TE_1011_ALL")
write.tree(arboles_1011, "RESULTADOS/TREES/arboles_1011.tree", tree.names = TRUE)
# Guardar árboles en archivo .tree
arbol_TE_270 <- midpoint(multi2di(NJ(matriz_distancia_completa_270)))
arbol_TE_270_COD <- midpoint(multi2di(NJ(matriz_distancia_codificantes_270)))
arbol_TE_270_NOCOD <- midpoint(multi2di(NJ(matriz_distancia_no_codificantes_270)))
arbol_TE_270_ALL <- midpoint(multi2di(NJ(matriz_distancia_codificantes_270+matriz_distancia_no_codificantes_270)))
arboles_270 = c(arboles_filtrados,list(arbol_TE_270 ),list(arbol_TE_270_COD),list(arbol_TE_270_NOCOD),list(arbol_TE_270_ALL))
names(arboles_270) <- c(lista_orfs,"arbol_TE_270","arbol_TE_270_COD","arbol_TE_270_NOCOD","arbol_TE_270_ALL")
write.tree(arboles_270, "RESULTADOS/TREES/arboles_270.tree", tree.names = TRUE)
2.4 Construcción de espacio de árboles
En esta etapa, se analiza la variabilidad estructural de los árboles filogenéticos generados previamente mediante el cálculo de distancias de Robinson-Foulds. Esta métrica cuantifica las diferencias topológicas entre árboles, permitiendo evaluar la estabilidad y consistencia de las inferencias filogenéticas.
Para ello, se cargan los conjuntos de árboles correspondientes a los 1011 genomas completos y a las 270 cepas seleccionadas. A partir de estos árboles, se calcula la distancia RF normalizada, asegurando la comparabilidad de los resultados. Posteriormente, estas distancias se transforman en matrices, que servirán como base para estudios de agrupamiento y análisis de redes filogenéticas.
Las matrices de distancia resultantes se almacenan en formato .csv, lo que facilita su uso en análisis posteriores. Este proceso permite visualizar cómo varían las relaciones filogenéticas entre los árboles y detectar posibles inconsistencias en las inferencias evolutivas. La información obtenida en esta fase será clave para la evaluación del agrupamiento de cepas y la identificación de patrones evolutivos en el complejo TORC1 de Saccharomyces cerevisiae.
# ========================
# ANÁLISIS DE DISTANCIAS ROBINSON-FOULDS
# ========================
# Suponiendo que tienes un objeto multiPhylo llamado 'trees'
trees_1011 <- read.tree("RESULTADOS/TREES/arboles_1011.tree") # Cargar el conjunto de árboles si aún no lo tienes
distance_1011 = RF.dist(trees_1011, normalize = TRUE, check.labels = TRUE)
distance_1011_matrix=as.matrix(distance_1011)
write.csv(distance_1011_matrix, "RESULTADOS/RF_DISTANCES/distance_1011_complete_matrix.csv", row.names = TRUE,col.names = TRUE)
# Suponiendo que tienes un objeto multiPhylo llamado 'trees'
trees_270 <- read.tree("RESULTADOS/TREES/arboles_270.tree") # Cargar el conjunto de árboles si aún no lo tienes
distance_270 = RF.dist(trees_270, normalize = TRUE, check.labels = TRUE)
distance_270_matrix=as.matrix(distance_270)
write.csv(distance_270_matrix, "RESULTADOS/RF_DISTANCES/distance_270_complete_matrix.csv", row.names = TRUE,col.names = TRUE)
2.5 Filtrado de genes codificantes y no codificantes
En esta fase del análisis, se realiza un filtrado de las matrices de distancia previamente calculadas con el objetivo de separar las relaciones filogenéticas de los genes codificantes y no codificantes. Este proceso es clave para identificar posibles diferencias evolutivas entre estos dos tipos de genes y evaluar su impacto en la funcionalidad del complejo TORC1 en Saccharomyces cerevisiae.
Para ello, se seleccionan los elementos de la matriz de distancias correspondientes a los ORFs clasificados como codificantes y no codificantes. Se genera una nueva matriz filtrada que excluye genes no relevantes para este análisis, asegurando que solo se incluyan aquellos ORFs con un rol potencial en la regulación del complejo TORC1.
Finalmente, las matrices de distancia filtradas se guardan en formato .csv, facilitando su uso en análisis posteriores, como la evaluación de agrupamientos filogenéticos y estudios comparativos entre genes de diferente funcionalidad. Este procedimiento permite una caracterización más precisa de la relación evolutiva entre los genes, proporcionando información relevante para la comprensión de su impacto en la biología de la levadura.
# ========================
# FILTRADO DE MATRICES DE DISTANCIA
# ========================
# Búsqueda de los elementos de la matriz que son codificantes y no codificantes
idx = which(lista_orfs %in% c(orfs_codificantes,orfs_no_codificantes) == T)
idx = c(idx,6016:6019)
distance_1011_matrix_filtered = distance_1011_matrix[idx,idx]
write.csv(distance_1011_matrix_filtered, "RESULTADOS/RF_DISTANCES/distance_1011_filtered_matrix.csv", row.names = TRUE,col.names = TRUE)
distance_270_matrix_filtered = distance_270_matrix[idx,idx]
write.csv(distance_270_matrix_filtered, "RESULTADOS/RF_DISTANCES/distance_270_filtered_matrix.csv", row.names = TRUE,col.names = TRUE)
2.6 Clustering
En esta etapa, se lleva a cabo el análisis de agrupamiento (clustering) con el propósito de identificar patrones de similitud entre las cepas de Saccharomyces cerevisiae en función de sus perfiles filogenéticos. Para ello, se emplean dos enfoques principales: el algoritmo Minimum Spanning Tree K-Nearest Neighbors Clustering (mst-knnclust) y el método k-means optimizado mediante el índice de silueta.
Inicialmente, se aplican técnicas de clustering basadas en grafos utilizando el algoritmo mst-knnclust, el cual permite definir grupos a partir de la estructura de la matriz de distancias filogenéticas. Este método se ejecuta tanto en la matriz de distancias de las 1011 cepas como en la de las 270 cepas vínicas, considerando también las versiones filtradas de ambas matrices para diferenciar entre genes codificantes y no codificantes.
Posteriormente, se implementa un enfoque basado en k-means, en el que se exploran diferentes números de grupos (k). Para determinar la cantidad óptima de clusters, se emplea el índice de silueta, que evalúa la coherencia interna de las agrupaciones generadas. Se ejecutan iteraciones con distintos valores de k, seleccionando aquel que maximiza la cohesión interna de los grupos formados.
Los resultados del clustering se almacenan en archivos que pueden utilizarse en análisis posteriores, como la caracterización funcional de los grupos identificados y la correlación entre la estructura filogenética y la regulación del complejo TORC1. Este procedimiento permite detectar posibles relaciones evolutivas entre las cepas y mejorar la interpretación de la variabilidad genética dentro del conjunto de estudio.
# ========================
# Clustering
# ========================
set.seed(1987)
library("mstknnclust")
# Para los 1011 completo
results_1011_complete <- mst.knn(distance_1011_matrix)
save(results_1011_complete, file = "RESULTADOS/CLUSTERING/results_1011_complete")
# Para los 270 completo
results_270_complete <- mst.knn(distance_270_matrix)
save(results_270_complete, file = "RESULTADOS/CLUSTERING/results_270_complete")
# Para los 1011 completo
results_1011_filtered<- mst.knn(distance_1011_matrix_filtered)
save(results_1011_filtered, file = "RESULTADOS/CLUSTERING/results_1011_filtered")
##FUNCIÓN PARA CLUSTERIZAR
library(cluster)
# Función para aplicar kmeans y seleccionar el mejor agrupamiento basado en el índice de silueta
run_kmeans_silhouette <- function(distance_matrix, min_k=3, max_k = 10, k_int = 1) {
set.seed(1985)
# Convertir la matriz de distancias a coordenadas si es necesario
coords <- cmdscale(distance_matrix, k = min(nrow(distance_matrix) - 1, max_k))
# Lista para guardar los resultados de kmeans y los índices de silueta
kmeans_results <- list()
silhouette_scores <- numeric()
# Bucle para aplicar kmeans de k=2 a max_k
for (k in seq(min_k, max_k, by=k_int)) {
set.seed(123) # Establece una semilla para reproducibilidad
km <- kmeans(coords, centers = k, nstart = 25)
kmeans_results[[as.character(k)]] <- km
# Calcula el índice de silueta para cada k
sil_widths <- silhouette(km$cluster, dist(coords))
silhouette_scores[k - 1] <- mean(sil_widths[, 3]) # Guarda el promedio de los índices de silueta
}
# Encuentra el número de clusters con el índice de silueta más alto
best_k <- which.max(silhouette_scores) + 1 # Ajusta el índice
# Devuelve el mejor modelo kmeans y su índice de silueta
list(best_k = best_k,
best_kmeans = kmeans_results[[as.character(best_k)]],
silhouette_score = silhouette_scores[best_k - 1])
}
# Uso con la matriz de distancia de 1011 completa
result <- run_kmeans_silhouette(distance_1011_matrix, 10, 100, 10)
groups=result [[2]]$cluster
save(groups, file = "RESULTADOS/CLUSTERING/results_1011_complete")
# Uso con la matriz de distancia de 270 completa
result <- run_kmeans_silhouette(distance_270_matrix, 10, 100, 10)
groups=result [[2]]$cluster
save(groups, file = "RESULTADOS/CLUSTERING/results_270_complete")
# Uso con la matriz de distancia de 1011 filtrada
result <- run_kmeans_silhouette(distance_1011_matrix_filtered,5,10,1)
groups=result [[2]]$cluster
save(groups, file = "RESULTADOS/CLUSTERING/results_1011_filtered")
# Uso con la matriz de distancia de 270 filtrada
result <- run_kmeans_silhouette(distance_270_matrix_filtered,5,10,1)
distance_matrix= read("RESULTADOS/RF_DISTANCES/distance_270_filtered_matrix.csv")
groups=result [[2]]$cluster
save(groups, file = "RESULTADOS/CLUSTERING/results_270_filtered")
3. Resultados
3.1 Análisis usando el conjunto de datos completos: 1011 cepas
Los resultados generales muestran la distribución de los ORFs dentro de cada grupo filogenético, destacando el número total de ORFs, así como la cantidad de ORFs codificantes, no codificantes y otros en cada clúster. Se observa que el Grupo 10 presenta la mayor cantidad de ORFs (1205), seguido por el Grupo 5 (1114), mientras que el Grupo 2 es el que contiene la menor cantidad (59).
En cuanto a los ORFs codificantes, la mayor cantidad se encuentra en el Grupo 9 (19 ORFs), seguido del Grupo 4 (15 ORFs). Esto podría indicar una mayor concentración de genes funcionales en estos clústeres específicos. Por otro lado, los ORFs no codificantes están más dispersos, con el Grupo 5 destacando con 12 ORFs, lo que sugiere que algunas regiones pueden contener elementos regulatorios o secuencias con funciones aún desconocidas. En general, estos resultados permiten identificar patrones dentro de la estructura filogenética de las 1011 cepas y ofrecen una base para estudios posteriores sobre la función y evolución de estos genes en Saccharomyces cerevisiae.
Los análisis de ShinyGO (p-value < 0.05) en todas sus bases de datos indican que todos los grupos, excepto el Grupo 6, presentan asociaciones biológicas significativas. Esto implica que los ORFs agrupados en estos clústeres podrían compartir funciones específicas o estar implicados en rutas metabólicas y procesos celulares clave. La ausencia de asociaciones biológicas en el Grupo 6 sugiere que este clúster no representa una categoría funcionalmente homogénea o que los genes en él agrupados carecen de una función clara dentro de los criterios analizados.
l enriquecimiento funcional del Grupo 1 en Saccharomyces cerevisiae está asociado a la biogénesis ribosomal y el metabolismo de nucleótidos. Este grupo presenta una fuerte relación con la biogénesis y ensamblaje de ribosomas, el procesamiento de ARN y el transporte mitocondrial. Además, se identifican genes involucrados en la regulación de la traducción, la biosíntesis de compuestos orgánicos y la respuesta a hormonas, reflejando su importancia en procesos fundamentales de homeostasis celular.
Por su parte, el Grupo 2 está fuertemente asociado al metabolismo de carbohidratos y la organización de la pared celular. Dentro de este grupo, se encuentran genes involucrados en la interconversión de pentosas y glucuronatos, el metabolismo de fructosa y manosa, y el catabolismo de polioles y ácidos orgánicos. Su participación en la organización de la pared celular fúngica, el transporte de monosacáridos y la respuesta a condiciones de inanición y estrés ambiental sugiere un papel clave en la adaptación celular a cambios en el entorno.
El Grupo 3 está vinculado con la regulación del ciclo celular y la organización de la cromatina. Dentro de sus principales procesos, destacan la formación de roturas de doble hebra en el ADN meiótico, la organización de la cromatina y la trimetilación de histonas. Además, incluye genes involucrados en apoptosis, cohesión de cromátidas hermanas y mantenimiento de organelos intracelulares, lo que sugiere una importante función en la estabilidad del material genético y la regulación del ciclo celular.
En el caso del Grupo 4, se observa una fuerte relación con la regulación transcripcional y el metabolismo de nucleótidos. Este grupo contiene genes que participan en la expresión génica mediada por RNA polimerasa II, la biogénesis de organelos intracelulares y la recombinación mitótica, además de desempeñar un papel fundamental en la homeostasis celular y la respuesta a estímulos ambientales.
El Grupo 5 está principalmente asociado a procesos de traducción, metabolismo energético y biogénesis mitocondrial. Los genes en este clúster están vinculados a la estructura y función de los ribosomas, tanto citoplasmáticos como mitocondriales, la fosforilación oxidativa y la cadena de transporte de electrones. También se han identificado genes involucrados en la biosíntesis de nucleótidos pirimidínicos, la respuesta a estrés oxidativo y la regulación del metabolismo del carbono y nitrógeno, subrayando su importancia en el mantenimiento de la homeostasis celular.
A diferencia de los demás clústeres, el Grupo 6 no presentó asociaciones biológicas significativas. Esto podría indicar una ausencia de categoría funcional homogénea, aunque también es posible que los genes en este grupo no cuenten con una anotación funcional clara dentro de los criterios utilizados.
El Grupo 7 muestra una fuerte asociación con la regulación génica y la organización de la cromatina. Dentro de sus genes predominan aquellos implicados en la regulación de la transcripción por ARN polimerasa II, la remodelación de la cromatina y la respuesta a estímulos ambientales. Asimismo, este grupo contiene factores de transcripción y proteínas reguladoras que juegan un papel clave en el control del ciclo celular, la señalización celular y la regulación de procesos biosintéticos.
En el caso del Grupo 8, su enriquecimiento funcional está relacionado con la organización celular y la dinámica del citoplasma. Sus genes participan en la regulación del almacenamiento y movilización de reservas de carbono, como el glucógeno, además de desempeñar funciones esenciales en la homeostasis celular y la respuesta a señales ambientales.
El Grupo 9 se asocia principalmente con la regulación celular y la organización del citoesqueleto. Los genes agrupados en este clúster desempeñan funciones en la polaridad celular, la morfogénesis del brote y la regulación del transporte intracelular, además de participar en la respuesta a estímulos ambientales, el mantenimiento de la integridad del núcleo y la señalización mediada por GTPasas, lo que resalta su papel en la coordinación de procesos estructurales y regulatorios.
Finalmente, el Grupo 10 está fuertemente vinculado con el metabolismo de ácidos orgánicos y la biosíntesis de aminoácidos. Los genes en este clúster están involucrados en la regulación del metabolismo de compuestos nitrogenados, la síntesis de ácidos carboxílicos y la modulación de la actividad de oxidorreductasas. Asimismo, su participación en rutas metabólicas secundarias sugiere una interacción clave en la adaptación a cambios en la disponibilidad de nutrientes.
Los datos específicos obtenidos a partir de las bases de datos biológicas de ShinyGO son los siguientes:
3.2 Análisis usando el conjunto de datos completos: 270 cepas vínicas
El análisis del subconjunto de cepas vínicas revela una distribución de ORFs que difiere significativamente de la observada en las 1011 cepas generales. En este conjunto, el Grupo 3 contiene la mayor cantidad de ORFs (1255), seguido por el Grupo 6 (1212) y el Grupo 5 (727), mientras que el Grupo 4 es el que presenta la menor cantidad de ORFs (72).
En términos de ORFs codificantes, el Grupo 3 lidera con 14 ORFs, seguido por el Grupo 2 (12 ORFs) y el Grupo 5 (10 ORFs). Esto sugiere que estos grupos concentran una mayor proporción de genes funcionales dentro del contexto de las cepas vínicas. En contraste, el Grupo 4 no presenta ORFs codificantes, lo que indica que los genes dentro de este clúster podrían desempeñar funciones regulatorias o que aún no han sido completamente caracterizados.
La distribución de ORFs con SNPs en regiones cercanas muestra que el Grupo 6 presenta la mayor cantidad de estos (13 ORFs), seguido por el Grupo 5 (10 ORFs) y el Grupo 1 (3 ORFs). La presencia de SNPs en estas regiones sugiere que estos grupos podrían estar sujetos a una mayor variabilidad genética, lo que potencialmente afecta la regulación de la expresión génica y la adaptación de estas cepas a su entorno.
El análisis de enriquecimiento funcional en Saccharomyces cerevisiae revela diferencias notables entre los grupos. Mientras que el Grupo 1 está estrechamente relacionado con la regulación del ciclo celular y la estabilidad genómica, con genes involucrados en la replicación del ADN, la cohesión de cromátidas y la homeostasis intracelular, el Grupo 2 muestra una fuerte asociación con el metabolismo de carbohidratos, la organización de la pared celular y la respuesta a cambios ambientales.
Por su parte, el Grupo 3 destaca por su relación con la biosíntesis de aminoácidos sulfurados, la actividad de oxidorreductasas y la regulación de procesos metabólicos esenciales, lo que sugiere un papel clave en la respuesta celular a la disponibilidad de nutrientes. En contraste, el Grupo 4 está enriquecido en procesos de regulación transcripcional y adaptación metabólica, con genes implicados en la remodelación de la cromatina y la modulación de la expresión génica en respuesta a variaciones ambientales.
El Grupo 5 resalta por su estrecha vinculación con la traducción, el metabolismo energético y la biogénesis mitocondrial. Se identifican genes asociados con la estructura y función ribosomal, tanto en el citoplasma como en la mitocondria, además de su implicación en la fosforilación oxidativa, la cadena de transporte de electrones y la respuesta al estrés oxidativo. Estos procesos sugieren un papel clave en la homeostasis celular y la adaptación a cambios en el entorno.
A diferencia de los anteriores, el Grupo 6 está relacionado con la regulación del metabolismo y la señalización intracelular. Se identifican genes involucrados en la respuesta a fluctuaciones en la disponibilidad de nutrientes y el transporte de iones, lo que sugiere una posible función en la homeostasis del pH y la adaptación a ambientes vínicos.
El Grupo 7 está asociado con la regulación génica y la remodelación de la cromatina. Sus genes participan en la transcripción mediada por ARN polimerasa II y en la regulación del ciclo celular, lo que indica un papel en la estabilidad genómica y la respuesta a estímulos ambientales.
El Grupo 8 se encuentra enriquecido en procesos de organización celular y morfogénesis, con genes asociados con la diferenciación celular, la polaridad celular y la estructura de la pared celular. Además, su implicación en la esporulación y la respuesta a condiciones de estrés resalta su importancia en la adaptación estructural y funcional de estas cepas.
En cuanto al Grupo 9, su función principal parece estar vinculada a la regulación de la cohesión cromosómica y la organización intracelular. Los genes identificados en este grupo están involucrados en la regulación de la cromatina, la estructura nuclear y la transcripción mediada por ARN polimerasa I. También se observan procesos relacionados con la degradación de organofosfatos y la competitividad celular, lo que sugiere una función clave en la adaptación a distintas condiciones ambientales.
Finalmente, el Grupo 10 presenta una estrecha relación con la regulación de la transcripción y la biosíntesis de macromoléculas. La presencia de genes asociados con la polimerasa II y factores de transcripción específicos apunta a su papel en la regulación del metabolismo de compuestos nitrogenados y la biosíntesis de ácidos nucleicos. Su función en la reparación de ADN, regulación del ciclo celular y organización de organelos refuerza su relevancia en la homeostasis celular y la respuesta al estrés metabólico.
Los datos específicos obtenidos a partir de las bases de datos biológicas de ShinyGO son los siguientes:
3.3 Análisis usando el conjunto de datos sólo con ORFs codificantes y no codificantes: 1011 cepas
El análisis de las cepas vínicas revela una distribución de ORFs que difiere significativamente del análisis general de las 1011 cepas. En este conjunto, el Grupo 5 presenta la mayor cantidad de ORFs (22), seguido por el Grupo 9 (21) y el Grupo 1 (18), mientras que el Grupo 6 es el que contiene la menor cantidad de ORFs (4).
En términos de ORFs funcionales, el Grupo 5 destaca con la mayor cantidad (16 ORFs), seguido por el Grupo 4 (15 ORFs) y el Grupo 1 (9 ORFs). Esto sugiere que estos grupos concentran regiones genómicas más conservadas y funcionalmente activas dentro del contexto de las cepas vínicas. Por otro lado, el Grupo 6 presenta la menor cantidad de ORFs funcionales, lo que podría estar asociado a una menor concentración de genes caracterizados o a funciones aún no determinadas en este clúster.
Respecto a los ORFs con SNPs en regiones cercanas a sus secuencias, el Grupo 9 es el que presenta la mayor cantidad (16 ORFs), seguido por el Grupo 1 (9 ORFs) y el Grupo 5 (6 ORFs). Esto podría indicar la presencia de variantes genéticas con potencial impacto en la regulación de la expresión génica dentro de estos clústeres. En contraste, el Grupo 6 es el único en el que se identificaron exclusivamente ORFs clasificados con características mixtas en su proximidad genómica.
En términos generales, estos resultados refuerzan la idea de que la estructuración filogenética de las cepas vínicas influye en la distribución y función de los ORFs en cada grupo. La identificación de clústeres con alta concentración de ORFs funcionales sugiere regiones con roles biológicos clave en el contexto de la levadura vínica, mientras que la presencia de SNPs en zonas adyacentes a ORFs específicos podría estar relacionada con mecanismos de regulación génica y adaptación a condiciones ambientales.
El análisis de enriquecimiento funcional de los ORFs con historias evolutivas compartidas en Saccharomyces cerevisiae revela especializaciones funcionales distintas entre los grupos. El Grupo 1 está principalmente vinculado a procesos relacionados con la membrana, indicando roles en transporte celular e integridad estructural. En el Grupo 3 se observa un enriquecimiento en rutas asociadas con biosíntesis de O-glicanos, transporte nucleocitoplasmático, degradación de ARN, función del espliceosoma y señalización MAPK, esenciales para la meiosis y la progresión del ciclo celular.
El Grupo 5 incluye ORFs relacionados con la progresión del ciclo celular (fase G1, anafase tardía), esporulación, organización peroxisomal, endocitosis y unión de pequeñas moléculas, resaltando su importancia en la división celular y la adaptación metabólica. Finalmente, el Grupo 7 está enriquecido en interacciones genéticas, distribución peroxisomal y regulación transcripcional, desempeñando un papel crucial en señalización intracelular y respuesta ambiental.
Estos hallazgos indican que los grupos de ORFs en cepas vínicas no sólo varían en cantidad, sino también en sus funciones biológicas. La predominancia de ORFs relacionados con la regulación del ciclo celular y el metabolismo en algunos grupos refuerza la idea de que estos genes juegan un papel clave en la adaptación de Saccharomyces cerevisiae al ambiente vínico. Asimismo, la presencia de ORFs con SNPs cercanos en ciertos grupos podría representar mecanismos de variabilidad genética que permiten a estas cepas responder mejor a las condiciones específicas del entorno enológico.
El siguiente grafo muestra la distribución de cepas por grupo, donde cada color representa uno de estos.
Los datos específicos obtenidos a partir de las bases de datos biológicas de ShinyGO son los siguientes:
3.4 Análisis usando el conjunto de datos sólo con ORFs codificantes y no codificantes: 270 cepas
Los resultados obtenidos muestran una distribución diferenciada de ORFs en los grupos analizados, reflejando variaciones en la composición funcional y diferencias en su posible rol biológico dentro del contexto de las cepas vínicas. En este caso, el Grupo 5 contiene la mayor cantidad de ORFs (21), seguido por el Grupo 6 (18) y el Grupo 9 (18), mientras que el Grupo 2 es el que presenta la menor cantidad (4).
En términos de ORFs codificantes, el Grupo 6 lidera con 13 ORFs, seguido por el Grupo 9 (14 ORFs) y el Grupo 5 (12 ORFs). Esto sugiere que estos grupos albergan una mayor cantidad de regiones funcionalmente activas y conservadas dentro del genoma. En contraste, el Grupo 2 no presenta ORFs codificantes y está compuesto exclusivamente por ORFs clasificados como “Ambos”, lo que indica que los SNPs asociados a estos ORFs se encuentran en regiones intergénicas o en zonas con funciones regulatorias aún no determinadas.
En cuanto a los ORFs donde los SNPs se encuentran en regiones no codificantes cercanas, el Grupo 1 presenta la mayor cantidad (11 ORFs), seguido por el Grupo 5 (9 ORFs) y el Grupo 4 (7 ORFs). La alta presencia de SNPs en estas zonas podría sugerir que estos ORFs están influenciados por mecanismos regulatorios que afectan la expresión génica o la estabilidad del ARN mensajero.
Estos resultados refuerzan la idea de que la clasificación de los ORFs en grupos refleja diferencias funcionales y estructurales dentro del genoma de Saccharomyces cerevisiae. La identificación de clústeres con alta concentración de ORFs codificantes indica la presencia de regiones con funciones biológicas clave, mientras que la existencia de SNPs en zonas cercanas a ORFs sugiere un posible impacto en la regulación de la expresión génica. Estos hallazgos proporcionan una base para estudios futuros que permitan caracterizar la funcionalidad y evolución de estos genes en distintos contextos biológicos y aplicados.
El análisis de enriquecimiento funcional en Saccharomyces cerevisiae revela que cada grupo de ORFs comparte historias evolutivas similares, reflejando especializaciones funcionales distintivas. El Grupo 4 está enriquecido en rutas asociadas a la supervisión del ARNm, la biogénesis ribosomal, el proteasoma y el ciclo celular, sugiriendo un papel clave en la regulación del crecimiento y el control de calidad del ARNm. Por otro lado, el Grupo 5 incluye procesos fundamentales en el metabolismo de cisteína y metionina, la mitofagia, el metabolismo del glutatión, la señalización MAPK y la función de los peroxisomas, lo que indica una función esencial en la homeostasis metabólica y la respuesta al estrés. Finalmente, el Grupo 9 se relaciona con interacciones genéticas y proteicas, procesamiento de ARN, transporte intracelular y regulación del ciclo celular, desempeñando un papel crucial en la estabilidad genómica y la adaptación celular.
Los datos específicos obtenidos a partir de las bases de datos biológicas de ShinyGO son los siguientes: