Algoritmi di clustering gerarchico Damiano Carne 2004 Genomica funzionale Progetti di sequenziamento quasi terminati (es. Arabidopsis sequenza completata, Progetto Genoma Umano quasi completato.) Quale sarà il prossimo compito ? Indagare la funzione dei geni: • Funzione specifica dei geni • Relazione con le diverse malattie • Associazione tra geni e proteine L’annotazione funzionale Approccio “Reductionist” Molte delle conoscenze acquisite fino ad ora sono il risultato di un accurata ricerca di geni specifici e proteine, basati su complessi esperimenti biologici o ottenuti per omologia di geni di altre specie Approccio “Holistic” Il miglioramento nelle tecniche sia biologiche che computazionali rende possibile questo nuovo approccio, basato sul metodo del hight-throughput, che ci permette di indagare sul: • profilo globale di espressione dei geni (ANALISI DEL TRASCRITTOMA) • profilo a scala larga delle proteine (ANALISI DEL PROTEOMA) Vantaggi di un approccio olistico Ricercando simultaneamente i livelli di espressione dei geni ottengo una percezione funzionale interna e visualizzo la correlazione tra geni a livello globale. INOLTRE Contrariamente all’approccio precedente che ci consentiva solo di indagare sulla funzione del gene, questo metodo è in grado di generare ipotesi. Espressione dei geni Essenzialmente i metodi per misurare l’espressione dei geni sono basati su due assunzioni biologiche: 1.Il livello di trascrizione dei geni è indicato dalla loro regolazione: Poiché la proteina è generata dal gene in diversi stadi (trascrizione, splicing, sintesi di proteina da mRNA), la regolazione dell’espressione genica può avvenire in diversi punti. Questo significa che, più regolazioni sono fatte durante la fase di trascrizione. 2.Solo geni che contribuiscono alla fitness di un organismo sono espressi: Questo significa che, geni irrilevanti per la funzione di un organismo, non sono espressi. Da queste assunzioni concludiamo che, scoprire cambiamenti nei livelli espressione, ci fornisce indizi sulla funzione e sui prodotti DNA chip / microarray Per indagare sull’espressione dei geni in diverse condizioni, ricorriamo all’utilizzo di strumenti come DNA chip e microarray. La tecnica dei microarray è una tecnologia ad alta capacità di trattamento che permette l'analisi d'espressione di molti geni in maniera simultanea. Migliaia di geni possono essere analizzati in un singolo esperimento. Questo metodo è conveniente soprattutto per l'analisi di quei geni la cui espressione è diversa in due campioni, come ad esempio, un tessuto sano e uno a contatto con un patogeno. Schema generale di un microarray DNA chip / microarray Ci sono due tipi di DNA chip: • FORMAT I: il target DNA è sul chip • FORMAT II: il target DNA è sospeso Di questi due tipi ne esistono diverse variazioni: 1. Oligonucleotide array: FORMAT II contiene corte oligo sequenze 2. cDNA microarray: FORMAT II cDNA specifici di geni sono sul chip 3. Oligo-fingerprinting: FORMAT I Il primo tipo di chip impiegato Alcune applicazioni dei chip a DNA • Deduzione di funzioni di geni sconosciuti. • Identificazione di profili di malattie. • Decifrazione di meccanismi regolatori (co-espressione indica co-regolazione). • Classificazione di condizioni biologiche. • Caratterizzazione del genotipo. • Sviluppo di farmaci. N.B. Æ Il primo step di queste analisi è il clustering genes o condizioni base del loro livello di espressione. cDNA Clustering GENI ÅÆ ESPRESSIONE ÅÆ FUNZIONE CELLULARE Trascrizione in mRNA Traduzione in proteine (interazione con altre molecole) Alto interesse nell’analisi del profilo di espressione di geni in diversi tessuti e in diversi stadi di sviluppo della cellula, poiché grazie a queste informazioni: Æ POSSIAMO ASSEGNARE LA FUNZIONE AL GENE GENI DIFFERENTI Æ DIFFERENTI LIVELLI DI ESPRESSIONE (indicando i diversi livelli di espressione dei geni in diverse condizioni posso assegnare la funzione al gene). cDNA Clustering Questo è più facile a dirsi che a farsi… In ogni tessuto ci sono circa 10000 geni espressi Ogni espressione può variare con un fattore 10000 Esistono circa 100 differenti tipi di tessuti In più l’interesse è volto verso la comparazione dei diversi stadi di sviluppo Siamo di fronte quindi a un numero di trascritti nell’ordine di 1010 Sequenziare tutte le cDNA è costoso e dispendioso, si necessita quindi di un metodo a larga scala, efficiente e a buon mercato. Rappresentazione dei dati di espressione di geni Una serie di m array misurano i livelli di espressione in m differenti condizioni sperimentali. Denotiamo la matrice X di misura ( n-geni x m-array ) come tavola dei dati di espressione. Qui xij è il log2 del rapporto di espressione del gene i nel campione j. Quindi il vettore nella riga i della matrice X indica i rapporti di fluorescenza del gene i in tutti i differenti campioni. Mentre il vettore nella colonna j della matrice X indica i rapporti di fluorescenza di tutti i geni nel campione j. Nella matematica odierna, per vettore si intende più in generale un insieme ordinato di quantità dette componenti, nel nostro caso ogni vettore è rappresentato da un singolo gene le cui componenti sono i segnali di espressione. Rappresentazione dei dati di espressione di geni I dati dell’espressione genica possono essere rappresentati in una matrice reale chiamata “RAW DATA MATRIX”: ÆOgni riga della matrice contiene dati di un gene e ogni colonna rappresenta una condizione o un tessuto. N variabile D X11 X12 X13 … X1d (L) X21 X22 X23 … X2d (L) Xn2 Xn3 … xnd (L) osservazione … Xn1 Praticamente ogni gene è rappresentato da un vettore all’interno della matrice (una riga). Rij è il livello di espressione del gene “i” nelle condizioni “j”. I dati di espressione possono rappresentare: rapporti, valori assoluti o distribuzioni. Rappresentazione dei dati di espressione di geni Per analizzare i dati è indispensabile ricavare la matrice di similarità. I dati vengono pre-processati per computare la matrice di similarità (similarity matrix or distance matrix). Rappresentazione dei dati di espressione di geni Dalla matrice dei dati originaria (di dimensione NxM) si passa ad una matrice di distanze o di similarità fra casi (di dimensione NxN). n Distanze dall’oggetto j d d(1,1) d(1,2) d(1,3) … d(1,n) d(2,2) d(2,3) … d(2,n) Distanze dall’oggetto i d(n,n) N.B. la matrice di similarità è più grande della “raw data matrix”, perché solitamente sono più i geni delle condizioni. Rappresentazione dei dati di espressione di geni Una volta stabiliti i criteri per la misura del grado di similarità/diversità, è possibile sviluppare molteplici algoritmi per la classificazione dei casi. Per variabili di tipo quantitativo si calcolano misure di distanza. Per variabili di tipo qualitativo si calcolano misure di similarità. Distanza euclidea 2 d (i, k ) = ∑ ( xij − xkj ) j =1 d 1/ 2 Distanza di Manhattan (o a blocchi) d d (i, k ) = ∑ | xij − xkj | j =1 Clustering Il clustering è impiegato in diversi campi. Lo scopo del clustering è raggruppare elementi (in questo caso geni) per ottenere cluster significativi per il fine posto. Le condizioni che devono soddisfare i cluster sono le seguenti: • Omogeneità Æ Gli elementi di uno stesso cluster devono essere molto simili tra loro. • Separazione Æ Gli elementi di cluster diversi devono avere bassa similarità tra loro. Clustering Esistono due tipi di metodi di clustering: • Agglomerativo Æ Questo metodo forma cluster partendo da piccoli gruppi di elementi e eseguendo calcoli su di essi costruisce gruppi più grandi (Hierarchal Methods). • Divisivo Æ Questo differente approccio analizza grandi gruppi di elementi e li divide in piccoli gruppi raggiungendo i cluster desiderati (Non Hierarchal Techniques). Vi sono incoraggianti fattori che risultano da ricerche di clusterizzazione: • Distinte misurazioni di stessi geni clusterizzano insieme. • Geni con funzioni simili clusterizzano insieme. • Molte specifiche funzioni di cluster intuite sono state migliorate. Clustering gerarchico Questo approccio è un tentativo di posizionare gli elementi in input in una struttura gerarchica ad albero, nella quale le distanze tra i tronchi dell’albero riflettano le similarità degli elementi. Gli elementi sono localizzati su una foglia dell’albero, quindi gli elementi racchiusi in un ramo dell’albero sono molto simili tra loro. Svantaggi del metodo: Vantaggi del metodo: 1. Una figura singola e coerente. 2. Intuitivo per i biologi. 1. 2. Non ci sono esplicite partizioni nel cluster. Anche per biologi esperti è impossibile fare intuizioni unicamente dal grafo ad albero ottenuto dalla clusterizzazione. Rappresentazioni gerarchiche Viene impiegata una struttura ad albero. Una particolare rappresentazione è il dendrogramma. Rappresentazioni gerarchiche L’algoritmo di cluster gerarchico fonde cluster simili e computa la nuova distanza per i cluster fusi. Se “i” è clusterizzato con “j” e entrambi non sono simili a “r” allora D(i,r) = D (j,r) Æ si eguagliano benché D(i,j) > 0 D(n,m) è la funzione distanza. Neighbor Joining Algorithm Semplice algoritmo basato sulla fusione del vicino, ideato da Saitou e Nei. L’input è la distance matrix tra due elementi. Inizialmente ogni elemento è un cluster e ad ogni iterazione vengono fusi elementi simili e computata una nuova distanza per gli elementi emergenti. In uscita ricaviamo un albero nella quale gli elementi simili sono vicini. Neighbor Joining Algorithm 1. Input : The Distance matrix Dij 2. Find elements r,s such that Drs = minij (Dij) 3. Merge clusters r,s 4. Delete elements r,s, and add a new element t with: 5. Repeat, until one element is left Average linkage E’ una modificazione del Neighbor Joining Algorithm. Ideato da Lance e Williams, e Sokal e Michener L’idea è la stessa del precedente, ma quando computa le nuove distanze dei cluster creati, le grandezze dei cluster derivati dalla fusione sono prese in considerazione 1. Input: The Distance matrix Dij, initial cluster size nr 2. Iteration K: The same as the Neighbor Joining algorithm with the exception that the distance from a new element t is defined by: A general Framework Riportiamo la struttura generale del clustering gerarchico di fusione. Nell’Average Linkage i parametri assumono i seguenti valori. Algoritmi di clustering non gerarchico K-means clustering Questo metodo introdotto da Macqueen a come idea quella di partizionare gli elementi in k cluster Sposta gli elementi tra i cluster e controlla se la funzione Ep (solution cost), che misura la qualità della partizione, migliora 1. Initialize an arbitrary partition P into k clusters 2. For cluster j, element i = j Ep(i,j) = Cost of solution if i is moved to cluster j 3. Pick Ep(r,s) that minimum 4. Move s to cluster r, if it improves Ep 5. Repeat until no improvement possible K-means clustering Questo tipo di clustering è utile quando l’utente ha già una ipotesi sul numero di cluster che i geni dovrebbero formare. K è infatti il numero di cluster da formare con il set di dati e va impostato a priori dall’utente. Assegna tutti i geni di un esperimento ad uno dei k cluster. • Calcola la media o la mediana per ognuno dei cluster. • Calcola la distanza tra ogni oggetto e la media o la mediana di ogni cluster. • Sposta ogni oggetto nel cluster la cui media è più vicina a quell’oggetto. • Ricalcola media dei cluster interessati dalla riallocazione. • Ripete le operazioni 3,4 e 5 finché non sono necessari più spostamenti o ha raggiunto il massimo di iterazioni impostate. K-means variations L’algoritmo si basa sull’idea di muovere elementi tra i cluster, ed è basato sulla distanza di questi dal centro dei differenti cluster. K viene fissato e mira ad ottimizzare l’omogeneità e non la separazione, elementi di differenti cluster infatti possono essere simili 1. Input: vector vi for each element i 2. Compute a centroid cp for each cluster p, e. g., gravity center = average vector 3. Compute the solution cost: Where D(vi,cy) is the distance of vi from cy 4. Compute Ep(i,j) = change in solution cost if i is moved to cluster j 5. Perform the best improvement to the solution cost 6. Repeat until no improvement possible Clustering con Self Organizing Maps e software GENECLUSTER Reti Neurali Le reti neurali sono in grado di generalizzare dai pochi esempi e classificare correttamente anche esempi mai visti prima (non memorizza soltanto le istanze dell’input) Cercano di modellare il neurone biologico : • Progettazione dell’architettura della rete • Apprendimento (supervisionato): a. ∀ esempio x in T (training set) b. Calcola y = output(x) c. Se y ≠ d(x) output aspettato per x allora modificano i pesi wij in modo da avvicinare y a d(x) Reti Neurali Le caratteristiche principali delle reti neurali sono: • Sono “Black-box” : non si riesce cioè ad estrarre regole da una rete neurale (si conosce il risultato ma non come lo calcola). • Scarsa capacità di sintesi e trasmissione della conoscenza. • Riescono a trattare agevolmente (senza modifiche) dati con rumore o incompleti. SOM Le SOM nascono dall’osservazione che nella corteccia cerebrale i neuroni si auto-organizzano topograficamente secondo la loro funzione. Ogni area si specializza per un insieme preciso di compiti. Queste mappe non sono interamente predeterminate geneticamente: piuttosto sono organizzate (non si sa come) durante i primi tempi dello sviluppo . SOM • Organizzano automaticamente insiemi di dati n-dimensionali su una mappa k-dimensionale ( k < n ) in modo da rispettare la distribuzione statistica dell’input • Elementi simili tendono a posizionarsi vicino nella mappa • Rete neurale ad Apprendimento NON Supervisionato • La formazione della mappa avviene senza che nessun esperto debba definire quale sia l’output corretto per ogni istanza del training set SOM • Ciò che vogliamo è rappresentare in un array bidimensionale l’insieme di input in maniera significativa (neighbour preserving) • Ogni istanza j dell’input è rappresentata da un vettore vj∈ℜn • Ad ogni nodo i è associato un vettore prototipo mi ∈ℜn • Si definisce la topologia della mappa (numero di nodi) SOM 1. ∀ i mi(0) nodo della mappa è inizializzato casualmente 2. ∀ j vj istanza di input (scelta a caso): 1. Calcolare il nodo della mappa che ha Distanza minore da vj winner = arg mini { || mi - vj || } 2. Il nodo winner e i suoi adiacenti vengono “avvicinati” all’input (più un nodo è vicino a winner e più viene influenzato) mi (t+1) = mi (t) + α(t) h( t , vj - mi (t) ) mi (t+1) = mi (t) α(t) ∈ [0,1] ∀ i ∈ Nw(t) altrimenti Nw(t) = neighborhood del nodo w SOM • Inizializzare casualmente i nodi è il caso più generale : diversamente significherebbe specificare esattamente da quali cluster vogliamo partire • Solitamente la distanza considerata in 2.1 è quella Euclidea (ma si potrebbe usare ad es. la edit-distance) • Nw(t) decresce nel tempo • all’inizio comprende tutti i nodi (organizzazione generale della mappa) • alla fine nessuno o gli immediati vicini (specializzazione dei songoli nodi) SOM Ricerca del vincitore: • Tree Structured SOM : albero di SOM dove a livelli più bassi corrispondono via via regioni più specifiche della mappa (si perdono le relazioni tra cluster diversi). • Hierarchical SOM : ogni SOM tratta una ristretta parte del vettore input e poi tutti i risultati vengono combinati in una mappa più grande. • Non sappiamo però se sono ottimali. Infatti sono stati proposti altri nuovi metodi anche recentemente. Self organizing maps Le Self Organizing Maps ideate da Tuevo Kohonen nel 1982 rappresentano l’algoritmo più comune di reti neurali artificiali nella categoria dell’apprendimento non supervisionato. Le reti ad apprendimento non supervisionato ricevono solo i vettori nella fase di input, la configurazione finale dei pesi permette di suddividere gli elementi forniti in ingresso in raggruppamenti per “similarità”(fanno una classificazione) Tamayo ha applicato le SOM a dati di espressione genica. Le SOM possono essere considerate dei classificatori le cui classi sono disposte su un reticolo bidimensionale. La mappa così mantiene la tipologia dello spazio degli ingressi. Ciò significa che, se due ingressi si trovano vicini vengono raggruppati o nella stessa classe o in classi vicine sul reticolo bidimensionale. La mappa tenta di rappresentare tutte le osservazioni disponibili usando un insieme ristretto di vettori. Questi ultimi sono ordinati sul reticolo in modo che vettori simili stiano vicino e i dissimili lontani. Self organizing maps Scelgo una grigia di nodi e una funzione “distance” tra i nodi indicata con D(N1;N2) I nodi sono inizialmente in uno spazio K-dimensionale inizialmente casuale e vengono poi riaggiustati internamente Ogni iterazione implica la scelta casuale di un dato punto P e il movimento dei nodi in direzione P Il nodo più vicino indicato con np viene mosso di più, mentre gli altri nodi vengono mossi di meno in relazione alla distanza di np dalla geometria iniziale In questo modo punti vicini nella geometria iniziale, tendono ad essere disegnati vicini nello spazio k-dimensionale Il processo continua iterativamente Self organizing maps 1. Input: n-dim vector for each element (data point) p 2. Start with a grid of k = l x m nodes, and a random n-dim associated vector f0(v) for each grid node v 3. Iteration i: Pick a data point p. Find a node np such that fi(np) is the closest to p Update all node vectors v as follows: Where H is learning function which decreases with i, and decreasas with D(np,v) i.e. nodes that are not near np are less affected 4. Repeat until no improvement possible. Self organizing maps Genecluster E’ un software che implementa le self organizing maps (SOM) Genecluster accetta un file in input contenente i livelli di espressione, (gene profiling) ottenuti con diversi metodi (oligonucleotide array o spot di cDNA array), insieme a una geometria dei nodi (es. 3x4 = 12nodi) Il programma procede con due step di pre-processamento che consentono di identificare pattern significativi: 1. Prima i dati vengono passati attraverso un filtro, che elimina a priori quei geni che non variano significativamente durante gli esperimenti, ossia viene fissata una soglia. Questo impedisce ai nodi di essere attratti da grandi set di geni che non variano e riduce lo spazio di indagine. 2. Una volta ottenuto il nuovo dataset i dati vengono normalizzati in modo da avere media 0 e varianza uguale ad 1 Genecluster Effettuati questi pre-filtraggi si lancia l’Algoritmo specificando la geomentria e il numero di iterazioni (epoche) che vogliamo Ottenendo come risultato una schermata che ci indica quanti elementi sono stati assegnati a quel cluster e la media e la deviazione standard di quel cluster Posso così valutare come variare i parametri in ingresso e provare con una nuova clusterizzazione Di seguito è mostrata la funzione di apprendimento: Dove raggio р(i) decresce linearmente con i T è il massimo numero di iterazioni D(n,r) denota la distanza dentro la griglia GENECLUSTER Esempio di utilizzo di genecluster : Quello che viene descritto è la clusterizzazione dell’insieme di dati della differenziazione mieloide di HL60 ottenuta con genecluster. Il dataset è una “raw data matrix” corrispondente alla differenziazione cellulare di HL60 il cui livello di espressione è misurato su quattro punti di controllo. Queste cellule subiscono differenziazione macrofaga sotto trattamento con TPA. Quasi il 100% delle cellule di HL60 escono dal ciclo cellulare entro 24 ore dal trattamento. Sono stati monitorati i livelli di trascrizione dopo 0 0,5 - 4 e 24 ore dalla stimolazione. I geni umani conosciuti e monitorati sono 5223 più in aggiunta 1193 sequenze ESTs. GENECLUSTER Si procede come detto ad un operazione di prefiltraggio inserendo delle soglie e normalizzando i dati. I parametri di sogliatura devono essere inseriti dall’utente. GENECLUSTER Al termine della sogliatura e della normalizzazione ci vengono restituiti i geni rimanenti quindi una matrice con “X” righe per 4 colonne GENECLUSTER Fatto questo imposto i parametri della SOM ossia le dimensioni della griglia e il numero delle epoche. GENECLUSTER Al termine dell’esecuzione della Self Organizing Maps otteniamo una divisione in cluster. Cliccando su uno specifico cluster della griglia ci viene fornito un elenco contenente i geni che sono stati clusterizzati insieme. Visualizzazione dei risultati I cluster possono essere visualizzati in diversi modi: 1. Ogni gene in un cluster viene plottato separatamente. EXPRESSION GRAPHS 2. Vengono plottate la media e la deviazione standard di tutti i geni del cluster. CENTROID GRAPHS Bibliografia [1] Ron Shamir. Analysis of Gene Expression Data, (lecture 4), 2002. [2] T. Kohonen. Self-Organizing Maps. Springer, Berlin, 1997. [3] G. Valle, M. H. Citterich, M. Attimonelli, G. Pesole, Introduzione alla bioinformatica, Zanichelli, Bologna, 2003. [4] Siti inerenti a tutorial di GeneCluster e inerenti la clusterizzazione