Expression microarrays data analysis

Introduction

Hemos leído un artículo sobre artritis reumatoide donde se indica que se desconoce la etiología de esta enfermedad inflamatoria y que sería interesante caracterizarla a nivel molecular para encontrar algunas mecanismos clave que mejoraran su prevención y tratamiento.

Para ello, los autores diseñaron un experimento con arrays de expresión, distinguiendo tres grupos:

  1. Pacientes con artritis reumatoide.
  2. Pacientes con osteoartritis.
  3. Personas sanas.

Nos gustaría utilizar los mismos datos de arrays de expresión que utilizaron los autores y reproducir el análisis de datos de microarrays.

Este es el artículo (no hace falta descargarlo): Molecular signatures and new candidates to target the pathogenesis of rheumatoid arthritis. Physiol Genomics2010 Nov 29;42A(4):267-82.

Los datos originales correspondiente al estudio están en el repositorio Gene Expression Omnibus, concretamente en este link. Hay que descargarse una carpeta comprimida llamada GSE1919_RAW.tar (tarda un poco porque pesa 45.9 Mb). También te los puedes descargar aquí.


Objetivo

Realización de un análisis bioinformático completo de datos de expresión con Babelomics que permita conocer que genes están diferencialmente expresados entre los grupos de sujetos indicados anteriormente. También estamos interesados en la interpretación funcional de los resultados obtenidos, utilizando diversos recursos web como PANTHER y STRING.

Datos

Disponemos de datos correspondientes a 15 sujetos. 5 para cada uno de los grupos definidos: normal, osteartritis y artritis reumatoide. En la siguiente tabla se indica el grupo al que pertenece cada muestra (microarray). El tipo de plataforma comercial del chip es Affymetrix:

filename	samplename	id	CLASS	disease	        	
GSM34379.CEL	GSM34379	ND_1	ND	normal_donor		
GSM34383.CEL	GSM34383	ND_2	ND	normal_donor		
GSM34385.CEL	GSM34385	ND_3	ND	normal_donor		
GSM34388.CEL	GSM34388	ND_4	ND	normal_donor		
GSM34391.CEL	GSM34391	ND_5	ND	normal_donor		
GSM34393.CEL	GSM34393	OA_A	OA	osteoarthritis		
GSM34394.CEL	GSM34394	OA_B	OA	osteoarthritis		
GSM34395.CEL	GSM34395	OA_x	OA	osteoarthritis		
GSM34396.CEL	GSM34396	OA_y	OA	osteoarthritis		
GSM34397.CEL	GSM34397	OA_z	OA	osteoarthritis		
GSM34398.CEL	GSM34398	RA_A	RA	rheumatoid_arthritis	
GSM34399.CEL	GSM34399	RA_B	RA	rheumatoid_arthritis	
GSM34400.CEL	GSM34400	RA_x	RA	rheumatoid_arthritis	
GSM34401.CEL	GSM34401	RA_y	RA	rheumatoid_arthritis	
GSM34402.CEL	GSM34402	RA_z	RA	rheumatoid_arthritis	


¿Cuál es el plan de trabajo?

  • Tres fases con distintos procesos en cada una de ellas:

1. Procesamiento

Nos creamos un usuario en Babelomics.

  1. Cargamos los datos en Babelomics. Para ello subimos una carpeta comprimida que contenga todas las muestras. Tal como la bajamos desde el repositorio GEO, la podríamos cargar en Babelomics en el menú “Upload data”. Hay que indicar que los datos son de Affymetrix. En el tutorial hay algunas pistas sobre la carga de datos.
  2. Para eliminar las variaciones sistemáticas derivadas del proceso de medición y además obtener una medida común a todos los chips, realizaremos la normalización de los datos desde Processing / Normalization / Microarray One Channel /Affymetrix. Escogeremos los parámetros que hay por defecto. ¿Tendría sentido normalizar los datos de nuestro experimento en varios grupos o mejor todos a la vez en un único proceso de normalización?
  3. Hasta ahora la herramienta no sabe a que grupo pertenece cada array. Se lo tenemos que decir desde Processing/Edit. Aquí seleccionaremos los datos que hemos normalizado y generaremos una nueva variable llamada class (por ejemplo) e incluiremos tres categorías: osteo, reu, normal. Info para editar variables.
  4. Antes de empezar con el análisis de la expresión diferencial, nos gustaría explorar nuevamente los datos ahora que ya están normalizados. En principio, espero que los pacientes que pertenezcan a cada uno de los 3 grupos indicados, muestren un patrón de expresión común. Para verificar esto, realizaremos un análisis de clustering. Interpreta los resultados obtenidos.
    • Clustering. Desde Expression /Clustering. Seleccionamos nuestros datos normalizados. Dejamos los valores que hay por defecto en los parámetros que aparecen en Babelomics, excepto el método que elegiremos SOTA. Tienes más información detallada de los métodos de clustering en este link. ¿Quedan agrupadas las muestras como suponíamos?

Algunas preguntas más:

  • Si las muestras que pertenecen al mismo grupo presentan un patrón común de expresión (próximas en el clustering y en el pcaplot) y un patrón diferente entre grupos (diferenciados o lejanos en el clustering y en el pcaplot), ¿crees que obtendremos un gran número de genes diferencialmente expresados?.
  • Si detectarámos alguna muestra con un patrón diferente a las muestras de su mismo grupo, ¿qué estrategia propondrías?


2. Análisis de la expresión diferencial

Continuamos trabajando con Babelomics:

