Download Análisis de datos de microarrays
Document related concepts
no text concepts found
Transcript
Análisis de datos de microarrays Alex Sánchez-Pla y M. Carme Ruı́z de Villa Departament d’Estadı́stica. Universitat de Barcelona. Facultat de Biologia. Avda. Diagonal 643. 08028 Barcelona. Spain. asanchez@ub.edu;mruiz_de_villa@ub.edu xx PID 00191024 Módulo © FUOC • PID 00191024 • Módulo XXX Análisis de datos de microarrays Índice I II Preliminares Análisis de datos de microarrays 4 4 1 El proceso de análisis de datos de microarray (MDA) . . . . . . . . . 5 2 Diseño de experimentos de microarrays . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.1 Fuentes de variabilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2 Principales conceptos en Diseño de Experimentos . . . . . . . . . . . . . . . 8 2.3 Principios básicos en el diseño del experimento . . . . . . . . . . . . . . . . . . 8 2.4 Replicación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.4.1 Potencia y tamaño de la muestra . . . . . . . . . . . . . . . . . . . . . . . . 9 2.4.2 Pooling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Diseños experimentales para microarrays de dos colores . . . . . . . . . 11 Exploración de los datos, control de calidad y preprocesado . . 14 3.1 Exploración visual de los datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.1.1 Gráficos de diagnóstico para chips de ADNc . . . . . . . . . . . . . 15 3.1.2 Gráficos de diagnóstico para chips de Affymetrix . . . . . . . . . 17 Normalización de arrays de dos colores . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.2.1 2.5 3 3.2 Métodos de normalización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 “Sumarización” y normalización microarrays de Affymetrix . . . . . . 21 3.3.1 M.A.S. 4.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.3.2 M.A.S. 5.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.3.3 Modelos multichip de Li y Wong . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.3.4 El método RMA (Robust Multi-Array Average) . . . . . . . . . 24 Filtraje no especı́fico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Introducción a Bioconductor y sus paquetes . . . . . . . . . . . . . . . . . . . . 26 4.1 Objetivos de Bioconductor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4.2 Paquetes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.3 3.4 4 4.3 Programación orientada a objetos en R y Bioconductor . . . . . . . . . 27 4.3.1 Clases y métodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 4.3.2 Entornos (“environments”) y clausuras (“closures”) . . . . . . . 28 4.4 Dos clases de especial utilidad: expressionSet y affyBatch . . . . 29 4.5 Primeros pasos: Instalación, Cursos, Vignettes . . . . . . . . . . . . . . . . . . 30 4.5.1 Instalación básica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 4.5.2 Cursos cortos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 4.5.3 Las viñetas (“Vignettes”) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 © FUOC • PID 00191024 • Módulo XXX 4.6 4 31 Actividad (2): Análisis con R y Bioconductor . . . . . . . . . . . . . . . . . . . 26 4.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4.1.1 El ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4.1.2 Directorios y opciones de trabajo . . . . . . . . . . . . . . . . . . . . . . . 27 Obtención y lectura de los datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4.2.1 Los datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4.2.2 4.2 4.3 4.4 4 Listado de paquetes usados en los ejemplos y/o citados en el texto: Análisis de datos de microarrays Lectura de los datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Exploración, Control de Calidad y Normalización . . . . . . . . . . . . . . . 29 4.3.1 Exploración y visualización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4.3.2 Control de calidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4.3.3 Normalizacion y Filtraje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Selección de genes diferencialmente expresados . . . . . . . . . . . . . . . . . . 36 4.4.1 Análisis basado en modelos lineales . . . . . . . . . . . . . . . . . . . . . . 36 4.4.2 Anotación de resultados (1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.4.3 Comparaciones múltiples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 4.4.4 Visualización de los perfiles de expresión . . . . . . . . . . . . . . . . . 43 Selección de genes diferencialmente expresados . . . . . . . . . . . . . . . . 26 4.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4.1.1 Medidas naturales para comparar dos muestras . . . . . . . . . . 27 4.1.2 Selección de genes diferencialmente expresados . . . . . . . . . . . 31 4.1.3 Potencia y tamaño muestral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.1.4 Tests múltiples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.2 4.3 Modelos lineales para la selección de genes: limma . . . . . . . . . . . . . . 37 4.2.1 El modelo lineal general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 4.2.2 Ejemplos de situaciones modelizables linealmente . . . . . . . . 38 4.2.3 Ejemplo 2: Comparación de tres grupos . . . . . . . . . . . . . . . . . 39 4.2.4 Estimación e inferencia con el modelo lineal . . . . . . . . . . . . . . 46 4.2.5 Modelos lineales para Microarrays . . . . . . . . . . . . . . . . . . . . . . . 47 4.2.6 Implementación y ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Análisis de las listas de genes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 4.3.1 Análisis de la significación biológica . . . . . . . . . . . . . . . . . . . . . . 49 4.3.2 Análisis de enriquecimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Part I Preliminares 4 © FUOC • PID 00191024 • Módulo XXX 26 4. Introducción a Bioconductor y sus paquetes . Bioconductor es un proyecto de software libre (código y desarrollo abiertos), basado en el lenguaje de programación R, que proporciona herramientas para el análisis de datos genómicos de alto rendimiento. El proyecto se inició en el año 2001 e incluye más de 25 desarrolladores entre Estados Unidos, Europa y Australia. En su versión 2.9, de Noviembre de 2011, incluye 517 paquetes, que presentan diferentes funcionalidades como análisis de microarrays, secuenciación y detección de SNPs, entre muchas otras. 4.1 Objetivos de Bioconductor Los objetivos de Bioconductor son: Proporcionar acceso a potentes métodos estadı́sticos y gráficos para el análisis de datos genómicos. Facilitar la integración de metadatos biológicos (GenBank, GO, LocusLink, PubMed ) en el análisis de datos experimentales. Permitir el desarrollo rápido de software extensible, interoperable y escalable. Promover la documentación de alta calidad y la investigación reproducible. Proporcionar formación en métodos de cálculo y estadı́stica. 4.2 Paquetes Para diseñar y distribuir el software de Bioconductor se usa el lenguaje R y su sistema de paquetes. Como se ha visto anteriormente un paquete de R es una colección estructurada de código (R, C u otro), documentación, y/o datos para realizar tipos de análisis concretos. Según su contenido, los paquetes se pueden clasificar en: Paquetes de código (“software packages”), que proporcionan implementaciones especializadas de métodos estadı́sticos y gráficos. Análisis de datos de microarrays © FUOC • PID 00191024 • Módulo XXX 27 Análisis de datos de microarrays Paquetes de datos de diversos tipos como: – Metadatos biológicos (“annotation packages”), que contienen asignaciones (“mapping”) entre diferentes identificadores de genes (por ejemplo, “AffyID”, “GO”, “LocusID”, “PMID”), “CDF” e información de la sonda de secuencia de arrays de Affy. Ejemplos: hgu95av2.db, GO.db, KEGG.db. – Datos experimentales (“experiment packages”), que contienen código, datos y documentación para experimentos o proyectos especı́ficos. Ejemplo: yeastCC (Spellman et al. 1988, yeast cell cycle), golubEsets (Golub et al. 2000, ALL/AML data). Paquetes de cursos, que contienen código, datos, documentación y ejercicios para el aprendizaje de un curso concreto. Ejemplos: EMBO03. La figura 13 muestra algunos de los paquetes de Bioconductor agrupados por funcionalidades. Figura 13. Algunos paquetes de Bioconductor Figura 13 Algunos de los paquetes de Bioconductor agrupados por funcionalidad 4.3 Programación orientada a objetos en R y Bioconductor El proyecto Bioconductor adoptó el paradigma de la programación orientada a objetos (“OOP”) propuesto en 1998 por J.M. Chambers ([?]). Este diseño de clases y métodos orientados a objeto permite una representación eficiente y la manipulación de grandes y complejos conjuntos de datos biológicos de varios tipos. En el paquete methods de R se proporcionan herramientas para la programación mediante este mecanismo de clase/método. Para más información, ver www.omegahat.org/RSMethods/index.html. © FUOC • PID 00191024 • Módulo XXX 4.3.1 28 Clases y métodos Una clase puede definirse como una representación (informática) abstracta de un tipo de objetos que pueden existir del mundo real. La clase refleja cómo imaginamos determinado objeto y qué información debe contener el mismo. En Bioconductor una clase está formada por Unas componentes (“slots”) reservados para contener determinados datos. Unas funciones (“methods”) para manipularlos. Las clases son representaciones abstractas que se concretan en objetos. Un objeto es una variable creada a partir de una clase, por lo que se le suele denominar instancia de la clase. La clase es la que determina la estructura y los valores inciales que poseerán los objetos. Un método es una función que realiza una acción sobre los datos (objetos). Cada método define como la acción particular debe comportarse dependiendo del tipo de argumentos que tenga. Los métodos permiten cálculos adaptables a cada tipo de datos en particular (es decir, a las clases). Hay funciones genéricas que actuan como un distribuidor (“dispatcher”), examinando los argumentos y determinando qué métodos son los más adecuados de invocar en cada caso. Ejemplos de funciones genéricas en R son plot, print, summary. El paquete de R methods contiene funciones tanto para la definicón de nuevas classes y métodos (por ejemplo setClass y setMethod) como para el trabajo con estos. 4.3.2 Entornos (“environments”) y clausuras (“closures”) Un entorno es un objeto que contiene enlaces entre sı́mbolos y valores. Es muy similar a una tabla hash. Los entornos son accesibles a través de las siguientes funciones: ls(env=e), para obtener la lista de objetos del entorno e. get(’x’, env=e), para obtener el valor del objeto x en el entorno e. assign(’x’, y, env=e), para asignar a x el valor y dentro del entorno e. Los entornos pueden asociarse a funciones. Cuando un entorno está asociado con una función, se utiliza para obtener valores de qualquiera de sus variables no Análisis de datos de microarrays © FUOC • PID 00191024 • Módulo XXX 29 Análisis de datos de microarrays vinculadas (“unbound variables”). El término clausura se refiere a la unión (vinculación) de la función con el entorno que la enjaula. Paquetes de anotaciones, como annotate, genefilter y otros se basan en el uso de entornos y clausuras. 4.4 Dos clases de especial utilidad: expressionSet y affyBatch Aunque la programación orientada a objetos no se ha impuesto completamente entre los usuarios de Bioconductor hay algunos conceptos que sı́ que se han generalizado y que es necesario –o como mı́nimo muy práctico– conocer para trabajar con Bioconductor. Se trata de la clase expressionSet y la clase affyBatch, directamente relacionada con ella. La clase expressionSet se usa para representar datos procesados de arrays de dos colores o de un color. A su vez la clase está compuesta por objetos de otras clases como assayData (la matriz de expresiones, de n genes por m muestras), phenoData (las covariables de las muestras, una instancia de la clase annotatedDataFrame), annotation (nombre del paquete de anotaciones), description (información en formato MIAME) y notes (para comentarios adicionales). La figura ?? muestra la estructura de la clase expressionSet. Figura 14. La clase expressionSet Figura 14 Estructura interna de la classe expressionSet La clase affyBatch se usa para datos a nivel de intensidad de sonda para conjuntos de arrays (mismo CDF), y está integrada por objetos como cdfName (nombre del fichero CDF), nrow y ncol (dimensiones del array), exprs y se.exprs (matrices con las intensidades a nivel de sonda y sus errores estándar), phenoData, annotation, description y notes. © FUOC • PID 00191024 • Módulo XXX 4.5 4.5.1 30 Primeros pasos: Instalación, Cursos, Vignettes Instalación básica La instalación de Bioconductor se ha descrito en el capı́tulo ?? por lo que no se repetirá aquı́. Tan sólo recordar que se basa en dos instrucciones > source("http://www.bioconductor.org/getBioC.R") > getBioC() En general, los paquetes de R se pueden instalar con la función install.packages. Estos paquetes solo necesitan ser instalados una vez, pero deben ser cargados en cada sesión nueva de R que se abra. Para cargar estos paquetes ya instalados, se usa el comando library de R. > library(Biobase) Para instalar cualquier paquete de Bioconductor, inciar una sesión de R e introducir: > source("http://bioconductor.org/biocLite.R") > biocLite("nombre_del_paquete") Para citar cualquier paquete desde R, teclear: > citation("nombre_del_paquete") Para actualizar los paquetes existentes, usar la función update.packages. 4.5.2 Cursos cortos Bioconductor ofrece cursos rápidos en forma de elementos modulares de formación sobre software y metodologı́a estadı́stica, notas de conferencias, ejercicios prácticos de computación y otros paquetes de auto-formación disponibles online. 4.5.3 Las viñetas (“Vignettes”) La viñeta o “vignette” es el sistema de documentación adoptado por Bioconductor que se basa en la idea de documentación reproducible. Análisis de datos de microarrays © FUOC • PID 00191024 • Módulo XXX 31 Consiste en un documento ejecutable que incluye una colección de bloques de código y bloques de comentarios de texto. Las viñetas ofrecen documentación estadı́stica dinámica, integrada y reproducible que puede ser actualizada automáticamente si los datos o el análisis cambian. Se generan usando la función Sweave de R. Cada paquete de Bioconductor contiene al menos una viñeta, que aporta descripciones de sus funcionalidades. Las viñetas se encuentran en el subdirectorio ddoc de cada paquete instalado, y son accesibles desde el menú de ayuda. Pueden ser usadas de forma interactiva y están disponibles tambien de forma separada en el sitio web de Bioconductor (vease www.bioconductor.org). Algunas funcionalidades relacionadas con las viñetas son openvignette de Biobase (un menú de viñetas disponibles con su visualización en PDF; vExplorer de tkWidgets (para uso interactivo de las viñetas), y reposTools. Tanto los sitios web de R como de Bioconductor disponen de toda la documentación actualizada ası́ como de listas de correo para resolver dudas de los usuarios. 4.6 Listado de paquetes usados en los ejemplos y/o citados en el texto: affy (software package) Métodos para arrays de oligonucleótidos de Affymetrix El paquete contiene las funciones para el análisis exploratorio de arrays de oligonucleótidos. La dependencia de tkWidgets sólo se refiere a algunas funciones de conveniencia. El paquete affy es completamente funcional sin él. affyPLM (software package) Métodos para el ajuste de modelos a nivel de sonda (“PLM”) Un paquete que amplı́a y mejora la funcionalidad del paquete base affy. Tiene rutinas que hacen un uso intensivo de código compilado para más velocidad. Se centra en la aplicación de métodos para el ajuste de modelos a nivel de sonda y herramientas que usan estos modelos. Contiene herramientas de evaluación de la calidad basadas en PLM. Análisis de datos de microarrays © FUOC • PID 00191024 • Módulo XXX 32 affyQCReport (software package) Generación de informes de control de calidad (“QC”) para objetos affyBatch Este paquete crea informes de control de calidad (“QC”) para objetos affyBatch. El informe tiene por objeto permitir al usuario una rápida evaluación de calidad de un conjunto de matrices en un objeto AffyBatch. annotate (software package) Anotación para microarrays Uso de entornos R para gestionar las anotaciones. arrayQualityMetrics (software package) Medidas de calidad en conjuntos de datos de microarrays. Este paquete genera informes de medidas de calidad para contenedores de datos de microarrays de Bioconductor (ExpressionSet, NChannelSet, AffyBatch). El informe contiene tanto secciones generales como especı́ficas de cada plataforma. Es compatible con plataformas de arrays de uno y dos colores. Biobase (software package) Biobase: Funciones básicas de Bioconductor. Funciones que son requeridas por muchos otros paquetes o que reemplazan ciertas funciones de R. CMA (software package) Sı́ntesis de clasificación basada en microarrays Este paquete aporta una completa colección de algoritmos basados en microarrays para aprendizaje automático (“machine learning”) y estadı́stica. Selección de variables, ajuste hiperparamétrico, evaluación y comparación, pueden ser ejecutados de forma combinada o paso a paso en un entorno fácil de usar. Análisis de datos de microarrays © FUOC • PID 00191024 • Módulo XXX 33 cMAP (annotation package) Paquete de datos que contiene anotaciones para cMAP Fichero de anotaciones para cMAP reunidas a partir de repositorios de datos públicos e1071 (CRAN package) e1071: Funciones diversas del “Department of Statistics (e1071), TU Wien” Funciones para el análisis de categorias latentes, transformada de Fourier de tiempo reducido, agrupamiento difuso (“fuzzy clustering”), máquinas de vectores de soporte (”support vector machines”), cálculo de la ruta más corta, agrupación en bolsas (“bagged clustering”), clasificador ’naive’ de Bayes, . . . estrogen (experiment package) Ejercicio de diseño factorial 2x2 para un curso rápido de Bioconductor Datos de 8 genechips de Affymetrix, presentando un diseño factorial 2x2 (con 2 repeticiones por nivel) gcrma (software package) Ajuste de ruido de fondo usando información de secuencia Ajuste de ruido de fondo (“background correction”) usando información de secuencia genefilter (software package) Métodos para el filtrado de genes de experimentos de microarrays Algunas funciones básicas para el filtrado de genes GO.db (annotation package) Conjunto de mapas de anotación que describen la “Gene Ontology” Análisis de datos de microarrays © FUOC • PID 00191024 • Módulo XXX 34 Conjunto de mapas de anotación que describen la “Gene Ontology” al completo usando datos de GO golubEsets (experiment package) exprSets para datos de leucemia de Golub Representación de datos públicos de Golub con algunos datos de covarianza de procedencia desconocida hasta hoy por el responsable del paquete; ahora emplea el formato ExpressionSet gplots (CRAN package) Herramientas varias de programación R para la representación gráfica de datos Herramientas varias de programación R para la representación gráfica de datos hgu95av2.db (annotation package) Datos de anotación de “Affymetrix Human Genome U95” (chip hgu95av2) Datos de anotación de “Affymetrix Human Genome U95” (chip hgu95av2) procedentes de repositorios públicos. KEGG.db (annotation package) Conjunto de mapas de anotación para “KEGG” Conjunto de mapas de anotación para KEGG procedentes de la misma “Kyoto Encyclopedia of Genes and Genomes” limma (software package) Modelos lineales para datos de microarrays Análisis de datos, modelos lineales y expresión diferencial para datos de microarrays Análisis de datos de microarrays © FUOC • PID 00191024 • Módulo XXX 35 multtest (software package) Remuestreo basado en pruebas de hipótesis múltiples Procedimientos de pruebas de hipótesis múltiples basados en Bootstrap paramétrico y remuestreo por permutación (incluyendo métodos bayesianos empı́ricos) para el control de las tasas de error como “Familywise error rate (FWER)”, “generalized family-wise error rate (gFWER)”, “tail probability of the proportion of false positives (TPPFP)”, y “false discovery rate (FDR)”. plier (software package) Implementa el algoritmo PLIER de Affymetrix El método PLIER (“Probe Logarithmic Error Intensity Estimate”) produce una señal mejorada teniendo en cuenta los patrones experimentales observados en el comportamiento de las sondas y manejando de forma apropiada el error a nivel de los valores de señal extremos. rpart (CRAN package) Particionamiento recursivo Particionamiento recursivo y árboles de regresión simpleaffy (software package) Análisis de alto nivel muy simple para datos de Affymetrix Proporciona funciones de alto nivel para la lectura de archivos .CEL y datos fenotı́picos de Affy, calculando entonces cosas simples, como “t-tests” y “fold changes”, con ellas. Hace un uso intensivo de la librerı́a affy. También tiene algunas funciones de diagramas de dispersión y mecanismos para la generación de figuras de alta resolución para publicaciones. tkWidgets (software package) Tk widgets basados en R Widgets para proporcionar interfaces de usuario. Se requiere la instalación de tcltk para que funcionen. Análisis de datos de microarrays © FUOC • PID 00191024 • Módulo XXX 36 yeastCC (experiment package) Datos de microarrays del ciclo celular de la levadura de Spellman et al. (1998) y Pramila/Breeden (2006) ExpressionSet de los datos de experimentos del ciclo celular de la levadura, de Spellman et al. (1998) ygs98.db (annotation package) Datos de anotaciones de “Affymetrix Yeast Genome S98” (chip ygs98) Datos de anotaciones de “Affymetrix Yeast Genome S98 Array” (chip ygs98) obtenidos a partir de datos de repositorios públicos ygs98cdf (annotation package) Paquete con el entorno del fichero YG_S98.cdf. Paquete con el entorno para la representación del fichero de YG_S98.cdf de “Affymetrix Yeast Genome S98”. ygs98probe (annotation package) Datos de secuencias de sondas para los microarrays de tipo ygs98 Este paquete fue creado automáticamente por el paquete AnnotationDbi (versión 1.15.34). Los datos de secuencias de sondas se obtuvieron de www.affymetrix.com. El fichero se llamó YG-S98_probe_tab. Análisis de datos de microarrays