Classificazione di pattern genomici e strutture proteiche mediante Clustering e Reti Neurali in Mathematica



Documenti analoghi
Pro e contro delle RNA

Tecniche di riconoscimento statistico

Ricerca di outlier. Ricerca di Anomalie/Outlier

Computazione per l interazione naturale: macchine che apprendono

Algoritmi di clustering

Page 1. Evoluzione. Intelligenza Artificiale. Algoritmi Genetici. Evoluzione. Evoluzione: nomenclatura. Corrispondenze natura-calcolo

Automazione Industriale (scheduling+mms) scheduling+mms.

Le Mappe di Karnaugh.

Reti Neurali Artificiali per la Finanza (7 CFU)

Carpire il segreto della vita con l informatica Giosuè Lo Bosco Dipartimento di Matematica e Informatica, Università di Palermo, ITALY.

Corso di Psicometria Progredito

SAGE: Serial Analysis of Gene Expression

Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda

Regressione non lineare con un modello neurale feedforward

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

ITER Imprese & Territorio

FIRESHOP.NET. Gestione del taglia e colore.

Analisi e diagramma di Pareto

DATI NORMATIVI PER LA SOMMINISTRAZIONE DELLE PROVE PAC-SI A BAMBINI DI INIZIO SCUOLA PRIMARIA 1

Università degli Studi di Ferrara - A.A. 2014/15 Dott. Valerio Muzzioli ORDINAMENTO DEI DATI

Excel avanzato. I nomi. Gli indirizzi e le formule possono essere sostituiti da nomi. Si creano tramite Inserisci Nome Definisci

Dimensione di uno Spazio vettoriale

Corso di. Dott.ssa Donatella Cocca

Bioinformatica (1) Introduzione. Dott. Alessandro Laganà

Analisi dei requisiti e casi d uso

Clustering. Utilizziamo per la realizzazione dell'esempio due tipologie di software:

Strumenti e metodi per la redazione della carta del pericolo da fenomeni torrentizi

Capitolo 2 Distribuzioni di frequenza

STATISTICA IX lezione

Introduzione alla Programmazione

Relazioni statistiche: regressione e correlazione

PROVA FINALE V. AULETTA G. PERSIANO ALGORITMI II - -MAGIS INFO

Funzioni in C. Violetta Lonati

Nozione di algoritmo. Gabriella Trucco

Plate Locator Riconoscimento Automatico di Targhe

VERIFICA DELLE IPOTESI

Reti sequenziali sincrone

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti)

Strutturazione logica dei dati: i file

Appunti sulla Macchina di Turing. Macchina di Turing

ISIS: G. Tassinari Pozzuoli

Codifiche a lunghezza variabile

Come valutare le caratteristiche aerobiche di ogni singolo atleta sul campo

Corrispondenze e funzioni

ROCK. A Robust Clustering Algorithm for Categorical Attributes. Sudipto Guha, Rajeev Rastogi, Kyuseok Shim

COME VIENE REALIZZATA UNA RICERCA SPERIMENTALE IN BIOLOGIA MOLECOLARE?

RAPPRESENTAZIONE GRAFICA E ANALISI DEI DATI SPERIMENTALI CON EXCEL

Macchine sequenziali

COLLI. Gestione dei Colli di Spedizione. Release 5.20 Manuale Operativo

Registratori di Cassa

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati

ColorSplitter. La separazione automatica dei colori di Colibri.. Perché ColorSplitter? Come opera ColorSplitter?

POLIAGE GUIDA RAPIDA

Ing. Simone Giovannetti

Lezione 8. La macchina universale

Guida all uso di. a cura dell Area Economia Applicata (AEA) - IPI

Algoritmi e strutture dati. Codici di Huffman

Progetto ASTREA WP2: Sistema informativo per il monitoraggio del sistema giudiziario

REGOLAMENTO (UE) N. 1235/2011 DELLA COMMISSIONE

Capitolo 13: L offerta dell impresa e il surplus del produttore

Analisi bivariata. Dott. Cazzaniga Paolo. Dip. di Scienze Umane e Sociali paolo.cazzaniga@unibg.it

Parte I. Prima Parte

Monitoraggio sulla conversione dei prezzi al consumo dalla Lira all Euro

Nuovo sito web della camera degli esperti STV

Il primo modulo viene utilizzato per la definizione degli oggetti coinvolti nella schedulazione.

Ottimizazione vincolata

Luigi Piroddi

La Visione Artificiale. La vis ione delle macchine La vis ione umana Acquis izione di immag ine

INTRODUZIONE A EXCEL ESERCITAZIONE I

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL

TSP con eliminazione di sottocicli

Un po di statistica. Christian Ferrari. Laboratorio di Matematica

Capitolo 25: Lo scambio nel mercato delle assicurazioni

Come costruire una presentazione. PowerPoint 1. ! PowerPoint permette la realizzazione di presentazioni video ipertestuali, animate e multimediali

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere

I ricavi ed i costi di produzione

Corso di laurea in Economia e Gestione delle Arti e delle Attività Culturali a.a INTRODUZIONE ALLA STATISTICA DESCRITTIVA

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

Università degli Studi di Milano Bicocca CdS ECOAMM Corso di Metodi Statistici per l Amministrazione delle Imprese CARTE DI CONTROLLO PER VARIABILI

ControlloCosti. Cubi OLAP. Controllo Costi Manuale Cubi

Generazione Automatica di Asserzioni da Modelli di Specifica

Suggerimenti per l approccio all analisi dei dati multivariati

Mining Positive and Negative Association Rules:

CHIUSURE di MAGAZZINO di FINE ANNO

Identificazione dei Parametri Caratteristici di un Plasma Circolare Tramite Rete Neuronale

Introduzione alle relazioni multivariate. Introduzione alle relazioni multivariate

Informatica 3. LEZIONE 21: Ricerca su liste e tecniche di hashing. Modulo 1: Algoritmi sequenziali e basati su liste Modulo 2: Hashing

Esercitazioni di Progettazione del Software. Esercitazione (Prova al calcolatore del 17 settembre 2010)