Los datos ya están normalizados y listos para el análisis de la expresión diferencial. Nos gustaría encontrar los genes diferencialmente expresados en las siguientes comparaciones.

  • Osteoartritis vs. Normal
  • Artritis reumatoide vs. Normal
  • Osteoartritis vs. Artritis reumatoide

Dependiendo del diseño experimental utilizaremos un método u otro en Babelomics. En este caso queremos realizar una comparación de grupos y escogeremos la opción Expression/ Differential Expression / Microarray /Class comparison. Es importante indicar cual es la variable que establece los grupos en class name. Automáticamente Babelomics detectará el número de categorías que disponemos y nos ofertará los métodos adecuados a ese número de categorías. Por ejemplo, con dos categorías dispondremos del t-test, limma o fold-change. Con tres categorías: anova o limma.

Como queremos trabajar con comparaciones por parejas, aunque aparezca en la pantalla las 3 categorías: normal, osteo y reu, cambiaremos la que no queremos que esté por none, clickando el desplegable.

Importante: si queremos realizar la comparación Osteoartritis vs. Normal, la primera categoría que debe aparece en el cuadrito de diálogo será Osteoartritis y en el segundo Normal. Escogeremos en el tipo de test limma.

Para cada una de estas 3 comparaciones lanzaremos un job que nos muestre los correspondientes resultados de la expresión diferencial. Los valores de los parámetros los dejaremos con lo que aparezca por defecto.

Cuestiones

A. En la comparación Osteoartritis vs. Normal utilizando el test limma:

  1. ¿Cuántos genes detectamos diferencialmente expresados?
  2. ¿Cómo están ordenados los genes en el heatmap?
  3. ¿Qué relación hay entre statistic, p-value y el adj.p-value?
  4. Cambiamos el p-valor ajustado y ahora trabajaremos con adj.p-value < 0.1. ¿Cuántos genes detectamos diferencialmente expresados?
  5. Analiza de nuevo la diferencia de expresión entre ambos grupos pero utilizando el método t-test. ¿Cuántos genes detectamos ahora como diferencialmente expresados?
  6. Abre el fichero de texto con los resultados significativos. ¿Cónoces cada uno de los indicadores estadísticos que aparecen? (Significative results / Statistic values table).
  7. Los genes diferencialmente expresados, ¿son los mismos en ambos métodos?. Para cuantificar esta intersección hay varias formas, en ambas necesitaremos utilizar los ficheros txt con los genes significativos en ambos jobs (están en el apartado de Significative results / Statistic values table):
    • Descargamos ambos ficheros de texto y los leemos desde R. Con la funcion intersect obtendremos los genes comunes.
    • Otra opción para intersectar dos grupos de identificadores (genes, mirnas….) es Venny: una herramienta muy útil y fácil de usar para valorar intersecciones. Para ello abre cada uno de los 2 ficheros de texto anteriores, con una hoja de cálculo y selecciono los ids de los genes y los pegas en Venny, lo mismo para el segundo fichero y determina el número de genes que están diferencialmente expresados en ambos escenarios.
  8. ¿Por qué ambos métodos ofrecen diferentes resultados?

B. ¿Puedes reproducir el proceso anterior para el resto de comparaciones?
C. Utilizando el método limma, ¿qué genes están diferencialmente expresados en las dos comparaciones: Osteoartritis vs. Normal y Artritis reumatoide vs. Normal?


3. Interpretación funcional de los resultados

Ya conocemos los genes que están diferencialmente expresados en cada una de las 3 comparaciones de interés descritas anteriormente. Esta información es muy útil, pero además nos gustaría conocer qué funciones están “detrás” de esos genes e incluso conocer si hay grupos de genes con un patrón de expresión común que comparte estas funcionalidades.

A partir de los resultados del análisis de expresión diferencial en la comparación Osteoartritis vs. Normal:

  1. Para empezar realiza una descripción de las funciones asociadas a los genes que están UP expresados en osteoartritis, utilizando las bases de datos biológicas: GO biological process, GO molecular function y GO cellular component, mediante la herramienta web PANTHER. Sugerimos que utilices la primera y segunda de las opciones de análisis. Interpreta la representación gráfica de los GO biological process
  2. Ahora realiza un análisis de sobrerrepresentación en los genes que está UP expresados en osteoartritis, utilizando las bases de datos biológicas: GO biological process, GO molecular function y GO cellular component, mediante la herramienta web PANTHER.
    • ¿Hay funciones que están sobre-representados en este grupo de genes UP expresados en osteoartritis?
    • En esta caracterización funcional valoramos las funciones que están asociadas a nuestro grupos de genes de interés. ¿Frente a que otro grupo de genes estamos realizando esta evaluación?
  3. Realiza otro análisis de sobrerrepresentación pero esta vez sobre los genes que están DOWN expresados en la comparación Osteoartritis vs. Normal utilizando las mismas bases de datos que se escogieron en el ejercicio anterior.
  4. Por último queremos realizar un Gene Set Enrichment a partir de los resultados de la expresión diferencial de Osteoartritis vs. Normal. ¿Qué input necesitarías ahora? Interpreta los resultados obtenidos.
  5. Repite los análisis anteriores para las otras dos comparaciones de interés:
    • Artritis reumatoide vs. Normal
    • Osteoartritis vs. Artritis reumatoide


Nos gustaría realizar otros abordajes para caracterizar funcionalmente los resultados obtenidos en la expresión diferencial. Para ello, utilizaremos los genes significativos up y down expresados en cada una de las comparaciones descritas anteriormente, y mediante STRING realizaremos un análisis de redes de interacción proteína-proteína.