bionformática estadísticabionformática estadística guillermo ayala gallego 28/01/2014 Índice...

12
Bionformática estadística Guillermo Ayala Gallego 28/01/2014 Índice • Bioinformática (estadística) • Microarrays • Preprocesado • Expresión diferencial marginal: comparaciones múltiples, test de Fisher • Enriquecimiento de conjuntos de genes o análisis de conjuntos de genes • R/Bioconductor Bioinformática • Bioinformática Un campo interdisciplinar que desarrolla y mejora métodos para almacenar, recuperar, organizar y analizar datos biológi- cos. Una actividad fundamental en Bioinformática es el desar- rollo de software para generar conocimiento biológico útil. • Bioinformática estadística Análisis de los datos obtenidos por la Biología a nivel molecu- lar, en particular, por las técnicas ómicas. Lo que no hay duda: uno de los campos de mayor demanda estadística en los últimos años. Transcripción y translación DNA Microarrays Affymetrix GeneChip Gene Expression Omnibus: GSE20986 library(Biobase) library(GEOquery) library(affy) gcel = getGEOSuppFiles("GSE20986") gse20986 = ReadAffy()

Upload: others

Post on 11-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Bionformática estadísticaBionformática estadística Guillermo Ayala Gallego 28/01/2014 Índice •Bioinformática (estadística) •Microarrays •Preprocesado •Expresión diferencial

Bionformática estadísticaGuillermo Ayala Gallego

28/01/2014

Índice

• Bioinformática (estadística)• Microarrays• Preprocesado• Expresión diferencial marginal: comparaciones múltiples, test de

Fisher• Enriquecimiento de conjuntos de genes o análisis de conjuntos de

genes• R/Bioconductor

Bioinformática

• Bioinformática

– Un campo interdisciplinar que desarrolla y mejora métodospara almacenar, recuperar, organizar y analizar datos biológi-cos. Una actividad fundamental en Bioinformática es el desar-rollo de software para generar conocimiento biológico útil.

• Bioinformática estadística

– Análisis de los datos obtenidos por la Biología a nivel molecu-lar, en particular, por las técnicas ómicas.

– Lo que no hay duda: uno de los campos de mayor demandaestadística en los últimos años.

Transcripción y translación

DNA Microarrays

Affymetrix GeneChip

Gene Expression Omnibus: GSE20986

library(Biobase)

library(GEOquery)

library(affy)

gcel = getGEOSuppFiles("GSE20986")

gse20986 = ReadAffy()

Page 2: Bionformática estadísticaBionformática estadística Guillermo Ayala Gallego 28/01/2014 Índice •Bioinformática (estadística) •Microarrays •Preprocesado •Expresión diferencial

bionformática estadística 2

Page 3: Bionformática estadísticaBionformática estadística Guillermo Ayala Gallego 28/01/2014 Índice •Bioinformática (estadística) •Microarrays •Preprocesado •Expresión diferencial

bionformática estadística 3

Page 4: Bionformática estadísticaBionformática estadística Guillermo Ayala Gallego 28/01/2014 Índice •Bioinformática (estadística) •Microarrays •Preprocesado •Expresión diferencial

bionformática estadística 4

Page 5: Bionformática estadísticaBionformática estadística Guillermo Ayala Gallego 28/01/2014 Índice •Bioinformática (estadística) •Microarrays •Preprocesado •Expresión diferencial

bionformática estadística 5

GSE20986_1: conjunto de sondas

¿Qué son estos niveles de gris?

• Para cada sonda tenemos un nivel de gris.• Un valor mayor indica un mayor número de hibridaciones y un

mayor número de copias.• El gen se expresa más.• ¿Tiene un sentido absoluto esta medida de expresión? No.• Esto resta importancia a los problemas de estimación.

¿Cómo es un experimento?

• Observamos n microarrays bajo distintas condiciones y.• Cada microarray es una muestra (una observación).• La variable y será:

– categórica con dos niveles (controles y casos) o más de dosniveles,

– numérica (tiempo, tasa de crecimiento celular, etc.),– un tiempo de supervivencia.

• Y la pregunta habitual: ¿hay relación entre la expresión y la vari-able y?

Un experimento

• La matriz de datos es

X =

x11 . . . x1n

......

...xN1 . . . xNn

• $x_{ij} = $ expresión (abundancia) de la característica i en la mues-

tra j.• En filas: características (N muy grande).• En columnas: muestras (n muy pequeño).

dim(gse20986raw)

## Loading required package: affy

## Features Samples

## 1354896 12

• Se asume: dependencia entre filas e independencia entre colum-nas.

Variabilidad intra y entre arrays

Page 6: Bionformática estadísticaBionformática estadística Guillermo Ayala Gallego 28/01/2014 Índice •Bioinformática (estadística) •Microarrays •Preprocesado •Expresión diferencial

bionformática estadística 6

ID = probeNames(gse20986raw)[998]

matplot(pm(gse20986raw, ID), type = "l")

hist(gse20986raw)

Preprocesado de la información

