Vous êtes sur la page 1sur 26

An alisis de datos de microarrays

Alex S anchez-Pla y M. Carme Ru z de Villa Departament dEstad stica. Universitat de Barcelona. Facultat de Biologia. Avda. Diagonal 643. 08028 Barcelona. Spain. asanchez@ub.edu;mruiz_de_villa@ub.edu
xx PID 00191032 M odulo

FUOC PID 00191032 M odulo XXX

An alisis de datos de microarrays

Indice

I II
1 2

Preliminares An alisis de datos de microarrays


El proceso de an alisis de datos de microarray (MDA) . . . . . . . . . Dise no de experimentos de microarrays . . . . . . . . . . . . . . . . . . . . . . . . . 2.1 2.2 2.3 2.4 Fuentes de variabilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Principales conceptos en Dise no de Experimentos . . . . . . . . . . . . . . . Principios b asicos en el dise no del experimento . . . . . . . . . . . . . . . . . . Replicaci on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.1 2.4.2 2.5 Potencia y tama no de la muestra . . . . . . . . . . . . . . . . . . . . . . . . Pooling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4 4
5 7 7 8 8 9 9 10 11 14 14 15 17 19 20 21 22 22 23 24 25 26 26 26 27 28 28 29 30 30 30 30

Dise nos experimentales para microarrays de dos colores . . . . . . . . .

Exploraci on de los datos, control de calidad y preprocesado . . 3.1 Exploraci on visual de los datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.1 3.1.2 3.2 3.3 3.2.1 3.3.1 3.3.2 3.3.3 3.3.4 3.4 Gr acos de diagn ostico para chips de ADNc . . . . . . . . . . . . . Gr acos de diagn ostico para chips de Aymetrix . . . . . . . . . M etodos de normalizaci on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M.A.S. 4.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M.A.S. 5.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modelos multichip de Li y Wong . . . . . . . . . . . . . . . . . . . . . . . . . El m etodo RMA (Robust Multi-Array Average) . . . . . . . . .

Normalizaci on de arrays de dos colores . . . . . . . . . . . . . . . . . . . . . . . . . . Sumarizaci on y normalizaci on microarrays de Aymetrix . . . . . .

Filtraje no espec co . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Introducci on a Bioconductor y sus paquetes . . . . . . . . . . . . . . . . . . . . 4.1 4.2 4.3 Objetivos de Bioconductor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Paquetes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Programaci on orientada a objetos en R y Bioconductor . . . . . . . . . 4.3.1 4.3.2 4.4 4.5 Clases y m etodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Entornos (environments) y clausuras (closures) . . . . . . .

Dos clases de especial utilidad: expressionSet y affyBatch . . . . Primeros pasos: Instalaci on, Cursos, Vignettes . . . . . . . . . . . . . . . . . . 4.5.1 4.5.2 4.5.3 Instalaci on b asica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cursos cortos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Las vi netas (Vignettes) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

FUOC PID 00191032 M odulo XXX

An alisis de datos de microarrays

4.6 5

Listado de paquetes usados en los ejemplos y/o citados en el texto:

31 37 37 38 38 39 39 39 40 40 43 45 47 47 51 54 54 26 26 27 31 34 34 37 37 38 39 46 47 48 48 49 50