Macchine a stati finiti. Sommario. Sommario. M. Favalli. 5th June 2007

SPC e distribuzione normale con Access

Introduzione all analisi dei segnali digitali.

PROCESSO DI INDICIZZAZIONE SEMANTICA

Introduzione all Information Retrieval

Macchine a stati finiti. Sommario. Sommario. M. Favalli. Le macchine a stati si utilizzano per modellare di sistemi fisici caratterizzabili mediante:

TSP con eliminazione di sottocicli

ALLEGATO 14 PROBLEMATICHE APPLICATIVE PASSERELLA ESPORTAZIONE DATI E CAPRES

V= R*I. LEGGE DI OHM Dopo aver illustrato le principali grandezze elettriche è necessario analizzare i legami che vi sono tra di loro.

Macchine a stati finiti G. MARSELLA UNIVERSITÀ DEL SALENTO

per immagini guida avanzata Organizzazione e controllo dei dati Geometra Luigi Amato Guida Avanzata per immagini excel

Indagini statistiche attraverso i social networks

Transcript:

Classificazione di pattern genomici e strutture proteiche mediante Clustering e Reti Neurali in Mathematica (Classification of genomic patterns and protein structures using Clustering and Neural Networks in Mathematica) Prof. Crescenzio Gallo, Ing. Michelangelo De Bonis {c.gallo, m.debonis}@ieee.org Laboratorio per l'analisi Quantitativa dei Dati Dipartimento di Scienze Economiche, Matematiche e Statistiche Università di Foggia, Italy

2 Gallo-DeBonis-UGM2010.nb Abstract Le possibili applicazioni della modellizzazione e simulazione nel campo della Bioinformatica sono molto ampie. Le applicazioni spaziano dalla comprensione dei "percorsi" metabolici di base all'esplorazione della variabilità genetica. I biologi molecolari necessitano di robusti strumenti di calcolo per definire modelli in grado di imparare a riconoscere sequenze di DNA ed amminoacidi ed assegnare strutture proteiche a determinate sequenze. Questi modelli, ed in particolare quelli relativi allo studio dei risultati sperimentali effettuati con microarray DNA, possono essere creati nel potente ambiente di calcolo offerto da Mathematica ed il modulo Neural Networks.

Gallo-DeBonis-UGM2010.nb 3 Introduzione Nell'analisi dell'espressione genica, particolare interesse riveste la ricerca di pattern correlati, che viene tipicamente effettuata mediante analisi di clustering. Le tecnologie di microarray DNA (Lockhart DJ et al., 1996) consentono il monitoraggio di migliaia di geni in modo rapido ed efficiente. Queste tecnologie hanno introdotto nuove modalità di esplorazione di un organismo con una visione genomica ad ampio raggio. In particolare, lo studio dell'espressione dei geni di un genoma completo (come quello del Saccharomyces cerevisiae) è ora possibile; sono stati sviluppati anche studi sul genoma umano (Perou CM et al., 1999) tramite l'impiego di microarray DNA, sino alla mappatura completa del genoma umano. La produzione di farmaci mirati e l'individuazione di droghe sono altri campi che possono beneficiare significativamente di tali tecniche. Un problema inerente l'uso delle tecnologie di microarray DNA risiede nell'enorme quantità di dati prodotti, la cui analisi di per sé costituisce un problema non trascurabile. Svariati approcci vengono impiegati all'analisi dei dati di espressione genica, come ad es. il clustering gerarchico (Sneath and Sokal, 1973), l'analisi multivariata e le reti neurali; l'individuazione del metodo ottimale per l'analisi di tali dati è tutt'ora argomento di discussione. Il clustering gerarchico è il metodo più utilizzato, e produce una rappresentazione dei dati con i pattern più simili raggruppati in una gerarchia di sottoinsiemi. Questo metodo presenta però notevoli problemi quando viene applicato a dati contenenti una non trascurabile quantità di "rumore", rivelandosi poco robusto. In tal caso le soluzioni possono non essere univoche ed essere dipendenti dall'ordinamento dei dati. Questi argomenti portano allo studio ed all'impiego di metodi alternativi, quali i grafi di correlazione e le reti neurali che saranno affrontati ed applicati nel presente lavoro.

4 Gallo-DeBonis-UGM2010.nb Analisi di dati da microarray DNA mediante grafi di correlazione Background L'interpretazione della grande quantità di dati prodotta dall'impiego di tecniche microarray DNA per l'analisi dell'espressione dei geni richiede nuove efficienti strategie per la riduzione delle dimensioni coinvolte. Gli algoritmi di clustering in genere raggruppano i geni (o i campioni) in cluster di profili di espressione similari per l'individuazione di possibili relazioni funzionali tra di essi. Particolare importanza rivestono le rappresentazioni grafiche dei cluster e la loro "annotazione" automatica dalle banche dati genomiche presenti. Analoghi problematiche si riscontrano nell'analisi di grandi reti, dove si tenta di estrarre sottoreti che soddisfino determinati criteri (come ad es. la ricerca delle pagine web relative allo stesso argomento). In (Rougemont and Hingamp, 2003) viene proposto un metodo che combina una tecnica di analisi di reti con il classico clustering basato sui coefficienti di correlazione per lo studio dei dati di microarray DNA. L'algoritmo di clustering si basa su due soli parametri (la soglia di correlazione e la soglia di curvatura, che saranno discusse in seguito), con una conseguente efficace possibilità di analizzare la sensitività dei risultati in reazione a particolari configurazioni scelte per i parametri in gioco. L'algoritmo è basato sul concetto di curvatura (Eckmann and Moses, 2002) che viene applicato alla rete (grafo di correlazione) di geni co-espressi dove i nodi sono i geni (o i campioni) e gli archi rappresentano la co-espressione tra i geni collegati. In tale grafo vengono quindi individuati dei cluster che corrispondono a componenti connesse del grafo con alto indice di curvatura, definito come densità locale di relazioni triangolari. I cluster di geni (o campioni) sono le regioni più dense del grafo di correlazione; cluster con alto indice di curvatura sono strutture a bassa entropia, con ovvia rilevanza biologica. L'algoritmo è stato implementato in Mathematica 7.0 con l'impiego dei package Combinatorica e GraphUtilities, ed è stato applicato ai dati relativi all'espressione genica del Saccharomyces cerevisiae (Eisen et al., 1998) e del linfoma DLBCL (Alizadeh et al., 2000). I dati originari (disponibili all'indirizzo ftp://tagc.univ-mrs.fr/public/trixy/testfiles/) sono stati riadattati in matrici per l'elaborazione con Mathematica in ambiente Mac OS X Snow Leopard su workstation MacPro Quad Xeon; le prestazioni computazionali ottenute sono comparabili a quelle richieste dal metodo di clustering gerarchico.