• Corrección de fondo, normalización y obtención de la expresión.• Métodos más utilizados

– RMA: Robust Multiarray Average– MAS5.0 (proporcionado por el software de Affymetrix)

• Es muy importante evaluar el método de preprocesado.• Hipótesis como la independencia entre columnas no son demasi-

ado asumibles si estudiamos el método de preprocesado que se hautilizado (pero no hay más remedio).

RMA

• Corrección de fondo• Normalización de cuantiles

Page 7: Bionformática estadísticaBionformática estadística Guillermo Ayala Gallego 28/01/2014 Índice •Bioinformática (estadística) •Microarrays •Preprocesado •Expresión diferencial

bionformática estadística 7

• Median polish

gse20986 = rma(gse20986raw)

dim(exprs(gse20986))

## [1] 54675 12

Expresión diferencial (marginal)

Comparaciones múltiples

• Una formulación (i = 1, . . . , m):

– Hi: El gen i no tiene una expresión diferencial entre las condi-ciones consideradas.

– Ki: El gen i tiene una expresión diferencial entre las condi-ciones consideradas.

• Quizás es mejor:

– Hi: La expresión del gen i no tiene asociación con la condición.– Ki: La expresión del gen i tiene asociación con la condición.

Benjamini and Hochberg (1995)

Hipótesis nula No rechazadas Rechazadas Total

Verdadera U V m0

Falsa T S m−m0 =

m1

Total m - R R m

• ¿Qué conocemos? Solamente la variable R y el número de hipóte-sis m.

Tasas de error

FWER: Family wise error rate

• Se define como:

FWER = P(V > 0) = P(V ≥ 1).

• Es la tasa de error de uso clásico en Estadística.• Correcta para un número pequeño de hipótesis.• Es un criterio muy exigente si tenemos un número de hipótesis

muy grande.

Page 8: Bionformática estadísticaBionformática estadística Guillermo Ayala Gallego 28/01/2014 Índice •Bioinformática (estadística) •Microarrays •Preprocesado •Expresión diferencial

bionformática estadística 8

• Notemos que nos fijamos en cometer al menos un error cuandocon frecuencia tendremos decenas de miles de contrastes.

• Como (mala) contrapartida muchos genes que tendrán una expre-sión diferencial realmente no serán detectados.

FDR: false discovery rate

• O tasa de falsos positivos.• Definimos: Q = V/R si R > 0 y Q = 0 en otro caso.• Proporción de tests erróneamente rechazados.•

FDR = E(Q) = E(

VR|R > 0

)P(R > 0).

Método de Benjamini-Hochberg

1. Fijamos la tasa de error α.2. Para cada i (gen) aplicamos un test y obtenemos un p-valor pi.3. Ordenamos los p-valores

pr1 ≤ . . . ≤ prm .

4. Sea

i∗ = max{i : pri ≤im

α}

5. Rechazamos Hri para i = 1, . . . , i∗.6. Si no existe i∗ entonces no rechazamos ninguna hipótesis.

Lo aplicamos con dos grupos

library(genefilter)

library(multtest)

eset = gse20986[, c(2, 3, 5, 10:12)]

tissue = factor(rep(1:2, each = 3), levels = 1:2,

labels = c("retina", "huvec"))

tt = rowttests(eset, tissue) ## t-test

p.BH = mt.rawp2adjp(tt$p.value, "BH")

• Y podemos ver los más significativos.

head(p.BH$adjp)

## rawp BH

## [1,] 0.000000e+00 0.000000e+00

## [2,] 3.278121e-09 8.961564e-05

## [3,] 1.168274e-08 2.129180e-04

## [4,] 2.304883e-08 3.150488e-04

## [5,] 4.593095e-08 4.186219e-04

## [6,] 4.593930e-08 4.186219e-04

Page 9: Bionformática estadísticaBionformática estadística Guillermo Ayala Gallego 28/01/2014 Índice •Bioinformática (estadística) •Microarrays •Preprocesado •Expresión diferencial

bionformática estadística 9

¿Y quienes son?

• Tal como hemos dado la información no sirve para nada.• ¿Qué genes son? Necesitamos su anotación.• Preguntamos qué chip o plataforma se ha utilizado.

annotation(eset)

## [1] "hgu133plus2"

• Y cargamos la base de datos correspondiente.

library(hgu133plus2.db)

## Loading required package: AnnotationDbi

## Loading required package: org.Hs.eg.db

##

##

• Estos genes ocupaban en la matriz original las posiciones.

(sig = head(p.BH$index))

## [1] 40374 23950 19312 14227 35603 41035

• El fabricante le asignó los siguientes identificadores.

(ID = featureNames(eset)[sig])

## [1] "231119_at" "214651_s_at" "209905_at"

## [4] "204779_s_at" "226346_at" "231780_at"

• Y en Gene Ontology sus identificadores son

library(annotate)

lookUp(ID, "hgu133plus2.db", "GO")

• O en ENTREZ

lookUp(ID, "hgu133plus2.db", "ENTREZID")

• O en la base de datos que uno prefiera.

