Análisis de enriquecimiento funcional - análisis de genes mediante la Ontología de Genes
Basándose en la información de las fuentes, el análisis de genes mediante la Ontología de Genes (Gene Ontology o GO) es una tarea fundamental en bioinformática que generalmente sigue a un análisis de expresión diferencial, como el realizado con herramientas como DESeq2. El objetivo principal de este análisis, conocido como análisis de enriquecimiento funcional, es determinar si conjuntos de genes, como los definidos por los términos de GO, están sobrerrepresentados entre los genes que se encuentran diferencialmente expresados. En otras palabras, se busca identificar si una vía biológica (biological pathway) o un conjunto de genes asociado a una función particular se expresa diferencialmente de manera colectiva.
Aquí se detallan los pasos y métodos según las fuentes:
Contexto: Después del Análisis de Expresión Diferencial
- Típicamente, se comienza con una lista de genes diferencialmente expresados (DE) obtenida de un análisis previo. Esta lista se genera aplicando umbrales de significación (como un valor p ajustado por debajo de un cierto nivel, por ejemplo, 0.01) y, a menudo, un umbral mínimo de magnitud de cambio (log2 fold change).
Definición de Conjuntos de Genes (Ontología de Genes)
- La Ontología de Genes (GO) es una base de datos crucial que proporciona un vocabulario controlado para describir atributos de genes y sus productos.
- Consiste en términos GO, cada uno con un identificador único (por ejemplo, GO:0006955 para "immune response") y una descripción.
- Los términos GO se organizan en tres ontologías principales: proceso biológico (biological process), función molecular (molecular function) y componente celular (cellular component).
- Los términos dentro de una ontología están relacionados jerárquicamente, donde algunos términos son más específicos que otros (formando un grafo dirigido acíclico).
- Las bases de datos de GO también contienen anotaciones que asocian genes específicos a uno o más términos GO. Es importante notar que estas anotaciones pueden variar en cuanto a la evidencia (experimental, inferida electrónicamente, etc.) y que la cobertura de las anotaciones puede ser limitada, especialmente para organismos no modelo.
Análisis de Sobrerrepresentación (Over-Representation Analysis - ORA)
- La estrategia más común para analizar el enriquecimiento funcional de conjuntos de genes, incluyendo los términos GO, es buscar la sobrerrepresentación (o enriquecimiento) de genes diferencialmente expresados dentro de cada conjunto de genes de interés.
- Para cada conjunto de genes GO, se verifica si la proporción de genes DE que pertenecen a ese conjunto excede la expectativa de encontrar ese número de genes DE por puro azar.
La Prueba Exacta de Fisher (Test Hipergeométrico)
- La prueba estadística estándar utilizada para ORA es la prueba exacta de Fisher, también conocida como prueba hipergeométrica.
- Esta prueba se aplica a una tabla de contingencia 2x2 que clasifica los genes según dos factores: si pertenecen o no al conjunto de genes GO en cuestión, y si son o no diferencialmente expresados.
- Las cantidades clave en esta tabla son:
- (N): El número total de genes considerados (el universo de los genes), que típicamente son todos los genes para los que se realizó el análisis de expresión diferencial.
- (n): El número total de genes diferencialmente expresados.
- (m): El número total de genes en el conjunto GO que se está probando (y que forman parte del universo de genes).
- (k): El número de genes que están tanto en la lista de genes diferencialmente expresados como en el conjunto GO (los genes "enriquecidos").
- La hipótesis nula es que el conjunto de genes no incluye más genes diferencialmente expresados de los que se esperarían por azar.
- La prueba calcula la probabilidad de observar al menos (k) genes DE en el conjunto GO, dado el tamaño del conjunto, el número total de genes DE y el tamaño del universo. Esta probabilidad corresponde al valor p de la prueba exacta de Fisher unilateral (de una sola cola).
- Un valor p bajo indica que la observación de (k) genes DE en el conjunto GO es inconsistente con el azar, sugiriendo que el conjunto está significativamente enriquecido con genes DE.
- La prueba también puede reportar un odds ratio (ratio), que es una medida de asociación entre los dos factores (pertenencia al conjunto y estatus DE), indicando la magnitud del enriquecimiento.
Herramientas Bioinformáticas en R para ORA de GO
- Existen múltiples paquetes de R para realizar análisis de enriquecimiento GO de forma automática.
- Un paquete mencionado es GOstats. Su uso implica:
- Definir un objeto de parámetros que especifica el universo de genes (usando identificadores Entrez, por ejemplo), los genes diferencialmente expresados (también con identificadores Entrez), el paquete de anotación GO a utilizar (como
org.Hs.eg.db
para humanos), y la ontología de interés (BP, MF o CC). - Ejecutar el análisis usando una función apropiada (
hyperGTest
). - Almacenar y visualizar los resultados, que típicamente incluyen el identificador del término GO, el valor p, el odds ratio, el número de genes esperados por azar y el número observado de genes DE en el conjunto, entre otra información.
- Definir un objeto de parámetros que especifica el universo de genes (usando identificadores Entrez, por ejemplo), los genes diferencialmente expresados (también con identificadores Entrez), el paquete de anotación GO a utilizar (como
- La función base de R
fisher.test()
también se puede usar para realizar la prueba manualmente para un conjunto individual, proporcionando una matriz de contingencia.
Consideraciones Adicionales en el Análisis GO
- El Universo de Genes: La elección del universo de genes (todos los genes testeados vs. solo los expresados) influye en el valor p de la prueba de Fisher.
- Redundancia y Jerarquía: La jerarquía de GO y el solapamiento de genes entre términos hacen que las pruebas para diferentes términos no sean independientes, introduciendo redundancia en los resultados (términos generales que salen significativos simplemente porque sus hijos específicos lo son).
- Test Condicional: Para abordar la redundancia y enfocar el análisis en términos más específicos, se puede utilizar un test condicional. Esto implica probar los términos más específicos primero y eliminar los genes DE que enriquecen un término significativo de los términos inmediatamente superiores en la jerarquía antes de probar estos últimos. El paquete GOstats implementa esto mediante un parámetro (
conditional = TRUE
). - Filtrado de Resultados: Es común filtrar los resultados para identificar los términos GO más interesantes y fiables. Esto puede incluir filtrar por el tamaño del conjunto de genes (excluyendo conjuntos muy pequeños o muy grandes/genéricos) o por el número de genes DE observados en el conjunto. Ordenar los resultados por valor p o por odds ratio también ayuda en la interpretación.
- Visualización e Interpretación Detallada: Visualizar los resultados en tablas informativas (por ejemplo, usando
knitr::kable
) que incluyan los genes específicos que contribuyen al enriquecimiento de cada término GO es muy útil para la interpretación biológica y para compartir los resultados.
Otros Métodos de Enriquecimiento
- Además de ORA, existen otras clases de métodos como GSEA (Gene Set Enrichment Analysis) y GSVA (Gene Set Variation Analysis).
- GSEA no requiere una lista fija de genes DE, trabajando en cambio con un ranking de todos los genes (basado en alguna estadística de expresión diferencial). Es útil cuando los cambios de expresión son pequeños o el número de genes DE significativos es bajo. Paquetes como
fgsea
implementan este método. - GSVA transforma la matriz de expresión de genes por muestra a conjuntos de genes por muestra, permitiendo análisis posteriores directamente a nivel de vía/conjunto. El paquete
GSVA
ofrece esta funcionalidad. Estos métodos se consideran un punto de partida para análisis centrados en vías, no solo un punto final.
En resumen, el análisis de genes GO se realiza típicamente mediante análisis de enriquecimiento funcional, donde la prueba exacta de Fisher es un método fundamental para determinar si los genes diferencialmente expresados están sobrerrepresentados en los conjuntos de genes definidos por los términos GO. Se utilizan paquetes de R como GOstats (para ORA) y org.Hs.eg.db (para anotaciones) para automatizar este proceso, teniendo en cuenta la jerarquía de GO y corrigiendo por pruebas múltiples. Métodos como GSEA y GSVA ofrecen enfoques alternativos, especialmente útiles en ciertos contextos biológicos.