Gallo-DeBonis-UGM2010.nb 5 Algoritmo di analisi Un set di dati da microarray DNA consiste dei livelli di espressione di N geni in M differenti condizioni sperimentali (campioni RNA). L' algoritmo è basato sullo studio pubblicato da (Rougemont and Hingamp, 2003) e si sviluppa secondo i seguenti passi. 1) Viene letta la matrice di input X. 2) Per ogni coppia di geni x k,l si definisce la matrice quadrata di correlazione C di dimensione N µn i cui elementi sono calcolati secondo l'indice di Pearson: M Ixk,j -m k M Ix l,j -m l M c k,l = œ @-1, 1D s j=1 k s l 3) Prefissata una soglia T cor, che definisce un intervallo di confronto simmetrico H-T cor, T cor L, si costruisce la matrice quadrata di adiacenza A tra i geni di dimensione N µn i cui elementi sono definiti come segue: 0 se c a k,l œd-t cor,t cor @ k,l =81 altrimenti 4) Dalla matrice di adiacenza viene costruito il grafo (non orientato) di correlazione G con i pesi degli archi pari ai coefficienti di correlazione c k,l 5) Per ogni nodo n appartenente al grafo di correlazione si definisce un indice di curvatura: dove t è il numero di triangoli per il nodo n e v è il numero di nodi "vicini" ad n. 6) Definita una soglia di curvatura T curv œ @0, 1D si genera un nuovo grafo curvhnl = t œ @0, 1D vhv-1lê2 H = 8nodi n œ G ed archi collegati e curvhnl T curv < 7) Da tale grafo vengono estratte le componenti connesse (con almeno due nodi collegati) che rappresentano le classi (cluster) individuate in base ai valori dei due parametri T cor e T curv.

6 Gallo-DeBonis-UGM2010.nb Implementazione in Mathematica: Analisi dei profili di espressione dei geni del Saccharomyces cerevisiae Inizializzazione ü Packages e funzioni Needs@"Combinatorica`"D Needs@"GraphUtilities`"D Clear@ClusteringD; H* Il coefficiente di clustering di un nodo è il rapporto tra i link che collegano i nodi vicini ad esso ed il massimo possibile di tali link. Per i nodi con meno di due vicini il coefficiente non è definito. *L Clustering@v_Integer, g_graphd := Module@ 8nbrs, subgraph<, nbrs = Complement@Neighborhood@g, v, 1D, 8v<D; If@Length@nbrsD < 2, Return@0DD; subgraph = InduceSubgraph@g, nbrsd; If@UndirectedQ@gD, Return@2 * M@subGraphD ê HV@subGraphD * HV@subGraphD - 1LLD, Return@M@subGraphD ê HV@subGraphD * HV@subGraphD - 1LLD D; D; Dati di input: un vettore di campioni per ogni gene Clear@XannD; Clear@XD; << yeast_ann.txt; << yeast_data.txt; ü Costanti Clear@nD; Clear@mD; Clear@TcorD; Clear@TcurvD; Print@n = Dimensions@XannD@@1DD, " geni"d Print@m = Dimensions@XD@@2DD, " campioni"d Print@"Soglia di correlazione: ", Tcor = 0.90D

Gallo-DeBonis-UGM2010.nb 7 6221 geni 80 campioni Soglia di correlazione: 0.9 ü Variabili di lavoro X@1.. n, 1.. md : matrice dei dati geniêcampioni Xann@1.. nd : annotazioni dei geni Cor@1.. n, 1.. nd : matrice di correlazione dei geni fa : funzione di adiacenza Hper la costruzione della matrice di adiacenza A del grafo d i correlazione GL fc : funzione di curvatura Hper il calcolo degli indici di curvatura dei nodil A@1.. n, 1.. nd : matrice di adiacenza del grafo dei geni correlati G : grafo di correlazione Curv@1.. nd : indici di curvatura dei nodi H : grafo di curvatura Y@1.. nd : array delle classi di appartenenza dei geni, con annotazioni Z@1.. cd : array delle classi HclusterL con relativi indici dei nodi Calcolo della matrice di correlazione Clear@CorD; Timing@Cor = Correlation@Transpose@XDD;D@@1DD 5.01095

8 Gallo-DeBonis-UGM2010.nb Calcolo della matrice di adiacenza e del relativo grafo dalla matrice di correlazione ü Definizione della funzione di adiacenza e calcolo della matrice Clear@faD;H* funzione di adiacenza *L fa@i_, j_d := If@Cor@@i, jdd < Tcor && Cor@@i, jdd > -Tcor, 0, 1 D; Clear@AD; Print@ "Tempo impiegato per la matrice di adiacenza: ", Timing@ A = SparseArray@Table@If@i ¹ j, fa@i, jd, 0D, 8i, n<, 8j, n<dd D@@1DD, " secondi." D Tempo impiegato per la matrice di adiacenza: 272.257 secondi. ü Costruzione del grafo dalla matrice di adiacenza Clear@GD; Timing@G = FromAdjacencyMatrix@Normal@ADD;D@@1DD Print@"Il grafo di correlazione ha ", M@GD, " archi e ", V@GD, " nodi."d 23.6527 Il grafo di correlazione ha 1917 archi e 6221 nodi. Calcolo degli indici di curvatura dei nodi Clear@fcD;H* funzione di curvatura *L fc@i_integerd := Clustering@i, GD; Clear@CurvD; Print@"Tempo impiegato per calcolare gli indici di curvatura: ", Timing@Curv = Array@fc, 8n<D;D@@1DD, " secondi."d Print@"Vi sono ", Count@Curv, x_ ê; x > 0D, " indici di curvatura positivi."d Tempo impiegato per calcolare gli indici di curvatura: 345.282 secondi. Vi sono 237 indici di curvatura positivi. Costruzione del grafo di curvatura per rimozione dei nodi/archi sotto soglia (Tcor = 0.90, Tcurv=0.70)