Page 10: Bionformática estadísticaBionformática estadística Guillermo Ayala Gallego 28/01/2014 Índice •Bioinformática (estadística) •Microarrays •Preprocesado •Expresión diferencial

bionformática estadística 10

Test de Fisher

• Ya tenemos un conjunto de genes significativos, S0.• Tenemos un universo de genes G.• Por ejemplo: los que proporciona la plataforma.• Consideramos un S1 un conjunto de genes predefinido (misma

función, misma localización).• ¿Hay una sobre representación de S0 en S1?• ¿O es un infra representación?

La tabla correspondiente

S1 Sc1 = G \ S1

S0 n11 n12 n1·Sc

0 n21 n22 n2·G n·1 n·2 N

• Y se aplica el test de Fisher unilateral.• Por cierto, le han cambiado el nombre: test hipergeométrico.

Lo aplicamos

library(GO.db)

library(Category)

library(GOstats)

Construimos el universo de genes y vemos si hay conjuntos desondas correspondientes a un mismo gen.

G.entrezid = unlist(mget(featureNames(eset), hgu133plus2ENTREZID))

anyDuplicated(G.entrezid)

## [1] 6

Seleccionamos entre los conjuntos asociados al mismo gen el quetiene mayor variación (en este caso, un mayor rango intercuartílico).

eset.iqr = apply(exprs(eset), 1, IQR)

uniqGenes = findLargest(featureNames(eset), eset.iqr,

"hgu133plus2")

eset.filt = eset[uniqGenes, ]

G.entrezid = unlist(mget(featureNames(eset.filt),

hgu133plus2ENTREZID))

anyDuplicated(G.entrezid)

## [1] 0

Page 11: Bionformática estadísticaBionformática estadística Guillermo Ayala Gallego 28/01/2014 Índice •Bioinformática (estadística) •Microarrays •Preprocesado •Expresión diferencial

bionformática estadística 11

tt = rowttests(eset.filt, tissue) ## t-test

p.BH = mt.rawp2adjp(tt$p.value, "BH")

sig = which(p.BH$adjp[p.BH$index, 2] < 0.05)

selected = unlist(mget(featureNames(eset.filt[sig,

]), hgu133plus2ENTREZID))

Aplicamos test de Fisher.

params = new("GOHyperGParams", geneIds = selected,

universeGeneIds = G.entrezid, annotation = annotation(eset.filt),

ontology = "BP", pvalueCutoff = 0.001, conditional = FALSE,

testDirection = "over")

overRepresented = hyperGTest(params)

htmlReport(overRepresented, file = "figures/fisher.html")

• Y vemos los resultados.

Gene Set Enrichment Analysis

Análisis de conjuntos de genes

• El estudio anterior construye una lista de genes ordenados segúnp-valor (de menor a mayor).

• Utilizando un procedimiento decidimos un punto de corte en lalista.

• Por encima los declaramos significativos y por debajo no significa-tivos.

• Un análisis completamente marginal.• Los genes actúan de un modo conjunto: posiblemente un grupo de

genes relevantes como grupo no lo es individualmente.• ¿El test de Fisher lo resuelve? No.• El test de Fisher ayuda a interpretar el grupo de los declarados

significativos.

Expresión diferencial conjunta

• G = {1, . . . , N} el conjunto total de genes (el universo).• Tenemos grupos previamente definidos (por ejemplo, con Gene

Ontology): S1, . . . , SK.• ¿Hay asociación entre un conjunto de genes y el fenotipo?• La misma pregunta que nos formulábamos para cada gen pero

ahora en términos de un conjunto dado de genes.

Page 12: Bionformática estadísticaBionformática estadística Guillermo Ayala Gallego 28/01/2014 Índice •Bioinformática (estadística) •Microarrays •Preprocesado •Expresión diferencial

bionformática estadística 12

¿Qué significa que un grupo de genes está asociado con el fenotipo?

• Hipótesis competitiva: Los genes de un conjunto muestran elmismo patrón de asociación con el fenotipo comparado con elresto de genes.

• Hipótesis autocontenida: El conjunto de genes no tiene ningúngen cuyo nivel de expresión está asociado con el fenotipo de in-terés.

Un método (hay decenas)

• Cuantificamos la asociación gen-fenotipo (por ejemplo, el t-estadístico con dos grupos): t = (t1, . . . , tN).

• Enriquecemos el conjunto S de genes de interés. Por ejemplo, lamedia muestral:

t0(S) = ∑i∈S

tinS

.

• Permutamos aleatoriamente y (fenotipo) y recalculamos el estadís-tico anterior: tπb(S) con b = 1, . . . , B.

• Si un estadístico grande indica asociación entonces el p-valor sería

p =|{b : tπb(S) > t0(S)}|

B.

Alguna reflexión

• Software libre (R/Bioconductor, pandoc)• R• Bioconductor• R/Markdown: http://www.uv.es/ayala/docencia/tami/presentaciones/

gse20986_2.Rmd

• http://www.uv.es/ayala/docencia/tami/presentaciones/

BioinformaticaEstadistica.html