Algoritmi di clustering - Home di homes.di.unimi.it

annuncio pubblicitario
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
Scarica