Gallo-DeBonis-UGM2010.nb 9 Costruzione del grafo di curvatura per rimozione dei nodi/archi sotto soglia (Tcor = 0.90, Tcurv=0.70) ü Determinazione della lista dei nodi da rimuovere Print@"Soglia di curvatura: ", Tcurv = 0.70DH* soglia per la costruzione del HsottoLgrafo di curvatura *L Clear@llD; ll = 8<; For@i = 1, i n, i++, If@Curv@@iDD < Tcurv, ll = Append@ll, List@iDDDD; Print@"Vi sono ", Dimensions@llD@@1DD, " nodi su ", n, " da rimuovere."d Soglia di curvatura: 0.7 Vi sono 6120 nodi su 6221 da rimuovere. ü Costruzione del grafo di curvatura Clear@HD; H = DeleteVertices@G, Flatten@llDD; Print@"Il grafo di curvatura ha ", M@HD, " archi e ", V@HD, " nodi."d Il grafo di curvatura ha 147 archi e 101 nodi.

10 Gallo-DeBonis-UGM2010.nb ShowGraph@HD ü Lista delle annotazioni dei geni residui selezionati nel grafo di curvatura Clear@HannD;H* le annotazioni dei geni residui presenti in H *L Hann = Delete@Xann, lld; Dimensions@HannD@@1DD 101

Gallo-DeBonis-UGM2010.nb 11 ü Lista annotata delle classi (cluster con almeno due nodi) componenti il grafo di curvatura Clear@CCD; CC = ConnectedComponents@HD; Clear@ZD; Z = 8<;H* vettore delle classi e relativi indici dei nodi di H *L For@i = 1, i Dimensions@CCD@@1DD, i++, If@Dimensions@CC@@iDDD@@1DD > 1, Z = Append@Z, CC@@iDDDDD; Clear@YD; Y = 8<;H* le classi finali ottenute, con annotazione dei geni *L For@i = 1, i Dimensions@ZD@@1DD, i++, Y = Append@Y, Hann@@Z@@iDDDDDD; Print@"Sono individuate ", Dimensions@YD@@1DD, " classi, così strutturate:"d For@i = 1, i Dimensions@YD@@1DD, i++, Print@"Ò", i, " ", Y@@iDD, " H", Dimensions@Z@@iDDD@@1DD, " elementil "DD GraphPlot3D@SetVertexLabels@H, HannD, Method Ø "SpiralEmbedding", VertexRenderingFunction Ø H8Sphere@Ò1, 0.03D, Black, Text@Style@Ò2, FontFamily Ø "Arial Narrow", Antialiasing Ø True, FontSize Ø 9, FontWeight Ø NormalD, Ò1D< &LD Sono individuate 14 classi, così strutturate: Ò1 8YHR124W, YAL018C, YNL128W, YDL187C, YOL047C, YFR032C, YGL138C, YDR523C, YOR313C, YLR307W, YPL130W, YOR339C, YOL091W, YER106W< H14 elementil Ò2 8YLR196W, YLR222C< H2 elementil Ò3 8YLR197W, YLR198C, YLR175W< H3 elementil Ò4 8YER115C, YNL033W, YPR027C< H3 elementil Ò5 8YDR285W, YMR133W< H2 elementil Ò6 8YCR012W, YCR013C, YKL060C, YKL152C, YKL153W, YGR192C, YHR174W, YJR009C, YDR050C, YJL052W, YLR044C< H11 elementil Ò7 8YBL003C, YDR224C, YDR225W, YNL031C, YBR010W< H5 elementil Ò8 8YKL006C, YEL076W, YMR273C, YFL011W, YAR002C, YMR006C, YMR085W, YDL045W< H8 elementil Ò9 8YMR046C, YMR051C< H2 elementil Ò10 8YOL127W, YGR027C, YGL147C, YOR096W, YGR034W, YLR448W, YLR167W, YDL082W, YLR325C, YGL102C, YPL079W, YGL103W, YGL189C, YPL081W< H14 elementil Ò11 8YHR150W, YHR166C, YLR030W< H3 elementil Ò12 8YHR092C, YDR342C, YDR343C< H3 elementil Ò13 8YGL081W, YHR079BC, YGL033W< H3 elementil Ò14 8YLR314C, YML065W< H2 elementil

12 Gallo-DeBonis-UGM2010.nb

Gallo-DeBonis-UGM2010.nb 13 Costruzione del grafo di curvatura per rimozione dei nodi/archi sotto soglia (Tcor = 0.80, Tcurv=0.64) ü Determinazione della lista dei nodi da rimuovere Print@"Soglia di curvatura: ", Tcurv = 0.64D H* soglia per la costruzione del HsottoLgrafo di curvatura *L Protect@TcurvD; Clear@llD; ll = 8<; For@i = 1, i n, i++, If@Curv@@iDD < Tcurv, ll = Append@ll, List@iDDDD; Print@"Vi sono ", Dimensions@llD@@1DD, " nodi su ", n, " da rimuovere."d Soglia di curvatura: 0.64 Vi sono 6094 nodi su 6221 da rimuovere.

14 Gallo-DeBonis-UGM2010.nb ü Costruzione del grafo di curvatura Clear@HD; H = DeleteVertices@G, Flatten@llDD; Print@"Il grafo di curvatura ha ", M@HD, " archi e ", V@HD, " nodi."d Il grafo di curvatura ha 270 archi e 127 nodi. ShowGraph@SpringEmbedding@HDD ü Lista delle annotazioni dei geni residui selezionati nel grafo di curvatura Clear@HannD;H* le annotazioni dei geni residui presenti in H *L Hann = Delete@Xann, lld; Dimensions@HannD@@1DD 127