An alisis de microarrays con R y Bioconductor . . . . . . . . . . . . . . . . . . . 5.1 Introducci on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.1 5.1.2 5.2 5.2.1 5.2.2 5.3 5.3.1 5.3.2 5.3.3 5.4 5.4.1 5.4.2 5.4.3 5.4.4 El ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Directorios y opciones de trabajo . . . . . . . . . . . . . . . . . . . . . . . Los datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lectura de los datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exploraci on y visualizaci on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Control de calidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Normalizacion y Filtraje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . An alisis basado en modelos lineales . . . . . . . . . . . . . . . . . . . . . . Anotaci on de resultados (1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Comparaciones m ultiples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Visualizaci on de los perles de expresi on . . . . . . . . . . . . . . . . .

Obtenci on y lectura de los datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exploraci on, Control de Calidad y Normalizaci on . . . . . . . . . . . . . . .

Selecci on de genes diferencialmente expresados . . . . . . . . . . . . . . . . . .

Selecci on de genes diferencialmente expresados . . . . . . . . . . . . . . . . 4.1 Introducci on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.1 4.1.2 4.1.3 4.1.4 4.2 4.2.1 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.3 4.3.1 4.3.2 Medidas naturales para comparar dos muestras . . . . . . . . . . Selecci on de genes diferencialmente expresados . . . . . . . . . . . Potencia y tama no muestral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tests m ultiples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . El modelo lineal general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ejemplos de situaciones modelizables linealmente . . . . . . . . Ejemplo 2: Comparaci on de tres grupos . . . . . . . . . . . . . . . . . Estimaci on e inferencia con el modelo lineal . . . . . . . . . . . . . . Modelos lineales para Microarrays . . . . . . . . . . . . . . . . . . . . . . . Implementaci on y ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . An alisis de la signicaci on biol ogica . . . . . . . . . . . . . . . . . . . . . . An alisis de enriquecimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Modelos lineales para la selecci on de genes: limma . . . . . . . . . . . . . .

An alisis de las listas de genes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Part I

Preliminares

FUOC PID 00191032 M odulo XXX


.

37

An alisis de datos de microarrays

5. An alisis de microarrays con R y Bioconductor

5.1

Introducci on

El an alisis de datos de microarrays suele proceder, en general secuencialmente, a trav es de una serie de etapas tal y como se muestra en la gura 16.

Figura 16: The Microarray Analysis Process

En cada una de las etapas pueden llevarse a cabo diversos procesos, con diversas variantes de m etodos parecidos.A lo largo de la primera d ecada del 2000 se ha desarrollado el proyecto Bioconductor que ha impulsado la creaci on de cientos de paquetes de R que implementan casi todas las capcidades posibles de an alisis de microarrays. Aunque nadie puede conocer todos los paquetes con tan s olo conocer algunos de ellos es posible llevar a cabo potentes an alisis con relativa facilidad.

El objetivo de este cap tulo es ilustrar de forma breve pero completa como se hace un an alisis de microarrays usando las facilidades que ofrecen Bioconductor y R.

Como se ha dicho, uno de los problemas en este tipo de estudios es que en cada etapa se puede proceder de varias formas lo que da lugar a un asxiante n cumero Imatge de posibilidades especialmente para el ne oto. Con el n de evitar este problema multiples de momento se describe una sola de las opciones posibles para cada paso, lo que metodes constituye un proceso al estilo Bioconductor faigservir VHIR i cita que al dels

FUOC PID 00191032 M odulo XXX


5.1.1 El ejemplo

38

An alisis de datos de microarrays

El ejemplo analizado consiste en unos datos disponibles en forma de paquete (estrogen) en Bioconductor. Se trata de un estudio en el que se estudia la inuencia del tratamiento con estr ogeno y del tiempo transcurrido desde el tratamiento en la expresi on de genes asociados con cancer de mama cita del paper i del paquet El dise no experimental para este estudio consiste en un dise no factorial de 2 factores Estrogeno (PresenteAusente), Tiempo (8h 48h). La documentaci on del paquete estrogen ofrece m as detalles acerca del dise no y las variables utilizadas. s Si el paquete no se encuentra instalado puede instalarse con la instrucci on biocLite que se descarga de la web de Bioconductor. TO-DO: Preparar llista de > if (!(require("estrogen", character.only=T))){ + + + source("http://bioconductor.org/biocLite.R") biocLite("estrogen") } en an` alisi paquets aquesta que sutilitzen

En lo que sigue supondremos que se ha llevado a cabo una instalaci on est andar de Bioconductor es decir se han ejecutado las instrucciones:

> source("http://bioconductor.org/biocLite.R") > biocLite("estrogen")

5.1.2

Directorios y opciones de trabajo

Para facilitar supondremos que trabajamos en un directorio escogido por nosotros y cuya localizaci on se asigna a la variable workingDir. Los datos se copiaran en un subdirectorio del anterior denominado data que se almacenar a en la variable dataDir y los resultados se almacenar an en un directorio results cuyo nombre completo se almacenar a en la variable resultsDir.

> workingDir <-getwd() > system("mkdir data") > system("mkdir results") > dataDir <-file.path(workingDir, "data") > resultsDir <- file.path(workingDir, "results") > setwd(workingDir)

> options(width=80) > options(digits=5)

FUOC PID 00191032 M odulo XXX


5.2 Obtenci on y lectura de los datos

39

An alisis de datos de microarrays

Para un an alisis de datos de microarrays de Aymetrix se necesitan los archivos de im agenes escaneadas (.CEL) y un archivo en el que se asigne una condici on experimental a cada archivo.

5.2.1

Los datos

Una ventaja de este ejemplo es que los datos se encuentran disponibles tras instalar el paquete estrogen por lo que se pueden copiar un directorio de trabajo o simplemente trabajar con ellos en el directorio original. El directorio en que se encuentran los archivos .CEL es:

> require(estrogen) > estrogenDir <- system.file("extdata", package = "estrogen") > print(estrogenDir)

[1] "/home/alex/R/x86_64-pc-linux-gnu-library/2.13/estrogen/extdata"

Para realizar el an alisis es preciso copiar todos los archivos del directorio extdata a nuestro directorio de trabajo data. ATENCION: Esta operacioon que depende de la instalaci on y del sistema operativo. Por ejemplo para copiarlos desde R en linx se escribir a:

> system(paste ("cp ", estrogenDir,"/* ./data", sep=""))

Los archivos copiados son


X X

Los ocho archivos .CEL para el an alisis Un archivo defectuoso para que se vea como debe salir un array malo en el control de calidad.

Un archivo de covariables o targets que se usar a al leer los archivos .CEL incorporar la informaci on de las covariables en el objeto que se crear a.

5.2.2

Lectura de los datos

El proceso de leer los datos puede parecer un poco extra no a primera vista pero la idea es simple:

FUOC PID 00191032 M odulo XXX


X

40

An alisis de datos de microarrays

En primer lugar creamos algunas estructuras de datos que contienen la informaci on sobre las variables y - opcionalmente - sobre las anotaciones y el experimento y

A continuaci on nos basamos en estas estructuras para leer los datos y crear los objetos principales que se utilizar an para el an alisis.

> require(Biobase) > require(affy) > sampleInfo <- read.AnnotatedDataFrame(file.path(estrogenDir,"targLimma.txt"), + header = TRUE, row.names = 1, sep="\t") > fileNames <- pData(sampleInfo)$FileName > rawData <- read.affybatch(filenames=file.path(estrogenDir,fileNames), + phenoData=sampleInfo)

Una forma alternativa de leer los datos consiste en acceder al directorio en donde se encuentran y escribir ReadAffy En este ejemplo se incluye un archivo defectuoso con nes did acticos, llamado badcel. Para ilustrar las diferencias entre archivos correctos e incorrectos se puede leer en otro objeto.

> require(affy) > setwd(estrogenDir) > rawData.wrong <- ReadAffy() > setwd(workingDir)

5.3

Exploraci on, Control de Calidad y Normalizaci on

Tras leer los datos pasamos al preprocesado. Aunque puede interpretarse de distintas formas esta fase suele consistir en

1) Realizar algunos gr acos con los datos para hacerse una idea de como ha resultado el experimento. 2) Realizar un control de calidad m as formal. 3) Normalizar y, en el caso de Aymetrix, resumir las expresiones

5.3.1

Exploraci on y visualizaci on

La exploraci on previa puede hacerse paso a paso o en bloque si se utiliza alg un paquete como arratQualityMetrics. En la ayuda de este paquete se encuentra una descripci on de los an alisis b asicos que permite realizar.

FUOC PID 00191032 M odulo XXX

41

An alisis de datos de microarrays

El primer gr aco que suele hacerse es algun tipo de densidad que muestre la distribuci on de las se nales en los datos crudos, es decir sin normalizar. Estos gr acos tambi en permiten hacerse una idea de si las distribuciones de los distintos arrays son similares en forma y posici on.

Signal distribution
neg10h neg10h est10h est10h neg48h neg48h est48h est48h

density

0.0

0.2

0.4

0.6

0.8

10

12

14

16

log intensity

El gr aco de degradaci on que no aparece en este caso, ya que daba problemeas al representarlo permite hacerse una idea de como ha sido el proceso de hibridaci on de las muestras. Lineas paralelas sugieren una calidad similar.

low10A low10B slope pvalue 0.356 0.222

hi10A 0.394

hi10B 0.0341

low48A 0.00482

low48B 0.00109

hi48A 0.0464

hi48B 0.00032

-0.137 -0.187 -0.129 -0.3810 -0.50400 -0.55300 -0.3510 -0.66700

EL c odigo para el gr aco de degradaci on ser a:

El diagrama de cajas muestra, como el histograma, una idea de la distribuci on

FUOC PID 00191032 M odulo XXX

42

An alisis de datos de microarrays

14

12

10

est10h

est10h

est48h

neg10h

neg10h

neg48h

de los datos.

Finalmente un cluster jer arquico seguido de un dendrograma nos puede ayudar a hacernos una idea de si las muestras se agrupan por condiciones experimentales.

Si lo hacen es bueno, pero si no, no es necesariamente indicador de problemas, puesto que es un gr aco basado en todo los datos.

Hierarchical clustering of samples


2500000

Height

500000

1500000

est10h

est10h

est48h

neg10h

neg10h

neg48h

dist(t(exprs(rawData))) hclust (*, "average")

neg48h

est48h

neg48h

est48h

FUOC PID 00191032 M odulo XXX


5.3.2 Control de calidad

43

An alisis de datos de microarrays

Las exploraciones anteriores nos proporcionan una idea de como son los datos.

Se pueden realizar controles de calidad m as estrictos como:


X

Los controles de calidad est andar de Aymetrix, descritos en el paquete simpleaffy.

Controles basados en modelos a nivel de sondas, descritos en el paquete affyPLM.

El paquete affyQCReport encapsula los an alisis que pueden realizarse con el paquete simpleaffy, de forma que con una instrucci on se pueden realizar todos los an alisis y enviar la salida a un archivo.

> stopifnot(require(affyQCReport)) > QCReport(rawData,file=file.path(resultsDir,"QCReport.pdf"))

EL paquete affyPLM realiza un control de calidad basado en probe-level models (PLM).

> stopifnot(require(affyPLM)) > computePLM <- T > if(computePLM){ + + + + } Pset<- fitPLM(rawData) save(Pset, file=file.path(dataDir,"PLM.Rda")) load (file=file.path(dataDir,"PLM.Rda"))

+ }else{

Como resultado del ajuste PLM se pueden obtener dos gracos, uno de expresiones relativas y otro con errores estandarizados. Si los datos son de calidad ambos gracos deben ser centrados y relativamente simetricos. Cambios en esta

FUOC PID 00191032 M odulo XXX

44

An alisis de datos de microarrays

Relative Log Expression

est10h

est10h

est48h

neg10h

neg10h

neg48h

situacion sugieren problemas en los arrays que no las veriquen.

Normalized Unscaled Standard Errors

1.4

1.2

1.0

0.8

0.6

est10h

est10h

est48h

neg10h

neg10h

neg48h

Para concluir con esta seccionmerece la pena tener en cuenta que todos estos gracos son exploratorios. Raramente se descarta un array si solo un graco lo sugiere.

Merece la pena repetir la exploracion y el control de calidad con el objeto rawData.wrong En este caso hay un array defectuoso y se ve muy claramente que quiere decir array problematico en los gracos.

neg48h

est48h

neg48h

est48h

FUOC PID 00191032 M odulo XXX


used Ncells Vcells 11371898 (Mb) gc trigger 86.8 (Mb) max used 2068180 110.5 3708127 198.1

45

An alisis de datos de microarrays

(Mb)

3708127 198.1

34722111 265.0 39162498 298.8

5.3.3

Normalizacion y Filtraje

Una vez realizado el control de calidad se procede a normalizar los datos y sumarizarlos.

Hecho esto puede realizarse un ltraje no espec co con el n de eliminar genes que constituyen b asicamente ru do, bien porque sus se nales son muy bajas o bien porque apenas var an entre condiciones, por lo que no aportan nada a la selecci on de genes diferencialmente expresados.

Normalizaci on

La normalizaci on puiede hacerse por distintos m etodos (MAS5, VSN, RMA, GCRMA, ...) En este ejemplo se utilizar a el m etodo RMA pero no se realizar a ltraje alguno. Esto puede implicar quiz as que para seleccionar genes diferencialmente expresados bas andose en el ajuste de p-valores debamos utilizar criterios menos restrictivos que si hubi eramos ltrado, pero tiene la ventaja de eliminar un paso que, en el mejor de los casos, resulta controvertido.

El procesado mediante RMA implica un proceso en tres etapas:


X X X

Correcci on de fondo (el RMA hace precisamente esto). Normalizaci on para hacer los valores de los arrays comparables. Summarizaci on de las diversas sondas asociadas a cada grupo de sondas para dar un u nico valor.

> stopifnot(require(affy)) > normalize <- T > if(normalize){ + + + + } eset_rma <- rma(rawData) save(eset_rma, file=file.path(dataDir,"normalized.Rda")) load (file=file.path(dataDir,"normalized.Rda"))

+ }else{

Background correcting Normalizing

FUOC PID 00191032 M odulo XXX


Calculating Expression

46

An alisis de datos de microarrays

La normalizaci on hace que los valores de los arrays sean comparables entre ellos, aunque los distintos m etodos situan los valores en escalas distintas, por lo que lo que no resulta directamente comparable son los valores normalizados por distintos m etodos.

Un boxplot de los valores normalizados sugiere que los valores ya est an en una escala en donde se pueden comparar.

> boxplot(eset_rma,main="RMA", names=sampleNames, cex.axis=0.7, col=info$grupo+1,las=2)

El c odigo siguiente, que no se ejecuta muestra como se podr an aplicar distintos m etodos para lego compararlos entre ellos.

> eset_mas5 <- mas5(rawData) > stopifnot(require(gcrma))

# Uses expresso (MAS 5.0 method) much slower than RMA!

> eset_gcrma <- gcrma(rawData) # The library(gcrma) needs to be loaded first. > stopifnot(require(plier)) > eset_plier <- justPlier(rawData, normalize=T) # The library(plier) needs to be loaded first. > compara <-data.frame(RMA=exprs(eset_rma)[,1], MAS5 =exprs(eset_mas5)[,1], + > pairs(compara) GCRMA=exprs(eset_gcrma)[,1], PLIER =exprs(eset_plier)[,1])

Filtraje

El ltraje no espec co permite eliminar los genes que var an poco entre condiciones o que deseamos quitar por otras razones como por ejemplo que no disponemos de anotaci on para ellos.

> require(genefilter) > filtrats <- nsFilter(eset_rma) > class(filtrats)

[1] "list"

> names(filtrats)

[1] "eset"

"filter.log"

> dim(exprs(filtrats$eset))

FUOC PID 00191032 M odulo XXX


[1] 4409 8

47

An alisis de datos de microarrays

Despues del ltraje han quedad 4409 genes disponibles para analizar.

5.4

Selecci on de genes diferencialmente expresados

Como en las etapas anteriores la selecci on de genes diferencialmente expresados (GDE) puede basarse en distintas aproximaciones, desde la t de Student al programa SAM pasando por multitud de variantes.

En este ejemplo se aplicar a la aproximaci on presentada por Smyth et al. (2004) basado en la utilizaci on del modelo lineal general combinada con un m etodo para obtener una estimaci on mejorada de la varianza.

5.4.1

An alisis basado en modelos lineales

El cap tulo 6 de tse manual o el manual del programa limma contienen explicaciones detalladas sobre construir un modelo lineal para este problema y como utilizarlo para seleccionar genes diferencialmente expresados.

Matriz de dise no

El primer paso para el an alisis es crear la matriz de dise no.

La situaci on discutida en este ejemplo se puede modelizar de dos formas, tal como se discute en la presentaci on citada m as arriba:
X

Como un modelo de dos factores Estrogeno(Pres/Aus) Tiempo (10h/48h) con interacci on.

Como un modelo de un factor con cuatro niveles (Pres.10h/Pres.48h/Aus.10h/Aus.48h).

Tal como se describe en el manual de limma la segunda parametrizaci on resulta a menudo m as comoda, a pesar de parecer menos intuitiva, porque permite formular con m as facilidad que la de dos factores las preguntas que t picamente interesan a los investigadores.

El modelo lineal para este estudio ser a:

FUOC PID 00191032 M odulo XXX



y1 y2 y3 y4 y5 y6 y7 y8

48

An alisis de datos de microarrays

1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1

+
1 2 3 4 5 6 7 8

1 2 3 4

Design Matrix,X

Los par ametros del modelos representan las cuatro combinaciones tiempo/estrogeno.

1 2 3 4

E(logAbs.10h),

E(logP res.10h),

E(logAbs.48h),

E(logP res.48h).

La matriz de dise no puede denirse manualmente o a partir de un factor creado espec camente para ello.

Manualmente, seria:

> design.1<-matrix( + c(1,1,0,0,0,0,0,0, + + + 0,0,1,1,0,0,0,0, 0,0,0,0,1,1,0,0, 0,0,0,0,0,0,1,1),

+ nrow=8, + byrow=F) > colnames(design.1)<-c("neg10h", "est10h", "neg48h", "est48h") > rownames(design.1) <> print(design.1) c("low10A", "low10B", "hi10A" , "hi10B", "low48A", "low48B", "hi48A" , "hi48B")

neg10h est10h neg48h est48h

FUOC PID 00191032 M odulo XXX


low10A low10B hi10A hi10B low48A low48B hi48A hi48B 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1

49

An alisis de datos de microarrays

Alternativamente puede crearse la matriz de dise no a partir de la informaci on sobre las condiciones contenida en el phenoData, siempre que exista un campo adecuado para ello.

En este caso la columna Target se ha creado para utilizarla con esta nalidad. El objeto phenoData puede recrearse a partir del archivo original o extray endolo del objeto ExpresionSet que contiene los datos y las covariables.

neg10h est10h neg48h est48h low10A low10B hi10A hi10B low48A low48B hi48A hi48B [1] 1 1 1 1 attr(,"contrasts") attr(,"contrasts")$lev [1] "contr.treatment" 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1

attr(,"assign")

Ambas matrices, design, design.1 resultan iguales.

Contrastes

Dado un modelo lineal denido a traves de una matriz de dise no pueden formularse las preguntas de interes como contrastes es decir comparaciones entre los parametros del modelo.

Cada parametrizacion distinta requerira de unos contrastes diferentes para las mismas preguntas, por lo que habitualmente se utilizara la parametrizacion que permita formular de forma mas clara las comparaciones de interes.

FUOC PID 00191032 M odulo XXX


En este caso interesa estudiar
X X X

50

An alisis de datos de microarrays

Efecto del estrogeno al inicio del tratamiento Efecto del estrogeno al cabo de un tiempo del tratamiento Efecto del tiempo en ausencia de estrogeno

Esto se puede formular facilmente con la parametrizacion adoptada.

1 1

2 1 , 4 3 , 3 1 ,

Efecto del estrogeno pasadas 10 horas Efecto del estrogeno pasadas 48 horas Efecto del tiempo en ausencia de Estrogeno

1 2

1 3

> cont.matrix <- makeContrasts ( + + + + Estro10=(est10h-neg10h), Estro48=(est48h-neg48h), Tiempo=(neg48h-neg10h), levels=design)

> cont.matrix

Contrasts Levels neg10h est10h neg48h est48h Estro10 Estro48 Tiempo -1 1 0 0 0 0 -1 1 -1 0 1 0

Estimaci on del modelo y selecci on de genes

Una vez denida la matriz de dise no y los contrastes podemos pasar a estimar el modelo, estimar los contrastes y realizar las pruebas de signicaci on que nos indiquen, para cada gen y cada comparaci on, si puede considerarse diferencialmente expresado.

El m etodo implementado en limma ampl a el an alisis tradicional utilizando modelos de Bayes emp ricos para combinar la informaci on de toda la matriz de datos y de cada gen individual y obtener estimaciones de error mejoradas.

El an alisis proporciona los estad sticos de test habituales como Fold-change tmoderados o p-valores ajustados que se utilizan para ordenar los genes de mas a menos diferencialmente expresados.

FUOC PID 00191032 M odulo XXX

51

An alisis de datos de microarrays

A n de controlar el porcentaje de falsos positivos que puedan resultar del alto numero de contrastes realizados simultaneamente los pvalores se ajustan de forma que tengamos control sobre la tasa de falsos positivos utilizando el metodo de Benjamini y Hochberg ([?]).

La funcion topTable genera para cada contraste una lista de genes ordenados de mas a menos diferencialmente expresados.

> topTabEstro10 <- topTable (fit.main, number=nrow(fit.main), coef="Estro10", adjust="fdr") > topTabEstro48 <- topTable (fit.main, number=nrow(fit.main), coef="Estro48", adjust="fdr") > topTabTiempo <- topTable (fit.main, number=nrow(fit.main) , coef="Tiempo", adjust="fdr")

Una forma de visualizar los resultados es mediante un volcano plot que representa en abscisas los cambios de expresi on en escala logar tmica y en ordenadas el menos logaritmo del p-valor o alternativamente el estad stico B .
Differentially expressed genes Estro10
10
9734 12472 1813 11508 10213 952 579

9848 921 139

Log Odds

5 2

1
Log Fold Change

5.4.2

Anotaci on de resultados (1)

La identicaci on de los genes seleccionados puede resultar m as sencilla para el especialista en un campo si se utilizan nombres est andar como el simbolo del gen o gene symbol. Con esta nalidad cada paquete de anotaciones tiene tablas de correspondencia entre los distintos tipos de identicadores, principalmente entre los del array y los de otras bases de datos.

Para saber que anotaciones estan disponibles debe cargarse el paquete y llamar la funci on del mismo nombre

FUOC PID 00191032 M odulo XXX


> require(hgu95av2.db) > hgu95av2()

52

An alisis de datos de microarrays

Quality control information for hgu95av2:

This package has the following mappings: hgu95av2ACCNUM has 12625 mapped keys (of 12625 keys) hgu95av2ALIAS2PROBE has 38927 mapped keys (of 112379 keys) hgu95av2CHR has 11766 mapped keys (of 12625 keys) hgu95av2CHRLENGTHS has 93 mapped keys (of 93 keys) hgu95av2CHRLOC has 11670 mapped keys (of 12625 keys) hgu95av2CHRLOCEND has 11670 mapped keys (of 12625 keys) hgu95av2ENSEMBL has 11526 mapped keys (of 12625 keys) hgu95av2ENSEMBL2PROBE has 9161 mapped keys (of 19948 keys) hgu95av2ENTREZID has 11769 mapped keys (of 12625 keys) hgu95av2ENZYME has 2153 mapped keys (of 12625 keys) hgu95av2ENZYME2PROBE has 791 mapped keys (of 975 keys) hgu95av2GENENAME has 11769 mapped keys (of 12625 keys) hgu95av2GO has 11351 mapped keys (of 12625 keys) hgu95av2GO2ALLPROBES has 13277 mapped keys (of 14407 keys) hgu95av2GO2PROBE has 9739 mapped keys (of 10981 keys) hgu95av2MAP has 11743 mapped keys (of 12625 keys) hgu95av2OMIM has 10453 mapped keys (of 12625 keys) hgu95av2PATH has 5490 mapped keys (of 12625 keys) hgu95av2PATH2PROBE has 228 mapped keys (of 229 keys) hgu95av2PFAM has 11698 mapped keys (of 12625 keys) hgu95av2PMID has 11751 mapped keys (of 12625 keys) hgu95av2PMID2PROBE has 264639 mapped keys (of 302146 keys) hgu95av2PROSITE has 11698 mapped keys (of 12625 keys) hgu95av2REFSEQ has 11720 mapped keys (of 12625 keys) hgu95av2SYMBOL has 11769 mapped keys (of 12625 keys) hgu95av2UNIGENE has 11750 mapped keys (of 12625 keys) hgu95av2UNIPROT has 11503 mapped keys (of 12625 keys)

Additional Information about this package: DB schema: HUMANCHIP_DB DB schema version: 2.1 Organism: Homo sapiens Date for NCBI data: 2011-Mar16 Date for GO data: 20110312 Date for KEGG data: 2011-Mar15 Date for Golden Path data: 2010-Mar22

FUOC PID 00191032 M odulo XXX


Date for IPI data: 2011-Feb18 Date for Ensembl data: 2011-Feb2

53

An alisis de datos de microarrays

Cafa tabla de asociaci on puede consultarse de diversas formas,


X X X

Con las funciones get o mget. Convirti endola en una tabla y extrayendo valores En algunos casos utilizando funciones espec cas como getSYMBOL o getEG (por Entrez Gene) cuando exitan.

Por ejemplo si tomamos los cinco primeros genes seleccionados en la comparaci on Estro10

> top5 <-topTabEstro10$ID[1:5] > cat("Usando mget\n")

Usando mget

> geneSymbol5.1 <- unlist(mget(top5, hgu95av2SYMBOL)) > geneSymbol5.1

39642_at "ELOVL2"

910_at 31798_at 41400_at 40117_at "TK1" "TFF1" "TK1" "MCM6"

> cat("Usando toTable\n")

Usando toTable

> genesTable<- toTable(hgu95av2SYMBOL) > rownames(genesTable) <> genesTable[top5, 2] genesTable$probe_id

[1] "ELOVL2" "TK1"

"TFF1"

"TK1"

"MCM6"

> cat("Usando getSYMBOL\n")

Usando getSYMBOL

FUOC PID 00191032 M odulo XXX


> require(annotate)

54

An alisis de datos de microarrays

> geneSymbol5.3 <- getSYMBOL(top5, "hgu95av2.db") > geneSymbol5.3

39642_at "ELOVL2"

910_at 31798_at 41400_at 40117_at "TK1" "TFF1" "TK1" "MCM6"

5.4.3

Comparaciones m ultiples

Cuando se realizan varias comparaciones a la vez puede resultar importante ver que genes cambian simult aneamente en m as de una comparaci on. Si el n umero de comparaciones es alto tambi en puede ser necesario realizar un ajuste de p-valores entre las comparaciones, distinto del realizado entre genes.

La funci on decidetests permite realizar ambas cosas. En este ejemplo no se ajustaran los pvalores entre comparaciones. Tan solo se seleccionaran los genes que cambian en una o m as condiciones.

EL resultado del an alisis es una tabla res que para cada gen y cada comparaci on contiene un 1 (si el gen esta sobre-expresado o up en esta condicion), un 0 (si no hay cambio signicativo) o un -1 (si esta down-regulado).

Para resumir dicho an alisis podemos contar qu e las tienen como m nimo una celda distinta de cero:

> sum.res.rows<-apply(abs(res),1,sum) > res.selected<-res[sum.res.rows!=0,] > print(summary(res))

Estro10 Estro48 Tiempo -1 0 1 23 12512 90 99 12375 151 27 12591 7

Un diagrama de Venn permite visualizar la tabla anterior sin diferenciar entre genes up o down regulados.

5.4.4

Visualizaci on de los perles de expresi on

Tras seleccionar los genes diferencialmente expresados podemos visualizar las expresiones de cada gen agrup andolas para destacar los genes que se encuentran

FUOC PID 00191032 M odulo XXX


Genes in common #1

55

An alisis de datos de microarrays

> vennDiagram (res.selected[,1:3], main="Genes in common #1", cex=0.9)

Estro10

Estro48

38

69

169

3 3 9

19

Tiempo

Figura 18: N umero de genes seleccionado en cada comparaci on up o down regulados simult aneamente constituyendo perles de expresi on.

Hay distintas formas de visualizaci on pero aqu tan s olo se presenta el uso de mapas de color o Heatmaps.

En primer lugar seleccionamos los genes avisualizar: Se toman todos aquellos que han resultado diferencialmente expresados en alguna de las tres comparaciones.

> probeNames<-rownames(res) > probeNames.selected<-probeNames[sum.res.rows!=0] > exprs2cluster <-exprs(eset_rma)[probeNames.selected,]

Para representar el Heatmap tan s olo necesitamos la matriz de datos resultante.

> color.map <- function(horas) { if (horas< 20) "yellow" else "red" } > grupColors <- unlist(lapply(pData(eset_rma)$time.h, color.map)) > heatmap(exprs2cluster, col=rainbow(100), ColSideColors=grupColors, cexCol=0.9)

FUOC PID 00191032 M odulo XXX

56

An alisis de datos de microarrays

41569_at 33255_at 37458_at 40533_at 2042_s_at 1801_at 36134_at 1945_at 34736_at 37157_at 34563_at 41480_at 41490_at 981_at 32791_at 982_at 1053_at 1823_g_at 33252_at 39642_at 39651_at 38131_at 685_f_at 1476_s_at 40697_at 34715_at 1592_at 34852_g_at 967_g_at 37646_at 39715_at 1670_at 1738_at 543_g_at 35314_at 35227_at 35437_at 34238_at 36374_at 36837_at 40348_s_at 34790_at 41719_i_at 262_at 653_at 36922_at 32589_at 349_g_at 38422_s_at 1943_at 1599_at 32263_at 40145_at 39677_at 33802_at 32901_s_at 34863_s_at 1433_g_at 38944_at 33377_at 34624_at 1087_at 35057_at 38261_at 36767_at 39248_at 32355_at 40290_f_at 36927_at 37287_at 41742_s_at 1913_at 40759_at 31792_at 2049_s_at 1842_at 40841_at 37028_at 40249_at 33218_at 33900_at 1687_s_at 38653_at 36617_at 37331_g_at 33878_at 41439_at 36634_at 35597_at 38735_at 34512_at AFFXHUMISGF3A/M97935_MB_at 634_at 39837_s_at 40425_at 32786_at 266_s_at 32001_s_at 38881_i_at 36890_at 1005_at 38584_at 40314_at 38064_at 757_at 35361_at 32448_at 37026_at 33730_at 40079_at 40621_at 35977_at 37294_at 846_s_at 40767_at 40071_at 1197_at 32597_at 37014_at 32043_at 33899_at 39397_at 38814_at AFFXBioC5_at AFFXBioBM_at AFFXBioC3_at AFFXBioDn5_at AFFXBioB5_at AFFXBioB3_at 1803_at 36833_at 36813_at 1376_at 1515_at 1505_at 1775_at 37347_at 37686_s_at 37985_at 674_g_at 39353_at 1884_s_at 1854_at 39092_at 37242_at 40407_at 39337_at 38065_at 35995_at 38368_at 36499_at 1782_s_at 651_at 38158_at 348_at 37739_at 35723_at 40412_at 39109_at 38414_at 38350_f_at 1462_s_at 35141_at 430_at 32702_at 37228_at 33901_at 1824_s_at 37913_at 38863_at 41583_at 1516_g_at 40117_at 35312_at 41400_at 910_at 38116_at 35224_at 37821_at 892_at 881_at 32239_at 40855_at 35803_at 35407_at 1993_s_at 861_g_at 1125_s_at 35059_at 35936_g_at 2004_at 39581_at 39269_at 1178_at 975_at 1610_s_at 37302_at 39637_at 36396_at 34363_at 33324_s_at 1474_s_at 38501_s_at 37263_at 418_at 904_s_at 34717_s_at 2036_s_at 32027_at 32441_at 37899_at 160043_at 35249_at 1536_at 40726_at 37576_at 1126_s_at 37485_at 38875_r_at 1544_at 38827_at 36123_at 592_at 480_at 39631_at 1158_s_at 34851_at 40078_at 33371_s_at 32536_at 39073_at 40619_at 673_at 40690_at 37585_at 34678_at 1973_s_at 40195_at 41696_at 33266_at 40874_at 1737_s_at 41485_at 1521_at 1470_at 32590_at 39756_g_at 33821_at 1651_at 38729_at 39059_at 894_g_at 32186_at 32174_at 40215_at 239_at 947_at 38720_at 893_at 37238_s_at 38966_at 2031_s_at 38882_r_at 1890_at 36681_at 38551_at 34374_g_at 1358_s_at 39738_at 38700_at 37669_s_at 1700_at 1034_at 39420_at 36958_at 1035_g_at 41386_i_at 31830_s_at 39542_at 34780_at 425_at 35485_at 1395_at 37383_f_at 40898_at 37043_at 35276_at 2047_s_at 35828_at 33308_at 38254_at 39967_at 32609_at AFFXBioDn3_at 31444_s_at 36780_at 286_at 769_s_at 956_at 319_g_at 32843_s_at 40891_f_at 33322_i_at 32272_at 39781_at 36165_at 39755_at 31798_at AFFXCreX3_at AFFXCreX5_at

hi48B

hi48A

hi10B

low48B

low48A

low10B

Si se desea realizar mapas de color m as sosticados puede utilizarse el paquete gplots que implementa una version mejorada en la funci on heatmap.2

> color.map <- function(horas) { if (horas< 20) "yellow" else "red" } > grupColors <- unlist(lapply(pData(eset_rma)$time.h, color.map)) > require("gplots") > heatmap.2(exprs2cluster, + + + col=bluered(75), scale="row", ColSideColors=grupColors, key=TRUE, symkey=FALSE, density.info="none", trace="none", cexCol=1)

low10A

hi10A

FUOC PID 00191032 M odulo XXX


Color Key

57

An alisis de datos de microarrays

1 0

Row ZScore

41569_at 33255_at 37458_at 40533_at 2042_s_at 1801_at 36134_at 1945_at 34736_at 37157_at 34563_at 41480_at 41490_at 981_at 32791_at 982_at 1053_at 1823_g_at 33252_at 39642_at 39651_at 38131_at 685_f_at 1476_s_at 40697_at 34715_at 1592_at 34852_g_at 967_g_at 37646_at 39715_at 1670_at 1738_at 543_g_at 35314_at 35227_at 35437_at 34238_at 36374_at 36837_at 40348_s_at 34790_at 41719_i_at 262_at 653_at 36922_at 32589_at 349_g_at 38422_s_at 1943_at 1599_at 32263_at 40145_at 39677_at 33802_at 32901_s_at 34863_s_at 1433_g_at 38944_at 33377_at 34624_at 1087_at 35057_at 38261_at 36767_at 39248_at 32355_at 40290_f_at 36927_at 37287_at 41742_s_at 1913_at 40759_at 31792_at 2049_s_at 1842_at 40841_at 37028_at 40249_at 33218_at 33900_at 1687_s_at 38653_at 36617_at 37331_g_at 33878_at 41439_at 36634_at 35597_at 38735_at 34512_at AFFXHUMISGF3A/M97935_MB_at 634_at 39837_s_at 40425_at 32786_at 266_s_at 32001_s_at 38881_i_at 36890_at 1005_at 38584_at 40314_at 38064_at 757_at 35361_at 32448_at 37026_at 33730_at 40079_at 40621_at 35977_at 37294_at 846_s_at 40767_at 40071_at 1197_at 32597_at 37014_at 32043_at 33899_at 39397_at 38814_at AFFXBioC5_at AFFXBioBM_at AFFXBioC3_at AFFXBioDn5_at AFFXBioB5_at AFFXBioB3_at 1803_at 36833_at 36813_at 1376_at 1515_at 1505_at 1775_at 37347_at 37686_s_at 37985_at 674_g_at 39353_at 1884_s_at 1854_at 39092_at 37242_at 40407_at 39337_at 38065_at 35995_at 38368_at 36499_at 1782_s_at 651_at 38158_at 348_at 37739_at 35723_at 40412_at 39109_at 38414_at 38350_f_at 1462_s_at 35141_at 430_at 32702_at 37228_at 33901_at 1824_s_at 37913_at 38863_at 41583_at 1516_g_at 40117_at 35312_at 41400_at 910_at 38116_at 35224_at 37821_at 892_at 881_at 32239_at 40855_at 35803_at 35407_at 1993_s_at 861_g_at 1125_s_at 35059_at 35936_g_at 2004_at 39581_at 39269_at 1178_at 975_at 1610_s_at 37302_at 39637_at 36396_at 34363_at 33324_s_at 1474_s_at 38501_s_at 37263_at 418_at 904_s_at 34717_s_at 2036_s_at 32027_at 32441_at 37899_at 160043_at 35249_at 1536_at 40726_at 37576_at 1126_s_at 37485_at 38875_r_at 1544_at 38827_at 36123_at 592_at 480_at 39631_at 1158_s_at 34851_at 40078_at 33371_s_at 32536_at 39073_at 40619_at 673_at 40690_at 37585_at 34678_at 1973_s_at 40195_at 41696_at 33266_at 40874_at 1737_s_at 41485_at 1521_at 1470_at 32590_at 39756_g_at 33821_at 1651_at 38729_at 39059_at 894_g_at 32186_at 32174_at 40215_at 239_at 947_at 38720_at 893_at 37238_s_at 38966_at 2031_s_at 38882_r_at 1890_at 36681_at 38551_at 34374_g_at 1358_s_at 39738_at 38700_at 37669_s_at 1700_at 1034_at 39420_at 36958_at 1035_g_at 41386_i_at 31830_s_at 39542_at 34780_at 425_at 35485_at 1395_at 37383_f_at 40898_at 37043_at 35276_at 2047_s_at 35828_at 33308_at 38254_at 39967_at 32609_at AFFXBioDn3_at 31444_s_at 36780_at 286_at 769_s_at 956_at 319_g_at 32843_s_at 40891_f_at 33322_i_at 32272_at 39781_at 36165_at 39755_at 31798_at AFFXCreX3_at AFFXCreX5_at

hi48B

hi48A

hi10B

low48B

low48A

low10B

low10A

hi10A

Vous aimerez peut-être aussi