Algoritmi di clustering Dato un insieme di dati sperimentali, vogliamo dividerli in clusters in modo che: I dati all interno di ciascun cluster siano simili tra loro Ciascun dato appartenga a uno e un solo cluster 1
Microarray data Risultati di un esperimento di DNA microarray (di solito log 2 ): E 1 E 2 E 3 E 4 E 5 E 6 G 1 0.0 0.8 1.4 2.0 3.0 2.9 G 2 0.3-0.6 0.4 0.1-0.5 0.6 G 3-0.4 0.9 1.5 2.3 2.5 3.5 G 4 0.0-0.4-2.2-2.8-2.5-3.1 G 5-0.3 0.3-0.5 0.1 0.3 0.6 G 6-0.2 0.2-1.0-1.2-1.2-1.3 G 7-0.4 0.3 1.5 3.2 4.2 3.5 G 8-0.2-0.5 1.8 1.2 1.7 2.3 2
8 6 G1 G2 G3 G4 G5 G6 G7 G8 4 2 0-2 -4 1 2 3 4 5 6 3
Procedimento 1. Definire i vettori da raggruppare in clusters: ogni gene è un vettore G, con componenti G i = espressione nell esperimento i 8 vettori a 6 componenti (clustering delle righe) ogni esperimento è un vettore E, con componenti E j = espressione del gene j (j = 1,..., 8) 6 vettori a 8 componenti (clustering delle colonne) 2. Definire una misura di dissimilarità tra due vettori 3. Formare i clusters di vettori simili Dal punto di vista formale, non c e differenza tra clustering delle righe e delle colonne 4
Distanza euclidea E la generalizzazione dell ordinaria distanza tra punti. d EUC ( x, y) = (x i y i ) 2 i Esempio: G 1 = ( 0.0, 0.8, 1.4, 2.0, 3.0, 2.9) G 6 = (-0.2, 0.2, -1.0, -1.2, -1.2, -1.3) G 7 = (-0.4, 0.3, 1.5, 3.2, 4.2, 3.5) D(G 1, G 6 ): (0.2) 2 + (0.6) 2 + (2.4) 2 + (3.2) 2 + (4.2) 2 + (4.2) 2 = 7.19 D(G 1, G 7 ): (0.4) 2 + (0.5) 2 + (0.1) 2 + (1.2) 2 + (1.2) 2 + (0.6) 2 = 1.91 5
Minkowski distance d MINK ( x, y) = p x i y i p per p = 2 si riduce alla distanza euclidea per p = 1 (taxicab distance) ogni componente contribuisce x i y i alla distanza per grandi valori di p contano solo le componenti molto diverse i Variando il valore di p si può dare maggiore o minore importanza al fatto che alcune componenti siano molto diverse 6
Weighted Euclidean distance d W E ( x, y) = w i (x i y i ) 2 i E una generalizzazione della distanza euclidea: Scegliendo i weights w i si può assegnare maggiore o minore importanza a ciascuna componente. Esempio: clusterando le righe (geni) di un esperimento di microarray si vuole dare peso minore ai chips meno accurati 7
Pearson s linear dissimilarity media di un vettore: x = n i=1 x i n deviazione standard σ x = n i=1 (x i x) 2 n Pearson s linear correlation ρ( x, y) = n i=1 (x i x)(y i ȳ) σ x σ y Pearson s linear dissimilarity d ρ ( x, y) = 1 ρ( x, y) 2 8
Invarianza di scala: per qualunque costante c d ρ (c x, c y) = d ρ ( x, y) mentre invece per la distanza euclidea d EUC (c x, c y) = c d EUC ( x, y) La PLD dà più importanza alla forma dei vettori di espressione rispetto alla distanza euclidea. Per esempio d ρ ( x, 2 x) = 0 ma d EUC ( x, 2 x) = n x 2 i 0 i=1 9
Algoritmi di clustering Hierarchical clustering k-means clustering Self-organizing maps Tutti questi metodi presuppongono che sia stata definita una misura di dissimilarità 10
Hierarchical clustering Questo algoritmo crea un diagramma ad albero binario con radice (come quelli dell analisi filogenetica). La radice e un cluster contenente tutti i dati. Le foglie sono i singoli dati. I nodi intermedi sono i clusters significativi. 11
Costruzione dell albero 1. Inizializzare la lista dei clusters definendo un cluster per ogni dato, contenente soltanto il dato stesso 2. Cercare i due cluster più vicini tra loro e definire un nuovo cluster come la loro unione 3. Aggiungere il nuovo cluster alla lista e togliere i due da cui esso deriva 4. Ripetere dal punto 2 finche non rimane un unico cluster 12
Note: E necessario definire una misura di dissimilarità tra clusters oltre che tra dati (vettori): ció si ottiene, per esempio, assegnando a ogni cluster il vettore media dei vettori che compongono il cluster, e usando poi la distanza tra questi vettori per definire la distanza tra i cluster (average linkage). I cluster significativi si ottengono tagliando l albero a una certa altezza intermedia, a seconda della dimensione dei cluster cercati. 13
K-means clustering Questo metodo raggruppa i dati in un numero fissato k di clusters, e fornisce in output il centro di ciascun cluster. 1. Inizializzare in un modo qualsiasi i k centri dei clusters c 1,..., c k 2. Assegnare ciascun vettore al cluster più vicino secondo la dissimilarità usata. 3. Ricalcolare il centro di ciascun cluster facendo la media dei vettori che vi appartengono. 4. Ripetere dal punto 2 fino a che nessun punto cambia più cluster. 14
Note: Si puo dimostrare che il procedimento converge, cioè termina certamente. In pratica, per grandi insiemi di dati, la convergenza può richiedere molto tempo: quindi ci si ferma quando quasi nessun dato cambia piu cluster ( quasi definito opportunamente). Per trovare il numero ottimale k di clusters, si può usare il procedimento con diversi valori di k e poi confrontare la qualità dei cluster ottenuti, data per esempio dalla media delle distanze dei membri dei clusters dai rispettivi centri: i = 1 k 1 C i x C i d( x, c i ) 15
Self-organizing Maps I clusters sono disposti su una mappa bidimensionale divisa in celle individuate dalle coordinate (i, j) A celle vicine sulla mappa corrispondono clusters simili come profilo di espressione. 16
Procedimento 1. A ciascuna cella (i, j) viene assegnato inizialmente un vettore c ij scelto in modo random 2. Si sceglie un dato x in modo random dall insieme di dati da clusterare. 3. Si identifica la cella (i, j) il cui vettore c ij è piuù simile al dato x 4. Il vettore c ij viene modificato in modo da avvicinarsi al dato x 5. Anche tutti i vettori delle celle vicine (sulla griglia) vengono modificati in modo da avvicinarsi a x, ma in modo sempre meno marcato all aumentare di distanza sulla griglia dalla cella (i, j) numero di iterazioni del procedimento In questo modo cluster simili appaiono in posizioni vicine sulla griglia. Inoltre il metodo consente una visualizzazione efficace dei dati. 17
Esercitazione Dati di yeast cell cycle per 1600 geni in 18 timepoints Determinare un cluster di geni funzionalmente caratterizzati ribosome biogenesis Confrontare due metodi di clustering diversi relativamente alla capacita di raggruppare correttamente i geni coinvolti nella ribosome biogenesis Determinare in modo computazionale uno o piu possibili TF binding sites coinvolti nella regolazione di questi geni 18