Gallo-DeBonis-UGM2010.nb 15 ü Lista annotata delle classi (cluster con almeno due nodi) componenti il grafo di curvatura Clear@CCD; CC = ConnectedComponents@HD; Clear@ZD; Z = 8<;H* vettore delle classi e relativi indici dei nodi di H *L For@i = 1, i Dimensions@CCD@@1DD, i++, If@Dimensions@CC@@iDDD@@1DD > 1, Z = Append@Z, CC@@iDDDDD; Clear@YD; Y = 8<;H* le classi finali ottenute, con annotazione dei geni *L For@i = 1, i Dimensions@ZD@@1DD, i++, Y = Append@Y, Hann@@Z@@iDDDDDD; Print@"Sono individuate ", Dimensions@YD@@1DD, " classi, così strutturate:"d For@i = 1, i Dimensions@YD@@1DD, i++, Print@"Ò", i, " ", Y@@iDD, " H", Dimensions@Z@@iDDD@@1DD, " elementil "DD GraphPlot3D@SetVertexLabels@H, HannD, Method Ø "SpiralEmbedding", VertexRenderingFunction Ø H8Sphere@Ò1, 0.03D, Black, Text@Style@Ò2, FontFamily Ø "Arial Narrow", Antialiasing Ø True, FontSize Ø 9, FontWeight Ø NormalD, Ò1D< &LD

16 Gallo-DeBonis-UGM2010.nb Sono individuate 15 classi, così strutturate: Ò1 8YHR124W, YAL018C, YNL128W, YER115C, YLR341W, YLR343W, YDL187C, YOR214C, YNL205C, YOL047C, YDR218C, YDL114W, YFR032C, YIL099W, YGL138C, YDR523C, YOR313C, YLR307W, YLR308W, YGL015C, YBR148W, YPL130W, YJL037W, YNL033W, YOL015W, YPR027C, YGL170C, YDR042C, YHR185C, YOR339C, YOL091W, YLL005C, YER106W< H33 elementil Ò2 8YLR196W, YLR222C< H2 elementil Ò3 8YLR197W, YLR198C, YLR175W< H3 elementil Ò4 8YOR351C, YDR446W, YIL031W, YER179W< H4 elementil Ò5 8YLR340W, YGL135W< H2 elementil Ò6 8YDR285W, YMR133W< H2 elementil Ò7 8YHR203C, YLR344W, YGR085C, YLR061W, YLR062C, YOL127W, YGR027C, YOR234C, YGL147C, YOR096W, YGR034W, YLR441C, YLR448W, YGR118W, YLR167W, YPL131W, YDL082W, YLR325C, YGL102C, YPL079W, YGL103W, YLR185W, YHL015W, YGL189C, YPL081W< H25 elementil Ò8 8YCR012W, YCR013C, YKL060C, YKL152C, YKL153W, YGR192C, YHR174W, YJR009C, YDR050C, YJL052W, YLR044C< H11 elementil Ò9 8YBL003C, YDR224C, YDR225W, YNL031C, YBR010W< H5 elementil Ò10 8YKL006C, YEL076W, YMR273C, YFL011W, YAR002C, YMR006C, YMR085W, YDL045W< H8 elementil Ò11 8YMR046C, YMR051C, YML040W, YCL020W< H4 elementil Ò12 8YHR150W, YHR166C, YLR030W< H3 elementil Ò13 8YHR092C, YDR342C, YDR343C< H3 elementil Ò14 8YGL081W, YHR079BC, YGL033W< H3 elementil Ò15 8YLR314C, YML065W< H2 elementil

Gallo-DeBonis-UGM2010.nb 17

18 Gallo-DeBonis-UGM2010.nb Risultati Nei due grafi precedenti sono rappresentati i risultati dell'elaborazione basata sui profili di espressione dei 6221 geni del Saccharomyces cerevisiae, incrociati sugli 80 campioni disponibili. Anche con valori relativamente elevati di correlazione e di curvatura si ottengono classi ben delineate, come si evince dalle figure. Nel grafo con soglia di correlazione T cor = 0.90 e di curvatura T curv = 0.70 si osserva che solo 237 dei 6221 geni hanno curvatura positiva (3.8096%), con 1917 link iniziali; nel grafo con soglia di correlazione T cor = 0.80 e di curvatura T curv = 0.64 abbiamo 1112 geni con curvatura positiva (17.8749%) e 19026 link. Molte delle classi ottenute hanno una base biologica accettabile. Ad esempio, la classe #7 del primo grafo e la classe #13 del secondo contengono (con le ovvie differenze) quasi tutti i geni per la produzione degli istoni: questo cluster è alquanto stabile al variare dei parametri di soglia. Classi più ampie sono anche state rilevate, come ad esempio il cluster di sintesi proteica (classe #10 del primo grafo e #2 del secondo): quest'ultimo è suscettibile di notevoli variazioni al variare delle soglie, e può arrivare ad includere centinaia di geni.

Gallo-DeBonis-UGM2010.nb 19 Implementazione in Mathematica: Analisi dei profili di espressione dei geni del linfoma Inizializzazione ü Packages e funzioni Needs@"Combinatorica`"D Needs@"GraphUtilities`"D Clear@ClusteringD; H* Il coefficiente di clustering di un nodo è il rapporto tra il numero di collegamenti dei nodi vicini ed il numero massimo possibile di tali link. Per i nodi con meno di due vicini il coefficiente di clustering coefficient non è definito.. *L Clustering@v_Integer, g_graphd := Module@ 8nbrs, subgraph<, nbrs = Complement@Neighborhood@g, v, 1D, 8v<D; If@Length@nbrsD < 2, Return@0DD; subgraph = InduceSubgraph@g, nbrsd; If@UndirectedQ@gD, Return@2 * M@subGraphD ê HV@subGraphD * HV@subGraphD - 1LLD, Return@M@subGraphD ê HV@subGraphD * HV@subGraphD - 1LLD D; D; Dati di input: un vettore per ogni gene Clear@XannD; Clear@XD; << lymph_ann.txt; << lymph_data.txt; ü Costanti Clear@nD; Clear@mD; Clear@TcorD; Clear@TcurvD; Print@n = Dimensions@XannD@@1DD, " geni"d Print@m = Dimensions@XD@@2DD, " campioni"d Print@"Soglia di correlazione: ", Tcor = 0.80D

20 Gallo-DeBonis-UGM2010.nb 4026 geni 96 campioni Soglia di correlazione: 0.8 ü Variabili di lavoro X@1.. n, 1.. md : matrice dei dati geniêcampioni Xann@1.. n,d : annotazioni dei geni Cor@1.. n, 1.. nd : m atrice di correlazione dei geni fa : funzione di adiacenza fc : funzione di curvatura A@1.. n, 1.. nd : matrice di adiacenza del grafo dei geni correlati G : grafo di correlazione Curv@1.. nd : indici di curvatura dei nodi H : grafo di curvatura Y@1.. nd : array delle classi di appartenenza dei geni, con annotazioni Z@1.. cd : array delle classi HclusterL con relativi indici dei nodi Calcolo della matrice di correlazione Clear@CorD; Print@Timing@Cor = Correlation@Transpose@XDD;D@@1DD, " secondi necessari per il calcolo della matrice di correlazione."d 1.41066 secondi necessari per il calcolo della matrice di correlazione.

Gallo-DeBonis-UGM2010.nb 21 Calcolo della matrice di adiacenza e del relativo grafo dalla matrice di correlazione ü Definizione della funzione di adiacenza Clear@faD; fa@i_, j_d := If@Cor@@i, jdd < Tcor && Cor@@i, jdd > -Tcor, 0, 1 D; H* Calcolo della matrice di adiacenza *L Clear@AD; Print@ "Tempo impiegato per la matrice di adiacenza: ", Timing@ A = SparseArray@Table@If@i ¹ j, fa@i, jd, 0D, 8i, n<, 8j, n<dd D@@1DD, " secondi." D Tempo impiegato per la matrice di adiacenza: 109.384 secondi. ü Costruzione del grafo dalla matrice di adiacenza Clear@GD; G = FromAdjacencyMatrix@Normal@ADD; Print@"Il grafo di correlazione ha ", M@GD, " archi e ", V@GD, " nodi."d Il grafo di correlazione ha 1872 archi e 4026 nodi. Calcolo degli indici di curvatura dei nodi Clear@fcD; fc@i_integerd := Clustering@i, GD; Clear@CurvD; Print@"Tempo impiegato per calcolare gli indici di curvatura: ", Timing@Curv = Array@fc, 8n<D;D@@1DD, " secondi."d Tempo impiegato per calcolare gli indici di curvatura: 174.01 secondi. pcurv = Count@Curv, x_ ê; x > 0D; Print@"Vi sono ", pcurv, " indici di curvatura positivi H", N@pCurv ê n * 100D, "%L"D Vi sono 568 indici di curvatura positivi H14.1083%L Costruzione del grafo di curvatura per rimozione dei nodi/archi sotto soglia (Tcor = 0.80,Tcurv = 0.40)

22 Gallo-DeBonis-UGM2010.nb Costruzione del grafo di curvatura per rimozione dei nodi/archi sotto soglia (Tcor = 0.80,Tcurv = 0.40) ü Determinazione della lista dei nodi da rimuovere Print@"Soglia di curvatura: ", Tcurv = 0.40D Clear@llD; ll = 8<; For@i = 1, i n, i++, If@Curv@@iDD < Tcurv, ll = Append@ll, List@iDDDD; Print@"Vi sono ", Dimensions@llD@@1DD, " nodi su ", n, " da rimuovere."d Soglia di curvatura: 0.4 Vi sono 3571 nodi su 4026 da rimuovere. ü Costruzione del grafo di curvatura Clear@HD; H = DeleteVertices@G, Flatten@llDD; Print@"Il grafo di curvatura ha ", M@HD, " archi e ", V@HD, " nodi."d Il grafo di curvatura ha 805 archi e 455 nodi.

ShowGraph@SpringEmbedding@HDD Gallo-DeBonis-UGM2010.nb 23

24 Gallo-DeBonis-UGM2010.nb ü Lista delle annotazioni dei geni residui selezionati nel grafo di curvatura Clear@HannD;H* le annotazioni dei geni residui presenti in H *L Hann = Delete@Xann, lld; Dimensions@HannD@@1DD 455 ü Lista annotata delle classi (cluster con almeno due nodi) componenti il grafo di curvatura Clear@CCD; CC = ConnectedComponents@HD; Clear@ZD; Z = 8<;H* vettore delle classi e relativi indici dei nodi di H *L For@i = 1, i Dimensions@CCD@@1DD, i++, If@Dimensions@CC@@iDDD@@1DD > 1, Z = Append@Z, CC@@iDDDDD; Clear@YD; Y = 8<;H* le classi finali ottenute, con annotazione dei geni *L For@i = 1, i Dimensions@ZD@@1DD, i++, Y = Append@Y, Hann@@Z@@iDDDDDD; Print@"Il grafo di curvatura ha ", Dimensions@YD@@1DD, " classi, così strutturate:"d For@i = 1, i Dimensions@YD@@1DD, i++, Print@"Ò", i, " ", Y@@iDD, " H", Dimensions@Z@@iDDD@@1DD, " elementil "DD Print@"Il grafo finale di classificazione è:"d GraphPlot3D@SetVertexLabels@H, HannD, Method Ø "SpiralEmbedding", VertexRenderingFunction Ø H8Sphere@Ò1, 0.1D, Black, Text@Style@Ò2, FontFamily Ø "Arial Narrow", Antialiasing Ø True, FontSize Ø Medium, FontWeight Ø BoldD, Ò1D< &LD Il grafo di curvatura ha 110 classi, così strutturate: Ò1 8GENE4006X, GENE4007X, GENE4008X< H3 elementil Ò2 8GENE4012X, GENE4013X, GENE4014X, GENE4015X< H4 elementil Ò3 8GENE2536X, GENE2537X, GENE2538X< H3 elementil Ò4 8GENE2540X, GENE2541X, GENE2542X, GENE2543X< H4 elementil Ò5 8GENE3880X, GENE3881X, GENE3882X< H3 elementil Ò6 8GENE3450X, GENE3451X, GENE3452X< H3 elementil Ò7 8GENE3796X, GENE3794X< H2 elementil Ò8 8GENE3687X, GENE3766X, GENE3764X, GENE3762X, GENE3761X, GENE3760X< H6 elementil Ò9 8GENE3789X, GENE3788X, GENE3787X, GENE3786X< H4 elementil

Gallo-DeBonis-UGM2010.nb 25 Ò10 8GENE3782X, GENE3781X, GENE3780X< H3 elementil Ò11 8GENE3778X, GENE3777X, GENE3776X< H3 elementil Ò12 8GENE3775X, GENE3774X, GENE3773X, GENE3772X< H4 elementil Ò13 8GENE3771X, GENE3770X< H2 elementil Ò14 8GENE3769X, GENE3767X< H2 elementil Ò15 8GENE3757X, GENE3756X< H2 elementil Ò16 8GENE3755X, GENE3754X, GENE3753X, GENE3751X, GENE3750X< H5 elementil Ò17 8GENE3749X, GENE3748X, GENE3747X, GENE3746X, GENE3745X, GENE3744X, GENE3743X, GENE3742X, GENE3741X, GENE3740X< H10 elementil Ò18 8GENE3739X, GENE3738X, GENE3737X< H3 elementil Ò19 8GENE3710X, GENE3711X, GENE3712X, GENE3713X< H4 elementil Ò20 8GENE3716X, GENE3717X< H2 elementil Ò21 8GENE3724X, GENE3725X, GENE3726X, GENE3727X< H4 elementil Ò22 8GENE3690X, GENE3689X, GENE3688X< H3 elementil Ò23 8GENE3678X, GENE3657X, GENE3658X, GENE3659X, GENE3660X, GENE3677X, GENE3662X, GENE3676X, GENE3675X, GENE3680X, GENE3679X, GENE3674X, GENE3673X, GENE3666X, GENE3667X, GENE3668X, GENE3669X, GENE3670X, GENE3671X, GENE3672X, GENE3665X, GENE3664X, GENE3663X, GENE3656X, GENE3655X, GENE3654X< H26 elementil Ò24 8GENE3641X, GENE3643X< H2 elementil Ò25 8GENE3648X, GENE3649X, GENE3650X, GENE3651X< H4 elementil Ò26 8GENE3547X, GENE3546X, GENE3545X, GENE3544X, GENE3543X< H5 elementil Ò27 8GENE3555X, GENE3554X< H2 elementil Ò28 8GENE3419X, GENE3420X, GENE3421X, GENE3422X, GENE3423X, GENE3424X, GENE3425X, GENE3426X, GENE3427X, GENE3428X, GENE3429X, GENE3430X< H12 elementil Ò29 8GENE3839X, GENE3838X, GENE3837X, GENE3836X, GENE3835X< H5 elementil Ò30 8GENE2486X, GENE2487X, GENE2488X, GENE2489X, GENE2490X< H5 elementil Ò31 8GENE2052X, GENE2053X, GENE2054X< H3 elementil Ò32 8GENE2301X, GENE2300X, GENE2299X, GENE2298X< H4 elementil

26 Gallo-DeBonis-UGM2010.nb Ò33 8GENE2318X, GENE2317X, GENE2316X< H3 elementil Ò34 8GENE2429X, GENE2428X< H2 elementil Ò35 8GENE2357X, GENE2356X< H2 elementil Ò36 8GENE2366X, GENE2367X, GENE2368X, GENE2369X, GENE2370X, GENE2371X, GENE2372X, GENE2373X, GENE2374X< H9 elementil Ò37 8GENE2383X, GENE2384X, GENE2385X< H3 elementil Ò38 8GENE2410X, GENE2409X, GENE2408X, GENE2407X< H4 elementil Ò39 8GENE2404X, GENE2403X, GENE2402X, GENE2401X, GENE2400X, GENE2399X< H6 elementil Ò40 8GENE2380X, GENE2379X, GENE2378X< H3 elementil Ò41 8GENE2471X, GENE2472X, GENE2475X, GENE2474X< H4 elementil Ò42 8GENE2274X, GENE2273X, GENE2272X< H3 elementil Ò43 8GENE2183X, GENE2182X, GENE2181X< H3 elementil Ò44 8GENE2110X, GENE2109X, GENE2108X, GENE2107X< H4 elementil Ò45 8GENE2094X, GENE2093X, GENE2092X< H3 elementil Ò46 8GENE2090X, GENE2089X, GENE2088X< H3 elementil Ò47 8GENE2553X, GENE2554X, GENE2555X< H3 elementil Ò48 8GENE3230X, GENE3231X, GENE3232X< H3 elementil Ò49 8GENE3365X, GENE3364X, GENE3363X< H3 elementil Ò50 8GENE3351X, GENE3350X, GENE3349X, GENE3348X< H4 elementil Ò51 8GENE3317X, GENE3318X, GENE3319X< H3 elementil Ò52 8GENE3326X, GENE3327X, GENE3328X, GENE3329X, GENE3330X, GENE3331X< H6 elementil Ò53 8GENE3245X, GENE3244X, GENE3243X, GENE3242X< H4 elementil Ò54 8GENE3241X, GENE3240X, GENE3239X< H3 elementil Ò55 8GENE3955X, GENE3956X, GENE3957X, GENE3958X< H4 elementil Ò56 8GENE1472X, GENE1473X, GENE1474X< H3 elementil

Gallo-DeBonis-UGM2010.nb 27 Ò57 8GENE2675X, GENE2676X, GENE2677X, GENE2678X< H4 elementil Ò58 8GENE2765X, GENE2764X, GENE2763X< H3 elementil Ò59 8GENE2760X, GENE2759X, GENE2758X< H3 elementil Ò60 8GENE2600X, GENE2599X, GENE2598X< H3 elementil Ò61 8GENE1309X, GENE1310X, GENE1311X, GENE1313X< H4 elementil Ò62 8GENE3924X, GENE3923X, GENE3922X< H3 elementil Ò63 8GENE1371X, GENE1370X, GENE1369X, GENE1368X< H4 elementil Ò64 8GENE1188X, GENE1189X, GENE1190X< H3 elementil Ò65 8GENE1208X, GENE1209X, GENE1210X< H3 elementil Ò66 8GENE1244X, GENE1245X, GENE1246X< H3 elementil Ò67 8GENE1185X, GENE1186X, GENE1187X< H3 elementil Ò68 8GENE1294X, GENE1293X, GENE1292X< H3 elementil Ò69 8GENE889X, GENE890X, GENE891X< H3 elementil Ò70 8GENE948X, GENE949X, GENE950X, GENE951X< H4 elementil Ò71 8GENE1175X, GENE1174X, GENE1173X, GENE1171X, GENE1170X< H5 elementil Ò72 8GENE1135X, GENE1136X< H2 elementil Ò73 8GENE60X, GENE61X, GENE62X< H3 elementil Ò74 8GENE3987X, GENE3986X, GENE3985X< H3 elementil Ò75 8GENE3965X, GENE3966X, GENE3967X, GENE3968X< H4 elementil Ò76 8GENE218X, GENE217X< H2 elementil Ò77 8GENE841X, GENE840X, GENE838X< H3 elementil Ò78 8GENE809X, GENE808X, GENE807X< H3 elementil Ò79 8GENE542X, GENE541X, GENE539X, GENE538X, GENE537X< H5 elementil Ò80 8GENE532X, GENE531X< H2 elementil

28 Gallo-DeBonis-UGM2010.nb Ò81 8GENE603X, GENE602X< H2 elementil Ò82 8GENE628X, GENE661X< H2 elementil Ò83 8GENE686X, GENE716X< H2 elementil Ò84 8GENE680X, GENE679X< H2 elementil Ò85 8GENE741X, GENE740X< H2 elementil Ò86 8GENE578X, GENE577X, GENE576X, GENE575X, GENE574X< H5 elementil Ò87 8GENE567X, GENE569X, GENE566X< H3 elementil Ò88 8GENE1322X, GENE1321X, GENE1320X, GENE1319X< H4 elementil Ò89 8GENE878X, GENE877X, GENE876X, GENE875X< H4 elementil Ò90 8GENE125X, GENE124X, GENE123X, GENE122X, GENE121X, GENE120X< H6 elementil Ò91 8GENE106X, GENE105X, GENE104X< H3 elementil Ò92 8GENE1003X, GENE1004X, GENE1005X< H3 elementil Ò93 8GENE73X, GENE74X, GENE75X, GENE76X< H4 elementil Ò94 8GENE3200X, GENE3199X, GENE3198X< H3 elementil Ò95 8GENE3845X, GENE3846X, GENE3847X, GENE3848X, GENE3849X, GENE3850X, GENE3851X, GENE3852X< H8 elementil Ò96 8GENE3974X, GENE3975X, GENE3976X< H3 elementil Ò97 8GENE1779X, GENE1778X, GENE1777X< H3 elementil Ò98 8GENE1123X, GENE1124X, GENE1125X, GENE1126X, GENE1127X, GENE1128X, GENE1129X, GENE1130X< H8 elementil Ò99 8GENE1598X, GENE1599X, GENE1600X, GENE1601X< H4 elementil Ò100 8GENE1613X, GENE1612X, GENE1611X< H3 elementil Ò101 8GENE1610X, GENE1646X, GENE1644X, GENE1643X, GENE1642X< H5 elementil Ò102 8GENE1616X, GENE1617X, GENE1618X, GENE1619X< H4 elementil Ò103 8GENE1633X, GENE1651X, GENE1650X, GENE1641X, GENE1640X, GENE1639X, GENE1638X, GENE1654X, GENE1653X< H9 elementil Ò104 8GENE1657X, GENE1658X, GENE1659X< H3 elementil

Gallo-DeBonis-UGM2010.nb 29 Ò105 8GENE1660X, GENE1662X< H2 elementil Ò106 8GENE1693X, GENE1695X, GENE1696X, GENE1697X, GENE1698X< H5 elementil Ò107 8GENE1746X, GENE1747X, GENE1748X< H3 elementil Ò108 8GENE1727X, GENE1726X, GENE1725X< H3 elementil Ò109 8GENE1569X, GENE1570X, GENE1571X< H3 elementil Ò110 8GENE1548X, GENE1547X, GENE1546X< H3 elementil Il grafo finale di classificazione è:

30 Gallo-DeBonis-UGM2010.nb Costruzione del grafo di curvatura per rimozione dei nodi/archi sotto soglia (Tcor = 0.80,Tcurv = 0.24)

Gallo-DeBonis-UGM2010.nb 31 Costruzione del grafo di curvatura per rimozione dei nodi/archi sotto soglia (Tcor = 0.80,Tcurv = 0.24) ü Determinazione della lista dei nodi da rimuovere Print@"Soglia di curvatura: ", Tcurv = 0.24D H* soglia per la costruzione del HsottoLgrafo di curvatura *L Clear@llD; ll = 8<; For@i = 1, i n, i++, If@Curv@@iDD < Tcurv, ll = Append@ll, List@iDDDD; Print@"Vi sono ", Dimensions@llD@@1DD, " nodi su ", n, " da rimuovere."d Soglia di curvatura: 0.24 Vi sono 3571 nodi su 4026 da rimuovere. ü Costruzione del grafo di curvatura Clear@HD; H = DeleteVertices@G, Flatten@llDD; Print@"Il grafo di curvatura ha ", M@HD, " archi e ", V@HD, " nodi."d Il grafo di curvatura ha 805 archi e 455 nodi.