133
POLITECNICO DI MILANO V Facolt` a di Ingegneria Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica Sviluppo di una metodologia per l’analisi della concatenazione genica (linkage) mediante data retrieval e elaborazione multiallelica Relatore: Chiarissima Prof.sa Giuseppina Gini Correlatore: Prof. Andrea Remuzzi Tesi di Laurea Specialistica di: Andrea Calabria matr. 667131 Anno Accademico 2005/2006

Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

POLITECNICO DI MILANOV Facolta di Ingegneria

Corso di Laurea in Ingegneria InformaticaDipartimento di Elettronica e Informazione

Tesi di Laurea Specialistica

Sviluppo di una metodologia per l’analisi

della concatenazione genica (linkage)

mediante data retrieval e elaborazione

multiallelica

Relatore:Chiarissima Prof.sa Giuseppina Gini

Correlatore:Prof. Andrea Remuzzi

Tesi di Laurea Specialistica di:Andrea Calabria

matr. 667131

Anno Accademico 2005/2006

Page 2: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

A mio nonno

Page 3: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

Ringraziamenti

Un sincero ringraziamento alla professoressa Giuseppina Gini, non solo perla sua professionalita e capacita di trasmettere ai propri allievi la scien-za ingegneristica e la passione per il settore dell’intelligenza artificiale, masoprattutto per la disponibilita, umilta e umanita che ha sempre dimostrato.

Ringrazio il professor Andrea Remuzzi per avermi dato la possibilitadi esplorare il campo della genetica e della biologia molecolare, permet-tendomi di coniugare i miei studi formativi alla mia personale passione,con l’ambizione di poter diventare un ricercatore nel campo della geneticamedica.

Un sentito ringraziamento a tutte le persone dei laboratori del MarioNegri da quello di “Medicina Molecolare”, con Ariela Benigni, Marina No-ris, Jessica Caprioli e Paola Bettinaglio, a quello di “Bioingegneria”, conBogdan, Sergio, Luca e Marina. Naturalmente senza trascurare le perso-ne che mi hanno accompagnato e incoraggiato in quest’esperienza, tra cuiCaterina, Daniela, Eleonora, Emanuela, Federica, Gaia, Giuseppe, Liffert,Silvia.

Immancabile il ringraziamento ai miei genitori, che hanno vissuto e sor-bito l’altalenante mia umoralita; a mia madre, ripagandola delle scelte etalvolta dei sacrifici che ha fatto per me, a mio padre, per la costante pre-senza nel guidarmi in una giusta educazione, e alla mia sorellina Eleonora,con la sua dolce presenza, dedico un caloroso abbraccio. E il pensiero nonmanca di posarsi sui miei nonni Anna & Enzo, Lucia & Giuseppe, il cuimodello e fonte costante di ispirazione.

Colgo l’occasione per ringraziare tutti i miei piu cari amici, con cui hocondiviso emozioni indelebili nella sinusoide degli eventi, tra cui Carlo, Gior-gio, Alberto, Simone, Riccardo, Linda, Luca e Giovanni, senza voler trascu-rare tutti i compagni che nella quotidianita hanno saputo regalarmi gioiosee spensierate serate, come la compagnia del Tavernello, o palpitanti soddi-sfazioni sportive, come la squadra Pallavolo Politecnico, e intensi incontrieducativi, come il gruppo adolescenti e giovani dell’oratorio di San Vittore alCorpo, o ancora semplici momenti di fatica, come i compagni di universitae di lavoro.

Page 4: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

II

Come al termine di ogni epigrafe, nell’ultima posizione pongo la personache piu ha illuminato il mio spirito, dando equilibrio, saggezza e serenita adogni mio incedere; la mia vita, splendida Francesca, non sarebbe completasenza il tuo candido e incondizionato amore.

Infine nell’ineluttabile ed effimera contingenza dell’esistenza, voglio alza-re un ringraziamento al Padre, perche il presente laboriosamente costruitonon sarebbe cosı rigoglioso senza tutto il sostegno del passato, nella certezzadi un futuro comunque felice.

Page 5: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

Sommario

Nel presente lavoro viene descritta una soluzione automatica di ricerca delleinformazioni geniche presso banche dati pubbliche online ed esecuzione disoftware di analisi di linkage in modalita multiallelica. Il problema nasceda un’esigenza di laboratorio dell’unita di “Genetica delle malattie renali”presso l’Istituto di Ricerca Farmacologiche Mario Negri di Bergamo (Ranica)che mira all’automatizzazione delle procedure manuali in uso per la creazionedei file di marcatori e il lancio dell’analisi di linkage con un approccio chepermetta di superare i limiti software.

Come soluzione al problema e stata progettata una metodologia per su-perare i limiti computazionali e implementata in un’applicazione con in-terfaccia grafica chiamata RightLinkS che rende automatico il processo dicompilazione e stesura dei file dei marcatori (tramite data retrieval dai da-tabase online GDB e NIH), e permette una completa e semplice esecuzionedei software GeneHunter ed SLink, indispensabili per un calcolo esatto dellod-score nell’analisi di linkage, grazie all’elaborazione sequenziale dei file dimarcatori, creati come combinazione lineare del numero di alleli presenti.Il problema del superamento dei limiti di SLink e stato risolto mediante lastesura di un numero di file proporzionato alla quantita di alleli, secondouna logica sliding window.

RightLinkS e stato testato con successo dagli utenti finali che ne hannovalidato le funzionalita, e grazie ed esso e stato possibile ridurre almeno del90% il tempo di lavoro sull’analisi di linkage nel laboratorio.

Page 6: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

Indice

1 Introduzione 2

2 Genetica e Analisi di Linkage 52.1 Concetti e strumenti di base . . . . . . . . . . . . . . . . . . . 5

2.1.1 DNA (acido desossiribonucleico) . . . . . . . . . . . . 52.1.2 Citologia e Citogenetica . . . . . . . . . . . . . . . . . 7

2.2 Formalismo negli alberi genealogici . . . . . . . . . . . . . . . 102.3 La concatenazione genica . . . . . . . . . . . . . . . . . . . . 10

2.3.1 Likelihood e l’analisi del Lod Score . . . . . . . . . . . 15

3 Stato dell’arte sull’analisi di linkage 193.1 Il problema del linkage . . . . . . . . . . . . . . . . . . . . . . 193.2 Analisi computazionale del problema del linkage . . . . . . . 203.3 Algoritmi sul linkage . . . . . . . . . . . . . . . . . . . . . . . 21

3.3.1 L’approccio Expectation-Maximization (EM ) . . . . . 223.3.2 L’algoritmo Elston-Stewart (ES ) . . . . . . . . . . . . 233.3.3 L’algoritmo Lander-Green (LG) . . . . . . . . . . . . 283.3.4 Approccio con le reti Bayesiane (Bayesian Networks) . 35

3.4 Implementazioni degli algoritmi sul linkage . . . . . . . . . . 403.4.1 Elston-Stewart: Linkage, Fastlink, SLink . . . . . . . . 423.4.2 Lander-Green: GeneHunter, Allegro, Merlin . . . . . . 433.4.3 Reti bayesiane: Superlink . . . . . . . . . . . . . . . . 43

3.5 Sintesi delle metodologie e Valutazione dei software . . . . . . 43

4 Progettazione 484.1 L’applicazione . . . . . . . . . . . . . . . . . . . . . . . . . . . 484.2 Il modulo Ricerca Informazioni . . . . . . . . . . . . . . . . . 534.3 Il modulo Combinazione Alleli dei Marcatori . . . . . . . . . 604.4 Il modulo Esecuzione . . . . . . . . . . . . . . . . . . . . . . . 624.5 Linguaggi di programmazione e infrastruttura . . . . . . . . . 66

4.5.1 WebL . . . . . . . . . . . . . . . . . . . . . . . . . . . 674.5.2 Infrastruttura e Interfaccia . . . . . . . . . . . . . . . 69

Page 7: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

INDICE 1

5 Implementazione 715.1 Il modulo Ricerca Informazioni . . . . . . . . . . . . . . . . . 71

5.1.1 L’esecuzione delle Query . . . . . . . . . . . . . . . . . 725.1.2 La navigazione . . . . . . . . . . . . . . . . . . . . . . 735.1.3 L’estrazione delle informazioni . . . . . . . . . . . . . 755.1.4 La creazione del file .dat . . . . . . . . . . . . . . . . . 805.1.5 Funzioni di supporto . . . . . . . . . . . . . . . . . . . 825.1.6 Il Main . . . . . . . . . . . . . . . . . . . . . . . . . . 83

5.2 Il modulo Combinazione Marcatori . . . . . . . . . . . . . . . 855.3 Il modulo Esecuzione . . . . . . . . . . . . . . . . . . . . . . . 875.4 L’interfaccia grafica . . . . . . . . . . . . . . . . . . . . . . . . 89

6 Test e Validazione 936.1 Test eseguiti . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

6.1.1 Famiglia Campione . . . . . . . . . . . . . . . . . . . . 936.1.2 Marcatori generici . . . . . . . . . . . . . . . . . . . . 966.1.3 Esecuzione software con file esterni . . . . . . . . . . . 99

6.2 Validazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

7 Conclusioni 101

Bibliografia 103

Appendici 108A Processo di meiosi e tipi di mutazioni . . . . . . . . . . . . . 108B Bayes nella Genetica . . . . . . . . . . . . . . . . . . . . . . . 112

B.1 Teorema di Bayes applicato alla genetica . . . . . . . . 112B.2 Le Reti Bayesiane . . . . . . . . . . . . . . . . . . . . 113

C Strumenti per l’algoritmo Lander-Green . . . . . . . . . . . . 115C.1 Il prodotto di Kronecker . . . . . . . . . . . . . . . . . 115C.2 Fast Fourier Transform . . . . . . . . . . . . . . . . . 116

D Il codice della funzione RiduciAlleli . . . . . . . . . . . . . . . 118

Elenco delle figure 121

Elenco delle tabelle 122

Page 8: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

Capitolo 1

Introduzione

La scienza e il presente, il passato e il futuro, e ogni piccola scoperta di oggipermette di aggiungere un tassello al mosaico della natura, tanto perfettaquanto misteriosa.

Fin dalle origini del pensiero l’uomo si e interrogato sull’esistenza par-tendo proprio dall’osservazione della natura, non solo dal punto di vistaontologico come hanno iniziato Talete, Platone e Pitagora, ma anche cogni-tivo ed itinerante dal metodo matematico di Cartesio, alla logica di Kant edHegel sotto la spinta delle fondamentali scoperte di Galileo e Newton.

E se l’ingegneria e la scienza delle discipline matematiche e fisiche ap-plicate alla natura, la medicina riversa il suo dominio empirico nell’uomo,sfruttando il progresso metodologico e tecnologico. Dal connubio di questedue aree sorgono le piu importanti scoperte scientifiche, che alimentano lesperanze di una qualita di vita migliore per l’umanita.

Spinto dalla passione per la medicina e le scienze ho voluto inserirmiproprio in questo settore, nell’ambizione di poter contribuire al benesserecollettivo applicando gli studi ingegneristici alla ricerca genetica medica. Euno degli istituti piu inclini in Italia alla ricerca senza fini di lucro, aspet-to fondamentale se davvero si vogliono perseguire scopi sociali, e il MarioNegri, a cui mi sono rivolto per lo sviluppo di una tesi in campo genetico.All’interno del Mario Negri nel dipartimento di “Genetica” vengono studia-te le malattie rare, che come tali non hanno forte interesse per le aziendefarmaceutiche in quanto gli introiti dalle vendite dei prodotti curativi noncompenserebbe gli studi per la loro creazione, nonostante gli effetti di taliaffezioni siano spesso devastanti.

Il problema che mi e stato affidato riguarda le malattie autosomichedominanti, il cui significato sara chiarito all’interno della trattazione, inparticolare la concatenazione genica tra malattia e gene, chiamata analisi dilinkage (linkage analysis). Per le caratteristiche del tipo di malattia gli studivengono condotti su famiglie intere, analizzando per ogni individuo specificheregioni del cromosoma che potrebbero codificare l’insorgenza della malattia,

Page 9: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

3

ed essere trasmesse nelle generazioni. Nonostante l’approfondito studio delproblema nella comunita scientifica e le varie soluzioni proposte dal puntodi vista informatico, sono stati creati strumenti parziali per i ricercatori,sia per quanto riguarda l’automatizzazione di alcuni processi di recupero diinformazioni che di capacita elaborativa.

L’analisi di linkage e un problema di stima di massima verosimiglianza(MLE) e appartiene alla classe dei problemi NP-hard [9]. Gli algoritmi fi-nora studiati ed implementati sono due: l’algoritmo Elston-Stewart [22] equello Lander-Green [44], dal nome degli ideatori, proposti rispettivamen-te nel 1971 e nel 1986. Per quanto molto potenti ed utili, tali algoritmipresentano limitazioni computazionali, il primo sul numero dei marcatorimentre il secondo sul numero di individui. Gli applicativi che implemen-tano le due logiche sono molteplici, tra cui citiamo Linkage [25] ed SLink[28] per l’Elston-Stewart algorithm, e GeneHunter [43] per il Lander-Greenalgorithm. Recentemente sono stati proposti approcci alternativi che poten-zialmente riescono a superare tali limiti, per esempio mediante reti bayesiane[48, 49] o catene di Markov con risoluzione Monte Carlo [54], ma sono an-cora ad uno stadio sperimentale poiche le implementazioni derivanti comeSuperlink [50] non riescono ad essere stabili ed affidabili.

Per risolvere il linkage i biologi del laboratorio utilizzano i due program-mi citati, GeneHunter ed SLink, e per eseguire tali applicativi e necessariocreare dei file specifici, contenenti le informazioni sia delle regioni cromoso-miche da osservare, i marcatori, che quelle riguardanti la ricostruzione degliaplotipi della famiglia (ovvero quali dati posseggono nella specifica regionegenica) schematizzata come un grafo ad albero. Le informazioni sui marca-tori sono pubbliche e liberamente consultabili presso le banche dati online diassociazioni come il GDB e l’NIH, mentre per quanto concerne il pedigreee necessario ricostruire la singola famiglia a mano.

Il primo obiettivo e la creazione di un sistema di information retrieval deidati dei marcatori che interroghi i database citati; in questo modo si realizzal’automatizzazione di un processo che solitamente veniva compiuto a manoe spesso comportava molto tempo di lavoro e possibili errori difficilmenterilevabili.

Una volta creati i file di ingresso per i programmi, e necessario eseguir-li correttamente. La difficolta in questa fase risiede nella limitazione dalpunto di vista computazionale degli algoritmi che processano l’analisi dilinkage. Infatti sia GeneHunter che SLink, risentendo dei vincoli intrinsecidegli algoritmi che implementano, hanno dei limiti nei parametri da inserire,il primo per la variabile del numero di persone all’interno del pedigree men-tre il secondo per il numero di alleli in ogni marcatore. Nonostante i limitidi GeneHunter non creino ostacoli al lavoro dei biologi, poiche non e statoancora superato il valore soglia, per SLink invece si presenta la necessita diun’esecuzione piu ampia. L’approccio empirico usato dai biologi e il lanciosequenziale dell’applicazione con diversi file di ingresso per ogni marcato-

Page 10: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

4

re creati come combinazione lineare dei valori di alleli secondo una precisalogica, simile alla tecnica sliding window dei protocolli di trasmissione dati.

Il secondo obiettivo diventa quindi la creazione di un sistema che per-metta non solo il lancio di entrambi i software tramite interfaccia grafica,ma anche l’implementazione della metodologia di esecuzione “multiallelica”1

per il software SLink.In questo modo l’obiettivo globale e la creazione di uno strumento com-

pleto e agevole all’uso per l’analisi di linkage, che non solo recuperi auto-maticamente i dati per la creazione dei file dei marcatori, ma anche possaeseguire i due software maggiormente usati per l’analisi di concatenazionegenica con implementato l’approccio multiallelico.

La trattazione inizia con un capitolo di definizioni genetiche, per poteravere gli strumenti essenziali ad una completa comprensione del dominioapplicativo. Il successivo capitolo 3 descrive lo stato dell’arte del problemadel linkage, in cui si analizzano gli algoritmi esistenti per solvere il calcolomatematico, con i rispettivi limiti computazionali e implementazioni rea-lizzate. Nel capitolo 4 viene progettata la soluzione applicativa, e quindi sidescrivera il programma creato con i singoli moduli che ricoprono i differentiaspetti del problema, dal data retrieval all’esecuzione dei software. Il capi-tolo 5 e dedicato interamente all’implementazione, e dettagliera ogni partedei moduli, sia come logica interna che come strutture dati e codifica. Altermine dell’implementazione, come si richiede ad ogni processo di creazionesoftware, saranno descritti nella sezione 6 i test eseguiti e la conseguente va-lidazione da parte dei biologi sul programma creato. Infine il capitolo 7 sulleconclusioni sintetizzera il lavoro svolto, prospettando le future necessita edestensioni ancora realizzabili.

1Il termine multiallelica indica la possibilita di processare ogni marcatore per piu delnumero limite di alleli, vincolo di SLink.

Page 11: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

Capitolo 2

Genetica e Analisi di Linkage

In questo capitolo si introducono i concetti fondamentali per la comprensionedel problema, con particolare riguardo per l’ambito di maggiore interesse,l’analisi di linkage. L’intenzione di questa sezione quindi non e di presentarein modo esaustivo tutti gli argomenti sulla genetica e biologia, per i quali sirimanda ai testi specifici, ma richiamare i fondamenti di biologia cellularee genetica necessari per la comprensione del dominio applicativo, a cui visaranno dei riferimenti.

2.1 Concetti e strumenti di base

Per prima cosa parleremo della struttura del DNA e delle funzioni che ri-copre, per arrivare poi all’analisi del DNA e alla citogenetica, introduzio-ne che ci avviera verso la meiosi e da qui verso la concatenazione genicanell’ereditarieta.

2.1.1 DNA (acido desossiribonucleico)

Il DNA e il veicolo per l’immagazzinamento e la trasmissione dell’informa-zione genetica, codificata nella sequenza lineare dei nucleotidi.

I nucleotidi sono composti da una parte costante, costituita da un grup-po fosforico e da un desossiribosio (zucchero a cinque atomi di carbonio, opentoso), e da una parte variabile (base azotata). Le basi azotate si distin-guono in purine (adenina A, e guanina G) e pirimidine (citosina C, e timinaT).

Il DNA e localizzato nel nucleo delle cellule eucariotiche ed e organizzatoin forma compatta in strutture complesse dette cromosomi (figura 2.1).

Il DNA e necessario alla cellula per produrre le proteine. Le proteinesono le molecole piu abbondanti negli organismi, e con la maggiore etero-geneita funzionale e strutturale; sono polimeri di aminoacidi organizzati incatene polipeptidiche: ciascun tipo di proteina viene sintetizzata mediante

Page 12: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

2.1 Concetti e strumenti di base 6

Figura 2.1: La struttura del DNA, dalla cellula agli acidi nucleici.

una combinazione unica di residui monomerici presenti nella cellula chia-mati aminoacidi. Utilizzando 20 aminoacidi e possibile sintetizzare tutte leproteine necessarie per le funzioni vitali degli organismi viventi. Nella se-quenza di basi del DNA e codificata la sequenza di aminoacidi che forma ilpolipeptide, ove una tripletta di basi identifica uno specifico aminoacido.

La sequenza lineare di basi azotate del DNA contiene quindi l’informa-zione per costruire le proteine. Tale sequenza e nota come gene: il gene el’unita fondamentale, fisica e funzionale, dell’informazione genetica.

L’espressione dell’informazione genetica codificata nel DNA avviene indue stadi: la trascrizione e la traduzione. Nella trascrizione il filamentodi DNA fa da stampo per produrre mRNA che viene poi opportunamentemodificato. Nella traduzione l’mRNA detta la sintesi delle proteine.

La salvaguardia del materiale genetico richiede meccanismi estremamen-te precisi sia di duplicazione che di riparazione. Nonostante cio possono av-venire nel DNA di una cellula delle variazioni casuali della normale sequenzanucleotidica (mutazioni). Le malattie genetiche sono causate da mutazionidel genoma. Il genoma e l’insieme del DNA di un individuo appartenentead una determinata specie.

Le mutazioni germinali si verificano durante le meiosi (ovvero la produ-zione dei gameti, o cellule sessuali) e possono essere trasmesse alla prole. Lemutazioni somatiche si verificano durante la mitosi (replicazione del DNAe della cellula) e portano per esempio ai tumori. Uno schema delle possibili

Page 13: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

2.1 Concetti e strumenti di base 7

mutazioni riscontrabili viene presentato in appendice, A. Per queste caratte-ristiche le mutazioni sono il nostro primo motivo di indagine per le malattieda analizzare.

2.1.2 Citologia e Citogenetica

Tutti gli esseri viventi sono organismi dotati di un corredo genetico orga-nizzato in cromosomi, quindi tutto il patrimonio informativo e situato neicromosomi. Questi ultimi vengono ordinati in coppie (cosa che ci carat-terizza come organismi diploidi) di cromosomi omologhi in base alle lorocaratteristiche; tale classificazione definisce il cariotipo, ovvero il corredocromosomico di un organismo. I cromatidi sono le due sotto unita di cui so-no costituiti i cromosomi, e sono costituiti da due filamenti identici di DNAuniti in un punto detto centromero posto a meta dei filamenti.

Il cariotipo umano e formato da 22 coppie di autosomi, i cromosomi nonsessuali, e da una coppia di cromosomi sessuali, XX per la femmina e XYper il maschio.

Un carattere ereditario (mendeliano o monofattoriale) e definito da unsegmento di DNA codificante chiamato gene. In ciascun cromosoma i genihanno un ordine preciso e ciascun gene occupa una posizione specifica dettalocus. Le forme alternative di un gene si definiscono alleli; in un individuoi due alleli occupano sui cromosomi omologhi lo stesso locus. Quando adun dato locus esistono piu forme alternative di un gene, quindi alleli, equeste forme hanno una frequenza considerevole in una popolazione, il locuse definito polimorfico: infatti gli alleli si originano per mutazione di ungene, e il polimorfismo si stabilisce quando l’allele mutato si conserva e sitrasmette nelle generazioni. Nella figura 2.2 si osserva un cariotipo umano, enella figura di destra su un cromosoma la presenza di due forme alternativedi un gene allo stesso locus, nominate A ed a.

Se ad un certo locus polimorfico un individuo possiede due alleli iden-tici ereditati rispettivamente uno dal padre e uno dalla madre, si dice cheper quel locus e omozigote; se invece possiede due alleli diversi si chiamaeterozigote per quel locus.

Si definisce genotipo l’insieme degli alleli presenti ai diversi loci nelgenoma di un individuo.

La proteina, nella sua struttura specifica (primaria o lineare, secondariao doppia elica, terziaria o tridimensionale, e infine quaternaria) acquisisceuna funzione specifica, arrivando a manifestare nel fenotipo l’informazionebiologica codificata nel gene. Il fenotipo e il risultato dell’interazione deigeni tra loro e l’ambiente, infatti le caratteristiche esteriori che un individuoesplicita nel fenotipo sono variabili (grazie anche all’intervento dell’azionedell’ambiente) sebbene dipendenti da una codifica specifica, il genotipo, chee immutabile.

La divisione nelle cellule somatiche, mitosi, garantisce l’esatta trasmissio-

Page 14: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

2.1 Concetti e strumenti di base 8

Figura 2.2: Un cariotipo, ed un esempio di polimorfismo.

ne del patrimonio genetico nelle cellule figlie. Negli organismi sessualmentematuri avviene anche la meiosi, un processo di divisione cellulare riduzio-nale che da origine ai gameti, spermatozoi o ovuli, caratterizzati dall’avereun patrimonio genetico aploide. Dall’unione alla fecondazione del gametemaschile e femminile si forma lo zigote, che torna ad avere un patrimoniogenetico diploide (meta materno e meta paterno). Seguiranno cicli di divisio-ne cellulare mitotica fino alla formazione dell’individuo; tutte le sue cellulesaranno percio geneticamente identiche, e le diverse forme e funzioni cheesse acquisiranno deriveranno esclusivamente dall’accensione o spegnimentodei geni opportuni.

La meiosi consente un notevole rimescolamento dei cromosomi, infattidividendo a meta il corredo cromosomico e improbabile che tutti i cromo-somi di origine materna finiscano nello stesso gamete. Al fine di megliocomprendere le dinamiche di meiosi appena esposte, si rimanda all’appen-dice relativa A, in cui vengono presentate immagini di meiosi maschile efemminile durante tutte le loro fasi.

Un evento importante che avviene durante la meiosi e la ridistribuzionedel patrimonio genetico tra cromosomi omologhi attraverso il crossing over,ovvero lo scambio fisico dei segmenti tra i cromatidi non fratelli dei cromo-somi omologhi, che permette la ricombinazione del patrimonio genetico. Leregioni in cui si verificano tali eventi si chiamano chiasmi.

Infatti presi due loci e due alleli, come per esempio quelli in figura 2.3,

Page 15: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

2.1 Concetti e strumenti di base 9

Figura 2.3: Esempio di crossing over, con configurazione coupling erepulsion.

tramite il fenomeno del crossing over, si possono ottenere quattro tipi digameti diversi. In particolare si possono distinguere due tipologie di crossingover: in cis, o coupling, se gli alleli sono sullo stesso cromosoma omologo,mentre in trans, o repulsion, se provengono da diversi cromosomi. A secondadel gamete che il figlio eredita si parlera di ricombinazione o meno: se ilgamete del figlio ha la stessa composizione di quelli parentali allora non si eavuta la ricombinazione, altrimenti sı.

Chiamando θ la frazione di ricombinazione, per calcolare θ, sapendo ingenerale che θ non puo superare il valore di 0, 5, basta osservare l’albero ge-nealogico e calcolare nella prole quante volte si e verificata la ricombinazionesul numero totale di figli, ponendo

θ =numero gameti ricombinanti

numero gameti trasmessi

Il motivo per cui θ non puo superare la soglia del 50% si chiarisce inquesto modo: dato che ogni evento di crossing over coinvolge due cromatididei quattro presenti a questo stadio, ne risulta una frequenza massima diricombinazione non superiore al 50%, e percio θ non potra mai superare ilvalore di 0, 5. I gameti non ricombinanti vengono anche chiamati parentali.La figura 2.3 (lato destro) mostra proprio il perche non si possano averepercentuali superiori al 50: partendo da quattro cromatidi solo due di questisi riconbineranno.

Chiamando carattere una qualsiasi caratteristica di un organismo rileva-bile, se un carattere e controllato da alleli ad un singolo gene, quest’ultimoe chiamato monofattoriale (o mendeliano).

Per determinare il fenotipo che fara seguito a un dato genotipo occorre

Page 16: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

2.2 Formalismo negli alberi genealogici 10

tenere conto della dominanza degli alleli. Un allele dominante si manifestasia negli individui omozigoti che in quelli eterozigoti: e sufficiente posse-derne una sola copia per esprimerlo. Un allele recessivo si manifesta solonegli individui omozigoti per l’allele in questione. In alcuni casi, gli etero-zigoti manifestano fenotipicamente entrambi gli alleli che possiedono: nonaccade, come di solito, che uno (quello dominante) “copra” l’espressione del-l’altro (quello recessivo) ma le due espressioni coesistono dando origine a unfenotipo “misto”. In questi casi di parla di codominanza.

Quando la malattia si verifica in tarda o media eta viene chiamata aesordio tardivo. Se una malattia era destinata a manifestarsi e non si ma-nifesta si dice che e avvenuto un difetto di penetranza. Il genotipo e malatoma l’individuo e sano. Questo e un caso che avviene quando delle malattiehanno espressivita variabile, ovvero quando la malattia si manifesta con varigradi di gravita in presenza di uno stesso genotipo.

Il termine penetranza si riferisce all’espressione o meno di un fenotipo:in presenza di un determinato genotipo e completa (100%) se il fenotiposi esprime ogni volta che il gene e presente, mentre e incompleta o ridottaquando il fenotipo non puo esprimersi nei portatori del gene.

Nella eredita autosomica dominante il carattere e indipendente dal ses-so, e trasmesso alle generazioni successive in entrambi i sessi, ogni personaaffetta ha almeno un genitore affetto, circa il 50% dei figli di un genitoreaffetto e affetta, e la malattia e presente in tutte le generazioni.

Nell’eredita autosomica recessiva il carattere e indipendente dal sesso, ese i genitori sono eterozigoti sani i figli sono omozigoti sani, eterozigoti sanio affetti con frequenza rispettivamente del 25%, 50% e 25%; se il caratteree raro vi puo essere consanguineita dei genitori degli individui affetti.

Nei casi di studio che verranno analizzati dal laboratorio e quindi testatidall’applicazione creata sara presa in considerazione una famiglia affetta damalattia autosomica dominante.

2.2 Formalismo negli alberi genealogici

Gli alberi genealogici vengono schematizzati con un formalismo preciso, chepossa tener conto di tutte le possibili combinazioni e varianti geniche. L’o-biettivo infatti e quello di massimizzare la facilita di rappresentazione peruna migliore comprensione della famiglia in esame. Nella figura 2.4 sonostati raccolti i principali simboli utilizzati negli alberi che tratteremo.

2.3 La concatenazione genica

Geni localizzati su cromosomi diversi vengono trasmessi indipendentemente.Questo pero non accade per i geni localizzati in loci vicini sullo stesso cro-mosoma: la ricombinazione, fenomeno che accade durante la prima divisione

Page 17: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

2.3 La concatenazione genica 11

Figura 2.4: Simboli adottati per gli alberi genealogici.

meiotica, separera raramente due loci vicini perche solo un crossing-over lo-calizzato esattamente nel piccolo spazio che li separa creera ricombinanti.Da cio gruppi di alleli su uno stesso segmento cromosomico tendono ad es-sere trasmessi in blocco lungo le generazioni in un albero genealogico; taleblocco viene chiamato aplotipo. L’interesse nello studio degli aplotipi e datodalla caratteristica di estensibilita a popolazioni: se non vengono riassortitidalla ricombinazione gli aplotipi possono essere usati per il mappaggio comealleli a singolo locus altamente polimorfico.

Il mappaggio genico diventa uno strumento essenziale di studio. Orache il genoma e stato completamente sequenziato1, si ha una misurazionebasata sulla distanza fisica dei geni, ovvero in una misura di paia di basi,ed e una misura esatta. Fino a poco tempo fa invece si partiva propriodalla frazione di ricombinazione per creare l’unita di misura del mappaggio,che e una distanza genetica, corrispondente alla distanza tra due loci: inparticolare si utilizzava come unita il centiMorgan (cM), per cui l’1% diricombinazione (θ = 0, 01) equivale a 1 centiMorgan; questa e quindi unamisurazione approssimata, infatti si assume che 1 cM equivale mediamentea 1× 106 nucleotidi; si pensi che l’intero genoma umano ha una dimensionedi circa 3000 cM. Un’unita di mappa corrisponde ad un tratto di cromosomanel quale in media si verifica un crossing over ogni 50 meiosi, generando due

1Grazie al Progetto Genoma, iniziato nel 1988 e conclusosi nel febbraio 2001, creandodatabase liberi, consultabili via Internet.

Page 18: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

2.3 La concatenazione genica 12

gameti ricombinanti su 200. Le principali differenze tra la distanza fisica egenetica sono enumerabili come segue:

• la distanza genetica tra due punti localizzati alla stessa distanza fisicanon e esattamente la stessa in tutto il genoma, e differisce leggermenteanche tra soggetti di diverso sesso;

• la relazione tra frazione di ricombinazione θ e distanza effettiva dimappa non e lineare: tanto e maggiore la distanza fisica tra loci tantoe maggiore la discrepanza, poiche possono verificarsi doppi eventi diricombinazione che ristabiliscono la configurazione originale.

Grazie all’analisi di concatenazione genica, detta linkage, su diversi locisi riesce a determinare piu efficientemente la posizione dei crossing-over, equindi l’ordine dei geni e le distanze tra loci.

Per ridurre la discrepanza tra la distanza genica e quella fisica si ricorreall’utilizzo di un gran numero di loci marcatori.

La relazione matematica tra frazione di ricombinazione e distanza dimappa viene descritta attraverso la funzione di mappa. Le due funzioni dimappa piu utilizzate sono [13]:

• funzione di Haldane: se i crossing over si verificano casualmente esenza influenzarsi reciprocamente;

• funzione di Kosambi: tiene conto delle interferenze tra i crossing-over,poiche la presenza del primo di questi ne impedisce la formazione diun altro.

Il mappaggio genico nell’uomo sfrutta i marcatori genici, che sono se-quenze nucleotidiche note, facilmente rintracciabili.

L’obiettivo dell’analisi di linkage e quindi quello di misurare la tendenzadi un marcatore genetico e della malattia ad essere ereditati tra le generazio-ni, e quindi trovare quante volte negli individui affetti della stessa famigliavenga ereditato lo stesso allele riferito ad uno o piu marcatori, partendodall’osservazione che nella famiglia si siano prodotti solo due tipi di gametianziche quattro equiprobabili da esaminare con la fase degli alleli ai due loci.

I marcatori polimorfici piu usati sono i VNTR (variable number of tan-dem repeats), che sono detti microsatelliti quando l’unita ripetuta e lungada due a quattro paia di basi (bp).

L’analisi dei marcatori polimorfici si puo facilmente eseguire in labora-torio: una volta ottenuto il DNA si procede ad un’amplificazione del fram-mento scelto mediante PCR (polymerase chain reaction), seguita da unaseparazione su gel di acrilammide o mediante metodiche automatizzate susequenziatore.

Al fine di una corretta correlazione c’e bisogno di meiosi informative, chesi ottengono quando si puo identificare se il gamete e ricombinante o meno,e quando si riesce a tracciare il percorso di eredita con certezza.

Page 19: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

2.3 La concatenazione genica 13

Tale analisi permette di riconoscere a livello del gene i polimorfismi, ov-vero varianti geniche tra individui della stessa specie consistenti in differenzepiu o meno ampie della sequenza nucleotidica.

Sintetizzando quelle che sono le migliori condizioni e le caratteristicheper la “informativita” negli individui, si puo asserire che:

• per avere informazioni su quali alleli in ogni locus sono stati trasmessida genitori a figli bisogna poter distinguere gli alleli uno dall’altro,da cio sara maggiormente informativa la segregazione eterozigote aidue loci purche si riesca a distinguere quali siano gli alleli dell’altrogenitore;

• i caratteri allelici codominanti sono maggiormente informativi di quellidominanti-recessivi perche permettono di identificare gli eterozigoti;tipici loci di questo tipo sono i VNTR e i microsatelliti, di cui faremouso come marcatori poiche costituiti da ripetizioni fissate di sequenzedi nucleotidiche differenti per ogni microsatellite;

• percio un locus e tanto piu informativo quanto maggiore e la probabi-lita di trovare individui eterozigoti a quel locus;

• e piu probabile che siano informativi loci con molti alleli che non consolo due poiche cresce la probabilita che i genitori siano eterozigoti peri loci considerati, e che siano diversi tra madre e padre.

Dopo aver raccolto famiglie in cui segrega una patologia mendeliana edaverle tipizzate con un marcatore informativo, come si fa a sapere se si etrovato un linkage? Questa domanda potrebbe essere formulata come: qualetest statistico bisogna usare per verificare se la frazione di ricombinazionesia significativamente diversa da 0, 5, che e il valore atteso nell’ipotesi diassenza di linkage?

Nella figura 2.5 si puo osservare un esempio di segregazione agli alleli A,a e B, b. Dal genitore eterozigote possono essere prodotti quattro gametidifferenti, con equiprobabilita (ipotesi di indipendenza alla segregazione),generando quindi (A,B) (a,b) (A,b) (a,B). In assenza di ricombinazione siotterrebbero degli accoppiamenti sui cromosomi (coupling) omologhi ai ge-nitori (cis-coupling); a contrario se si avessero ricombinazione vedrei accop-piamenti incrociati (trans-coupling). Si noti che se la fase degli alleli a dueloci avesse identificato una segregazione (non ricombinante) con solo due tipidi gameti, si sarebbe potuto supporre l’ipotesi di concatenamento (linkage);la figura 2.6 presenta esattamente questa situazione, in cui la ricombinazionenon e indipendente (avrei dovuto avere 25% di probabilita) ma si presenta-no solo due conformazioni di gameti nei figli (quindi 50% di probabilita perogni gamete).

Per esemplificare i procedimenti da utilizzare nelle analisi, mostriamouna famiglia secondo la formalizzazione grafica ad albero genealogico (fi-

Page 20: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

2.3 La concatenazione genica 14

Figura 2.5: Combinazioni genichericombinanti e non.

Figura 2.6: Combinazioni genichesenza ricombinazione.

Figura 2.7: Famiglia con malattiaautosomica dominante.

Figura 2.8: Studio fase ai due locidella famiglia.

gura 2.7); la famiglia e affetta da una malattia autosomica dominante conespressione variabile agli alleli (S,s) e (D,d), in cui il locus “s” manifestail fenotipo secretore mentre “d” manifesta fenotipo malattia; dato questoschema, sapendo che la famiglia e informativa (quindi il padre e omozigoterecessivo e la madre eterozigote dominante), si deduce che il padre potratrasmettere solo (s,d), mentre la madre e (S,s) (D,d), ove la lettera in ma-iuscolo e la malattia. Eseguendo la fase degli alleli ai due loci si ricava chei figli avranno le caratteristiche visibili nella figura 2.8.

Se i due loci fossero localizzati su cromosomi diversi (ipotesi di indi-pendenza), la madre potrebbe produrre quattro tipi di gameti diversi equi-probabili, ma in questo caso si riscontrano solo due tipi di gameti, nonricombinanti, e cio induce all’ipotesi di concatenazione dei loci e che la fasedegli alleli ai due loci nella madre sia (S,D) e (s,d).

Nell’ipotesi che i due loci siano strettamente correlati ci attendiamo chela madre produca il 50% di gameti (s,d) e il 50% (S,D), e quindi la probabilitadi trasmettere a quattro figli il gamete (S,D) e (1/2)4 × (1/2)2 = 1/32;

Page 21: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

2.3 La concatenazione genica 15

Figura 2.9: Studio fase ai due loci della famiglia con ricombinazione.

nell’ipotesi di indipendenza avrei il 25% di probabilita di generare lo stessogamete, quindi la probabilita di trasmeterlo e (1/4)4 × (1/4)2 = 1/1024,ovvero 32 volte inferiore alla concatenazione.

Se ipotizzassimo ora che il sesto figlio (da sinistra) abbia fenotipo secre-tore ma sia sano, si avrebbe una caratteristica (S,d), quindi ricombinante.L’ipotesi di concatenamento vale ancora: la frazione di ricombinazione sa-rebbe quindi θ = 1/6 = 0, 17. In base ai dati in nostro possesso, avendo solouna generazione e sapendo che la fase degli alleli ai due loci nella madre estata dedotta dalla segregazione nei figli, si potrebbe anche supporre il dualedi quanto finora pensato: ci siano cinque figli ricombinanti e solo uno ereditila configurazione parentale (che sarebbe percio (s,D) e (S,d)), e la figura 2.9schematizza tale combinazione genica. Per riuscire a scegliere quale sia lacombinazione piu probabile si calcolano le probabilita di ricombinazioni:

(1 − θ)5 × θ = 0, 0669 con la prima ipotesiθ5 × (1 − θ) = 0, 0001 con la seconda ipotesi.

Considerando θ = 1/6 = 0, 17 i valori sono quelli riportati, e quindi lascelta ricade sulla prima ipotesi.

La significativita statistica delle osservazioni di concatenazione ad unacerta distanza di ricombinazione variabile tra θ = 0 e θ = 0, 5 viene valutatatramite un test statistico chiamato lod score (ove lod sta per “logarithm ofodds”).

2.3.1 Likelihood e l’analisi del Lod Score

Riassumiamo brevemente i concetti applicati alla genetica di verosimiglianzae lod score [8]. La verosimiglianza (“likelihood”) e il lod score sono misuredella plausibilita dei dati osservati (sostanzialmente differiscono per la scala,il lod score e in scala logaritmica). Il loro valore dipende dai valori assuntidi θ, e ove e massimo si ottiene la massima stima (maximum likelihoodestimate MLE); empiricamente il valore maggiore tende ad incrementarecon l’aggiunta di famiglie.

Page 22: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

2.3 La concatenazione genica 16

Per spiegare un particolare fenomeno naturale gli scienziati creano unmodello del fenomeno, alternativamente definito come ipotesi, che riesca aprendere in considerazione la maggior parte delle informazioni note. Leipotesi devono essere verificate sulla base di osservazioni: piu i dati sonoconcordi con le ipotesi e maggiore e la veridicita del modello (attinenzamodellistica alla realta). Il problema diventa ora come stimare la correttezzadi ipotesi concorrenti, e capire se i dati risultano piu inclini ad una ipotesipiuttosto che ad altre formulate. Per risolvere tale questione si ricorre aduna misura statistica, ovvero la verosimiglianza (likelihood), Fisher (1970)e Edwards (1992). La verosimiglianza di un’ipotesi H date le osservazioniF e definita come la probabilita con cui le osservazioni ricorrono L(H) =P (F ; H), in funzione della specifica ipotesi. La differenza sostanziale traverosimiglianza e probabilita e che la prima e una funzione di un parametro(costante spesso sconosciuta nei modelli genetici come vedremo), mentre laseconda e una funzione di un evento.

Comparando le ipotesi, il valore assoluto delle rispettive verosimiglianzenon e molto significativo, e quindi si rapporta a costanti adatte; da cio pro-viene l’utilizzo dell’odds2 come quantita di propensione verso una ipotesi H1

contro un altra H2, ovvero il rapporto di verosimiglianza R = L(H1)/L(H2).Il logaritmo naturale della verosimiglianza S(H) = ln(L(H)) e chiamatosupporto per l’ipotesi H.

Nell’analisi di linkage (per esempio a due loci) le due ipotesi di base sonoH0 (assenza di ricombinazione) e H1 (concatenamento genico, o linkage);queste differiscono, come detto precedentemente, dai valori assunti da θ:per H0 si ha θ = 0, 5, mentre per H1 si ha θ ≤ 0, 5. Convenzionalmente illogaritmo decimale del rapporto di verosimiglianza e chiamato lod score, ede usato come misura del supporto per la presenza di linkage contro la suaassenza, ed e espresso nella formula 2.1:

Z(θ) = log10

L(θ)L(1/2)

. (2.1)

Molti modelli, le nostre ipotesi, contengono variabili (i parametri del mo-delli), i cui valori spesso sono ignoti e devono essere stimati sulla base delleosservazioni: per questa ragione le variabili vengono associate statisticamen-te alle variabili aleatorie, e percio ogni funzione di variabili aleatorie che nondipende da valori ignoti e chiamata statistica. Gli stimatori sono funzioni diosservazioni costruite per stimare tali valori ignoti. Un metodo generico distima dei parametri e la stima di massima verosimiglianza (MLE), Fisher(1922). Preso un supporto quindi, S(H = q) = ln(L(q), il valore di q chemassimizza la funzione e la MLE q di q, e analiticamente si trova tramite

2Letteralmente “quota, rapporto” diverso da ratio, ma si considera migliore una defi-nizione astratta come “quota a favore”, data l’idea di base rappresentata come rapportoprobabilistico p/(1 − p) del vantaggio di una ipotesi rispetto al suo complemento.

Page 23: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

2.3 La concatenazione genica 17

la derivata prima dS/dq, ove questa si annulla, dS/dq = 0. Nell’analisi dilinkage la verosimiglianza non puo essere massimizzata analiticamente, male varie MLE devono essere trovate numericamente variando i valori dei pa-rametri di interesse, e ricalcolare la verosimiglianza per molti valori finchenon si trova un valore MLE approssimato.

Tra le proprieta della MLE si riprende in considerazione una, la distor-sione. Spesso le stime sono distorte, quindi se il campione viene ripetutosugli stessi tipi di dati, la MLE puo assumere diversi valori. Per esempioconsiderando una frazione di ricombinazione θ = k/n (k: numero di ri-combinanti; n − k: non ricombinanti), la stima puo assumere diversi valori(0/n; 1/n; ...), e la probabilita che si verifichi uno di tali valori e data dalmodello binomiale

(nk

)θk(1− θ)n−k. Con θi l’i-esimo esito di una particolare

MLE di θ, e pi la probabilita che si verifichi, allora la media pesata

E(θ) =∑

piθi (2.2)

e il valore atteso dello stimatore θ; se il valore di 2.2 e uguale al vero para-metro di θ, allora θ e uno stimatore non distorto. La distorsione di θ vienecalcolata come: b(θ) = E(θ)−θ. In generale nell’analisi di linkage non vieneconsiderata la distorsione, ne la sua riduzione; e comunque utile sapere chetale caratteristica si puo valutare.

Considerando un pedigree di dimensione m, sia xi il fenotipo dell’i-esimo membro della famiglia con fenotipo x ad un locus o a multipli loci.Da qui la verosimiglianza, essendo la probabilita delle osservazioni, e L =P (x1, x2, ..., xm). Nella statistica classica le osservazioni sono di solito mu-tuamente indipendenti e quindi la precedente formula diventa L =

∏P (xi).

I dati in una famiglia invece non sono indipendenti e quindi una semplicerappresentazione della verosimiglianza non e possibile. Nella maggior partedei casi pero tali informazioni sono condizionatamente indipendenti dati igenotipi, arrivando a stendere la formula P (x1, x2, ..., xm | g1, g2, ..., gm) =∏

P (xi | gi), che intrinsecamente significa che in ogni individuo il fenotipodipende dal suo genotipo. Da cio la verosimiglianza non condizionata puoessere scritta come:

L = P (x) =∑

g

P (x, g) =∑

g

P (x | g) · P (g) (2.3)

ove x = (x1, x2, ..., xm) e l’array dei fenotipi mentre g = (g1, g2, ..., gm) el’array dei genotipi, e la sommatoria tiene conto di tutti gli insiemi degliassegnamenti di genotipi ai membri della famiglia, la cui somma potrebbeessere grande. Infatti per soli due alleli per ciascuno dei due loci si pre-sentano quattro aplotipi, H = 4, e quindi ogni individuo ha H · (H + 1)/2potenziali genotipi. Considerando una famiglia costituita da m persone, simaterializzano 10m differenti insiemi di array di genotipi. Si noti che nontutti questi insiemi di genotipi devono essere considerati, poiche per esempio

Page 24: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

2.3 La concatenazione genica 18

alcuni di essi potrebbero essere incompatibili con le leggi mendeliane. Que-sta rappresentazione di verosimiglianza nei pedigree e stata portata avantiper prima da Elston e Stewart nel 1971, producendo un algoritmo chiamatoappunto Elston-Stewart algorithm, che verra presentato successivamente.

In sintesi il linkage si riassume cosı:

1. e un metodo per mappare la predisposizione genetica alle malattienelle famiglie, percio

2. identifica la posizione del locus malattia nel genoma;

3. la segregazione del locus malattia e del locus del marcatore geneticoe statisticamente testato tramite (1) stima della frazione di ricombi-nazione, cioe distanza genetica tra locus malattia e marcatore, e (2)metodi di massima verosimiglianza L(θ) = P (dati|θ).

Page 25: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

Capitolo 3

Stato dell’arte sull’analisi dilinkage

In questo capitolo verra presentato lo stato dell’arte sul problema dell’analisidi linkage, partendo dalla identificazione del problema dal punto di vistacomputazionale, passando attraverso gli algoritmi di calcolo esatto e loroimplementazioni, fino ad arrivare ai test effettuati sui software esistenti.

3.1 Il problema del linkage

L’analisi standard del lod score viene definita “parametrica” perche richiedeun preciso modello genetico, in cui si dettagliano le modalita di eredita, lefrequenze geniche e la penetranza di ciascun genotipo. In questo modo se sihanno modelli attendibili, l’analisi di linkage parametrica risulta un meto-do estremamente potente per sondare il genoma. Riuscire a specificare unmodello adeguato per i caratteri mendeliani non e particolarmente comples-so; mentre per le condizioni non mendeliane si presentano molti problemi,tra cui stabilire criteri diagnostici, effettuare l’analisi della segregazione (peridentificare le modalita ereditarie, le frequenze geniche e le penetranze piuprobabili), e utilizzare criteri estendibili a piu famiglie. In questo contestosi utilizza l’analisi di linkage “non parametrica”, ovvero ignorando l’analisidelle persone non affette ma concentrandosi sulla ricerca di alleli o segmenticromosomici comuni agli individui affetti. Tale approccio viene utilizzatonon solo per la singola famiglia, ma esteso anche a piu famiglie fino adarrivare agli studi sulle popolazioni.

Nel nostro ambito verra preso in esame il modello parametrico perche siconcentreranno gli studi sulle malattie autosomiche dominanti in cui il cal-colo analizza una singola famiglia in base alla modalita di eredita, frequenzee penetranze dei genotipi.

Page 26: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

3.2 Analisi computazionale del problema del linkage 20

3.2 Analisi computazionale del problema del lin-kage

Il problema dell’analisi di linkage appartiene alla classe dei problemi NP-hard [9], quindi per definizione ha una complessita almeno pari alla classedei problemi NP-completi, ma potrebbe anche non appartenere all’insiemeNP1.

Una prerogativa della teoria computazione e verificare che i problemisiano trattabili oppure insolubili, e riuscire a classificare gli algoritmi in unmodo o nell’altro. In questo modo cerchiamo di risolvere un problema disoddisfacibilita, sapendo che ogni problema e riconducibile ad uno equivalen-te decisionale, e quindi di soddisfacibilita (teorema di Cook della riduzionepolinomiale a SAT). Definendo con P la classe dei problemi decisionali risol-vibili in tempo polinomiale da un algoritmo deterministico, NP la classe deiproblemi di decisione risolvibili in tempo polinomiale da un algoritmo nondeterministico, si afferma che P e incluso in NP; ma l’inclusione e strettao no? Ovvero, e possibile risolvere in maniera efficiente ogni problema de-cidibile? Se esiste un algoritmo deterministico che risolve il problema dellasoddisfacibilita in tempo polinomiale allora P = NP. Dal punto di vista teo-rico non esiste ancora un metodo per stabilire tale relazione. Esistono moltiproblemi ai quali si applica il teorema di Cook, perche sono tanto complessiquanto il problema della soddisfacibilita, e vengono chiamati NP-completi,in particolare sono quei quesiti ritenuti intrinsecamente difficili. Un proble-ma e detto NP-arduo (hard), se il problema della soddisfacibilita e riducibilead esso in tempo polinomiale; un problema e NP-completo se e NP-hard eappartiene ad NP.

La dimostrazione che il problema del linkage e NP-hard, data da Piccol-boni e Gusfield [9] parte dalla modellizzazione della struttura del pedigree inun grafo ove i nodi sono gli individui e gli archi le relazioni di parentela, e as-sociando ad ogni istanza del problema due variabili per nodo rappresentantiil genotipo (alleli) e il fenotipo: quest’ultima separazione trova necessita nelcaso in cui bisogna inferire ipotesi dal fenotipo al genotipo; come ultimoparametro si inserisce il modello ereditario. In generale i pedigree possonocontenere dei cicli (loops) creando grafi ciclici, a causa per esempio di matri-moni tra consanguinei, cosa che aumenta la complessita di calcolo, e che po-trebbe far diventare il problema non NP, quindi insolubile; la dimostrazioneportata avanti dagli autori pero non considera cicli tra consanguinei ma va-lida la dimostrazione sperimentale della solvibilita dei problemi con famigliesenza cicli. I due principali problemi computazionali riscontrati nell’analisi

1Si ricorda che NP indica la classe di tutti i problemi decisionali, che quindi termi-nano con una risposta affermativa o negativa dato che ogni problema di ottimizzazionepuo essere sempre ridotto in forma decisionale, risolvibili in tempo polinomiale da unamacchina sequenziale a stati finiti deterministica, come la RAM (in questo modo si sceglieun modello computazionale semplice e versatile che sfrutta registri e memoria finita).

Page 27: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

3.3 Algoritmi sul linkage 21

dei pedigree sono: il problema della probabilita marginale (marginal proba-bility), e la massima verosimiglianza (maximum likelihood). Per entrambii problemi la strategia ricorre alla riduzione al dominio di soddisfacibilitaSAT, per poi dimostrare la decidibilita.

Dimostrare che il problema del linkage appartiene alla classe NP-hard eimportante perche giustifica la difficolta intrinseca nel trovare un algoritmocompleto che risolva il calcolo in tempo polinomiale, e quindi assolve glialgoritmi esistenti che come vedremo hanno limitazioni computazionali epresentano vincoli nei parametri a cui sottostare.

3.3 Algoritmi sul linkage

Gli algoritmi che calcolano il linkage sono derivati dall’iniziale problemadel mappaggio genico in base alla frazione di ricombinazione, cosı da risalirealla posizione del locus malattia nel genoma rispetto al marcatore. In questaottica sono stati ideati i primi algoritmi, poi estesi all’analisi del linkage [1].

Un problema fondamentale con la ricostruzione di mappe di linkage ge-netiche negli uomini e che alcuni dati importanti spesso mancano. In questomodo i genetisti non possono semplicemente contare le ricombinazioni negliincroci proprio perche la mancanza di tutte le informazioni non permette dicapire senza ambiguita dove sono avvenute; le motivazioni possono essere:(1) i genitori sono spesso omozigoti, e quindi poco informativi, e (2) anchese i genitori fossero informativi sono spesso sconosciuti quali alleli nei locisono in ricombinazione cis o trans (per esempio se la fase e sconosciuta), e(3) il genotipo non e univocamente dedotto dal fenotipo.

Come accennato finora, tale problematica e stata affrontata tramite lateoria della verosimiglianza, e in particolare con il metodo della stima dellamassima verosimiglianza (MLE - maximum likelihood estimation): consi-derando tutte le possibilita per i dati mancanti, le mappe sono scelte inbase a quali massimizzano la probabilita che i dati osservati emergono. Unodei primi algoritmi che ha sviluppato tale teoria e stato quello di Elston eStewart del 1971, chiamato con il nome degli ideatori Elston-Stewart algori-thm, che da pioniere ha aperto la strada ai successivi approcci quali quelloproposto da Lander e Green nel 1986, Lander-Green algorithm, e ai metodiancora sperimentali delle reti Bayesiane. In questa parte della trattazionesaranno presi in esame tali algoritmi partendo dagli approcci tradizionali,cercando di presentarne una sintesi, e rimandando alla bibliografia una piuapprofondita analisi.

Esistono anche altri metodi algoritmici per il calcolo del lod-score, tracui quelli con le catene di Markov con risoluzione Monte Carlo, ma a diffe-renza di quelli che verranno proposti eseguono un’analisi di linkage stimatae non esatta; per questa caratteristica non saranno riportati, poiche nel no-

Page 28: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

3.3 Algoritmi sul linkage 22

stro studio stiamo cercando valori esatti di lod-score, ma si rimanda allabibliografia per approfondimenti.

3.3.1 L’approccio Expectation-Maximization (EM )

Il primo approccio studiato viene chiamato EM-algorithm (Expectation-Maximization algorithm), chiamato cosı dai due passi fondamentali che locompongono [34, 16].

Consideriamo i loci collocati in ordine nei cromosomi come M1,M2, ...Mm,e siano identificate come frazioni di ricombinazione tra loci adiacenti Mi,Mi+1

le variabili θi; il nostro obiettivo e trovare i valori di θ = (θ1, θ2, ..., θm−1)che massimizzano la possibilita dei dati rilevati; per semplicita si assume in-dipendenza di ricombinazione tra tutti gli intervalli cromosomici. La ricercadi θ richiede uno spazio multidimensionale, e la procedura iterativa deve mo-dificare i valori di θold iniziale con il θnew trovato in cui la verosimiglianza emaggiore.L’algoritmo EM si articola in queste fasi:

1. proponi un iniziale valore di θ, che sara il primo θold = (θ1, θ2, ..., θm−1);

2. passo Expectation: usando il valore θold come se fosse il vero valoredella frazione di ricombinazione, esegui il calcolo del valore atteso pertutti i dati (il numero atteso di meiosi ricombinanti e non ricombinantiper ciascun intervallo);

3. passo Maximization: esegui il calcolo della MLE (maximum likelihoodestimation) usando il valore precedentemente estratto, e trovando lanuova stima θnew della frazione di ricombinazione;

4. ripetere i passi Expectation e Maximization finche la verosimiglianzaconverge al massimo.

Il passo di terminazione dell’algoritmo EM trova fondamento negli studicondotti da Dempster [15] e Wu [17] sulla funzione di verosimiglianza, mo-notona crescente, deducendone un teorema che asserisce: stime consecutivedi θ generate dall’algoritmo EM incrementano il valore di verosimiglianza econvergono ad un punto θ� in cui la derivata della funzione di verosimiglianzae zero.

Nonostante tale considerazione, il tempo di convergenza e rapido ad av-vicinarsi nell’intorno del valore, ma e lento nel trovare la soluzione; percio siricorre all’approssimazione sopra un determinato numero di decimali, poichenelle applicazioni reali genetiche non si necessita di un’elevata accuratezza,arrivando a definire la seguente formula nel calcolo della derivata:

∂log L(θold)∂θi

=n(θnew

i − θoldi )

θi(1 − θi)(3.1)

Page 29: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

3.3 Algoritmi sul linkage 23

ove n e il numero totale delle meiosi nel pedigree.Sebbene si citi come algoritmo, l’EM in realta e solo un approccio, poiche

non esiste una specifica di procedura su come affrontare i passi di Expecta-tion e Maximization. Al contrario gli algoritmi che andremo a visitare adessosono espressi tramite procedure, e quindi non solo possono essere valutatiper la loro efficienza (in termini computazionali) ma hanno reso possibileuna reale implementazione.

3.3.2 L’algoritmo Elston-Stewart (ES)

La funzione di verosimiglianza in funzione di θ puo essere riscritta, dalla 2.3,come multipla somma (telescopica) di prodotti come segue:

L(θ) =∑G1

...∑Gn

n∏1

Pen(xi | gi)f∏1

Pop(gi)n∏

f+1

Trans(gi | gi,p, gi,m) (3.2)

ove n e la cardinalita del pedigree, numero di individui, f sono gli individuifondatori (ovvero le radici dei pedigree negli alberi genealogici), Pen e lapenetranza, Pop e Trans sono i parametri di popolazione e trasmissione ri-spettivamente, ovvero il primo si riferisce alla probabilita della combinazionedegli aplotipi-genotipi dei fondatori, mentre il secondo alla probabilita dellacombinazione aplotipi-genotipi della prole condizionata dalla combinazionedei genitori (p ed m per padre e madre), calcolata per tutti gli individuinon fondatori. Come si evince, dalla formula 2.3 alla formula 3.2 sono stateeffettuate delle sostituzioni, tra cui P (x | g) =

∏n1 Pen(xi | gi) ove la pe-

netranza e espressa per l’i-esimo individuo della famiglia. Si presentano nsomme e ciascuna e indicizzata su tutte le possibili combinazioni di genotipiordinati (ovvero con sorgente degli alleli, se da madre o padre, nota, quindia fase nota) G di un membro della famiglia.

Se ogni membro del pedigree ha G possibili genotipi, la famiglia ha Gn

possibili combinazioni di genotipi. Ogni genotipo e associato ad n pene-tranze ed n parametri di popolazione e trasmissione, quindi la procedurarichiede Gn · (2n − 1) moltiplicazioni seguite da Gn − 1 somme.

Esempio: se avessimo un marcatore con due alleli, detti A e B, i possibiligenotipi ordinati G sarebbero: G = 22 = 4; con un pedigree di 4 membri,i possibili genotipi ordinati sarebbero: G = (22)4 = 256; con due alleli neimarcatori il numero sarebbe: G = ((2 ·22)4) = 65536. Al variare del numerodi individui nel pedigree si ottiene una variazione piu bassa: con 5 individui eun marcatore avremmo: G = (22)5 = 1024 possibili genotipi; con 6 membri:G = (22)6 = 4096. La tabella 3.1 sintetizza tale crescite.

Questa e la particolare rappresentazione della verosimiglianza pubblicatada Elston e Stewart, che permette di calcolare le likelihood in modo telesco-pico per famiglie di grandi dimensioni, ma di struttura “semplice”, ove con

Page 30: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

3.3 Algoritmi sul linkage 24

ES Algo # loci marcatori1 2 3

# persone 4 ((2)2)4 ((2 · 2)2)4 ((2 · 2 · 2)2)4

5 ((2)2)5 ((2 · 2)2)5 ((2 · 2 · 2)2)5

6 ((2)2)6 ((2 · 2)2)6 ((2 · 2 · 2)2)6

Tabella 3.1: Esempio di calcolo con l’algoritmo ES.

tale aggettivo vengono denotati i pedigree senza cicli consanguinei (inbree-ding loops), ovvero matrimoni ed unioni feconde tra parenti; solo anni dopoCannings (1978) dimostro che il metodo poteva in teoria essere applicatoanche in pedigree complessi con cicli parentali [18].

Una caratteristica di questa rappresentazione e che il pedigree puo essereanalizzato separatamente per ogni nucleo familiare, quindi ogni due livelligenerazionali. In questo modo la funzione di verosimiglianza 3.2 diventa perun singolo nucleo familiare con K figli:

L(θ) =∑Gm

Pen(xm | gm)Pop(gm)∑Gp

Pen(xp | gp)Pop(gp) ·

·K∏

i=1

∑Gi

Pen(xi | gi)Trans(gi | gp, gm) (3.3)

L’importanza di tale proprieta risiede nel vantaggio computazione che nederiva: ora la procedura elabora l’aggiunta di individui all’interno dell’interoalbero in analisi in modo lineare e non piu esponenziale. Si noti che taleequazione 3.3 (e quindi 3.2) e una funzione di θ quindi il calcolo dovra essereripetuto per tutti i valori nell’intervallo 0 < θ ≤ 0, 5.

Si nota che tramite tale accorgimento si e potuti arrivare ad applicarel’algoritmo ES a pedigree ritenuti complessi, ovvero per esempio con legamifecondi tra consanguinei: infatti il trucco utilizzato [18] e stato quello diconsiderare gli individui di tali legami come piu individui, ovvero presentiin diversi nuclei familiari, come nell’esempio in figura 3.1 viene mostrato.

Come per l’approccio EM, anche in questo caso esistono delle combina-zioni di genotipi matematicamente possibili ma in relazione al dominio ap-plicativo genetico incompatibili; questo insieme ad altri miglioramenti “eu-ristici” (per esempio sui genotipi omozigoti) permette di diminuire l’insiemedelle combinazioni genotipiche da analizzare.

Mostriamo il metodo di elaborazione dell’algoritmo prendendo comeesempio di famiglia il pedigree nella figura 3.2. Il procedimento parte dall’ul-tima generazione, le foglie dell’albero, calcolando le probabilita condizionateper le persone (i genitori) nei singoli nuclei familiari, esempio operativo:

Page 31: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

3.3 Algoritmi sul linkage 25

Figura 3.1: I loop tra consanguinei (inbreeding loops) e soluzione diseparazione della persona in due nuclei familiari.

Figura 3.2: Un esempio di pedigree.

1. elabora il calcolo della probabilita condizionata per l’individuo II-2usando le persone III-1 III-2 e II-1;

2. esegui il calcolo per II-3 tramite III-3 e II-4;

3. esegui il calcolo per I-1 e I-2 usando i calcoli effettuati per II-2 e II-3;

4. esegui il calcolo della verosimiglianza per l’intero pedigree come lasomma delle likelihood dei singoli nuclei familiari.

Come si e visto il grande vantaggio di tale algoritmo e la possibilita dieseguire il calcolo della verosimiglianza attraverso pedigree di notevoli di-mensioni (costo computazionale che varia linearmente al variare del numerodi individui considerati); il difetto intrinseco e l’incapacita di processare lostesso calcolo con piu di un certo numero di loci di marcatori (costo com-putazionale con crescita esponenziale al crescere del numero di marcatori).Si nota che tale algoritmo e adatto all’analisi di linkage parametrica; perquella non parametrica (NPL) e piu adatto l’algoritmo Lander-Green.

Data sia l’importanza storica che avuto tale metodologia che il focusdella trattazione, e utile semplificare e sintetizzare i concetti esposti.

Page 32: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

3.3 Algoritmi sul linkage 26

Il problema. La verosimiglianza di un dato e la probabilita di un datoosservato, conosciuti i fenotipi e assegnati alcuni valori per l’inco-gnita frazione di ricombinazione; ciascuna persona ha un ordinatogenotipo multi-locus (quindi a piu alleli) xi = (x1, x2, · · ·xn), e unfenotipo multi-locus gi. Per un pedigree contenente m persone laverosimiglianza ha l’aspetto dell formula (2.3), che viene qui riportata:

L = P (x) =∑

g

P (x, g) =∑

g

P (x | g) · P (g)

dove x e g sono i vettori genotipo e fenotipo rispettivamente. Nellascrittura generica il problema esegue un calcolo probabilistico somman-do tutte le combinazioni di genotipi possibili per ogni individuo; talecomputo quindi ha un costo computazionale pari a O((2n)p)), dove p eil numero di individui nel pedigree, ed n in numero di loci marcatore;come si vede il costo computazionale ha un andamento esponenzialesia per il numero di persone che per il numero di loci marcatore.

La soluzione. L’algoritmo ES riesce ad eseguire una riduzione di variabili(peeling) in pedigree ricondotti a tipologie semplici (senza loops). Ilpeeling viene effettuato su quei genotipi che non sono realizzabili, eche quindi e inutile computare. Il modo piu semplice per sapere qualisono i genotipi reali e partire dall’ultima generazione, eseguendo aritroso il calcolo di ricostruzione allelica sui genitori; per realizzarecio si eseguono visite nell’albero per ordinare l’insieme di esplorazione,per poi eseguire il calcolo. Per chiarire il concetto dalle formule adun esempio di pedigree, dalla figura 3.3 si osserva che il calcolo dellaverosimiglianza senza logica ES e (3.4):

L(θ) =∑g1

∑g2

· · ·∑g7

h(g1)h(g2)h(g1, g2, g3)h(g1, g2, g4) ·

·h(g5)h(g4, g5, g6)h(g4, g5, g7) (3.4)

che diventa (3.5) grazie all’utilizzo dell’algoritmo ES:

L(θ) =∑g1

h(g1)∑g2

h(g2)∑g3

h(g1, g2, g3)∑g4

h(g1, g2, g4) ·

·∑g5

h(g5)∑g6

h(g4, g5, g6)∑g7

h(g4, g5, g7) (3.5)

in cui h(gi) = P (xi | gi)·P (gi), e h(gm, gp, gi) = P (xi | gi)·P (gi | gmgp)(i e l’i-esimo elemento considerato, m e p sono i genitori dell’i-esimoindividuo).

Page 33: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

3.3 Algoritmi sul linkage 27

Figura 3.3: Famiglia d’esempio per il calcolo della verosimiglianza conl’algoritmo ES.

In questo modo il costo computazionale si riduce notevolmente nelladimensione del numero di persone, perche il calcolo della ricostruzionegenotipica per ogni persona non viene eseguito su tutte le combinazionidi valori, ma solo su quelli reali.

L’ottimizzazione. Il completamento dell’algoritmo prevede la schematiz-zazione ulteriore del pedigree, scomponendolo in nuclei familiari, edottenendo diversi grafi su cui eseguire il calcolo della verosimiglianzacon meno variabili; infatti dato che ogni pedigree e schematizzabilein un numero abbastanza basso di nuclei familiari (solitamente nonsupera mai i cinque o sei gruppi) poiche e sempre possibile esegui-re ricorsivamente la riduzione delle persone nel pedigree in nuclei, inquesto modo il costo computazionale e praticamente indipendente dalnumero di persone, ma rimane legato intrinsecamente al numero di locimarcatore. Ecco perche si dice che l’algoritmo elabora in tempo linea-re la variabile del numero di persone del pedigree, mentre necessita diun tempo esponenziale per processare i loci marcatore, che rimane illimite intrinseco dell’algoritmo. Il costo computazionale finale diventaquindi O((2n)pc ∗ c), ove c identifica il nucleo familiare considerato, alcui interno ci sono pc elementi.

Dall’algoritmo ES e stato implementato SLink, che sara utilizzato perl’analisi di linkage all’interno di RightLinkS durante la fase di lancio deglieseguibili. Come vedremo nella sezione 3.4.1, SLink ha limiti negli alleli, el’obiettivo da raggiungere in fase di esecuzione con la metodologia propostae quello di trovare un modo per eseguire l’applicazione con piu del limite deisui alleli.

Page 34: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

3.3 Algoritmi sul linkage 28

3.3.3 L’algoritmo Lander-Green (LG)

Un algoritmo alternativo all’ES che si propone di analizzare molti marcatoriin una famiglia e stato avanzato da Lander e Green (1987) [44], e una del-le implementazioni esistenti, GeneHunter, verra sfruttata parallelamente adSLink nello strumento prodotto, RightLinkS, all’interno del modulo di ese-cuzione dei software di analisi di linkage. Per quanto riguarda GeneHunterin laboratorio non si sono verificati casi di limitazioni, quindi RightLinkSsi occupera solo del lancio dell’applicazione come contenitore e interfacciautente.

L’algoritmo Lander-Green (LG) utilizza un approccio basato su vettorieredita (inheritance vectors) che sintetizzano le informazioni ereditarie inuna specifica locazione genomica. Gli ideatori hanno mostrato che la pro-babilita di dati genotipici o fenotipici osservati puo essere calcolata per ognivettore eredita e che, in assenza di interferenze genetiche, tali vettori for-mano una catena di Markov lungo il cromosoma. Percio usando il modellodelle catene di Markov nascoste (Hidden Markov Model - HMM), sono ar-rivati ad un algoritmo per il calcolo della verosimiglianza di un pedigree lacui complessita cresce in maniera lineare con il numero di marcatori, ed eadatto ad un gran numero di marcatori; nonostante cio si presenta il limitespeculare rispetto all’algoritmo ES, ovvero computa un numero circoscrittodi individui all’interno della famiglia.

Dal punto di vista teorico la soluzione e simile all’approccio di analisi“sib pair”. Si considera un pedigree ove ci sono k non fondatori, ovvero tuttele persone con almeno un genitore nell’albero, per un locus Mi si definisceil vettore eredita vi come vettore binario di dimensione 2k di coordinatecorrispondenti ai 2k gameti. Una coordinata ha valore 0 se il gamete ederivato dal cromosoma paterno, altrimenti 1. In questo modo la possibilitaa priori che una specifica coordinata vi differisca dalla successiva vi+1 eproprio la frazione di ricombinazione θ. Da un altro punto di vista si puointerpretare tale modello come una catena di Markov: il vettore ereditav = v1, ...vm proviene da una catena di Markov disomogenea con matricidi transizioni note, T (θi). In particolare la transizione T (θi) tra il locusMi e Mi+1 e il prodotto di Kronecker di matrici 2 × 2 corrispondenti alletransizioni in ciascuno delle 2k coordinate; nell’appendice C.1 si mostra ladefinizione e un esempio del prodotto di Kronecker.

Il modello di Markov a stati “nascosti” rappresenta gli stati in modo nonesplicito a differenza del modello classico di Markov, quindi non sono esplici-tamente osservabili ma ogni stato e visto come la distribuzione di probabilitasulle possibili osservazioni date per quello stato. Il tempo corrisponde allaposizione del marcatore, sapendo che questi ultimi sono ordinati da sinistraa destra. Gli stati dunque sono modi di eredita, chiamati anche inheritan-ce pattern, espressi come vettori di bit per ogni marcatore; le osservazionisono sequenze di genotipi date per ogni marcatore. Attraverso tale interpre-

Page 35: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

3.3 Algoritmi sul linkage 29

Figura 3.4: Gli stati IBD formano una catena di Markov nascosta (HMM)lungo il cromosoma.

tazione delle catene di Markov applicate alla genetica e possibile sfruttareil modello statistico delle HMM e la sua teoria. La figura 3.4 mostra lamodellizzazione tramite catene di Markov nascoste degli stati (Identity ByDescent), in cui si hanno M marcatori, I vettori di eredita ed X genotipi.In questo approccio algoritmico la verosimiglianza acquista la forma dell’e-quazione seguente 3.6:

L =∑I1

. . .∑Im

m∏i=2

P (Ii | Ii−1)m∏

i=1

P (Xi | Ii) (3.6)

in cui m e il numero di marcatori ed I sono i vettori eredita.La probabilita che il dato fenotipo sia osservato al marcatore Mi e sem-

plice da calcolare dato ogni possibile valore del vettore vi. Considerandoqi come il vettore riga di queste probabilita, di coordinate indicizzate daipossibili valori di vi, applicando il teorema di Bayes (riportato in appendiceB.1 nel contesto genetico) con tutti i vettori eredita equamente probabili apriori, si puo calcolare la distribuzione di probabilita pi sui valori possibilivi condizionatamente al dato fenotipico Mi; anche pi e un vettore riga comeqi.

Come descritto dagli autori, per ricostruire il numero atteso di meiosiricombinanti in un dato intervallo si procede come segue:

1. (passi di ricostruzione genetica) calcola ricorsivamente la distribuzionedi probabilita condizionata sinistra pL

i per vi condizionato su tutti idati dei loci M1, ...,Mi; dato pL

i , qi+1, e T (θi), applica il teorema diBayes ottenendo pL

i+1 come:

pLi+1 =

[pLi T (θi)] ◦ [qi+1]

[pLi T (θi)] • [qi+1]

(3.7)

Page 36: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

3.3 Algoritmi sul linkage 30

ove ◦ indica il prodotto vettoriale mentre • quello scalare;

2. calcola la distribuzione di probabilita condizionata destra in modoanalogo alla sinistra;

3. definisci la matrice di transizione T �(θi) come segue: ponendo tvw comeil singolo valore della matrice di transizione T (θi) corrispondente allatransizione dal vettore eredita v a w, e ponendo d(v, w) il numero dicoordinate per il quale v e w differiscono, si definisce t�vw = d(v, w)tvw eT �(θi) = t�vw. Dal teorema di Bayes il numero atteso di ricombinazionitra Mi ed Mi+1 e:

[pLi T �(θi)] ◦ [pR

i+1][pL

i T �(θi)] • [pRi+1]

(3.8)

4. (passo di calcolo della verosimiglianza) sapendo che nell’equazione 3.8il denominatore e la verosimiglianza di i+1, ovvero Li+1 = [pL

i T (θi)]•[pR

i+1] e la probabilita condizionata per i dati al marcatore Mi+1, laverosimiglianza totale e:

L(θ1, ..., θm−1) = L2L3...Lm. (3.9)

Per quanto riguarda il calcolo dell’algoritmo, le parti fondamentali sono:

Trovare ed elencare i possibili stati IBD. In questa parte bisogna spe-cificare gli IBD tra gli individui in modo compatto, e per permettereuna piu agevole identificazione si creano due modelli: il grafo dellediscendenze (Descent Graph) e i percorsi di flusso genico (Gene FlowPattern). Tramite tali strumenti, che saranno usati anche nella se-conda parte, si trova il numero delle meiosi, e proprio dalle meiosi sicreano i vettori eredita; le figure 3.5 e 3.6 mostrano il concetto: perriuscire ad identificare le meiosi e i relativi vettori Vn eredita IDB, fi-gura 3.5, si creano due schemi, di cui la figura 3.6 riporta il grafo dellediscendenze.

Un insieme di 2n cifre binarie specifica quindi un IBD in un pedigreecon n elementi non-fondatori; in tutto si creeranno 22n insiemi.

Probabilita dei dati genotipici per gli stati IBD. Per ogni vettore tro-vato deve essere calcolata la probabilita del genotipo osservato, ricer-cando gli insiemi allelici di ogni membro fondatore; ovviamente biso-gnera eseguire il calcolo anche per ogni marcatore. La verosimiglianzae il prodotto delle frequenze alleliche.

Un esempio e visibile nelle figure 3.7, 3.8 e nella relativa tabella 3.2.Preso il grafo delle discendenze 3.7 combinato con i dati degli alleliforniti da grafo delle osservazioni 3.8, si possono creare solo alcunecombinazioni degli alleli dei fondatori, come la tabella 3.2 mostra;

Page 37: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

3.3 Algoritmi sul linkage 31

Figura 3.5: Esempio di vettorieredita’. Figura 3.6: Grafo delle discendenze.

Figura 3.7: Esempio di grafo dellediscendenze.

Figura 3.8: Esempio di grafodelle osservazioni.

infatti se osserviamo nei figli del padre con alleli A e B, i valori 1 e 2,in funzione della disposizione allelica negli altri individui, gli alleli A,C ed E dei fondatori potranno avere solo due tipi di ordine, (1, 2, 1)oppure (2, 1, 2); una volta assegnato uno degli alleli, come la figuradelle osservazioni suggerisce, la scelta tra le due opzioni e diretta.

Matrici di transizioni delle probabilita. Nelle matrici di transizione sispecifica la frazione di ricombinazione, e la forma che ne deriva ha unastruttura che cresce notevolmente di rango al variare del numero dimeiosi. Per esempio con una meiosi la matrice di transizione risultaessere:

T(θ) =[

(1 − θ) θθ (1 − θ)

]

Page 38: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

3.3 Algoritmi sul linkage 32

Alleli fondatori Corrispondenza Probabilitain gruppi alleli stati

(B) ogni allele 1(A,C,E) (1,2,1) oppure (2,1,2) P (1)2P (2) + P (2)2P (1)

(D,F,G,H) (1,2,3,4) P (1)P (2)P (3)P (4)

Tabella 3.2: Esempio di stati con i fondatori.

Con due meiosi la matrice di transizione diventa:

T(θ)⊗2 =[

(1 − θ)T θTθT (1 − θ)T

]

T(θ)⊗2 =

⎡⎢⎢⎣

(1 − θ)2 (1 − θ)θ θ(1 − θ) θ2

(1 − θ)θ (1 − θ)2 θ2 θ(1 − θ)θ(1 − θ) θ2 (1 − θ)2 (1 − θ)θ

θ2 θ(1 − θ) (1 − θ)θ (1 − θ)2

⎤⎥⎥⎦

Con tre meiosi il prodotto di Kronecker rende la matrice di rangoquattro volte maggiore della versione con due meiosi, e sedici voltequella con una singola meiosi, con un incremento esponenziale:

T(θ)⊗3 =[

(1 − θ)T⊗2 θT⊗2

θT⊗2 (1 − θ)T⊗2

]

T(θ)⊗3

�⎡⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣

(1 − θ)3 (1 − θ)2θ (1 − θ)2θ θ2(1 − θ) (1 − θ)2θ θ2(1 − θ) θ2(1 − θ) θ3

(1 − θ)2θ (1 − θ)3 θ2(1 − θ) (1 − θ)2θ θ2(1 − θ) (1 − θ)2θ θ3 θ2(1 − θ)(1 − θ)2θ θ2(1 − θ) (1 − θ)3 (1 − θ)2θ θ2(1 − θ) θ3 (1 − θ)2θ θ2(1 − θ)θ2(1 − θ) (1 − θ)2θ (1 − θ)2θ (1 − θ)3 θ3 θ2(1 − θ) θ2(1 − θ) (1 − θ)2θ(1 − θ)2θ θ2(1 − θ) θ2(1 − θ) θ3 (1 − θ)3 (1 − θ)2θ θ2(1 − θ) (1 − θ)2θθ2(1 − θ) (1 − θ)2θ θ3 θ2(1 − θ) (1 − θ)2θ (1 − θ)3 (1 − θ)2θ θ2(1 − θ)θ2(1 − θ) θ3 (1 − θ)2θ θ2(1 − θ) θ2(1 − θ) (1 − θ)2θ (1 − θ)3 (1 − θ)2θ

θ3 θ2(1 − θ) θ2(1 − θ) (1 − θ)2θ (1 − θ)2θ θ2(1 − θ) (1 − θ)2θ (1 − θ)3

⎤⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦

La formulazione ricorsiva vede dunque la costruzione di una matricedi transizione come segue:

T(θ)⊗n+1 =[

(1 − θ)T⊗n θT⊗n

θT⊗n (1 − θ)T⊗n

]

Page 39: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

3.3 Algoritmi sul linkage 33

Esecuzione delle catene di Markov. Iniziando dal primo marcatore sicrea un vettore con le probabilita; spostandosi lungo il cromosoma, simoltiplica il vettore per la matrice di transizione; infine si uniscono taliinformazioni con i marcatori successivi, per ripetere fino al termine deimarcatori tali precedenti operazioni.

Un’idea dei calcoli della catena di Markov viene data da queste equa-zione:

P (X1, ..., Xm|Im) =∑Im−1

P (X1, ..., Xm−1|Im−1)P (Im|Im−1)P (Xm|Im)

(3.10)

ove P (X1, ..., Xm−1|Im−1) definisce un vettore per ogni Im; P (Im|Im−1)e una matrice per ogni coppia Im−1, Im, e l’ultimo termine P (Xm|Im)crea un altro vettore per ogni Im−1, arrivando a stendere la 3.10 come:

[P (X1..m−1|Im−1 = 00) ... P (X1..m−1|Im−1 = 11)

](3.11)

�⎡⎢⎣

P (Im = 00|Im−1 = 00) ... P (Im = 11|Im−1 = 00)...

......

P (Im = 00|Im−1 = 11) ... P (Im = 11|Im−1 = 11)

⎤⎥⎦◦

⎡⎢⎣

P (Xm|Im = 00)...

P (Xm|Im = 11)

⎤⎥⎦

Per risolvere tali equazioni matematiche (3.10 e 3.11) sono stati avan-zati alcuni approcci, tra cui divide et impera di Idury ed Elston (1997)[41] e la Fast Fourier Transform di Kruglyak e Lander (1998) [40].

Per quanto riguarda la complessita computazionale dei passi dell’algorit-mo LG (dall’1 al 3), esposti precedentemente, essi richiedono un totale di3(m− 1) moltiplicazioni di matrici di dimensione 22k. La versione originaledell’algoritmo LG ha un tempo di esecuzione dell’ordine di O(m24n), con mnumero marcatori ed n numero degli individui non fondatori.

Poiche le matrici T (θi) e T �(θi) sono costruite a partire dal prodotto diKronecker di matrici 2 × 2, ciascuna moltiplicazione matriciale puo essereeseguita tramite 2n22n moltiplicazioni usando un approccio divide et impera,invece delle previste 24n; tale idea e stata portata avanti da Idury ed Elston.I miglioramenti apportati all’algoritmo si possono classificare in due aree infunzione della parte che influenzano e modificano, come segue.

Riduzione dello spazio dei vettori. Esistono molte “ridondanze” all’in-terno dello spazio vettori, cosı che e possibile raggruppare i vettorieredita; si tratta dunque di scegliere come individuare tali ridondanzee come raggruppare i vettori. In tal senso si sono mossi tre studi, poi

Page 40: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

3.3 Algoritmi sul linkage 34

Figura 3.9: Esempio di sostituzione e riduzione della matrice di transizionetramite l’algoritmo di Idury-Elston.

implementati in diversi programmi, identificando delle simmetrie ditrasmissione degli allei prima dai singoli fondatori (Kruglyak, 1996),poi da coppie di fondatori (Gudbjartsson 2000) e infine per gli altriindividui (Markianos 2001; Abecasis 2002)[43]. Sintetizzando i variapprocci si ha:

1. simmetria tra fondatori (founder symmetry): lo spazio dei vettoridiventa 22n−f ;

2. simmetria tra coppie di fondatori (founder couple symmetry): lospazio di eredita diventa 22n−f−c, ove c e il numero di coppie nelpedigree;

3. simmetrie arbitrarie dipendenti dal genotipo: il carico computa-zionale diventa O(22n−f−k) da O(22n−f ), ove con k si indicano ilnumero di meiosi;

Manipolazione delle matrici di transizione. Tale area va a toccare laparte dell’algoritmo che calcola la catena di Markov, e i metodi studia-ti ad implementati riguardano l’approccio divide et impera di Idury edElston, e quello con la Fast Fourier Transform di Kruglyak e Lander;entrambi riescono a ridurre il tempo computazionale di alcuni ordinidi grandezza. La modifica apportata da Idury et al considera sottoproblemi della matrice di transizione, per la sua proprieta di avere deipattern (quindi percorsi ricorrenti) al suo interno: in pratica hannoverificato l’esistenza di una regolarita interna della matrice grazie allasua stesura come prodotto di Kronecker di matrici semplici; tale van-taggio permette di arrivare ad un tempo di elaborazione di O(mn2n).La figura 3.9 mostra un esempio di elaborazione in cui viene “rimpiaz-zata” la matrice di partenza da quattro sotto matrici piu piccole. Sirimanda in appendice C.2 per la logica delle FFT.

Nonostante le implementazioni dell’algoritmo LG riescano a gestire deci-ne di loci marcatori, i progressi nei laboratori genetici stimolano necessita dimaggiore potenza, e che tengano conto anche di nuovi data set provenientida studi di popolazioni e linkage disequilibrium.

Page 41: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

3.3 Algoritmi sul linkage 35

L’implementazione GeneHunter e ad ogni modo uno strumento tuttoramolto utile nei laboratori, e per questo l’applicazione RightLinkS lo utilizzeranella fase di esecuzione dei programmi sull’analisi di linkage.

3.3.4 Approccio con le reti Bayesiane (Bayesian Networks)

Come il titolo suggerisce, l’utilizzo delle reti bayesiane e un approccio, enonostante esista un’implementazione basata su questo metodo, rimane infase di studio.

Una rete bayesiana, come anche descritto nell’appendice B.2, e un model-lo grafico che codifica la distribuzione congiunta di probabilita di un insiemedi variabili aleatorie X = {X1, X2, ..., Xn} tramite una rappresentazione agrafo.

Un grafo aciclico (detto struttura) G = (I,A, P ) e visto come un grafodiretto senza cicli tale che ogni vertice i corrisponda ad una variabile Xi esia associata ad una distribuzione di probabilita P (Xi = xi|Pai = pai), ovePai e l’insieme dei nodi “padre”, ovvero le variabili che hanno vertici checonducono ad i. I e l’insieme dei nodi (o vertici) del grafo, A e l’insiemedegli archi (o lati, edges), e P e l’insieme delle distribuzioni di probabilitacondizionate, ovvero P = {pi}|V | in cui pi = P (Xi = xi|Pai = pai).

La distribuzione congiunta di probabilita e rappresentata da un insiemeP di distribuzioni locali di probabilita, ciascuna associata ad una variabilealeatoria Xi e condizionata dalle variabili corrispondenti ai nodi sorgentidegli archi entranti nel nodo a cui e associata Xi.

Data una struttura S e le distribuzioni locali di probabilita di ciascunnodo P (Xi = xi|Pai = pai), la distribuzione di probabilita congiunta assumeal forma della formula 3.12:

P (x1, x2, ..., xn) =n∏

i=1

P (xi|pai) (3.12)

Nella figura 3.10 si illustra un esempio di probabilita congiunta ad un nodo.L’unione della distribuzione di probabilita congiunta e del grafo aciclico echiamata rete bayesiana. Si noti che l’assenza di un arco fra due nodi riflettela loro indipendenza condizionale. Al contrario, la presenza di un arco dalnodo Xi al nodo Xj puo essere interpretata come dipendenza diretta di Xj

da Xi.L’approccio tramite reti bayesiane per il linkage proposto da Fishelson

e Geiger (2002) [48] inizia con la definizione del problema di inferenza incui l’ingresso e la rete bayesiana con un sottoinsieme di nodi E, e l’uscitae la tabella di probabilita P (E = e) per un dato sottoinsieme disgiunto divariabili E ⊆ {X1, ..., Xn}.

Supponendo che X1, ..., Xk sono variabili non in E, allora usando l’equa-

Page 42: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

3.3 Algoritmi sul linkage 36

Figura 3.10: Esempio di rete bayesiana.

zione 3.12 si ottiene:

Pr(e) =∑x1

...∑xk

Pr(x1, ..., xk, e) =∑x1

...∑xk

∏i

Pr(xi|pai). (3.13)

Il problema inferenziale puo essere tradotto nel problema di valutazionedell’espressione della forma:

E =∑x1

...∑xk

∏l

fl(Yl) (3.14)

ove fl e un fattore (o una tabella) che contiene un valore per ciascun in-dice di Yl ⊆ {X1, ..., Xk}. I due modi per calcolare tale espressione sono:eliminazione di variabili (eliminating), e condizionamento (conditioning).

Il vantaggio dell’utilizzo dell’approccio conditioning rispetto all’elimina-zione di variabili risiede nel minore overhead di memoria; lo svantaggio peroe che possono essere valutate piu volte alcune sottoespressioni aumentandoil tempo di elaborazione. Algoritmi ibridi che coniughino risparmi di spazioe tempo sono oggetto di ricerca, e alcuni sono stati proposti: per esempioalcuni scelgono prima un insieme di variabili, poi viene calcolata la proba-bilita per ogni variabile usando il metodo di eliminazione delle variabili, einfine i risultati vengono sommati ottenendo la verosimiglianza. Un modoper ottimizzare tale procedura e stato proposto dagli autori (Fishelson eGeiger) chiamato problema dell’eliminazione dei vincoli (constrained elimi-nation problem), che migliora l’eliminazione di variabili in spazio di memoriatramite un algoritmo vorace (greedy algorithm). In particolare viene sotto-lineato come gli algoritmi ES e LG precedentemente esposti siano anch’essitipizzabili come problemi di eliminazione di variabili, che sfruttano differentimetodi di taglio, e percio un applicazione che implementasse l’approccio areti di bayes riuscirebbe a combinare i due algoritmi in maniera efficiente.

La rappresentazione della rete bayesiana si caratterizza con la conte-stualizzazione alla genetica, in cui si identificano due tipologie di oggetti: levariabili aleatorie e le tabelle di probabilita locali.

Page 43: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

3.3 Algoritmi sul linkage 37

Variabili aleatorie:

• loci genetici : per ogni individuo i e locus j si definisce la variabilealeatoria Gi,jp, e Gi,jm, in cui la sigla di estensione p ed m identificanol’allele paterno e materno;

• fenotipi : per ogni persona viene assegnato il proprio fenotipo comePi.j , ove stavolta j identifica il fenotipo;

• variabili di selezione: esistono delle variabili ausiliarie di eredita chedelineano il pattern di eredita nel pedigree; si denotano Si,jp e Si,jm leselezioni in base alle meiosi sul locus j, e, con a padre di i, si considera:

Gi,jp ={

Ga,jp se Si,jp = 0Ga,jm se Si,jp = 1

similmente per Gi,jm.

Tabelle di probabilita locali:

• modelli di trasmissione: Pr(Gi,jp|Ga,jp, Ga,jm, Si,jp) ePr(Gi,jm|Gb,jp, Gb,jm, Si,jm), ove a e b sono i genitori dell’individuo inel pedigree;

• modello di penetranza: Pr(Pi,j |Gi,jp, Gi,jm);

• modello di ricombinazione: Pr(Si,1p) = Pr(Si,1m) = 0, 5,Pr(Si,jp|Si,j−1p, θj−1) e Pr(Si,jm|Si,j−1m, θj−1), in cui θj−1 e la frazio-ne ricombinazione nota o no tra il locus j − 1 e j;

• probabilita alleliche generiche di popolazione: Pr(Gi,jp) e Pr(Gi,jm)con i fondatore.

La verosimiglianza Pr(e|θ) del pedigree e il prodotto di tutte le probabi-lita locali (espresse in tabelle) della rete bayesiana, marginalizzata su tuttele variabili della rete che non sono assegnate

Un esempio di rete bayesiana che descrive una semplice interazione genitori-figlio con un’analisi a tre loci e mostrato in figura 3.11. Nell’immagine 3.11 igenotipi sono rappresentati in quadrati in cui i genitori hanno numerazione1 e 2 mentre il figlio 3. Insieme allo schema di genotipo si affianca il modellodi penetranza per l’analisi a tre loci; si e assunto nello schema che ciascunavariabile di fenotipo dipende dal genotipo.

I passi dell’algoritmo [47] si sintetizzano nei seguenti punti:

1. eliminazione dei valori sul pedigree (preprocessing): taglio delle va-riabili (variable trimming), unione di variabili (merging variables), eriduzione del range di valori validi per ogni variabile (value and alleleexclusion) con soluzioni discendenti, ascendenti o selettive (downward,upward, selector upgrate);

Page 44: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

3.3 Algoritmi sul linkage 38

Figura 3.11: Esempio di rete bayesiana con relazione genitori-figlio a 3 loci.

2. traduzione del pedigree in una rete bayesiana;

3. determinare l’ordine di eliminazione;

4. calcolo della verosimiglianza.

Le parti computazionalmente piu complesse riguardano non tanto il cal-colo della verosimiglianza in se, ultimo passo del procedimento, quanto l’e-liminazione delle variabili e il conditioning: bisogna riuscire a trovare ilgiusto tradeoff computazionale tra quale metodo utilizzare e come. L’ordinedell’eliminazione delle variabili e un fattore critico a livello computaziona-le, che fa pendere l’ago della bilancia in favore di un metodo piuttosto chedell’altro, e viene eseguito in base ai parametri specifici del pedigree, qualila dimensione della famiglia e il numero di marcatori: per piccoli pedigreecon molti marcatori l’algoritmo seleziona un ordine di “levigatura” (peeling)basato sull’algoritmo LG, elaborando un locus alla volta; specularmente seil pedigree avesse molti individui con pochi marcatori l’algoritmo segue latraccia del metodo ES, estrapolando una famiglia singola (nucleo familiare)alla volta. Spesso si uniscono le due strategie per famiglie con parametri in-termedi tramite euristiche, che accomunano i due punti di vista e adattanole strategie ai due estremi per il caso specifico.

Un algoritmo euristico vorace (o greedy) [49] viene applicato per valutarel’ordine di eliminazione: se il pedigree si avvicina di piu ai parametri delmetodo LG, allora la valutazione e diretta (poiche e sequenziale sulla mappagenetica), mentre nel secondo caso stima un costo di eliminazione, che sara ilparametro di scelta d’ordine (tra eliminazione di variabili e conditioning). Ilcosto dell’eliminazione della variabile v e espresso come EC(v) (eliminationcost), e calcolato come segue:

Page 45: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

3.3 Algoritmi sul linkage 39

• se l’eliminazione della variabile v e in una funzione le cui variabili sonogia contenute in una funzione esistente, il costo della variabile e zero; sesi elimina tale variabile si riduce semplicemente la richiesta memoria, equindi e desiderabile assegnare a tale variabile il costo minore possibile;

• altrimenti il costo dell’eliminazione di v e proporzionale alla dimensio-ne della tabella di probabilita della funzione che uscirebbero eliminan-dola; formalmente, con F (v) insieme di funzioni che usano la varia-bile v, allora la dimensione della tabella di probabilita che uscirebbeeliminandola e:

EC(v) =∏

X∈N(v)

|V al(X)| (3.15)

ove N(v) = (⋃

f ∈F (v) Arg(f )−{v}, e Arg(f ) e l’insieme di variabili sucui la funzione f e definita. La variabile da eliminare e:

arg minv(EC(v)). (3.16)

La spiegazione della scelta dell’euristica e che la dimensione della ta-bella costituisce una buona misura della complessita di eliminazionedi alcune variabili.

Per scegliere se effettuare l’eliminazione di variabili o il conditioning sipone una soglia di costo di accettazione, superata la quale si propende autilizzare la seconda strategia (conditioning) rispetto alla prima. Per que-sto, l’euristica greedy e usata per scegliere una variabile che soddisfa lacondizione:

arg maxv(n(v)EC(v)) (3.17)

ove EC(v) e il costo di eliminazione di v ed n(v) e il numero di funzioni cheusa v.

Scendendo meglio nell’algoritmo deterministico, chiamiamo un grafo pe-sato G(V,E, w) dove ad ogni vertice e assegnato un peso w(v), NG(v) = {u ∈V |(u, w) ∈ E} l’insieme dei vertici adiacenti a v in G e NG(v) = NG(v)

⋃{v}l’insieme dei vertici adiacenti a v con esso compreso. Riscrivendo il costo dieliminazione come

C(Xα) =n∑

i=1

CGi(Xα(i)) (3.18)

con α permutazioni sui vertici. Si cerca la soluzione ottimale data daXα = arg minαC(Xα); con la presenza di eliminazioni vincolate denotatedal vettore β, si ottiene una nuova soluzione come Xα,β = arg minα,βC(Xα,β).

L’algoritmo greedy deterministico riceve in ingresso un grafo pesatoG(V,E, w) e una soglia T 2, ed emette in uscita una sequenza di elimi-nazione di vincoli Xα,β (β vettore di eliminazione vincolata (constrained

2Viene posta la soglia perche ipoteticamente basterebbe porre come limite computazio-nale la massima clique (sottografo completo) costruibile su G dopo aver eliminato i vertici

Page 46: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

3.4 Implementazioni degli algoritmi sul linkage 40

elimination)) tale che il costo di eliminazione di ciascun vertice sia al mas-simo T . Durante l’iterazione i l’algoritmo sceglie un vertice Xi che soddisfiXi = arg minX∈ViCGi(X), e termina quando tutti i vertici sono stati ri-mossi dal grafo: se nell’iterazione i il costo di eliminazione CGi(X) superala soglia data, allora il vertice Xi viene scelto come “vincolato” invece che“eliminato”. Un modo per scegliere tale vertice vincolato e:

Xi = arg maxX∈Vi

√|NGi(X)|CGi(X). (3.19)

In figura 3.12 viene mostrato l’algoritmo greedy deterministico presentatoda Fishelson e Geiger.

Aspetti importanti nell’implementazione di tale approccio da ben stima-re sono: la rappresentazione della rete bayesiana, la rappresentazione com-patta delle informazioni sui genotipi a piu loci, e delle tabelle di probabilita.La soluzione al problema della rappresentazione compatta dei genotipi siapplica con lo storing separato delle liste degli alleli a singolo locus per i dueaplotipi, paterno e materno, quindi per ogni locus una lista, invece di memo-rizzare per esempio per ogni persona una matrice di dimensione N(N −1)/2per rappresentare tutte le possibili combinazioni genotipiche. La soluzioni alproblema della rappresentazione delle tabelle prevede un dimensionamentoflessibile in funzione dei valori validi delle variabili grazie all’uso di indici,puntatori, e vettori.

Un’evoluzione dell’algoritmo greedy deterministico inizialmente propostoda Fishelson e Geiger, vede l’avanzamento di un algoritmo greedy nellaversione stocastica [49, 50, 51], visibile in figura 3.13, in cui la selezione deivertici da eliminare e casuale, e la procedura sg(G, T ) trova le sequenze dieliminazione vincolate usando una selezione casuale dei vertici.

I dati sperimentali delle due versioni degli algoritmi e delle prestazioni inconfronto verranno presentati nella sezione dedicata nel paragrafo 3.4.3; dalpunto di vista teorico non e stato possibile estrapolare effettivamente qualesia il tempo elaborativo, perche per quanto affermino la combinazione adhoc degli algoritmi ES e LG non viene riportato il modo di elaborare, che aseconda di come si sceglie di elaborare gli algoritmi nelle figure appena viste3.12 e 3.13 puo cambiare.

3.4 Implementazioni degli algoritmi sul linkage

Vengono qui riportate alcune delle implementazioni esistenti degli algoritmisul linkage; tra questi saranno sfruttati in RightLinkS GeneHunter ed SLink,rispettivamente per gli algoritmi Elston-Stewart e Lander-Green.

selezionati e con i parametri di peso uscenti dalla funzione di costo di eliminazione, maspesso tale misura e imprecisa nella maggior parte dei casi e quindi non generalizzabile;una soglia fissata invece e standard anche se rigida.

Page 47: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

3.4 Implementazioni degli algoritmi sul linkage 41

Input: un grafo pesato G(V,E, w), una soglia T .Output: un sequenza di eliminazioni vincolate Xα,β tale che il costo dieliminazione di ogni vertice e ≤ T .Elaborazione:

1. Inizializza il vettore β di dimensione n, con zero

2. i ← 1

3. G ← Gi

4. While Gi non e vuoto, Do

• for all X ∈ Vi calcola CGi(X)

• preleva Xk = arg minX∈ViCGi(X)

• if CGi(X) > T then {conditioning su Xk}for all X ∈ Vi calcola

√|NGi(X)|CGi(X)preleva Xk = arg maxX∈Vi

√|NGi(X)|CGi(X)βi ← 1else {eliminating Xk}Ei ← Ei

⋃{(u,w)|u, w ∈ NGi(Xk)}• rimuovi Xk e i suoi archi incidenti da Gi

• αi ← k

• i ← i + 1

5. return Xα,β

Figura 3.12: L’algoritmo greedy deterministico.

Page 48: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

3.4 Implementazioni degli algoritmi sul linkage 42

Input: un grafo pesato G(V,E, w), una soglia T , e un costo minimo Cmin.Output: un sequenza di eliminazioni vincolate Xα,β tale che il costo dieliminazione di ogni vertice e ≤ T .Elaborazione:

1. Xα,β ← algodeterministico (G, T )

2. if C(Xα,β) < Cmin then return Xα,β

3. set I con C(Xα,β)for i ← 1 to I do

• Xtempα,β ← sg(G, T )

• if C(Xtempα,β ) < C(Xα,β) then

Xα,β ← Xtempα,β

4. return Xα,β

Figura 3.13: L’algoritmo greedy stocastico.

3.4.1 Elston-Stewart: Linkage, Fastlink, SLink

Linkage e il primo software che ha implementato l’algoritmo ES, ed e statoideato da Lathrop [25] e Ott [26], ed e stata la base per i successivi sviluppiquali l’utilizzo della riduzione ricorsiva degli alberi a nuclei familiari. Adogni modo questa versione permette la localizzazione di loci in pedigreerelativamente grandi.

Fastlink, ideato da Cottingham, Idury e Schaffer [29, 19] e l’estensione diLinkage con utilizzo di tecniche di rappresentazione del pedigree tramite al-beri ridotti, e nella sua implementazione piu avanzata permette l’esecuzioneparallela [20, 23, 30].

Oltre alle versioni finora citate, ne esistono svariate che eseguono il calco-lo del lod-score, ma il cui algoritmo non si discosta molto da quelli elencati.Si riporta SLink in quanto e una versione che nonostante implementi l’algo-ritmo ES, sfrutta un approccio simulativo, ovvero sapere a priori se il singolomarcatore considerato potrebbe essere significativo nell’analisi di linkage perla data famiglia. Si basa su Linkage, tanto da essere stato ideato dagli stessiautori Weeks, Ott, Lathrop [28, 32, 33], ed e composto di molteplici esegui-bili al suo interno, tra cui Unknown ed Msim. Maggiori informazioni sulleprocedure elaborative si trovano nelle documentazioni del software [33], everranno accennate in fase di progettazione per lo studio dell’applicazioneRightLinkS.

Page 49: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

3.5 Sintesi delle metodologie e Valutazione dei software 43

3.4.2 Lander-Green: GeneHunter, Allegro, Merlin

GeneHunter [43] e basato sull’approccio con le matrici di transizione genera-te tramite trasformate di Fourier (fast Fourier trasform) [42], implementateda Kruglyak e Lander.

Allegro [38][37] e una implementazione dell’approccio all’algoritmo LGtramite FFT ma senza fare distinzione, a differenza di GeneHunter, tra gliindividui di una coppia fondatore, e cio permette la riduzione della com-plessita di un fattore di 2c, ove con c si indica il numero di coppie nelpedigree, e con esecuzione top down cosı da trovare le inconsistenze appenacapitano [42]. Successive versioni (Allegro v2) vedranno implementate nuo-ve caratteristiche di riduzione degli spazi di eredita e di rappresentazione:riprendendo l’idea implementata in Merlin, il pedigree viene rappresentatocome un albero, ma non binario sparso come hanno sviluppato i creatoridi Merlin, bensı multi terminale, o meglio Multi Terminal Binary DecisionDiagrams, (MTBDD) particolarizzazione del gia usato e noto metodo deiBinary Decision Diagrams (BDD) nella verifica software [36].

Merlin [35] e basato sull’approccio di Idury-Elston, ma i vettori ereditasono rappresentati come alberi binari sparsi (sparse binary tree). In questamodellizzazione gli alberi hanno tre tipi di nodi: i nodi standard, i nodisimmetrici (che rappresentano il caso in cui entrambi i rami portano adidentici sottoalberi, e nodi foglia “prematuri”, che indicano che tutti i ramiche seguono hanno lo stesso valore. In questo modo alcune ridondanze nellarappresentazione di identiche strutture vengono evitate. Merlin comprendela riduzione dei fondatori ma non delle coppie (founder couple reduction)[42].

3.4.3 Reti bayesiane: Superlink

Superlink e l’unica implementazione dell’approccio con le reti bayesiane rea-lizzata dagli stessi autori della metodologia, Fishelson e Geiger [48, 49, 50],ma a differenza di quasi tutti gli altri software per il calcolo del linkage non eopen-source. L’aspetto positivo delle implementazioni e delle sue varie ver-sioni e che ne esiste una remota [52], con processamento parallelo disponibilecon web-interface: una volta inseriti i file necessari per il calcolo (marcatorie pedigree) i risultati vengono spediti via mail al sottoscrittore del job re-moto, previo contatto con gli autori che rilasciano una password di accessoalla risorsa [53].

3.5 Sintesi delle metodologie e Valutazione dei soft-ware

Nelle due tabelle 3.3 e 3.4 viene sintetizzato quanto finora visto per il pro-blema del linkage, in base agli algoritmi esistenti, ai loro limiti e alle imple-

Page 50: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

3.5 Sintesi delle metodologie e Valutazione dei software 44

Algoritmo Programmi Soluzione LimitazioniElston-Stewart Linkage, Mendel, esatta #loci: ∼ 8

(ES) Vitesse, SLink, (a meno di loop)Fastlink, ecc #persone: > 50

Lander-Green Allegro, Merlin, esatta #loci: > 20(LG) GeneHunter, ecc #persone: ∼ 20

con 2n − f < 20Bayesian Superlink esatta #loci: ndNetworks #persone: nd

Tabella 3.3: Sintesi dei software esistenti che implementano l’analisi di lin-kage nei differenti algoritmi ( riadattamento dalla fonte web 2006: http://watson.hgen.pitt.edu /docs/ simwalk2.html).

Algoritmo Incremento computazionale (in tempo)in funzione di

Persone Loci Tempo Comp.Elston-Stewart (ES) Lineare Esponenziale O(m · (2n)pc)Lander-Green (LG) Esponenziale Lineare O(m · (24p))Bayesian Networks Lineare Lineare n.d.

Tabella 3.4: Sintesi del costo computazionale degli algoritmi.

mentazioni software. Per quanto riguarda l’approccio con le reti bayesianenon e stato possibile dare una stima esatta ne dei limiti ne del tempo dicomputazione poiche il software Superlink interrompe l’esecuzione dopo uncerto numero di elaborazioni, e non e stato possibile indagare quanto affer-mano gli autori, ovvero che riesce a combinare ad hoc gli algoritmi ES e LG,perche non e open-source.

Al fine di provare le reali limitazioni software sono stati eseguiti dei test:i programmi scelti sono tre, uno per ogni metodologia riportata, GeneHunter(versione 2.1) per l’algoritmo ES, Fastlink (versione 4.1) per l’algoritmo LG,e Superlink (versione 1.6) per l’approccio a reti bayesiane. Per completezzae stato pensato di sviluppare questi test su diverse piattaforme, e diversemacchine; la tabella 3.5 riporta le versioni dei software per ogni piattaformae relativo sistema operativo.

I test cases, gli input ai programmi, sono stati recuperati sia da fontionline, per esempio con risultati noti e pubblicati e con test gia effettuatida altri, che da fonte interna all’Istituto Mario Negri, prendendo casi difamiglie dal laboratorio. La motivazione di utilizzare due diverse fonti traeragione dal voler replicare gli esperimenti eseguiti da altri per verificare lacorrettezza di lancio dei software e trovare un metodo comparativo, affinchepoi i test sui dati interni possano essere affidabili. In quest’ottica quindi sono

Page 51: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

3.5 Sintesi delle metodologie e Valutazione dei software 45

Software Vers. Op.System WorkstationGeneHunter 1.2 Win Xp Intel Pentium 4, 32bit, Ide Hd

H.E. SP2 1 Cpu: 2.8 GHz; RAM: 512 MB2.1 Mac OSX Motorola G4, 32bit, Ide Hd

OS 10.4 Tiger 1 Cpu: 1.6 GHz; RAM: 1024 MBFastlink 4.1 Win Xp Intel Pentium 4, 32bit, Ide Hd

H.E. SP2 1 Cpu: 2.8 GHz; RAM: 512 MB4.1 Mac OSX Motorola G4, 32bit, Ide Hd

OS 10.4 Tiger 1 Cpu: 1.6 GHz; RAM: 1024 MBSuperlink 1.6 Win Xp Intel Pentium 4, 32bit, Ide Hd

H.E. SP2 1 Cpu: 2.8 GHz; RAM: 512 MB1.6 Mac OSX Motorola G4, 32bit, Ide Hd

OS 10.4 Tiger 1 Cpu: 1.6 GHz; RAM: 1024 MB

Tabella 3.5: Sintesi versioni software, macchine e sistemi operativiselezionati per i test degli applicativi di linkage analysis.

prima stati eseguiti test sui dati da fonti esterne con i risultati pubblicati,per poi effettuare quelli interni.

Per semplificare la presentazione dei risultati dei test sono state createdue tabelle riassuntive (3.6 e 3.7), in cui sono stati messi in luce i file di in-gresso eseguiti, la fonte, e i risultati finali (i tempi sono espressi in un rangeperche si tiene conto della variazione elaborativa specifica delle due macchinesu cui sono stati eseguiti). Come sintesi finale e possibile notare che nono-stante le esecuzioni dei file di input dalla fonte remota (tra cui riportiamohttp://bioinfo.cs.technion.ac.il/superlink/Experimental Results v1.2.html, do-ve sono presenti molti dati campioni di prova) abbiano dato esito positivo,quindi i risultati pubblicati hanno trovato riscontro negli output di esecuzio-ne locale dei test sulle diverse macchine, quando si e passati ai file interni allaboratorio si sono verificati problemi computazionali soprattutto da partedel programma Superlink (sia in locale che nella sua versione parallela inremoto), per quanto si affermi che possa superare entrambe le limitazionidegli algoritmi ES e LG, tanto da interrompere in locale il calcolo dopo oredi lavoro senza averlo completato mentre in remoto ha provocato piu di unavolta il crollo del sistema, bloccandolo.

Da queste osservazioni emerge che i software standard che implementa-no l’analisi di linkage, ovvero GeneHunter e Fastlink (o Linkage) nonostantesiano limitati nella capacita elaborativa, sono affidabili, e per questo la comu-nita scientifica se ne serve da anni continuativamente, anche perche il codicee aperto, e quindi e possibile capire come davvero lavora; mentre l’approccioa reti bayesiane implementato in Superlink rimane in fase sperimentale (einfatti nato solo nel 2004, e non ha avuto ancora forte risonanza). Queste

Page 52: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

3.5 Sintesi delle metodologie e Valutazione dei software 46

Tipo Nome Programma Scostamento Tempodi dati File val. Lod-Score Calcolo

15 persone GeneHunter assente 7-10 sec6 loci GC 69 2 Fastlink assente 580-610 sec

Superlink assente 3-5 sec20 persone GeneHunter assente 2350-2400 sec

6 loci GC 86 2 Fastlink assente 850-900 secSuperlink assente 25-28 sec

20 persone GeneHunter assente 2210-2280 sec8 loci GC 86 3 Fastlink assente 3420-3490 sec

Superlink assente 34-40 sec57 persone GeneHunter assente non calcolabile

2 loci EA0 Fastlink assente 1.5-2 secSuperlink assente 1.3-2 sec

57 persone GeneHunter assente non calcolabile6 loci EA2 Fastlink assente 635-680 sec

Superlink trascurabile 85-100 sec57 persone GeneHunter assente non calcolabile

10 loci EA5 Fastlink trascurabile non calcolabileSuperlink trascurabile 430-450 sec

15 persone GeneHunter assente 10-12 sec10 loci EA5b Fastlink assente non calcolabile

Superlink assente 25-27 sec20 persone GeneHunter assente 2538-2590 sec

10 loci EA5b Fastlink assente non calcolabileSuperlink assente 42-47 sec

30 persone GeneHunter assente non calcolabile10 loci EA5b Fastlink assente non calcolabile

Superlink trascurabile 130-145 sec

Tabella 3.6: Sintesi dei test effettuati da fonti dati esterne; tra que-ste si fa riferimento al sito internet: http://bioinfo.cs.technion.ac.il/superlink/Experimental Results v1.2.html.

Page 53: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

3.5 Sintesi delle metodologie e Valutazione dei software 47

Tipo Nome Programma Tempo Notedi dati File Calcolo

20 persone GeneHunter 2340-2370 sec9 loci SimBon Fastlink non calcolabile pedigree complesso

Superlink 3575 sec16 persone GeneHunter 120-130 sec

7 loci SimBon Fastlink 540-560 secSuperlink 90-100 sec

30 persone GeneHunter non calcolato7 loci SimBon Fastlink 610-635 sec

Superlink 125-140 sec valori lod diversi10-30 persone GeneHunter 2240-2280 sec entro 20 persone

7 loci 7lRec Fastlink 960-1000 sec(piu famiglie) Superlink non eseguito bloccato sistema10-30 persone GeneHunter 2310-2320 sec entro 20 persone

9 loci 9lRec Fastlink 3520-3600 sec entro 8 loci(piu famiglie) Superlink non eseguito bloccato sistema

Tabella 3.7: Sintesi dei test effettuati da fonti dati interne; si riportano soloalcuni dei casi eseguiti.

motivazioni spingono a trascurare per ora l’impatto di questa metodologia,perche non trova effettivamente un pratico riscontro, e l’unica implementa-zione esistente e a codice chiuso, il cui algoritmo ovviamente rimane nelleparti principali celato, e quindi inaffidabile a meno di evoluzioni stabili.

La metodologia presentata nel testo e studiata per poter eseguire i soft-ware GeneHunter ed SLink anche con valori oltre i limiti esistenti, in partico-lare quelli di SLink dove il laboratorio trova ostacoli effettivi, estendendonele potenzialita in maniera empirica, con l’impronta del dominio biologico;infatti come verra descritto nel modulo 5.2 che esegue la ricombinazionedegli alleli (visto che la limitazione si trova non tanto nella dimensione delpedigree ma nel numero di alleli marcatore) si eseguiranno diverse esecuzionidel software SLink con una combinazione lineare di alleli, il cui output poisara valutato e interpretato dai biologi, utenti finali dell’applicazione creata.

Page 54: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

Capitolo 4

Progettazione

Al fine di superare le limitazioni dei software esistenti, senza scrivere un nuo-vo algoritmo per i problemi computazionali esposti, si e valutata la possibi-lita di progettare ed implementare un programma che permetta il recuperoautomatico delle informazioni dai database genetici come GDB e NCBI percreare i file di input correttamente, e lanciare automaticamente i due soft-ware, GeneHunter e SLink, con opportuni accorgimenti nei file di ingresso,per esempio manipolandoli in modo da ottenere la migliore combinazione dialleli nei marcatori ma senza varcare le intrinseche limitazioni algoritmiche.

In questo capitolo verra discussa la progettazione dell’applicazione crea-ta, suddivisa quindi in tre macro moduli: il modulo di Ricerca Informazioni,il modulo Combinazione Marcatori e il modulo di Esecuzione.

Il nome pensato per il programma e RightLinkS, acronimo per Retrievingof Information in Genetic databases and Hashing Tool for Linkage analysisSoftware.

Dopo la parte di progettazione software verranno presentate le sceltead hoc dell’infrastruttura hardware e dei linguaggi di programmazione chemeglio si addicono al caso.

4.1 L’applicazione

Una consapevole progettazione software deve prevedere almeno le fasi dianalisi degli obiettivi con stesura degli input e output, ideazione dei testcases, progettazione generale, implementazione, esecuzione dei test e debug, evalidazione; nel seguito verranno prese in esame le prime fasi, per dettagliarenei capitoli specifici le parti di implementazione (5) e test (6).

Analisi degli Obiettivi. L’obiettivo e creare uno strumento per i bio-logi che possa automatizzare il processo di recupero delle informazioni suimarcatori (distanze geniche e frequenze degli alleli) da inserire nel file deimarcatori, input dei software di analisi di linkage GeneHunter ed SLink,

Page 55: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

4.1 L’applicazione 49

creandone i file nel corretto formato e con le informazioni aggiunte definitedall’utente. A seguito di questa fase si deve strutturare una tecnica per ilsuperamento delle limitazioni intrinseche di SLink, in cui il numero mas-simo di alleli per ogni marcatore computabile e otto, mentre molto spessoi marcatori ne hanno piu di otto. Dato che in laboratorio l’esecuzione diGeneHunter non presenta limitazioni poiche il un numero di individui neipedigree non supera la soglia limite di 20, mentre con SLink si verificanodi sovente necessita di estensione, l’obiettivo e la risoluzione del problemaper quest’ultimo programma; poiche la letteratura ha proposto molteplicivarianti ma tutte insoddisfacenti come soluzioni definitive del limite di ottoalleli, l’idea e la creazione di un applicativo che possa eseguire SLink conuna combinazione lineare di alleli, e permettere all’utente di capire dove visono i migliori risultati. Questa tecnica e gia in uso in laboratorio comesoluzione empirica alla limitazione del programma, percio automatizzandotale approccio al problema si puo rilasciare uno strumento adatto e conformealle esigenze dei biologi.

Creazione Test Cases. I test cases riguardano i marcatori da ricercarenelle banche dati online, e alcune famiglie, con relativi alberi genealogici,in cui sono stati analizzati i marcatori ricercati. Una combinazione di taliinformazioni si recupera in un caso reale di una famiglia, affetta da unamalattia autosomica dominante, presentata con relativa figura nel capitolodei test.

I marcatori da considerare sono: “d17s943 d17s1795 d17s588 d17s1319d17s1869 d17s787 d17s1853 d17s944”. Quello che ci aspettiamo e la creazio-ne di un file contenente tutte le informazioni di tutti i marcatori, chiamatoper esempio “SimData.dat”, e di n file dei singoli marcatori; il primo serveper lanciare GeneHunter, gli ultimi per SLink (poiche per ogni marcatorene cerco il potere predittivo di lod-score).

Nella fase di data retrieval ci si aspetta che il motore interroghi cor-rettamente le banche dati, seguendo tutti i link necessari per arrivare alleinformazioni delle frequenze alleliche e delle localizzazioni dei loci nel cro-mosoma, le distanze. Per la fase di elaborazione multiallelica l’atteso outpute la creazione di un file generico con le informazioni ricercate, e di un file perogni marcatore in cui vi sia un numero di alleli non superiore ad un valoreprefissato, per esempio 8 poiche e il limite effettivo dell’applicazione SLink,e di altri file simili che permettano di non perdere le informazioni sugli al-leli mancanti. Infine nella fase di esecuzione software si devono lanciare iprogrammi di analisi di linkage; ovviamente quest’ultima parte ha solo loscopo di controllo di corretta strutturazione dei file creati in quanto, perquel che riguarda l’applicazione creata, non si entra nella logica interna diprocessamento.

Analizzando ogni marcatore inserito si giunge al recupero delle informa-

Page 56: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

4.1 L’applicazione 50

zioni sulle frequenze e distanze sintetizzate nella tabella 4.1; i dati da scriverequindi devono essere esattamente quelli ivi indicati (recuperati manualmentedalle stesse banche dati su cui si dovra andare ad estrarre le informazioni).Ovviamente per quanto riguarda la distanza genica, in quanto si recuperanoinformazioni in unita di misura bp (base-pair) poiche nella banca dati e pre-sente la grandezza del marcatore, si dovra prima eseguire una conversione inKosambi centi-Morgan, e successivamente la differenza reciproca per trovarela distanza tra marcatori, considerando il primo immesso come riferimento1.

# Marcatore #Alleli Frequenze Dimensione inalleliche base pair (bp)

1 D17S943 7 0.0417 0.3958 0.0208 45195357-451955490.1458 0.0625 0.2917

0.04172 D17S1795 6 0.4100 0.3000 0.0700 45279993-45280164

0.1100 0.0900 0.02003 D17S588 9 0.0300 0.2400 0.1100 45570495-45570653

0.1600 0.0300 0.16000.0800 0.0500 0.1300

4 D17S1319 7 0.1000 0.2000 0.0200 45601694-456018530.0400 0.3600 0.2400

0.04005 D17S1869 4 0.6200 0.2500 0.1300 45894190-45894460

0.00006 D17S787 9 0.1200 0.3200 0.1700 50637083-50637234

0.0100 0.1700 0.01000.0300 0.0500 0.0700

7 D17S1853 8 0.0000 0.2500 0.1600 52939508-529396620.1400 0.1400 0.0500

0.2300 0.02008 D17S944 7 0.3750 0.0179 0.2500 58790038-58790253

0.1429 0.1071 0.03570.0714

Tabella 4.1: Informazioni di frequenze e distanze geniche sui marcatori dacercare per la famiglia del test case.

Per migliorare significativita ai test da eseguire, e utile soprattutto nellafase di data retrieval aggiungere altri marcatori da cercare, localizzati su undiverso cromosoma. A tal fine si e scelto un insieme di elementi contigui,come “D10S208 D10S1243 D10S1666”, e un insieme di elementi generici, per

1Si noti che i marcatori sono immessi consapevolmente dall’utente in ordine di locazionecromosomica, quindi sicuramente sono consecutivi a partire dal primo fino ad arrivareall’ultimo.

Page 57: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

4.1 L’applicazione 51

esempio ”D5S580 D21S11”. In caso di mancate informazioni sulle frequenze,il comportamento atteso deve essere la generazione di una eccezione chesegnali nel file creato l’assenza di tali dati.

Infine si dovranno cercare dei file di marcatori e pedigree esterni con cuiprovare il lancio dei software da locale, senza l’utilizzo dei primi due moduli,proprio come se fosse un contenitore e un’interfaccia per GeneHunter edSLink. In tal senso sono stati scelti due file appartenenti a famiglie giastudiate precedentemente in laboratorio, i cui risultati erano disponibili econfrontabili.

Sintetizzando i tre test cases, dovremo verificare l’applicazione ponendoin ingresso: (1) una famiglia completa, su cui provare tutte le opzioni di-sponibili, quindi sia il recupero delle informazioni, che la creazione dei filedei marcatori, che il lancio degli applicativi di linkage, (2) un set di marca-tori eterogenei, su cui validare il corretto funzionamento del data retrievale della creazione dei molteplici file per ogni marcatore, (3) un precedentestudio su un altra famiglia campione da cui prendere il file dei marcatori edel pedigree per verificare che l’applicazione riesca a lanciare correttamentei software di analisi di concatenazione genica.

Progettazione Generale. L’interazione tra l’utente e l’applicazione puoessere sintetizzata nello schema UML 4.1, in cui l’utente deve inserire imarcatori nel loro codice identificativo (es: “D17S787”), per poi scegliere dilanciare, anche tramite file in locale precedentemente compilati, due softwarescelti per l’analisi di linkage, GeneHunter ed SLink.Dallo schema in figura 4.1 segue direttamente il flusso di operazioni che puoeseguire l’utente, e che l’interfaccia dovra realizzare. I passi che l’utilizzatoredeve poter effettuare si suddividono in due aree: la ricerca delle informazionidei marcatori e l’esecuzione dei due software; infine al termine dell’esecuzionedeve essere possibile visualizzare i file prodotti. Uno schema di tale flussoviene presentato nella figura 4.2.

Page 58: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

4.1 L’applicazione 52

Figura 4.1: State Diagram per l’interazione Utente-Applicativo.

Figura 4.2: Flusso di interazione dell’utente con l’applicazione.

Page 59: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

4.2 Il modulo Ricerca Informazioni 53

4.2 Il modulo Ricerca Informazioni

L’obiettivo di questo modulo e recuperare dalle banche dati pubbliche i datidei marcatori necessari per creare il file di input per GeneHunter e SLink,che esigono un preciso formato e specifiche informazioni quali le frequenzedegli alleli in ciascun marcatore e le distanze geniche tra marcatori.

Figura 4.3: Procedura manuale di recupero informazioni.

Tali informazioni sono presenti nei database di pubblica consultazione on-line, e tra i piu completi ed aggiornati, per questo il nostro software si ap-poggera a loro, si annoverano il GDB (“The Human Genome Database”)2

e l’NCBI (“National Center for Biotechnology Information”)3. Fortunata-mente tali enti permettono di eseguire interrogazioni anche tramite softwareai loro database, consentendo un accesso completo alle risorse; tale condi-zione infatti non sempre e garantita, per esempio il motore di ricerca Googlevieta le ricerche automatiche effettuate da programmi, per impedire la crea-zione di metamotori illegali su di se. I dati di nostro interesse da estrarre

2Consultabile all’indirizzo internet: http://www.gdb.org/.3Consultabile all’indirizzo internet: http://www.ncbi.nlm.nih.gov/.

Page 60: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

4.2 Il modulo Ricerca Informazioni 54

riguardano le frequenze, per cui si sfrutta il primo database, e le distanzegeniche, per cui ci si avvalera della seconda banca dati.

La procedura manuale che effettuano i biologi per l’estrazione dei datidi frequenze e distanze geniche segue un tracciato laborioso, sintetizzatodalla figura 4.3 in cui dapprima si accede al sito del database, poi si eseguela query sul marcatore di interesse da recuperare e si naviga nelle paginedei risultati fino a quella in cui sono contenuti i valori numerici, e infine sicopiano tali dati in un file.

L’automatizzazione di tale processo deve seguire lo stesso tipo di percorsoma sfruttando metodi di accesso ai dati differenti, per esempio tramite iparametri di interrogazione dei database presenti nell’url. Questo metodod’accesso garantisce la corretta interrogazione delle banche dati, e graziesuccessivo al parsing delle pagine restituite dal server remoto e possibiletrovare il giusto link alla pagina dove sono presenti i valori numerici daestrarre. Queste procedure saranno a breve descritte, ma prima e utileintrodurre il file di input agli applicativi sopra citati che ha una strutturaesemplificata di seguito:

6 0 0 5 << NO. OF LOCI, RISK LOCUS, SEXLINKED (IF 1), PROGRAM0 0.0 0.0 0 << MUT LOCUS, MUT RATE, HAPLOTYPE FREQS (IF 1)1 2 3 4 5 61 2 << AFFECTION, NO. OF ALLELES0.999990 0.000010 << GENE FREQUENCIES1 << NO. OF LIABILITY CLASSES0.0000 0.9990 1.0000 << PENETRANCES3 7 << ALLELE NUMBERS, NO. OF ALLELES D17S18680.02 0.33 0.35 0.1 0.12 0.04 0.02 << GENE FREQUENCIES3 7 << ALLELE NUMBERS, NO. OF ALLELES D17S9430.0417 0.3958 0.0208 0.1458 0.0625 0.2917 0.0417 << FREQS3 6 << ALLELE NUMBERS, NO. OF ALLELES D17S17950.41 0.3 0.07 0.11 0.09 0.02 << GENE FREQUENCIES3 7 << ALLELE NUMBERS, NO. OF ALLELES D17S13190.1 0.20 0.02 0.04 0.360 0.24 0.04 << GENE FREQUENCIES3 7 << ALLELE NUMBERS, NO. OF ALLELES D17S9440.375 0.0179 0.25 0.1429 0.1071 0.0357 0.0714 << GENE FREQS0 0 << SEX DIFFERENCE, INTERFERENCE (IF 1 OR 2)0.000 0.655505 0.084636 0.321701 13.188344 << DISTS in kcM1 0.10000 0.45000 << REC VARIED, INCREMENT, FINISHING VALUE

Le righe in cui sono riportate le informazioni delle frequenze si trovano,come suggerito dal commento posto dopo il simbolo <<, nella parte centraledel file, mentre quelle relative alle distanze geniche sono localizzate nellapenultima riga.

E’ utile accennare al significato di questi parametri poiche saranno ri-chiesti all’utente e utilizzati dai software da eseguire. Come utilizzare nei

Page 61: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

4.2 Il modulo Ricerca Informazioni 55

software le informazioni di tali parametri verra specificato successivamente,durante la descrizione delle istruzioni da inserire e digitare4.

In generale, nella prima riga il primo numero e la quantita di marcatoriinserita piu uno, il secondo valore e il “risk locus” (0 se non e stato cal-colato), ovvero il locus di rischio malattia, il terzo indica se la malattia elegata al sesso (X-linked), mentre l’ultimo identifica il tipo di programma daeseguire (i codici identificano: 1 clink, 2 cmap, 3 ilink, 4 linkmap, 5 mlink,6 lodscore, 7 clodscore). La seconda riga memorizza informazioni sul locusdella mutazione, il tasso di mutazione, e le frequenze di aplotipo: se esistonocalcoli gia eseguiti, si immettono valori maggiori di 0. La terza riga elencal’ordine dei marcatori, mentre la quarta l’affection status e il numero di alleliper cromosoma, e la quinta le frequenze geniche. Le successive due righe ri-portano il numero di classi a cui un individuo puo appartenere (per esempioclassi in base all’eta) e i rispettivi valori di penetranze. La possibilita di spe-cificare molteplici righe per le classi, in base al numero immesso dall’utente,deve essere resa disponibile dall’applicazione. Dopo le classi di penetranzavengono descritti i marcatori, ciascuno con la rispettiva lista di alleli e lorofrequenze. Nelle ultime tre righe vengono segnate le differenze tra sesso einterferenze, seguite dalla lista delle distanze geniche in cui il primo valoree il riferimento, quindi posto a zero, mentre gli altri numeri sono calcolaticome differenza tra i punti iniziali di ciascun marcatore consecutivo; infinei valori di variazioni di ricombinazioni, incremento e sequenza terminale.

Il primo modulo deve recuperare le informazioni di frequenze e distan-ze, mentre gli altri parametri sono importati a piacimento dell’utente, epotranno essere utili nel secondo modulo, quindi affinche in tale fase si pos-sano eseguire le ricerche correttamente e necessario acquisire il nome deimarcatori, nel loro identificativo univoco internazionale. Il “motore di ricer-ca” dei dati genetici avra bisogno solo di tali dati per interrogare i database.In modo piu schematico possiamo quindi sintetizzare gli ingressi e le uscitedel modulo:

• Input : numero e relativi nomi dei marcatori da cercare; informazionidei parametri dell’header e footer del file .dat definite dall’utente, manon utilizzate durante l’elaborazione da questo modulo (l’utilita diinserirle qui risiede nella possibilita di creare immediatamente il file di.dat completo);

• Output : il file .dat finale, completo.

L’interazione dell’utente quindi si esaurisce nell’inserimento degli input;sara poi il motore interno al modulo a dialogare con i database. Tramitel’uso di diagrammi UML e possibile quindi procedere gradualmente allaprogettazione del modulo.

4La creazione del file .dat riguarda entrambi i programmi, ma solo GeneHunterpermette di inserire istruzioni aggiunte per customizzare l’analisi.

Page 62: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

4.2 Il modulo Ricerca Informazioni 56

Come prima cosa si deve creare il diagramma di sequenza, che permettedi visualizzare come gli attori coinvolti nel processo interagiscono e in chesequenze. Nella figura 4.4 viene presentato il sequence diagram.

Figura 4.4: Sequence Diagram per il modulo Recupera Informazioni.

Dopo l’inserimento del numero di marcatori e del loro codice da partedell’utente, l’applicazione effettua per ogni marcatore una query al databaseGDB, navigando fino alla pagina delle informazioni specifiche delle frequen-ze, ed estraendone i valori numerici per ogni allele contenuto. Successiva-mente interroga il database NCBI per le distanze, arrivando alla pagina diinteresse tramite navigazione per link, ed estrapolando la coppia di valori inpaia di basi del marcatore, ovvero dove inizia e dove termina nel cromosoma(la migliore unita di misura e l’utilizzo delle paia di basi, ma tale informazio-ne deve essere trasformata comunque in KcM (Kosambi centi-Morgan) perpoter essere correttamente processata dai programmi, come si vede nel filed’esempio sopra riportato alla penultima riga). Infine le informazioni vengo-no scritte sul file finale, creato al primo ciclo e modificato ad ogni iterazionedi marcatore; questo file e l’output atteso.

L’analisi dei database e della locazione specifica delle informazioni utilida raccogliere ha messo in luce importanti aspetti da tenere in considerazionedurante l’implementazione, per esempio:

• i query engine hanno un riconoscimento di stringa case-sensitive, quin-di il marcatore deve essere inserito sempre in maiuscolo;

• le etichette nelle pagine variano in funzione dello specifico marcato-re e delle informazioni in possesso riguardo quest’ultimo, quindi dove

Page 63: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

4.2 Il modulo Ricerca Informazioni 57

mancano delle conoscenze su alcuni aspetti o semplicemente esistonodiverse categorie, le etichette dei link assumono diversa denominazio-ne;

• GDB ha una struttura di organizzazione della pagina in tag particolari:per esempio le informazioni delle frequenze si trovano all’interno deltag <pre>;

• per arrivare alle frequenze bisogna attraversare obbligatoriamente unpercorso di navigazione specifico: dal “genomic segment” si arriva allapagina “amplimer” per toccare la pagina “polimorphism” fino agli“allele sets” e alle frequenze;

• il database NCBI ha una impaginazione automatica molto precisa efacilmente interrogabile;

• esistono diverse denominazioni di distanze in paia di basi: quellaclassica e quella “Celera”, di queste si deve utilizzare quella classica.

Alla luce delle accortezze emerse dallo studio dei database a disposizionee possibile creare un diagramma di stato, che sintetizzi quello che l’applica-zione deve esattamente fare per ogni specifico passo. Tale flusso e presentatonelle due figure 4.5 e 4.6, in cui vengono rappresentati livelli di dettaglio di-versi: prima gli stati semplici di esecuzione, e successivamente i diagrammia granularita specifica per ogni passo, che permettono una futura traduzionein funzioni immediata.

Nella figura 4.6 vengono visualizzate all’interno di cornici con etichettele varie funzioni che sono state individuate con i relativi passi interni daeffettuare: in questo modo il programma main non dovra far altro che seguirele frecce dallo stato iniziale a quello finale invocando le funzioni che trova nelsuo percorso; tale flusso dovra essere ripetuto per ogni marcatore immesso,arrivando alla fine alla creazione del file .dat (chiaramente tale file nasceradall’append progressivo delle informazioni raccolte).

Page 64: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

4.2 Il modulo Ricerca Informazioni 58

Figura 4.5: State Diagram generale per il modulo Recupera Informazioni.

Page 65: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

4.2 Il modulo Ricerca Informazioni 59

Figura 4.6: State Diagram dettagliato per il Motore del modulo RicercaInformazioni.

Page 66: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

4.3 Il modulo Combinazione Alleli dei Marcatori 60

4.3 Il modulo Combinazione Alleli dei Marcatori

Il secondo aspetto fondamentale del lavoro di tesi e la creazione di una sca-tola di lancio dei programmi di linkage al fine di superare i limiti computa-zionali soprattutto dell’applicazione SLink, poiche la possibilita di scegliereun numero inferiore ad 8 come alleli per ogni marcatore rappresenta una no-tevole limitazione elaborativa5. La soluzione proposta prevede la creazionedi file di ingresso con un numero inferiore di alleli per ogni marcatore, inparticolare con una loro combinazione lineare, scegliendo di tagliare di voltain volta quelli posizionati alle estremita, come empiricamente viene tuttoraeffettuato dai biologi per poter sfruttare i dati di correlazione genetica tramarcatori e malattie.

L’obiettivo di questo modulo e la creazione di file .dat che siano com-binazioni lineari degli alleli dei marcatori inseriti in ingresso, e quindi laframmentazione del file .dat di tutti i marcatori in n file .dat per ogni mar-catore contenenti ciascuno un numero di alleli specificato dall’utente, e contutti i parametri precedentemente immessi dall’utente posizionati nel cor-retto formato. E’ inoltre importante sottolineare che serve un file .dat perogni singolo marcatore, come SLink necessita e come i biologi del laboratoriooperano, contenente quindi le informazioni di un marcatore con i rispettivialleli: in questo modo ogni marcatore deve essere processato singolarmentenell’elaborazione degli alleli e si devono creare m file .dat per ogni marca-tore, ove m rappresenta il numero di file creati come combinazione linearedegli alleli, secondo la logica scelta, e quindi la somma degli m file per ognimarcatore e n.

Rimane da definire che logica usare nella selezione degli alleli dei mar-catori e la loro quantita. Per quanto riguarda quest’ultimo aspetto la sceltamigliore e utilizzare 8 marcatori, poiche questo e il valore numerico limitedell’algoritmo Elston-Stewart anche se al fine di massimizzare la flessibilitae la customizzazione deve comunque essere possibile scegliere la cardinalitadella selezione degli alleli dei marcatori. Per quanto riguarda la logica dautilizzare si deve cercare di implementare il procedimento attualmente inuso in laboratorio, ovvero scegliere a alleli contigui, eliminando quelli alleestremita, per ogni blocco di a alleli fino all’ultimo. Tale logica rispecchiaperfettamente l’idea di base dei protocolli di trasmissione dati, ovvero losliding window : dati A alleli recuperati da GDB e disposti ordinatamente6,e data a la dimensione della finestra ovvero la quantita degli alleli che si

5La parola “soprattutto” indica che anche il secondo software che viene eseguito all’in-terno del programma creato ha dei limiti computazionali, come descritto in precedenza,ma che non rappresentano ad oggi un ostacolo effettivo per gli utilizzatori del laboratorio.

6Non interessa con quale logica di ordinamento, ma ai fini del protocollo e importan-te che siano gia in ordine; nel nostro caso l’ordine e stabilito dal database GDB: comesono inseriti all’interno del database (e quindi posizionati sul cromosoma all’interno delmarcatore) cosı vengono elaborati dall’applicazione.

Page 67: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

4.3 Il modulo Combinazione Alleli dei Marcatori 61

vogliono selezionare per volta, elaboro a alleli alla volta in A partendo dalprimo e, facendo scorrere la finestra di una posizione fino all’allele in posi-zione A−a, ripeto l’elaborazione di scrittura del file .dat con tali nuovi dati,per ogni marcatore. In pratica la logica si sintetizza in questi punti:

◦ Per ogni marcatore immesso dall’utente, do:

• acquisisci il numero A di alleli in ingresso, e la dimensionedella finestra desiderata a;

• se a � A allora

◦ crea il file con i valori di frequenze degli alleli trovati inGDB;

• altrimenti (a > A)

◦ dall’allele 1 all’allele in posizione A − a

• seleziona a alleli contigui• crea il file .dat con queste informazioni• scorri in avanti di una posizione la finestra di

dimensione a

◦ termina.

Al fine di meglio comprendere come viene regolata la logica sliding window,e quindi come scorrere in avanti la finestra viene presentata la figura 4.7 incui si mostra un esempio del procedimento su dieci alleli in un marcatore:partendo dal primo allele, si seleziona la prima finestra di dimensione pre-fissata 8, e ad ogni esecuzione si avanza di un allele per volta scorrendo lafinestra rigidamente di una posizione.

Gli ingressi di questo modulo sono la lista dei marcatori e la specificazionedella dimensione della finestra, mentre le uscite sono i molteplici file .dat;la motivazione della lista dei marcatori e che presa la lista, ne richiamoin ordine di marcatori i rispettivi alleli recuperati. La quantita dei file.dat generali (escludendo quello che accorpa tutti i marcatori poiche vienesempre generato) che si creeranno varia in funzione del numero di alleliche ciascun marcatore possiede, per questo e possibile stabilire un range:avendo a disposizione m marcatori, il numero massimo teorico di file nellalogica sliding window e m · (A− (a− 1)), mentre ovviamente il minimo e 0.Ora che gli input e gli output son stati specificati, ed e stata descritta lalogica dell’elaborazione e possibile comporre il diagramma di stato, come lafigura 4.8 propone.

Page 68: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

4.4 Il modulo Esecuzione 62

Figura 4.7: Un esempio di meccanismo sliding window.

4.4 Il modulo Esecuzione

Il modulo di Esecuzione ha il compito di lanciare i software GeneHunter eSLink con in ingresso i file creati e i pedigree. Parallelamente alla progetta-zione del modulo e utile accennare a come praticamente lavorano i software,a livello di input, output, e comandi interni, soprattutto quelli che dovrannoessere utilizzati dal modulo.

I risultati di ogni lancio vengono inseriti dall’applicazione all’interno diuna nuova cartella etichettata con la data odierna, nel formato ggMeseaaaa,garantendo all’utente l’ordine dei file creati e il facile loro recupero cronolo-gico.

GeneHunter nella versione 1.2 per piattaforma Windows MS-Dos, hauna modalita di esecuzione a riga di comando: una volta avviato l’eseguibilequindi si specificano le istruzioni da utilizzare, modificando i parametri dicalcolo del lod-score. E’ possibile creare un file unico che contiene tali istru-zioni, ciascuna su una riga, per eseguire tutto il necessario gia impostato inun’istruzione unica con il comando run; il programma puo anche accettare iningresso una pipe di standard input. Queste ultime due caratteristiche sonoalla base della progettazione della parte di lancio di GeneHunter all’internodel programma RightLinkS.

La strutturazione del file unico da eseguire come pipe di standard input,che verra chiamato RUN_gh.in, prevede una serie di comandi gia impostati,che l’utente se lo desidera puo poi cambiare e rieseguire; di questi parametridiamo per completezza una semplice descrizione:

Page 69: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

4.4 Il modulo Esecuzione 63

Figura 4.8: State Diagram del modulo Combinazione Marcatori.

• photo ha l’effetto di creare un file di standard output dalle istruzionieseguite internamente, e quindi e il file su cui verranno indicati i ri-sultati dell’esecuzione e che dovra essere visionato dall’utente; il nomedi tale file in default dato e OUT_gh.txt, localizzato nella cartella deirisultati con nome della data odierna;

• haplotype (on/off) permette di attivare o disattivare il comando diricostruzione degli aplotipi, con relativa creazione di un grafico .ps;

• count recs (on/off) esegue il conteggio delle ricombinazioni tra gene-razioni;

Page 70: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

4.4 Il modulo Esecuzione 64

• load markers e il comando di caricamento dei marcatori nella strut-tura dati interna di GeneHunter;

• scan pedigree permette di avviare l’analisi del lod score nella fami-glia (pedigree) selezionata con i marcatori sopra specificati.

L’applicazione deve quindi dare la possibilita all’utente di considerare questiparametri, ed altri non descritti, ed includerli nell’elaborazione; in tale sensoquindi al momento dell’esecuzione di GeneHunter dall’interfaccia dell’appli-cazione deve essere creato il file delle istruzioni RUN_gh.in con tutti i valoriimportati dalle preferenze dell’utilizzatore, e deve essere alla fine possibilenon solo vedere l’output dell’esecuzione di GeneHunter (OUT_gh.txt), maanche il file di istruzioni per poterlo modificare a piacere ed eventualmenterieseguire.

L’esecuzione di GeneHunter necessita di particolari attenzioni, tra cui:(1) i file dei marcatori e del pedigree devono essere localizzati nella stessacartella dell’eseguibile, (2) e possibile strutturare un file di istruzioni, mail formato dei percorsi dei file deve avere lo slash di tipo /, al contrario diquanto avviene per la shell MS-Dos.

Per superare la prima difficolta e necessario copiare il file dei marcato-ri e del pedigree nella cartella del software, posizionata staticamente allostesso livello dell’interfaccia di accesso. Il flusso di operazioni quindi si puosintetizzare come segue:

• accedi alla cartella dell’eseguibile del software Genehuter, chiamatagh;

• acquisisci il percorso completo dei file dei marcatori e del pedigree;

• copia file marcatori nella cartella gh dalla posizione data;

• copia in gh il file del pedigree dalla posizione passata;

• crea il file di istruzioni (chiamato solitamente con il prefisso run) nellacartella gh; i file di output del software devono comunque essere scrittinella cartella dei risultati odierni quindi all’interno del file run si devefar riferimento alla cartella specifica nel formato corretto, esempio:../<data>;

• crea il file .bat nella directory allo stesso livello dell’interfaccia diaccesso.

Al fine di mantenere coerenza nell’implementazione e una maggiore por-tabilita permettendo all’interfaccia di rimanere unicamente un contenitoredi lancio, anche l’esecuzione di GeneHunter e avviata sfruttando WebL.

SLink e un pacchetto di software, che comprende quattro programmi(SLink.exe, Unknown.exe, Msim.exe, ed Elodhet.exe), di cui vengono usati

Page 71: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

4.4 Il modulo Esecuzione 65

i primi tre per il calcolo del lod-score. Ognuno di essi svolge una specificafunzione nel calcolo e nella modica dei file, che qui non verra discussa. I filedi output che contengono i risultati vengono staticamente etichettati come“outfile.dat” e “msim.dat”; saranno questi ultimi ad essere estratti, copiatie visionati dall’utente tramite RightLinkS. Nella figura 4.9 viene presenta-to il flusso di elaborazione di SLink, con i file di ingresso all’applicazione(“simdata.dat” e “simped.dat”) contenenti rispettivamente i marcatori eil pedigree negli stessi formati richiesti da GeneHunter, e i file intermediprodotti durante i calcoli, per giungere infine agli output sopra enunciati.

Figura 4.9: Flusso di lavoro di SLink.

A differenza di GeneHunter, SLink non e a riga di comando, ma adesecuzione diretta, quindi il lancio dell’eseguibile (uno qualsiasi interni alpacchetto) richiede file standard e produce output standard. Inoltre nono-stante sia un pacchetto di eseguibili, questi devono essere lanciati ad uno aduno con i file di ingresso correttamente formattati; presumibilmente questascelta lascia all’utente la flessibilita di scegliere quando eseguire il prossi-mo programma nel flusso e controllarne facilmente gli output di ciascun

Page 72: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

4.5 Linguaggi di programmazione e infrastruttura 66

applicativo.La caratteristica di lancio diretto comporta limitazioni per l’utente sui

nomi da assegnare ai file e la loro localizzazione: infatti i file di ingressohanno nomi prestabiliti (per i marcatori e “simdata.dat”, per il pedigree e“simped.dat”) e devono essere disposti nella cartella dove si esegue SLink,allo stesso livello. Per questo ad ogni esecuzione bisogna copiare i file all’in-terno della cartella di SLink, e rinominarli correttamente; i risultati poi de-vono essere trasferiti all’esterno della cartella per evitare che lanci successivipossano sovrascrivere elaborazioni precedenti.

Come per GeneHunter, deve essere possibile eseguire SLink anche senzaaver eseguito la ricerca di informazioni automatiche. Per riuscire a lanciaresequenzialmente in modo automatico tutti i file dei marcatori trovati conla logica sliding window (dal singolo file a svariate decine) e il singolo filepedigree, la sequenza di operazioni da effettuare e:

• accedi alla cartella dell’eseguibile SLink, chiamata slink;

• acquisisci la cartella dove recuperare il/i file dei marcatori, e il prefissodel nome del file (per prefisso si identifica la prima parte del nome,senza le possibili etichettature finali con il nome del marcatore, edaltro), e il percorso intero comprensivo del nome del file del pedigree;

• per ogni file di marcatori,

◦ copia i file dei marcatori e del pedigree nella cartella slink,rinominandoli correttamente come simdata.dat e simped.dat;

◦ esegui Slink (quindi l’intero flusso di eseguibili, come da figura4.9);

◦ crea una cartella con la data odierna dei risultati, se non presente;

◦ copia nella cartella dei risultati i file di output outfile.date msim.dat, rinominandoli con il suffisso del file di lancio (sepresente, quindi se c’e piu di un file di marcatori).

4.5 Linguaggi di programmazione e infrastruttura

Per l’estrazione delle informazioni si e scelto di utilizzare il linguaggio di pro-grammazione WebL [59, 58], ideato e sviluppato dalla Compaq alla fine deglianni novanta e tuttora supportato7. WebL e stato studiato appositamenteper interfacciarsi con il web, ed ha una struttura particolarmente adatta alleelaborazioni delle pagine, al parsing. Inoltre e realizzato tramite una libre-ria .jar che garantisce la massima portabilita; una breve panoramica sara diseguito presentata. Queste motivazioni hanno indotto a privilegiare WebL

7Sito internet: http://www.hpl.hp.com/downloads/crl/webl/index.html.

Page 73: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

4.5 Linguaggi di programmazione e infrastruttura 67

a qualsiasi altro metodo di elaborazione delle pagine, quale per esempio unparsificatore creato ad hoc tramite Flex e Bison, che avrebbe necessitatouna programmazione in C, quindi meno agevole e flessibile per la rete.

4.5.1 WebL

WebL e un linguaggio creato appositamente per gestire ed elaborare docu-menti sul World Wide Web, non soltanto potendo appoggiarsi ai protocolliHTTP ed FTP ma anche ai tipi diversi di pagine come HTML, XML, ecc. Icomponenti principali del linguaggio sono i service combinators e il markupalgebra:

• i service combinator sono servizi che permettono di accedere in manie-ra piu sicura e flessibile alle risorse online, con la capacita di gestionedelle eccezioni;

• il markup algebra e un formalismo atto ad estrarre informazioni dallerisorse recuperate, con funzioni di individuazione di elementi, pattern,ricerche indirizzate, e funzioni di manipolazione e creazione dinamicadelle pagine.

Qui di seguito verranno riportate alcune delle caratteristiche principali chehanno contribuito notevolmente alla scelta di WebL come linguaggio imple-mentativo. Caratteristiche:

• WebL lavora ad alto livello, e imperativo, interpretato, a tipizzazionedinamica, multithread;

• WebL sfrutta i concetti ben noti dell’intelligenza artificiale di liste,insiemi, e anche oggetti

• gli operatori del linguaggio e i tipi di dati sono gli stessi dei classicilinguaggi C: integer, double, char, array, liste, metodi;

• i protocolli supportati includono HTTP, FTP, File, ed e possibileeseguire interrogazioni ai form delle pagine, consente la gestione deicookies, e dei file di definizione DTD e mime;

• WebL consente l’uso di espressioni regolari, nella formattazione Perl5,per estrarre informazioni dalle pagine, elementi, pieceset, o set;

• WebL puo importare moduli per la gestione di files (quindi scritturae lettura di file) e download in memoria delle pagine, e la gestioneconcorrente parallela dei job;

• WebL e completamente portabile poiche scritto in Java, quindi ogniprogramma puo essere lanciato da piattaforme Unix senza modificareil codice;

Page 74: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

4.5 Linguaggi di programmazione e infrastruttura 68

• il codice interno e aperto, contenuto nel file .jar, e quindi altamentecustomizzabile.

Service Combinators

GetURL(url, [. parametro1=val1, parametro2=val2, ... .])PostURL(url, [. parametro1=val1, parametro2=val2, ... .])

sono i due service combinator piu utilizzati; come suggerisce lo stesso no-me, la GetURL esegue una chiamata Get su HTTP, mentre la PostURL usail protocollo Post di HTTP. I parametri sono: url, indirizzo web della ri-sorsa, passato come stringa, mentre [. param1=val1, param2=v2 .] e unoggetto in cui sono memorizzati i parametri da passare come Get o Postnel protocollo, richiamando le funzioni del server. Entrambi ritornano unoggetto pagina che incapsula le risorse. Un esempio di come operano vie-ne riportato di seguito: volendo realizzare una interrogazione nel motoredi ricerca “Yahoo!”8 cercando le parole “genetic linkage” tramite il servicecombinator GetURL si avrebbe:

var pageYAHOO = GetURL("http://it.search.yahoo.com/search",[. p="genetic+linkage", fr="FP-tab-web-t340",

ei="UTF-8", meta="vl%3D" .]);

che come risultato da l’oggetto:

[. "URL" = "http://it.search.yahoo.com/search?p=genetic%2Blinkage&fr=FP-tab-web-t340&ei=UTF-8&meta=vl%253D","date" = "Mon, 21 Aug 2006 13:32:27 GMT","p3p" = "policyref="http://p3p.yahoo.com/w3c/p3p.xml",CP="CAO DSP COR CUR ADM DEV TAI PSA PSD IVAi IVDi CONi

TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY ONLUNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE GOV"",

"cache-control" = "private", "connection" = "close","content-type" = "text/html; charset=ISO-8859-1","set-cookie" = "B=15pcoql2ejdfb&b=3&s=45; expires=Tue,

02-Jun-2037 20:00:00 GMT; path=/; domain=.yahoo.com" .]

Una caratteristica interessante e la possibilita di eseguire in sequenza o pa-rallelo tali invocazioni, usando rispettivamente i caratteri ? e !, ed assegnaretermini di timeout (timeout) e di riconnessione (retry).

8Indirizzo web: http://www.yahoo.com .

Page 75: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

4.5 Linguaggi di programmazione e infrastruttura 69

Markup Algebra

La parte centrale del linguaggio e proprio il markup algebra, costituito daelementi specifici come piece, piece-set, pages, e tags, e di operatori su questiultimi. Il piece e una regione della pagina page, a cui si puo accedere tramitei tag poiche sono i delimitatori dello stesso piece, mentre il piece-set e uninsieme di piece all’interno della stessa pagina.

Uno degli aspetti piu importanti e la funzione di ricerca che recuperaelementi con tag specificati, pagine mediante espressioni regolari, segmentidi testo, o pattern. Tramite operatori come Elem, Pat (per i pattern), ePCData si filtrano parti di pagine e se ne selezionano altre. Inoltre sugli ele-menti recuperati e possibile eseguire comparazioni, operazioni insiemistiche(unione, differenza, intersezione, esclusione), operazioni di posizionamento(per esempio filtrare un elemento che precede un altro dato), di gerarchia(come inside, contain, ecc, nella stessa filosofia di X-path e X-query sufile xml), e altri ancora.

Inoltre sono disponibili moduli creati per la gestione di file, stringhe(con operazioni come splitting, ecc), cookies, java applications, servlet, checompletano le potenzialita del linguaggio. Ed infine e possibile sfruttare ilmultithreading per il lancio concorrente di WebL.

4.5.2 Infrastruttura e Interfaccia

L’idea portante e realizzare un software installabile ed eseguibile in locale, daogni postazione, con interfaccia grafica user-friendly; la soluzione di rilasciareuna versione con elaborazione remota potrebbe essere una futura estensione,soprattutto in una prospettiva di distribuzione open-source. In questo sensoquindi si e preferito pensare ad un software il piu possibile portabile, e facileda installare ed usare. Ovviamente diventa necessario avere una connessionead Internet attiva per sfruttare il modulo di data retrieval.

Per esigenze di laboratorio in cui sono presenti principalmente postazionicon sistema operativo Ms-Windows, si e pensato ad implementare una primainterfaccia per tale piattaforma, dalla versione 1998 in avanti.

Una soluzione pratica per progettare un software ready-to-run in moda-lita grafica e resa possibile sia tramite WebL, che ottimizza la portabilitae si occupa del motore di recupero informazioni, sia con Visual Basic, cheassolve alla funzione di leggera interfaccia grafica e lancio diretto dei motoriin WebL. La proprieta di essere un software non installabile e quindi solouna cartella da copiare nella cartella preferita (che si consiglia essere “C:Programmi”) permette notevole facilita d’uso; in questo modo i due softwareGeneHunter ed SLink sono gia forniti all’interno della cartella dell’applica-zione.

Per quanto riguarda l’affidabilita del programma questa e affidata aimotori interni in WebL: cosı facendo l’interfaccia diventa unicamente lo

Page 76: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

4.5 Linguaggi di programmazione e infrastruttura 70

strumento di esecuzione, in cui gli unici controlli da eseguire riguardanola completezza dei dati immessi e il loro formato.

Per quanto concerne la compatibilita invece tale interfaccia non puo es-sere sfruttata su tutte le piattaforme, ma per la facilita di realizzazionepermette un porting agevole verso sistemi Unix-like, lasciando inalterati icodici dei motori.

Page 77: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

Capitolo 5

Implementazione

L’implementazione dell’applicazione e stata sviluppata con un approcciobottom-up, affrontando nell’albero progettuale prima le “foglie” per poi risa-lire verso la “radice”. Infatti, similmente a come verranno presentate, sonostate realizzate prima le singole funzioni dei moduli, poi il flusso del main,ed infine il merge nel programma.

5.1 Il modulo Ricerca Informazioni

Il cuore di questo modulo e il motore di ricerca ed estrazione dati costruitoin WebL. Seguendo gli schemi UML degli stati progettati (4.6 e 4.4) e possi-bile arrivare ad una soluzione progressiva di implementazione, creando unafunzione per volta, e testandola per ogni tipo di marcatori. In questo casoquindi i test cases di funzione risultano essere composti dagli ingressi e dalleuscite nel flusso di lavoro, e da un set di marcatori che riesca a toccare ognipotenziale eccezione sollevabile (per esempio, come accennavamo in prece-denza, marcatori con assenza di informazioni, disposti su piu cromosomi,ecc). In sintesi ogni funzione dovra ricevere in ingresso gli output della fun-zione precedente e un insieme di marcatori eterogenei da processare, comequelli d’esempio nella tabella 5.1.

Verranno presentate le singole funzioni implementate, esaminando qualisono gli ingressi e le uscite, e la loro logica interna. In aggiunta allo schemaprogettato sono state implementate altre funzionalita di supporto all’utente,come la creazione di una cartella dei risultati, etichettata con la sigla delgiorno di esecuzione, in una locazione preferita scelta dall’utilizzatore, e ilsalvataggio come file di cronologia delle informazioni estratte sulle frequenzedai singoli marcatori (questi stessi dati verranno poi uniti a creare il file dioutput finale). Il main e l’ultima parte che viene presentata, e ripercorreesattamente il flusso progettato; al fine di una migliore comprensione dellefunzioni si ricorda che la mentalita con cui e stato affrontato il design dellefunzioni prevede che per ogni marcatore vengano estratte tutti i dati neces-

Page 78: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

5.1 Il modulo Ricerca Informazioni 72

Num. Id. Marcatore Descrizione1 D17S1872 cromosoma 17, con 14 alleli2 D17S1522 cromosoma 17, con mancata definizione

della popolazione nel set degli alleli3 D17S1319 cromosoma 17, con etichette

dei polimorfismi in GDB ambigue, eassenza informazioni alleliche

4 D17S933 cromosoma 17, in cui le etichettedei link in GDB sono ambigue

5 D10S208 cromosoma 10, con 9 alleli6 D10S1243 cromosoma 10, in cui sono assenti

informazioni sulle frequenze geniche in GDB

Tabella 5.1: Set di marcatori eterogenei per l’interrogazione dei database.

sari, sia frequenze che distanze, come visto nella figura 4.5, e quindi nellefunzioni di query, navigazione, ed estrazione informazioni si avra in ingres-so il singolo marcatore (in tipi di dato diversi a seconda della funzione); lacreazione finale del file invece raccogliera i dati memorizzati in un solo passo.

5.1.1 L’esecuzione delle Query

I database GDB e NCBI permettono fortunatamente di effettuare interro-gazioni automatiche. La realizzazione delle query avviene grazie all’utilizzodei service combinators GetURL e PostURL specificando i parametri del-l’interrogazione. Nel motore le query vengono chiamate due volte (per GDBed NCBI distintamente), ed in entrambi i casi e stata sfruttata la GetURLimmettendo l’indirizzo della cgi di interrogazione con i parametri di interessecome campi della funzione (oggetto chiamante). Nel caso del database GDBinfatti abbiamo la chiamata

var pageGDB = GetURL("http://www.gdb.org/gdb-bin/genera/genera//hgd/GenomicSegment?!action=query&displayName="+marcatore);

ove “marcatore” indica il codice del marcatore da ricercare, specificatoin lettere maiuscole. Similmente per NCBI abbiamo l’invocazione

var pageNCBI = GetURL("http://www.ncbi.nlm.nih.gov/mapview//map_search.cgi", [. taxid="9606", query=marcatore .]);

ma in questo caso e stato possibile sfruttare al meglio le caratteristichedel linguaggio WebL e del service combinator GetURL con la creazione del-lo spazio dei parametri dell’oggetto, specificando quindi [. taxid="9606",

Page 79: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

5.1 Il modulo Ricerca Informazioni 73

query=marcatore .] ove il taxid identifica il tipo di database che si utiliz-za, nel nostro caso quello dell’uomo chiamato “Homo sapiens (human) Build36” e con codice identificativo 9606.

L’associazione ad una variabile del risultato della query permette la suc-cessiva elaborazione dell’oggetto, infatti da una GetURL viene recuperatoun oggetto con diversi campi ben definiti tra cui URL, date, ecc, come mo-stra il codice d’esempio sottostante che riporta l’oggetto pageGDB creatodall’interrogazione a GDB con il primo marcatore citato nel set D17S1872:

[."URL" = "http://www.gdb.org/gdb-bin/genera/genera/

/hgd/GenomicSegment?!action=query&displayName=D17S1872","date" = "Sun, 20 Aug 2006 07:49:54 GMT","server"="Apache/2.0.53 (Unix) mod_perl/1.999.21 Perl/v5.8.3","connection" = "close","content-type" = "text/html; charset=ISO-8859-1".]

Accedendo al campo URL dell’oggetto ritornato e possibile recuperare l’interapagina di risposta della query e sottoporla alle fasi successive, la prima dellequali e la navigazione.

5.1.2 La navigazione

La navigazione tra le pagine estratte dai database presenta due approcci:nel primo caso e stato replicato il comportamento di un utente che sfogliale pagine online grazie al nome significativo delle etichette, nel secondo casosi e dovuto specificare il link da seguire perche le etichette dei collegamentipresentano problemi come ambiguita o inconsistenza dei nomi, nel senso checambiano a seconda delle informazioni in possesso sullo specifico marcatore,e quindi e stato necessario sviluppare una funzione flessibile a queste varia-zioni. Le due funzioni sotto presentate implementano entrambe le soluzioni,ove per il primo caso si usa la FollowLinkByLabel mentre nel secondo sisfrutta la NavigaFinoFrequenze. Il motivo del suffisso specifico “frequenze”indica proprio che la seconda alternativa e emersa solo nel database GDB,e non in NCBI.

Funzione FollowLinkByLabel

Logica. Obiettivo della funzione e seguire il link con etichetta specificatadal nome; in tal modo si vuole ricreare il comportamento dell’utente du-rante la navigazione, che segue le pagine grazie all’etichetta dei link e nonall’indirizzo puntato. Si noti che l’etichetta in questa pagina puo anche nonessere unica, ma bisognera specificare nel seguito quale collegamento usarenel caso di omonimia; in default viene preso il primo collegamento trovato,

Page 80: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

5.1 Il modulo Ricerca Informazioni 74

quindi l’associazione e statica; e sempre possibile estendere tale funzionecreando una lista di collegamenti rilevati, entro cui recuperare quello di in-teresse, ma in tal caso si necessitera dell’informazione del collegamento perscegliere, cosa che farebbe deviare dall’intenzione della funzione che vuole se-guire solo l’etichetta. Altre funzioni implementano la scelta via collegamentoipertestuale.

Input. Gli ingressi sono: la pagina come oggetto GetURL (tipo: oggettoGetURL), e l’etichetta da cercare (tipo: stringa).

Output. L’oggetto di uscita e la GetURL della pagina raggiunta tramitel’etichetta.

Codice. La variabile dest e una lista che contiene tutti gli elementi dellapagina parsata di tag <a>, trovati con la Element Search, in cui il testo in-terno, l’etichetta, contiene la stringa dell’ancoratext, recuperata attraversola Pattern Search. Di questa lista scelgo il primo elemento, e recupero inoutput il collegamento ipertestuale tramite il service combinator GetURL.

var FollowLinkByLabel = fun(page, ancoratext)var dest=(Elem(page,"a") contain Pat(page, ancoratext))[0];GetURL(dest.href);

end;//funzione followlinkbylabel

Funzione NavigaFinoFrequenze

Logica. Obiettivo della funzione e raggiungere la pagina delle frequenze inGDB. Data l’impossibilita nell’utilizzare la funzione FollowLinkByLabel nelsito GDB a causa delle variazioni dei link in nomi non predicibili a priori,si e dovuta strutturare una funzione apposita che elaborasse le pagine dellerisorse recuperate dalle query per giungere alla pagina di interesse conte-nente le informazioni sulle frequenze geniche, passando attraverso svariatepagine, come Amplimer, Polimorphism, Allele Sets. Per quanto sia studiataappositamente per l’utilizzo specifico in GDB, e facilmente customizzabile,poiche implementa la logica complementare rispetto alla FollowLinkByLa-bel, ovvero segue i link nelle pagine non dall’etichetta ma selezionando ilcollegamento giusto in base al contesto della pagina attuale: per esempio,sapendo che i passaggi tra le pagine sono nell’ordine sopra citato, quando ilmotore si trova nella pagina Amplimer sa che deve cercare il collegamentoalla pagina Polimorphism. Si noti che in tale ragionamento, come il test setdei marcatori evidenzia nella sezione 5.1, possono esistere sia collegamentiche etichette ambigue, con piu collegamenti per uno stesso tipo di risorsa,

Page 81: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

5.1 Il modulo Ricerca Informazioni 75

ma il motore e flessibile perche crea una lista con tali riferimenti di cui il pri-mo elemento e quello che punta alla risorsa di nostro interesse, dimostrandoquindi flessibilita e robustezza ai cambiamenti di pagina.

Input. L’unico ingresso e il marcatore, espresso come stringa, e inserito inmaiuscolo, a causa della caratteristica case-sensitive negli input del database;tale controllo verra automatizzato nel main, senza deviare l’obiettivo dellafunzione.

Output. L’uscita e la pagina delle frequenze come oggetto GetURL.

Codice. Il codice si compone di piu parti innestate, tra cui funzioni spe-cifiche di supporto, e funzioni di navigazione contestuale alla pagina asse-gnata: nel primo caso rientrano le funzioni FollowLinkByLabelStarting eEstraiCodiceGDBMarcatore, mentre nel secondo le funzioni EstraiUrlDaHo-me, EstraiUrlDaAmplimer, EstraiUrlDaPolymorphism, e EstraiUrlDaAllele-Sets. La FollowLinkByLabelStarting=fun(page, testo) risponde all’e-sigenza di navigare nella pagina non attraverso le etichette ma tramite laspecificazione di una parte del link ipertestuale, in particolare che inizi conla stringa in ingresso chiamata testo. Di per se questa costituisce il cuo-re della funzione, e infatti verra invocata dal main per navigare attraversole pagine contestualizzate tramite le funzioni EstraiUrlDaHome=fun(page),EstraiUrlDaAmplimer=fun(page), EstraiUrlDaPolymorphism=fun(page),e EstraiUrlDaAlleleSets=fun(page), che hanno come obiettivo l’estrazio-ne del link alla pagina successiva. Nel main, dopo aver estratto il codice iden-tificativo usato da GDB per il marcatore con la EstraiCodiceGDBMarcatore=fun(linkAmp), si procede page-by-page navigando in sequenza grazie allefunzioni sopra citate, estraendo alla fine l’oggetto GetURL della pagina dellefrequenze.

5.1.3 L’estrazione delle informazioni

L’estrazione delle informazioni dalle pagine deve adattarsi ai due casi di datida recuperare, non tanto perche essi siano diversi in formato (le frequenzesolitamente sono reali mentre le distanze interi), ma per la disomogeneitadelle pagine da parsare nei due diversi database. Questo costringe a crearedue distinte funzioni customizzate per il caso specifico, come anche lo schemamodellato nella figura 4.6 mette in luce.

Funzione EstraiInfoFreqDa

Logica. Obiettivo della funzione e parsare la pagina delle frequenze in in-gresso e ricavarne le informazioni delle frequenze. Il parsing mette in luceche tali dati si trovano nei tag <pre> della pagina, ma collocati in modo

Page 82: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

5.1 Il modulo Ricerca Informazioni 76

disordinato, non all’interno di altri tag tabulativi (come tabelle, o altro) macome testo. Si sottolinea che tale struttura non e quella vista dal browser,ma recuperata da WebL: infatti ogni browser vede ed analizza i dati nellapagina all’interno di una tabella, ma cio senza ragione apparente, non av-viene con WebL; al contrario e con il database NCBI ove tutte le strutturesono viste allo stesso modo del browser. Questo ha costretto all’utilizzodella funzione di built-in PCData, che permette di recuperare il testo dellasezione o pieceset di interesse, che verra successivamente parsato per racco-gliere i dati numerici strettamente necessari, memorizzati anche in un file dicronologia nel disco fisso. Importante nota nella logica: se le informazionidelle frequenze sono assenti nel file viene scritta una riga di errore con va-lori di frequenza assurdi (ovvero 99.999), affinche l’utente possa facilmentelocalizzare il punto d’errore. Una funzionalita aggiunta utile e la somma deivalori delle frequenze scritta alla fine della riga nel file.

Input. Si presentano molteplici ingressi poiche in tale funzione e stato pen-sato anche di raccogliere in file statici per ogni marcatore i dati recuperati, equindi oltre all’id del marcatore (di tipo stringa) e la pagina delle frequenze(di tipo GetURL) si immettono anche il direttorio dove si desidera salvare ilfile di memoria (il percorso interno al proprio computer, come stringa) e ilnome del file di memoria (di tipo stringa): per quest’ultimo ingresso si notache non e l’utente a specificarlo, ma l’applicazione interna, ove di default estato scelto il nome di tipo “MarkerFreqsInfo <marcatore>.txt”.

Output. L’output e la scrittura corretta dei file in memoria, con la giustaformattazione allineata come richiesto dal tipo di file .dat.

Codice. Il codice si puo suddividere in quattro sezioni: nella prima si re-cupera il pieceset contenente il tag <pre>, cosa che viene fatta richiamandouna funzione al fine di rendere flessibile ed estendibile il programma nel casocambiasse il tag di contenimento dei dati allelici, nella seconda viene effet-tuata una ricerca sul pieceset dei valori numerici tramite parsing attraversouna espressione regolare specifica, nella terza si memorizzano le informazio-ni nel corretto formato nel singolo file del marcatore, mentre nell’ultima sieffettua la somma delle frequenze e il relativo controllo d’errore (nel casosuperi una soglia fissata si assume un errore nei dati).La funzione var ExtractAllObj=fun(page, tag) implementa la prima se-zione, e tramite la successiva invocazione con il parametro tag = pre siottiene il pieceset delle frequenze: l’output e una lista, e staticamente ilprimo elemento contiene i dati in forma testuale (rilevati con PCData) dellefrequenze, input della seconda sezione. Nel caso di assenza di informazionialleliche, come si vede nella parte then del ciclo if la cui condizione e sulla

Page 83: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

5.1 Il modulo Ricerca Informazioni 77

dimensione del pieceset (nel caso sia un insieme vuoto e zero), viene scrittauna riga di errore nel file localizzabile con i valori assurdi 99.999.

var ExtractAllObj = fun(page, tag)var dest3 = Elem(page,tag); //e lista// ciclo sulla listavar j=0; // contatore, parte da 0, primo elem listavar strtutteinfo = "";if Size(dest3)==0 then

strtutteinfo = " 1 99.999 \n 2 99.999 \n";else

//ciclo contenuto testuale elementi estratti//[0]: e sempre staticam 1o oggetto della lista!every t in PCData(dest3[0]) do

strtutteinfo = strtutteinfo+Text(t);end;

end; //ifreturn strtutteinfo;

end; //function ExtractAllObj

L’espressione regolare sotto riportata sintetizza come viene effettuata la ri-cerca all’interno del testo recuperato, il cui formato e ricorrente: spazi,almeno uno, seguiti da un numero di al massimo due cifre (la numerazionedegli alleli in ordine da 1 a 10), seguiti da almeno un altro spazio, seguito dail numero reale (nel caso in cui si presentasse la formattazione del reale senzalo zero che precede il punto verrebbe comunque riconosciuto come numero,e successivamente aggiunto per coerenze e consistenza numerica).

var expressionereg ="([ ]+)([0-9]{1,2})([ ]+)(([0-9]{1,5})(([.][0-9]{1,7})?))([ ]+)";

L’espressione regolare in EBNF ha una forma simile a quanto riportato diseguito:

• EsprReg → (spazio+) int [int ] (spazio+) int5 [.int7] (spazio+)

• int → 0-9

• spazio → | tab

La terza sezione e una scrittura su file con scansione della lista di elementiestratta dall’espressione regolare, mentre la quarta sezione vede la correzioned’errore d’approssimazione riportato dal computer. Infatti nell’effettuare ilcalcolo delle frequenze dai dati estratti e necessario eseguire conversioni di

Page 84: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

5.1 Il modulo Ricerca Informazioni 78

tipo delle variabili, e in queste conversioni il computer oltre la settima cifradecimale riporta un errore di calcolo quasi sistematico, eliminato tagliandole cifre oltre la settima, per poi riconvertire il numero in stringa da scriverenel file; il codice sottostante richiama tale situazione:

var cerca = Str_Search(strinfo,expressionereg);

every c1 in cerca do// scrivo le info sul file con un controllo sul numerofrequenza = c1[4];// controllo consistenza inizio numero con 0. e non solo .if Str_StartsWith(frequenza,"[.]")==true then

frequenza = "0"+frequenza;end; // end ifsumoffreq = sumoffreq+ToReal(frequenza);//scrivo le informazioni delle frequenze nel fileFiles_AppendToFile(filefreq,frequenza+" ");

end; // end everyvar strsumfreq = ToString(sumoffreq);Print("\n\tLa somma delle frequenze e (reale in stringa, con

errore di approssimazione): ",strsumfreq,"\n");var listshortrealfreq =

Str_Search(strsumfreq,‘((\d){1})[.]((\d){1,7})‘);

Infine per segnalare la presenza di un errore nelle frequenze, indotto dal-l’assenza delle informazioni alleliche nel database GDB, viene eseguito uncontrollo sulla somma delle frequenze, poi scritto anche su file:

var sommafreqesatta = (listshortrealfreq[0])[0]; //stringaif sumoffreq>50 then

Files_AppendToFile(filefreq," << ERROR IN GENE FREQSfor marker: "+marker+" [gdb.org does not have thefrequencies for this marker] ERROR");

elseFiles_AppendToFile(filefreq," << GENE FREQS for marker:

"+marker+" [sum of freqs is "+sommafreqesatta+"]");end;

Funzione EstraiInfoDistDa

Logica. Collegandosi all’indirizzo del database, effettua la navigazione fi-no alla pagina delle distanze in paia di basi, dove ricerca le informazionicon la stessa procedura che adotterebbe un utente: dall’analisi della paginasi evidenzia che tutte le informazioni utili da recuperare si situano all’in-terno di due elementi, etichettati rispettivamente “Mapping Information”

Page 85: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

5.1 Il modulo Ricerca Informazioni 79

ed “Electronic PCR results”. La omogeneita nella struttura delle pagine inNCBI permette quindi di localizzare agevolmente la regione dati con lo stes-so approccio utente e senza commettere errori. Le informazioni recuperatesono ancora da elaborare per estrarne i valori giusti, ovvero quelli in unitaclassica e non “celera”; tali dati si trovano staticamente in una parte deltesto recuperato, quindi parsando esattamente quella regione si estraggonoi numeri dei due estremi del marcatore.

Input. L’unico ingresso e il marcatore in stringa.

Output. Crea una lista contenente i due valori in paia di basi (ciascunodi tipo stringa) dell’inizio e della fine del marcatore (estremita); in questomodo ciclando per ogni marcatore e possibile nel main ottenere una matricedi valori con i dati degli estremi.

Codice. L’implementazione della funzione vede una divisione naturale indue zone: nella prima si effettua il recupero della tabella delle distanzegeniche, nella seconda si estraggono tali dati e si inseriscono in una lista didue elementi.La prima zona di codice seleziona la tabella nei confini degli elementi “Map-ping Information”e “Electronic PCR results”, per poi localizzare nella ta-bella delle distanze i valori corretti nella unita classica (non Celera).

// seleziona la tabella delle distanze nei confinivar Unists = GetURL(paginaUnists.URL);var nometabella = "Mapping Information";var nometabelladopo = "Electronic PCR results";var zonainfo = Elem(Unists,"table") directlyafter

((Elem(Unists,"table") containPat(Unists,nometabella))

directlybefore (Elem(Unists,"table")contain Pat(Unists,nometabelladopo)));

// seleziona riga 4 colonna 2, classic unitsvar selriga=[. .]; var selcol=[. .];selriga = (Elem(Unists,"tr") inside zonainfo)[4];selcol = (Elem(Unists,"td") inside selriga)[2];

La seconda zona elabora il testo della cella nella tabella, per estrarne ivalori numerici: il procedimento vede dapprima l’utilizzo di una espressioneregolare per cercare i valori nel formato dato (numero intero, delimitatore,numero intero), e successivamente la suddivisione della stringa recuperata(in particolare quella esatta dei numeri, che si localizza nella prima posizionedel primo oggetto nella lista) tramite la Split nei due numeri (di tipo ancorastringa). Infine la funzione esegue il return dell’output.

Page 86: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

5.1 Il modulo Ricerca Informazioni 80

// crea una lista con i due valori in bpvar listadist = Str_Search(Text(selcol),‘((\d)+)[-]((\d)+)‘);// separa i due valori, creando una listavar splitdist = Str_Split((listadist[0])[0],"-");return splitdist;

5.1.4 La creazione del file .dat

La creazione del file .dat avviene integralmente in unico momento richiaman-do diverse funzioni. Tranne la funzione EseguiMergeFrequenze che vieneinvocata per ogni marcatore ed esegue la creazione di un file provvisorio(o l’append nel caso sia gia presente), tutte le altre vengono chiamate unasola volta nel main: CreaFileDat e il cuore del merge dei parametri dascrivere nel file (sia quelli recuperati che quelli immessi dall’utente), men-tre ElaboraMatriceDist ha lo scopo di calcolare le distanze tra marcatorinell’ordine inserito.

Funzione EseguiMergeFrequenze

Logica. Obiettivo della funzione e recuperare i singoli file delle frequenzedei marcatori creati nel loop, caricare in memoria il loro contenuto e creare(o eseguire l’append se gia esistente) il file temporaneo “MarkersFrequen-cies.txt” inserendovi le informazioni nel corretto formato del file di output.dat.

Input. L’input e il marcatore, come stringa, in quanto la funzione vienechiamata per ogni marcatore; la directory in cui risiedono i singoli file deimarcatori e in cui verra anche scritto il file temporaneo; il nome da assegnareal file temporaneo (in default e “MarkersFrequencies.txt”, per cambiarlobisogna modificare anche la funzione CreaFileDat nel punto in cui lo cercanella cartella).

Output. Creazione del file “MarkersFrequencies.txt”; bisogna fare atten-zione ad un passaggio delicato: tale file deve essere cancellato (ecco perchechiamato temporaneo) all’uscita dell’applicazione, altrimenti ad ogni lan-cio (effettuato a breve distanza o comunque con dati gia esistenti) il filetemporaneo non verra sovrascritto, ma gli saranno accodati con l’append idati dei marcatori cercati nel nuovo avvio, creando inconsistenza nella fu-tura creazione del file .dat causata dai dati aggiunti, e quindi errati. Talecancellazione e affidata al main, nelle istruzioni conclusive.

Funzione ElaboraMatriceDist

Logica. Il nome suggerisce lo scopo della funzione: presa in ingresso lamatrice delle distanze, ricordando che la funzione EstraiInfoDistDa ritorna

Page 87: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

5.1 Il modulo Ricerca Informazioni 81

una lista di due valori assimilabile ad un vettore di distanze e anticipandoche nel main tale vettore per ogni marcatore sara incapsulato in un’altralista creando una matrice di dimensione (marcatori,2), viene implementatala logica di calcolo delle distanze tramite differenza tra il punto iniziale delmarcatore i−esimo e quello iniziale del marcatore i+1−esimo; ovviamente leestremita saranno trattate in questo modo: il primo marcatore viene usatocome punto di riferimento, quindi posto a 0.0, mentre l’ultimo non rientranel calcolo in quanto non ha l’elemento i + 1.

Input. L’unico ingresso e la matrice dei marcatori.

Output. In quanto lo scopo finale e la creazione di una stringa da inserirenel file .dat, l’output e proprio la stringa delle distanze.

Codice. Il codice non presenta particolari punti rilevanti, ma si preferisceriportare l’istruzione del calcolo nel caso si volesse cambiare la logica internadi elaborazione.

var distanze="0.000"; // estremo iniziale// contatorivar m=0; var valoretemp=0; var deltacm=0.0;// ciclo di scansione lista ed elaborazione, fino al penultimowhile m < Size(matrice)-1 do

valoretemp = ToInt((matrice[m+1])[0])-ToInt((matrice[m])[0]);// trasformo in cM: divido l’intero bp per 1.000.000deltacm = valoretemp/1000000;// aggiungo al vettore stringa delle distanze valore trovatodistanze=distanze+" "+ToString(deltacm);m = m+1;

end; //while

Funzione CreaFileDat

Logica. Acquisiti i parametri definiti dall’utente e quelli recuperati dal-l’applicazione, la funzione crea il file di output finale nel corretto formato,controllando l’estensione del file.

Input. L’header della funzione esplicita quanti ingressi vengono specifica-ti; in ordine di immissione gli input sono: (1) la directory in cui scrivere ilfile, stringa, (2) il nome del file dove prendere i valori delle frequenze deimarcatori considerati, (3) la stringa delle distanze, (4) il nome da assegnareal file .dat, stringa, (5) il numero dei marcatori in ingresso, (6) la lista delleclassi di penetranza, (7) la lista dei parametri delle prime, e (8) del footer.

Page 88: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

5.1 Il modulo Ricerca Informazioni 82

Output. Ovviamente l’output e il file .dat creato.

5.1.5 Funzioni di supporto

Le funzioni di supporto servono per migliorare l’efficienza dell’applicazione eaggiungere funzionalita di controllo, come nel caso della ControllaDirInse-rita, e di gestione interna, come avviene per la CreaCartellaData. No-nostante esistano altre funzioni di supporto nel codice del motore, comeCancellaFilesIn, non saranno prese in esame poiche di immediata com-prensione.

Funzione ControllaDirInserita

Logica. Il controllo della correttezza della stringa in ingresso rappresen-tante il percorso della directory serve per non rischiare errori nell’elabora-zione del motore al momento della creazione della cartella di lavoro e dei file.Infatti, al fine di rendere flessibile e portabile il piu possibile tale motore,e utile pensare che possano essere molteplici i formati in ingresso, usandodiverse inclinazioni dei separatori di cartelle (slash o backslash), singoli odoppi. Per evitare confusioni e mismatch, la stringa in ingresso viene rico-nosciuta nel formato (per inclinazione di slash e sua quantita) e trasformatain un formato standard: singolo slash. Un esempio e: dalla path directoryC:\Universitas\TESI\ alla stringa C:/Universitas/TESI/. Per realizzareil riconoscimento si utilizzano le espressioni regolari sulle stringhe.

Input. La stringa della directory nel formato originale.

Output. La stringa della directory nel formato standard.

Codice. Unico punto interessante da riportare nel codice e la parte delriconoscimento delle stringhe tramite espressioni regolari, sia nella parteiniziale, per acquisire la disposizione dei separatori e la loro quantita, chefinale, per validare che sia una directory o sia stato immesso per errore unpercorso che non finisce con gli slash. Nel codice tali riconoscimenti hannola seguente forma, rispettivamente per la parte iniziale e finale:

// er parte iniziale stringavar erdirstart = ‘(\w{1})[:]([/]){1,2}((\w)+)‘;// er parte finale stringavar erdirend=‘((\w)+)([/]){1,2}(((\w)|(\s\w)|(\S\w))+)‘

ove i simboli \W, \s e \S indicano in ordine “non carattere”, “spaziatura” e“non spaziatura”. La scrittura dell’espressione regolare in forma EBNF e:

Page 89: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

5.1 Il modulo Ricerca Informazioni 83

• StrStart → char : / [/] char+

• StrEnd → (char+) /[/] (char | spazio char | ∼(spazio) char)+

• char → a-z | A-Z

• spazio → | carriagereturn | tab

Funzione CreaCartellaData

Logica. Tale funzione crea una cartella di lavoro in cui vengono inserititutti i file da creare con etichetta uguale alla data dell’avvio del programma,nel formato gg//mese//aaaa, per esempio 17Aug2006. Per far cio si sfruttail service combinator GetURL nel campo date, richiamando un indirizzototalmente affidabile; nel programma il sito di appoggio per ricavare la datae Google (www.google.it), poiche storicamente e sempre stato attivo. Unavolta acceduti al campo date bisogna elaborare la stringa per estrarne ladata nel formato voluto, poiche la stringa contiene simboli non utilizzabilicome caratteri di directory, come “:”.

Input. In ingresso vuole la directory entro cui creare la nuova cartella:puo anche essere esterna alla cartella del programma.

Output. La creazione della nuova cartella nel formato sopra citato, con ilcambio del percorso di directory, dato che serve per i passaggi di parametriinterni tra le funzioni.

Codice. Operativamente dopo aver invocato la GetURL, bisogna accedereal campo date, che si presenta come "date" = "Sun, 20 Aug 2006 07:49::54 GMT"; l’implementazione utilizza la funzione Str_Split prima con se-paratore la virgola e poi con lo spazio, creando delle liste analizzabili emodellabili. Da queste liste si estraggono i campi con la data, mese ed an-no, per fonderli in una stringa che sara usata come etichetta della directorytramite la Files_Mkdir.

5.1.6 Il Main

La logica del main implementa esattamente il flusso di lavoro progettato,in cui gli ingressi sono tutti i parametri dell’header e footer del file .dat, ei marcatori. Inframezzati in queste stringhe di dati ci sono dei separatoriche permettono di individuare senza l’uso di espressioni regolari dove iniziala sezione dei marcatori, quella delle classi, e del footer. In quest’ottica ilprimo passo e ciclare sugli ingressi per recuperare il valore numerico di indice

Page 90: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

5.1 Il modulo Ricerca Informazioni 84

di inizio e fine della lista di marcatori e degli altri dati, per poi sfruttare lefunzioni sopra descritte arrivando all’output finale nel file .dat.

I parametri in ingresso ricalcano tutte le informazioni necessarie a Gene-hunter e Linkage per eseguire i loro calcoli, percio la cardinalita degli inpute 26 + |ClassiPenetranza| + |Marcatori|. I nomi qui riportati seguono isostantivi presenti nei file .dat come commenti ai parametri; l’ordine e: (1)directory in cui voler salvare le elaborazioni, (2) nome del file .dat da salva-re, (3) stringa inizio parametri header: “startheader”, (4) risk locus, (5) sexlinked, (6) program, (7) mutation locus, (8) mutation rate, (9) haplotypefrequencies, (10) affection, (11) number of alleles, (12) gene frequencies, (13)number of classes, (14) stringa inizio parametri classi: “startclass”, (15) va-lore classe 1, (16) valore classe 2, (17) valore classe 3, (18) opzionalmentealtri valori di classi, (18) stringa fine parametri classi: “endclass”, (19) strin-ga fine parametri header: “endheader”, (20 − 20 + |Marcatori|) marcatori,(+1) stringa inizio parametri footer: “startfooter”, (+1) sex difference, (+1)interference, (+1) recombination varied, (+1) increment, (+1) finishing va-lue, (+1) stringa fine parametri footer: “endfooter”1, (+1) dimensione dellafinestra (campo che sara usato nella funzione di riassortimento del modu-lo Combinazione Marcatori, come verra approfondito nella sezione relativa5.2).

L’output finale che il main produce e il file .dat completo di tutte leinformazioni inserite e recuperate.

Per quanto riguarda la procedura elaborativa l’unica parte che si riportaper evitare la ripetizione dello schema progettuale, in quanto viene imple-mentato dal main nello stesso ordine, e l’acquisizione dei valori di indice degliinput. Tale codice occupa le prime istruzioni ed e stata realizzata attraversoun ciclo while che percorre gli argomenti in ingresso, che sono visti tutticome stringhe. Infatti WebL incapsula tutti i parametri passati in una lista,chiamata ARGS, senza limitazioni trovate di memoria ne cardinalita. Perrecuperare i delimitatori inseriti si percorre la lista da 0 a Size(ARGS) cer-cando la stringa esatta in ARGS[indiceargomenti], ed assegnando il valoreintero ai vari indici da utilizzare successivamente.

Il controllo della stringa del marcatore, che sia tutta in maiuscolo, vie-ne effettuato dall’istruzione Str_ToUpperCase (ARGS[contatoreinput])che converte la stringa del singolo marcatore (assegnata ad una variabiletemporanea) in maiuscolo.

1Il numero 18 e ripetuto due volte non per errore ma per sottolineare l’opzionalita dellalista di classi di penetranze aggiuntive. Con la notazione “(+1)” si intende aggiungere allanumerazione variabile precedente una unita come indice d’ingresso.

Page 91: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

5.2 Il modulo Combinazione Marcatori 85

5.2 Il modulo Combinazione Marcatori

Anche questo modulo e stato implementato in WebL, poiche si e scelto diunirlo all’interno del motore, precedentemente descritto. La motivazionedi queste due scelte e basata sulla efficienza elaborativa: infatti inserirecome funzione interna al motore tale modulo permette di svolgere in unasola passata due dei passi progettati; sebbene possa sembrare una devia-zione dagli schemi UML presentati, l’implementazione della “CombinazioneMarcatori” viene richiamata nella parte finale del motore nella stessa logicaprogettuale, e i parametri del motore sono separati da quelli della funzio-ne chiamata RiduzioneAlleli. In quest’ultima considerazione ricade propriol’ultimo parametro della lista di ingressi al motore, ovvero il numero relativoalla dimensione della finestra, posizionato dopo il delimitatore endfooter,ultima stringa utile per il motore.

Le funzioni implementate sono due, di cui la prima e il cuore della logicacitata in progettazione: RiduciAlleli, e CreaFileDatRedo; nel main delmotore, non precedentemente accennato perche il riferimento corretto sitrova in questo modulo, invece e riportata l’invocazione alla prima funzione.

Funzione RiduciAlleli

Logica L’obiettivo della funzione RiduciAlleli rispecchia la logica diprogettazione, ovvero realizzare uno strumento capace di verificare il numerodi alleli presenti per ogni marcatore e creare un file specifico del marcatorecon una selezione di alleli, secondo la logica slinding window. Le strutturedati utilizzate sono matrici di marcatori, contenenti la lista dei marcatorinell’ordine immesso dall’utente, e matrici di alleli. Al fine di rispecchiarela cardinalita tra le due matrici nella dimensione dei marcatori, posti comerighe, e stato pensato di strutturare la matrice degli alleli, contenente le fre-quenze alleliche in questo modo: ogni riga corrisponde al singolo marcatore,e possiede un vettore, costituito al suo interno da almeno una finestra di di-mensione massima a, specificata dall’utente (8 in default, ovvero il numerolimite del programma). Concettualmente quindi la matrice si presenta nelloschema sottostante, a cui segue un esempio di realizzazione pratica.

• matrice → [ vettore+ ]

• vettore → finestra | [ finestra+ ]

• finestra → [ stringa frequenze ]

Nell’esempio della figura 5.1 si presenta una matrice di 5 marcatori edimensione della finestra a di 8 alleli, in cui il vettore in ciascuna riga e rap-

Page 92: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

5.2 Il modulo Combinazione Marcatori 86

Figura 5.1: Esempio di matrice con 5 marcatori, e finestra di 8 alleli.

presentato dal rettangolo arancione, al cui interno si visualizzano le singolefinestre, contenenti gli alleli nel range specificato.

La motivazione nell’utilizzo di una simile struttura dati risiede nella suaomogeneita con la matrice dei marcatori: in questo modo e facilmente pos-sibile associare ad ogni riga un marcatore, che poi nella singola colonna delvettore delle finestre puo specificare il numero di alleli frammentati nellepossibili finestre componibili su essi, nella logica slinding window.

Una volta definita la struttura dati da utilizzare si puo implementare lalogica di progettazione; in questo caso la funzione rispecchia pienamente lalogica studiata in fase di analisi, quindi per non tediare il lettore il codiceverra riportato in appendice (D), mentre segue una sua breve descrizione.

La parte di logica elaborativa piu importante da esplicitare e il trat-tamento delle frequenze alleliche. Caricata in ingresso la stringa delle fre-quenze dal file di database del singolo marcatore chiamato “MarkerFreq-sInfo <marker id>.txt”, si converte in lista la stringa eseguendo una splitsul carattere spaziatore. Se la dimensione della lista e inferiore o ugualealla dimensione della finestra scelta dall’utente allora si copia nel vettore lalista di alleli riconvertiti in stringa, creando la singola finestra, mentre sesuperiore allora si necessita del trattamento a sliding window: per tutte lepossibili finestre creabili (quindi al massimo A − (a − 1), con A numero dialleli presenti sul marcatore ed a dimensione della finestra) prendi a elementiconsecutivi ed inseriscili nel vettore come finestra singola. Il meccanismo discivolamento della finestra avviene all’interno di quest’ultimo ciclo, realizza-to con un while, non solo tramite l’indice intero di scansione, ma anche conl’operatore proprio del Lisp (usato nell’IA) Rest sulle liste: quindi avanzodell’indice di una posizione nella lista ma cancello dalla stessa lista l’elemen-to sorpassato. In questo modo riesco a shiftare rigidamente la finestra diuna posizione alla volta, per il numero corretto di posizioni.

Page 93: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

5.3 Il modulo Esecuzione 87

Input Gli input sono: (1) il percorso della attuale directory di esecuzione,come stringa, (2) la dimensione della finestra degli alleli, intero, (3) la listadei marcatori, come lista, (4) il nome prefisso del file di output come stringa,(5) le liste statiche di parametri definiti dall’utente, e infine (6) il numero dimarcatori coinvolti come intero; nel nostro caso tale ultimo valore e sempre1, e non e ancora configurabile, scelta giustificata dell’utilizzo esclusivo inlaboratorio di un solo marcatore per volta nell’esecuzione del software SLink.

Output Le uscite non ci sono poiche all’interno si richiama la funzioneCreaFileDatRedo, successivamente descritta, che si adopera alla creazionedei file .dat; quindi come uscite ci sono le stampe video di conferma delmonitoraggio dell’esecuzione.

Funzione CreaFileDatRedo

Il motivo per cui e stata creata una funzione diversa dalla CreaFileDat perquanto assolvano allo stesso scopo e che mentre quest’ultima elabora unalista di frequenze, nella CreaFileDatRedo si processa una stringa di frequen-ze; per quanto riguarda gli altri ingressi e uscite, e la logica di elaborazione,si differisce poco dalla prima, motivo per cui non viene trattata oltre. Unicanota e proprio nell’output, ove si presenta il file (o i file) .dat con gli alleliricombinati, nel formato <nomefile>_<id_marcatore>_<#finestra>.dat,in cui il suffisso indica il numero della finestra.

Un quadro generico di interazione ed esecuzione di tutte le funzioni e fornitodalla figura 5.2 in cui si rappresentano tutte le funzioni con le rispettivechiamate: le frecce continue tra stati, quadrati con angoli smussati, rap-presentano il flusso del programma mentre quelle tratteggiate le chiamatedi funzione o blocco di funzioni; all’interno dei quadrati vi sono gli oggettiche producono le funzioni e di cui si servono, ove con temp si identifica unoggetto temporaneo mentre con memo uno di memorizzazione fissa.

5.3 Il modulo Esecuzione

Anche l’esecuzione dei software e avviata sfruttando WebL: un’interfacciache esegua i codici WebL in questo modo si riduce ad una semplice mascheradi inserimento parametri, e lancio di eseguibili.

L’implementazione del lancio di Genehunter ed SLink segue il flusso stu-diato in fase di progettazione, e il codice non si discosta molto da quantovisto finora nelle precedenti funzioni; per questo non sara riportato. Il sor-gente in WebL si preoccupa di creare la cartella dei risultati, controllaretutti gli input immessi, sia come percorso che come esistenza, e generare unfile di esecuzione per la piattaforma in uso; in questo caso la piattaformae MS-Dos quindi verra creato un file batch con all’interno le istruzioni da

Page 94: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

5.3 Il modulo Esecuzione 88

Figura 5.2: State Diagram delle funzioni in WebL, primo e secondo modulo.

Page 95: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

5.4 L’interfaccia grafica 89

eseguire. La motivazione del file batch e che i due software non possonoessere lanciati se non dalla cartella in cui si trovano, poiche non riescono adacquisire i file di input dall’esterno della loro localizzazione (come accennatoin progettazione), e quindi la soluzione e creare un file batch in cui prima siaccede alla directory di lancio, e poi si eseguono i due applicativi con i ri-spettivi input. In questo modo gli output dei software possono essere scrittinella stessa cartella dell’eseguibile, per poi essere copiati nei risultati.

5.4 L’interfaccia grafica

L’interfaccia grafica e stata ideata con l’ottica che gli utilizzatori sono biolo-gi, o quantomeno persone con diversa formazione dall’informatica, e quindiil piu possibile user-friendly. Senza entrare nel merito della progettazionesecondo gli studi di human-computer interaction poiche non e questo il focusdell’argomento, verra descritta in linea generale la struttura dell’interfacciacon le rispettive motivazioni.

L’interfaccia grafica segue la suddivisione dei moduli (ove i primi duesono accorpati perche riguardano lo stesso ambito), e presenta due etichetteche permettono di spostarsi facilmente nel modulo desiderato: il moduloRicerca Informazioni e quello Combinazione Marcatori appartengono allaprima etichetta nominata “Recupera Informazioni e Crea File Marcatori”,mentre il modulo Esecuzione e inserito all’interno dell’etichetta “Lancia Ge-neHunter ed SLink”. In questo modo e stata realizzata una suddivisionetematica, che permette all’utente di affacciarsi alla parte che desidera ese-guire in base all’obiettivo per cui ha avviato l’applicazione. Ovviamente laprima etichetta che si presenta all’utente e quella che realizza il focus dellametodologia implementata, ovvero la ricerca delle informazioni e la creazionedi file di marcatori come combinazione lineari dei rispettivi alleli.Le figure 5.3 e 5.4 mostrano l’interfaccia grafica nella sua interezza: la primacon il modulo di ricerca informazioni e creazione dei file .dat, la seconda ilmodulo di esecuzione dei software.

Come e visibile dalla seconda maschera, figura 5.4, i software di analisi dilinkage possono essere lanciati anche senza aver avviato la ricerca automaticadelle informazioni, prima etichetta, ma tramite file in locale.

Per facilitare l’immissione dei dati all’interno dei campi di inserimentoparametri, sono state riportate le istruzioni, e vengono caricati in default deivalori d’esempio. Inoltre per quanto riguarda la ricerca delle informazioni ela creazione dei file di marcatori la stessa disposizione dei riquadri testualie stata strutturata come verra scritta nel file, nel formato standard.

L’obiettivo del controllo dei file di output e stato realizzato con i pulsantidi apertura degli stessi file: in questo modo i file dei marcatori, per quantoriguarda la prima maschera, e i file di run e di output di GeneHutner per la

Page 96: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

5.4 L’interfaccia grafica 90

seconda schermata, possono essere non solo controllati dall’utente ma anchecorretti e salvati, ed eventualmente rieseguite le applicazioni.

Infine sono stati predisposti dei controlli interni all’interfaccia per il cor-retto e completo inserimento dei dati nei campi2 e l’abilitazione dei pulsantiin sequenza a eventi di elaborazione: per quanto riguarda il primo dei dueaspetti, alla pressione dei tasti di esecuzione, viene effettuato il controllosulla presenza del testo dei campi per non lasciare valori nulli, mentre ilsecondo aspetto emerge durante la fase di controllo dei risultati, in cui ipulsanti di apertura dei file devono essere attivati solo dopo la creazione diquesti ultimi, e previa pressione dell’esecuzione dei software o della ricercadelle informazioni.

2Si ricorda che sara poi il codice del motore in WebL ed eseguire controlli interni sullestringhe inserite, quindi a livello di interfaccia e necessario solo controllare che tutti icampi siano completi.

Page 97: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

5.4 L’interfaccia grafica 91

Figura 5.3: Interfaccia grafica, sezione Ricerca Informazioni e Creazione FileMarcatori.

Page 98: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

5.4 L’interfaccia grafica 92

Figura 5.4: Interfaccia grafica, sezione Lancio GeneHunter ed SLink.

Page 99: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

Capitolo 6

Test e Validazione

Come si addice ad ogni ciclo software, bisogna verificare se il programmaRightLinkS esegue correttamente i sui compiti, e se i compiti che elabo-ra sono giusti, compiti assegnati rispettivamente alla fase di testing e divalidazione1.

In questa sezione verranno sviluppati ed eseguiti i test progettati nel ca-pitolo 4, suddivisi tematicamente, partendo dal test sulla famiglia campioneche prevede l’utilizzo di tutta l’applicazione, passando al test sui moduliseparatamente, prima la ricerca delle informazioni e la creazione dei file, esuccessivamente l’esecuzione di file esterni tramite l’interfaccia grafica deisoftware di analisi di linkage.

A conclusione del lavoro verra sintetizzata la fase di validazione, in cuisi concretizza l’apporto di RightLinkS nel lavoro sul linkage dei biologi.

6.1 Test eseguiti

6.1.1 Famiglia Campione

Per la famiglia campione e possibile eseguire il test di tutta l’applicazione,partendo dalla fase di data retrieval passando per la combinazione multialle-lica e arrivando al lancio applicativi. Ovviamente per poter svolgere l’ultimaparte di prova e necessario che sia stato creato il file del pedigree esternamen-te (operazione che non e possibile automatizzare perche bisogna raccoglieretutti i dati estratti dai campioni biologici di ogni individuo, che non sonopresenti in database, ma su fogli di carta stampati dai diversi macchinari).Il pedigree della famiglia e visibile nell’immagine 6.1. In questa immaginesono stati considerati tutti gli individui dell’albero genealogico, nonostantealla fine quelli che sono effettivamente disponibili siano 17 su 20; le personeescluse hanno la colorazione arancione. Come si nota, e presente l’aploti-

1La domanda originaria nota in lingua inglese infatti e: “Did the program do the workright? Did the program do the right work?”.

Page 100: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

6.1 Test eseguiti 94

pizzazione degli individui per i marcatori segnati lateralmente, e i settorievidenziati rappresentano le regioni in cui si potrebbero avere concatenazio-ni geniche, poiche i valori si mantengono uguali nelle persone. In particolarei settori evidenziati in verde rappresentano le regioni piu significative, poichesono comuni a tutti gli individui affetti. L’immagine presenta la ricostruzio-ne degli aplotipi per lettere, e non per numeri, per esigenze contingenti dellaboratorio; per chiarirne la conversione, ogni lettera rappresenta l’allele delsingolo marcatore ordinati in base al suo peso molecolare, quindi alla letteraA corrisponde il peso molecolare minore, ecc.

Figura 6.1: La famiglia campione aplotipizzata nella costruzione delpedigree, considerando tutti gli individui.

Recupero Informazioni e Creazione File

Test Domain. I marcatori da ricercare sono quelli proposti nella figura delpedigree gia elencati nella tabella 4.1. Data la presenza di molteplici alleliper ogni marcatore, l’obiettivo e il recupero corretto di tutte le informazionidi frequenze e distanze geniche nel giusto ordine, e la creazione dei file deimarcatori, sia quello unico generico che quelli per ogni singolo marcatore

Page 101: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

6.1 Test eseguiti 95

(quantita di file creati pari a (A − (a − 1)), numero totale di combinazionilineari).

Test Report. Per quanto riguarda il data retrieval i dati sono stati rac-colti correttamente e stesi nella formattazione richiesta in circa 6.5 minuti(banda a 2 Mb/sec), e infatti il file ha la forma sottostante, in cui si notala presenza del campo aggiuntivo di somma nella parte dei commenti delsingolo marcatore.

9 0 0 5 << NO. OF LOCI, RISK LOCUS, SEXLINKED (IF 1), PROGRAM0 0.0 0.0 0 << MUT LOCUS, MUT RATE, HAPLOTYPE FREQUENCIES (IF 1)1 2 3 4 5 6 7 8 91 2 << AFFECTION, NO. OF ALLELES0.999990 0.000010 << GENE FREQUENCIES1 << NO. OF LIABILITY CLASSES0.0000 0.9990 1.0000 << PENETRANCES3 7 << ALLELE NUMBERS, NO. OF ALLELES D17S9430.0417 0.3958 0.0208 0.1458 0.0625 0.2917 0.0417 << GENE FREQS

for marker: D17S943 [the sum of frequencies is 0.99]3 6 << ALLELE NUMBERS, NO. OF ALLELES D17S17950.4100 0.3000 0.0700 0.1100 0.0900 0.0200 << GENE FREQUENCIES

for marker: D17S1795 [the sum of frequencies is 1.0]3 9 << ALLELE NUMBERS, NO. OF ALLELES D17S5880.03 0.24 0.11 0.16 0.03 0.16 0.08 0.05 0.13 << GENE FREQS

for marker: D17S588 [the sum of frequencies is 0.9900000]3 7 << ALLELE NUMBERS, NO. OF ALLELES D17S13190.1000 0.2000 0.0200 0.0400 0.3600 0.2400 0.0400 << GENE FREQS

for marker: D17S1319 [the sum of frequencies is 1.0]3 4 << ALLELE NUMBERS, NO. OF ALLELES D17S18690.6200 0.2500 0.1300 0.0000 << GENE FREQUENCIES

for marker: D17S1869 [the sum of frequencies is 1.0]3 9 << ALLELE NUMBERS, NO. OF ALLELES D17S7870.12 0.32 0.17 0.01 0.17 0.01 0.03 0.05 0.07 << GENE FREQS

for marker: D17S787 [the sum of frequencies is 0.9500000]3 8 << ALLELE NUMBERS, NO. OF ALLELES D17S18530.00 0.25 0.16 0.14 0.14 0.05 0.23 0.02 << GENE FREQS

for marker: D17S1853 [the sum of frequencies is 0.9900000]3 7 << ALLELE NUMBERS, NO. OF ALLELES D17S9440.3750 0.0179 0.2500 0.1429 0.1071 0.0357 0.0714 << GENE FREQS

for marker: D17S944 [the sum of frequencies is 1.0]0 0 << SEX DIFFERENCE, INTERFERENCE (IF 1 OR 2)0.0 0.084636 0.290502 0.031199 0.292496 4.742893 2.302425 5.850531 0.10000 0.45000 << REC VARIED, INCREMENT, FINISHING VALUE

Page 102: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

6.1 Test eseguiti 96

Per quanto riguarda la fase di creazione dei file, la procedura e statacompletata correttamente, e infatti la tabella 6.1 sintetizza il numero di filecreati in funzione del numero degli alleli in ciascun marcatore e della logicasliding window. La dimensione della finestra e stata impostata ad 8, valorelimite del software.

# Marcatore #Alleli #File(8) CreatiAttesi: (A − (8 − 1))

1 D17S943 7 12 D17S1795 6 13 D17S588 9 24 D17S1319 7 15 D17S1869 4 16 D17S787 9 27 D17S1853 8 18 D17S944 7 1

Tabella 6.1: Numero di file attesi secondo la logica sliding window per ognimarcatore, con il valore di file creati.

Esecuzione GeneHunter e SLink

Test Domain. L’obiettivo di questo test e verificare che i software rie-scano a processare correttamente i file dei marcatori creati, validandone lacorretta formattazione. Il test prevede di lanciare sia GeneHunter che SLink,acquisendo il pedigree dall’esterno.

Test Report. L’esecuzione di Genehunter ha avuto successo: immessiparametri specifici interni, come il conteggio delle ricombinazioni, l’aploti-pizzazione attivata, ecc, e il percorso del pedigree, i risultati dell’esecuzionesono stati correttamente inseriti nella cartella apposita. Si nota che in que-sto caso tutti i marcatori possedevano le informazioni alleliche (tabella 4.1),quindi il file dei marcatori in output dal modulo di data retrieval non avevabisogno di modifiche; al contrario se fosse stato rilevata l’assenza dei datisulle frequenze l’utente avrebbe dovuto correggere il file a mano.

L’esecuzione di SLink e riuscita correttamente, producendo i diversi out-put per ogni singolo marcatore elaborato, e copiando i risultati nella cartellaspecifica con etichetta della data odierna.

6.1.2 Marcatori generici

Usando il gruppo di marcatori recuperato in fase di creazione dei test cases,e possibile testare autonomamente la parte centrale dell’applicazione, quellariguardante i moduli di data retrieval e combinazione allelica.

Page 103: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

6.1 Test eseguiti 97

Test Domain. L’obiettivo del test e (1) recuperare correttamente i datidei due set di marcatori ideati, (2) verificare la resistenza del motore adeventuali mutazioni di pagine, (3) verificare il corretto comportamento incaso di assenza dei dati sulle frequenze alleliche, e (4) controllare la correttacreazione del numero di file coerentemente alla logica implementata e laformattazione specifica delle informazioni nei file, sapendo che la dimensionedella finestra e 8 per il primo gruppo e 6 per il secondo.

Test Case. Vengono riportate le aspettative di comportamento per ognu-no dei due gruppi di marcatori, focalizzando l’attenzione sulle quattro carat-teristiche del Test Domain, partendo dal set “D10S208 D10S1243 D10S1666”,per poi eseguire quello ”D5S580 D21S11”.

1. La tabella 6.2 sintetizza le informazioni da recuperare sui marcatori“D10S208 D10S1243 D10S1666”;

2. le etichette di alcuni link variano di nome a seconda del marcatore, peresempio per il marcatore D10S1243 il polimorfismo vede la presenza di“D10S1243 Tetranucleotide Repeat” mentre gli altri hanno “D10S1666Dinucleotide Repeat”;

3. il marcatore D10S1243 non presenta informazioni alleliche, quindi l’ap-plicazione deve scrivere nel file dei marcatori l’errore, in modo chel’utente possa vederlo e correggere manualmente i dati (cercandoli daaltre sorgenti);

4. nella stessa tabella prima riferita, la 6.2, vengono anche descritti ivalori del numero di file attesi: la colonna “#File(8)” indica il numerodi combinazioni che si devono verificare e quindi identifica la quantitadi file da creare (la cui formula e sempre | (A− (a− 1)) |, se il numerodi alleli presenti supera il valore della finestra pari a 8);

# Marker #Alleli Frequenze Dimens. #File(8)

0.0300 0.0100 0.0700 31720106-1 D10S208 9 0.0100 0.0700 0.2600 31720285 2

0.2300 0.2600 0.01002 D10S1243 0 assenti 32297198- 1

322973940.1200 0.0400 0.4600 33732501-

3 D10S1666 10 0.0700 0.0400 0.2000 33732753 30.02 0.02 0.02 0.02

Tabella 6.2: Informazioni di frequenze e distanze geniche sui marcatori dacercare per il set “D10S208 D10S1243 D10S1666”.

Page 104: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

6.1 Test eseguiti 98

Per quanto riguarda il set ”D5S580 D21S11” si verifica che:

1. la tabella 6.3 sintetizza le informazioni da recuperare; ovviamente trat-tandosi di marcatori localizzati su diversi cromosomi (il primo sulquinto mentre il secondo sul ventunesimo) non ha senso pensare dicontrollare nel file globale il conteggio delle distanze geniche, ma einvece fondamentale controllare i valori recuperati in base-pair;

2. la variazione di etichette si presenta ancora per esempio per i poli-morfismi, dove si incontra “D21S11 Tetranucleotide Repeat”, e sullapagina Allele Set dove si ha come popolazione “Europeans” quandonormalmente le popolazioni sono “Caucasian”;

3. il marcatore D5S580 non presenta informazioni alleliche: l’applicazionedeve scrivere nel file dei marcatori l’errore, sia in quello generico chea maggior ragione quello del singolo marcatore, in modo che l’utentepossa vederlo e correggere manualmente i dati (cercandoli da altresorgenti);

4. la tabella prima citata, riferimento 6.3, mostra il numero di file dacreare in ultima colonna, considerando la finestra di dimensioni pari a6.

Marker #Alleli Frequenze Dimensione #File(6)

D5S580 0 assenti 8193557- 18193719

0.01 0.01 0.12 0.03 5729555-D21S11 12 0.07 0.1 0.03 0.25 5729775 7

0.22 0.16 0.01 0.01

Tabella 6.3: Informazioni di frequenze e distanze geniche sui marcatori dacercare per il set ”D5S580 D21S11”.

Test Report. Per entrambi i gruppi i test hanno dato esito positivo: tuttele informazioni sono state recuperate correttamente, superando eventualiostacoli come il cambiamento delle etichette dei link, e dove mancavano leinformazioni e stato scritto correttamente l’errore nel file. Infine il numerodi file di marcatori creati, in base alla logica sliding window, e risultatocorretto, e tutti i file sono stati regolarmente scritti nella cartella dei risultatinominata con la data del giorno di lancio dell’applicazione. Per quantoriguarda i tempi nel primo caso sono stati impiegati circa 3 minuti mentrenel secondo circa 2.5 con larghezza di banda di connessione di 2 Mb/sec.

Page 105: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

6.2 Validazione 99

6.1.3 Esecuzione software con file esterni

Test Domain Questi test prevedono di verificare che sia stata corretta-mente implementata la possibilita di lanciare i due software con file creatiesternamente all’applicazione, e quindi la modalita di esecuzione e caricarei diversi file dei marcatori e del pedigree e processare GeneHunter e SLink.

Test Case L’output atteso e la creazione dei file dei diversi output all’in-terno della cartella dei risultati odierni. I file importati sono stati presi daprecedenti studi di laboratorio (sia marcatori che pedigree) su altre famigliecampione, in cui quindi sono disponibili risultati attesi da comparare.

Test Report L’esecuzione dei software ha prodotto gli output attesi: nel-la cartella dei risultati con etichetta della data odierna sono stati salvati glioutput sia di GeneHunter che SLink, nominati diversamente, con gli stessivalori di lod-score emersi dagli studi precedenti; ovviamente quest’ultima ca-ratteristica non poteva essere controllata se non tramite la customizzazionedei parametri in ingresso ai software, in particolare GeneHunter.

6.2 Validazione

Per effettuare una corretta validazione e utile avere a confronto i risultatiricavati da elaborazioni manuali con quelli lanciati automaticamente, e spe-rimentare i tempi di esecuzione per verificare il miglioramento apportato neiprocessi di analisi. I test sopra elencati sono serviti per validare la corret-tezza dei compiti del programma, quindi se RightLinkS produce gli outputattesi, in formato e contenuto. Inoltre hanno messo in luce la facilita d’u-so dell’applicazione, confermando che e uno strumento di interfaccia moltoagevole e pratico.

Per quanto riguarda i tempi, quindi l’ottimizzazione del lavoro, i biologihanno sperimentalmente confermato che il miglioramento per l’automatiz-zazione dei processi di recupero informazione e l’interfaccia di lancio degliapplicativi con la logica di creazione dei file di marcatori multipli hannoridotto del 90% circa i tempi di lavoro di analisi di linkage. Soprattuttoper quanto riguarda la creazione dei file dei marcatori i tempi il guadagnodi tempo riesce ad aggirarsi sul 95% poiche manualmente si era costretti aseguire percorsi di navigazione nei database pubblici fino al dato desiderato,estrarlo ed elaborarlo per poi scriverlo nel corretto formato nel file, e ripe-tere il tutto per ogni marcatore e ogni file. Ora invece e possibile inserirele informazioni minime (anche grazie alla presenza di dati di default nell’in-terfaccia grafica) e con il lancio del motore in pochi minuti, a seconda dellavelocita di connessione, vengono creati i file desiderati. Anche il modulo dilancio dei software migliora sensibilmente non solo la praticita nell’analisi dilinkage, ma i tempi d’uso: per quanto ovviamente i tempi di esecuzione dei

Page 106: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

6.2 Validazione 100

software GeneHunter ed SLink non cambino, varia invece il tempo di pre-parazione al lancio di questi ultimi. Al posto di copiare manualmente ognifile nella corretta cartella e successivamente estrarne i risultati, ripetendotale processo per ogni file, con RightLinkS e suficiente inserire i percorsi deifile o anche solo il prefisso dei file dei marcatori (ovvero la parte inizialedel nome del file) e tutte le elaborazioni vengono eseguite sequenzialmentecon il salvataggio dei risultati nella cartella etichettata con la data di lanciodell’elaborazione.

Come ultima considerazione sui vantaggi che ha comportato l’uso diRightLinkS si aggiunge l’assenza di errori in fase di recupero delle infor-mazioni e creazione dei file, proprieta da non sottovalutare poiche anche ilminimo errore di copiatura dei dati potrebbe falsare i risultati del calcolo diconcatenazione genica, mentre una scorretta formattazione del file potrebbeimpedire l’esecuzione dei programmi GeneHunter ed SLink.La tabella 6.4 sintetizza i tempi di lavoro, e mette in luce il vantaggio ap-portato dall’utilizzo di RightLinkS come strumento di supporto per l’analisidi linkage.

Fase Tipo Lavoro Manualmente Con RightLinkSRicerca 1 marcatore 5 min 1 min

Informazioni 10 marcatori 50 min 7 minCreazione 1 marcatore 7 min 0.2 min

File 10 marcatori 60 min 0.2 minEsecuzione GeneHunter 2 min 2 minSoftware SLink 30 min 12 min

Tabella 6.4: Tempi di lavoro con e senza RightLinkS.

Attualmente RightLinkS e sfruttato in laboratorio sia come motore diricerca informazioni e creazione dei file che come interfaccia di esecuzionedei software di calcolo di linkage, ed e in fase di studio l’idea di disporlonon solo open source ma anche di strutturare un’elaborazione remota su unserver dell’istituto.

Page 107: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

Capitolo 7

Conclusioni

Il problema di partenza era la risoluzione e il miglioramento delle tecnicheper l’analisi di linkage, mediante automatizzazione di processi e creazione diun’applicazione unica che facesse sia da interfaccia per il motore di ricercaed estrazione dei dati genetici, che da contenitore di lancio user-friendly deisoftware di linkage, cercando di implementare in fase di esecuzione la tecnicaper l’elaborazione multiallelica, limite di SLink.

L’obiettivo e stato raggiunto grazie alla creazione di un software chia-mato “RightLinkS”, su sistemi Windows, che permette di interrogare au-tomaticamente i database pubblici sui dati genetici, localizzarne le risorseed estrarne le informazioni corrette, per poi scrivere i file di input ai soft-ware GeneHunter ed SLink, con l’attenzione alla creazione di molteplici fileper ogni marcatore in funzione del numero di alleli seguendo la logica slidingwindow, per avviare infine i software sequenzialmente (in modo automatico)e raccoglierne i risultati in una localizzazione unica.

RightLinkS e stato realizzato come software ready-to-run, senza istal-lazione, con interfaccia grafica user-friendly; tutti i motori interni che im-plementano le logiche sono scritti in WebL, linguaggio su base java, chegarantisce portabilita al 100%, lasciando in questo modo la parte dell’inter-faccia l’unica codifica legata al sistema: infatti nella versione attuale, peresigenze di laboratorio, e stata creata un’interfaccia in Visual Basic, che al-tro non e che una semplice maschera di inserimento campi ed esecuzione deimotori via comando shell, quindi estremamente leggera.

Nel laboratorio il software e attualmente utilizzato, e ha apportato unnotevole vantaggio lavorativo non solo semplificando i processi poiche e unostrumento unico che ingloba tutte le funzionalita occorrenti, ma anche ab-battendo i tempi di recupero delle informazioni e i possibili errori grazie alsistema di data retrieval, oltre ad automatizzare la metodologia empiricadi analisi multiallelica. Infatti mentre prima manualmente il tempo per lacreazione di un file era circa due ore (per ogni file), con RightLinkS e diqualche minuto, in base alla larghezza di banda di connessione, e si hanno

Page 108: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

102

a disposizione tutti i file necessari.La soluzione di rendere il software disponibile in rete per tutti gli utenti

in licenza open-source GPL1 e attualmente in fase di valutazione, e la suarealizzazione permetterebbe non solo di aggiungere uno strumento utile per iricercatori, ma anche di condividere le logiche interne per critici e costruttivimiglioramenti.

Estensioni Future. Come possibili estensioni dell’applicazione si possonoidentificare piu strade:

• porting : creazione di interfacce per ogni sistema operativo, oppure unadirettamente integrativa che sia sfruttabile su ogni piattaforma;

• distribuzione remota: rilasciare una versione usufruibile via internetcon web-interface; naturalmente per realizzare tale sistema bisognaanche pensare all’infrastruttura web di elaborazione, dal server, allamodalita di esecuzione (parallela o seriale) e tipo di sistema (distribuitoo locale);

• confronto multi-database: nella fase di information retrieval si potreb-be pensare di confrontare i dati estratti da GDB con altri databasegenetici pubblici (per esempio il Ceph2), e confrontare i risultati perottenere un’accuratezza migliore.

Un’ulteriore estensione potrebbe essere l’automatizzazione della creazionedel pedigree, processo ora completamente manuale; come accennato nellatrattazione, e una fase poco informatizzata perche tutti i dati sono car-tacei e bisogna quindi eseguire una scrittura manuale. Nonostante cio epossibile pensare alla creazione di un database interno (o addirittura inter-istituzionale) che raccolga tutti i dati recuperati dei pazienti, e da cui siapossibile creare il pedigree, tenendo in considerazione le dovute normativesulla tutela dei dati sensibili personali (leggi sulla privacy).

1Per informazioni: http://www.gnu.org/copyleft/gpl.html.2Indirizzo internet: http://www.cephb.fr/.

Page 109: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

Bibliografia

[1] Abecasis G.R., Zhao Y; Algorithmic improvements in gene mapping.Internal Review, University of Michigan, Ann Arbor, MI, USA, 2005.

[2] Crespi Reghizzi S.; Linguaggi Formali e Artificiali, aspetti sintattici.Citta Studi Edizioni, Milano, 2000.

[3] Curtoni E.S., Dallapiccola B., et al.; Genetica. Editore Utet, 1997.

[4] Flower M., Scott K.; UML distilled, guida rapida allo Standard Ob-ject Modeling Language. Addison Wesley Longan Italia, prima edizione,2001.

[5] Kleinsmith L.J. , KishV.M.; Principi di biologia cellulare e molecolare.Casa editrice Ambrosiana, 2002.

[6] Lalouel J.M, Rao D.C., Morton N.E., Elston R.C.; A unified model forcomplex segregation analysis. Am J Hu Genet 35: 816-820, 1983.

[7] Lange K.; Mathematical and statistical methods for genetic analysis.Springer 1997.

[8] Ott J.; Analysis of human genetics linkage. The Johns Hopkins Univ.Press, Baltimore and London, 1999.

[9] Piccolboni A., Gusfiled D.; On the complexity of fundamental compu-tational problems in pedigree analysis. Technical report University ofCalifornia, Computer Science Department, 1999.

[10] Pestman W.R.; Mathematical Statistics, an introduction. Walter deGruyter, Berlin 1998.

[11] Reich D.E., Lander E.S.; On the allelic spectrum of human disease.Trends in Genetics Vol.17 No.9 September 2001.

[12] Risch N., Merikangas K.; The future of genetic studies of complexhuman diseases. Science 273, 1516-1517, 1997.

[13] Strachan T., Read A.P.; Genetica umana molecolare. Utet, secondaedizione, 2001.

Page 110: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

BIBLIOGRAFIA 104

[14] Thompson E.A.; Statistical inference from genetic data on pedigrees.CBMS, IMS, 2000.

Expectation-Maximization Algorithm

[15] Dempster A.P., Laird N.M., Rubin D.B.; Maximum Likelihood fromincomplete data. J.R.Statist. Soc. Ser. 39, 1-38, 1977.

[16] Viele K.; Statistics Courses. University of Kentucky, risorse web:http://www.ms.uky.edu/ viele/sta695s99/sta695.html, 1998-2006.

[17] Wu C.F.J.; On the convergence properties of the EM algorithm. Ann.Stat. 11, 95-103, 1983.

Eltson-Stewart Algorithm e Implementazioni

[18] Cannings C., Thompson E.A., Skolnick M.H.; Probability functions oncomplex pedigrees. Advances in Applied Probability, 1, 26-61, 1978.

[19] Cottingham R.W. Jr, Idury R.M., Schaffer A.A.; Faster sequentialgenetic linkage computations. Am J Hum Genet. 1993; 53: 252-263.

[20] Dwarkadas, Schaffer, Cottingham, Cox, Keleher, Zwaenepoel; Paralleli-zation of general linkage analysis problems, Hum Hered. 1994 May-Jun;44(3): 127-41.

[21] Elston R.C., George V.T., Severtson F.; The Elston-Stewart algorithmfor continuous genotypes and environmental factors. Hum Hered. 1992;42(1): 16-27

[22] Elston R.C., Stewart J.; A general model for the analysis of pedigreedata. Hum Hered 21: 523-542, 1971.

[23] Fastlink documentation, versione software 4.1, risorsa web:http://www.ncbi.nlm.nih.gov/CBBresearch/Schaffer/fastlink.html

[24] Hiekkalinna T.; Elston-Stewart algorithm. Risorsa web:http://www.cs.helsinki.fi/u/mkhkoivi/teaching/sum-products-fall05/,2005.

[25] Lathrop, Lalouel, Julier, Ott; Proceddings of the National Academy ofSciences. 81: 3443-3446, 1984.

[26] O’Connell J.R.; Rapid multipoint linkage analysis via inheritancevectors in the Elston-Stewart algorithm. Hum Hered. 2001; 51(4):226-40.

Page 111: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

BIBLIOGRAFIA 105

[27] O’Connell J.R., Weeks D.E. The VITESSE algorithm for rapidexact multilocus linkage analysis via genotype set-recoding and fuzzyinheritance. Nature Genetics, 11, 402-408, 1995.

[28] Ott; Proceddings of the National Academy of Sciences. 86: 4175-4178,1989.

[29] Schaffer, Gupta, Shriram, Cottingham; Avoiding recomputation inlinkage analysis, Human Heredity, 44: 225-237, 1994.

[30] Schaffer A.A.; Faster linkage analysis computations for pedigrees withloops or unused alleles. Hum Hered. 1996 Jul-Aug; 46(4): 226-35.

[31] Stewart J.; Genetics and Biology : a comment on the significance ofthe Elston-Stewart algorithm. Human Heredity 42, pp 9-15, 1992.

[32] Weeks D.E., Ott J., Lathrop M.; American Society Human Geneticsannual meeting 1990. Am J Hum Genet, suppl 47, A204, 1990.

[33] Weeks D.E., Ott J.; SLink documentation, risorsa web:http://linkage.rockefeller.edu/ott/SLINK.htm.

Lander-Green Algorithm e Implementazioni

[34] Abecasis G., Class Notes. University of Michigan, risorse web:http://www.sph.umich.edu/csg/abecasis/class/, 2006 course.

[35] Abecasis GR, Cherny SS, Cookson WO, Cardon LR; Merlin, rapid ana-lysis of dense genetic maps using sparse gene flow trees. Nat Genet 30:97-101, 2002.

[36] Bryant R.E.; Graph-Based algorithm for boolean function manipulation.IEEE Transaction on Computers, 8(C-35): 677-691, 1986.

[37] Gudbjartsson D., Jonasson K, et al; Fast multipoint linkage analysisand the program Allegro. Internal report, DeCode Genetics, Reykjavık,Iceland, 2005.

[38] Gudbjartsson DF, Jonasson K, Frigge ML, Kong A.; Allegro, a newcomputer program for multipoint linkage analysis. Nat Genet.; 25(1):12-3, 2000.

[39] Kruglyak L., Daly M.J., ReeveDaly M.P., Lander E.S.; Parametricand nonparametric linkage analysis: a unified multipoint approach.American Journal of Human Genetics, 58, 1347-1363, 1996.

[40] Kruglyak L., Lander E.S.; Faster multipoint linkage analysis usingFourier transforms. J Comput Biol; 5(1): 1-7, 1998 Spring.

Page 112: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

BIBLIOGRAFIA 106

[41] Idury R.M., Elston R.C.; A faster and more general hidden Markovmodel algorithm for multipoint likelihood calculations. Human Heredity,47, 197-202, 1997.

[42] Ingolfsdottir A., Gudbjartsson D.; Genetic linkage analysis algorithmand their implementation. Computat. System Biol. III, LNBI 3737, pp.123-144, 2005.

[43] Markianos K, Daly MJ, Kruglyak L.; Efficient multipoint linkage ana-lysis through reduction of inheritance space. Am J Hum Genet. 2001Apr; 68(4): 963-77. Epub 2001 Mar 14.

[44] Lander E.S., Green P.; Construction of multilocus genetic linkage mapsin humans. Proc. Nati. Acad. Sci. Vol. 84, pp. 2363-2367, 1987.

[45] Sobel E., Lange K.; Descent graphs in pedigree analysis: applications tohaplotyping, location score, and marker-sharing statistics. Am. J. Hum.Genet., 58: 1323-1337, 1996.

[46] Sobel E., Papp J.C., Lange K.; Detection and integration of genotypingerrors in statistical genetics. American Journal of Human Genetics, 70,496-508, 2002.

Bayesian Networks Algorithm e Implementazione

[47] A.A V.V.; Narated Power Point presentation of the principles behindSuperlink. UAI2003, 2003.

[48] Fishelson M., Geiger D.; Exact Genetic Linkage Computations forGeneral Pedigrees. Bioinformatics, 18 Suppl. 1: S189-S198, 2002.

[49] Fishelson M., Geiger D.; Optimizing exact genetic linkage computations.Recomb, Berlin, 2003.

[50] Fishelson M., Geiger D., Rusakov D.; A bayesian lod score for linka-ge analysis of complex disease. Internal report, Technion University,Computer Science Department, Haifa Israel, 2004.

[51] Fishelson M., Dovgolevsky N., Geiger D.; Maximum LikelihoodHaplotyping for General Pedigrees. Human Heredity, 59: 41-60, 2005.

[52] Silberstein M., Tzemach A., Dovgolevsky N., Fishelson M., SchusterA., Geiger D.; On-line System for Faster Linkage Analysis via ParallelExecution on Thousands of Personal Computers. The American Journalof Human Genetics 2006.

[53] Superlink on-line; risorsa web: http://bioinfo.cs.technion.ac.il/superlink-online/.

Page 113: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

BIBLIOGRAFIA 107

Hidden Markov Chain Algorithm

[54] George A.W., Thompson E.A.; Discovering Disease Genes: MultipointLinkage Analysis via a New Markov Chain Monte Carlo Approach.Statist. Sci. 18, no. 4, 515-531, 2003.

[55] Rabiner L.R.; A tutorial on Hidden Markov Models and selected ap-plication in speech recognition. Proceeding of IEEE, vol 77, No. 2, Feb1989.

[56] Sobel E., Weeks D.; Computational considerations for linka-ge analysis on large complex pedigrees. Class notes, risorsaweb: http://www.hgen.pitt.edu/files//2005 HUGEN%202048/ sim-walk2overheads rev.pdf

[57] Thompson E.A.; Monte Carlo in Genetic Analysis. Internal report,Department of Statistics, University of Washington, September 1995.

WebL (Web Language)

[58] Marais H., Savarese D.F.; WebL - A Programming Language for theWeb. Compaq, User guide, 1999.

[59] Risorse di rete: http://www.hpl.hp.com/downloads/crl/webl/index.html ;da qui si accede alla documentazione, al sorgente, e al repository.

Page 114: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

Appendice A

Processo di meiosi e tipi dimutazioni

Per chiarire il concetto di meiosi e utile mostrare degli schemi che illustrinole varie fasi che la cellula attraversa fino alla formazione gametica finale. Lefigure A.1 e A.2 rappresentano proprio la meiosi maschile e femminile. Laparte importante da osservare nel processo cellulare e che da un’organismodiploide (che nelle immagini e locato in alto a sinistra) si giunge attraversole varie fasi ad uno aploide (in basso a destra), ove i cromosomi omologhisono indicati con la stessa colorazione e lunghezza; nei maschi il gamete ela sperm cell, o spermatozoo, mentre nella femmina e l’egg cell, o ovulo (lacellula polar body e una cellula ridotta che verra eliminata dall’organismoperche non funzionale, ma utili solo ad aumentare i liquidi interni dellacellula ovulo).

Per quanto riguarda i tipi di mutazioni si fa riferimento alla figura A.3,dove si presentano i casi di mutazione insertion e deletion (inserimento ecancellazione), e alla figura A.4 per le mutazioni nonsense e missense (non-senso e missenso). Nel primo caso si hanno mutazioni frame-shift, ovvero siaggiungono o cancellano basi dalla sequenza; nel secondo caso si hanno va-riazioni di basi (senza scorrimento) che comportano o una semplice codificaerrata con conseguente mutazione della tripletta (missense), o una codificapriva di senso che genera un codone di stop. Ovviamente le mutazioni inser-tion e deletion possono comportare nonsense o missense nella codifica dellasequenza.

Page 115: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

109

Figura A.1: Il processo di meiosi maschile.

Page 116: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

110

Figura A.2: Il processo di meiosi femminile.

Page 117: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

111

Figura A.3: I differenti tipi di mutazioni (insertion e deletion).

Figura A.4: I differenti tipi di mutazioni (nonsense e missense).

Page 118: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

Appendice B

Bayes nella Genetica

B.1 Teorema di Bayes applicato alla genetica

Si considerino due eventi non indipendenti, E, ed F , rappresentanti il geno-tipo E e il fenotipo F di un individuo. Sapere quale sia P (F |E) e semplice(chiamato anche modello di penetranza), ma spesso e maggiormente signifi-cativo sapere P (E|F ), e cio mira il teorema di Bayes, tramite il calcolo dellaprobabilita inversa:

P (E|F ) =P (F |E)P (E)

P (F )=

P (F |E)P (E)P (F |E)P (E) + P (F |Ec)P (Ec)

(B.1)

ove Ec e il complemento di E. Naturalmente l’equazione B.1 puo esseregeneralizzata per un numero di eventi mutuamente esclusivi Ei, le cui pro-babilita condizionate devono essere calcolate dato F . La formula B.1 diventaper un evento Ek:

P (Ek|F ) =P (F |Ek)P (Ek)∑j P (F |Ej)P (Ej)

. (B.2)

Una comoda e agevole rappresentazione del teorema di Bayes applicato ela visualizzazione in tabella, in cui le righe corrispondono alle varie formedi probabilita (condizionata, incondizionata, ecc), e le colonne presentano idifferenti eventi Ei di interesse.

Esempio: consideriamo una malattia dominante con frequenza di po-polazione dell’allele malattia p, una famiglia con due genitori di cui unoaffetto e n figli, e due eventi utili E1 e E2 corrispondenti allo stato dellamalattia omozigote ed eterozigote rispettivamente del genitore malato. Laprobabilita incondizionata (spesso chiamata a priori) che il genitore malatosia omozigote e data come segue: la frequenza di popolazione di un affettoomozigote e p2, mentre per un eterogizote e 2p(1−p). La frequenza relativadel primo e quindi P (E1) = p2/(p2 + 2p(1 − p)) = p/(2 − p) mentre del se-condo e P (E1) = 2(1−p)/(2−p); naturalmente sono incondizionate rispetto

Page 119: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

B.2 Le Reti Bayesiane 113

E1 E2 SommaP. Incondizionata p/(2 − p) 2(1 − p)/(2 − p) 1P: Condizionata 1 (1/2)n

P. Congiunta p/(2 − p) (1−p)(1/2)n−1

2−pp+(1−p)(1/2)n−1

2−p

P. Inversa Condizionata 2n−1p2n−1p+1−p

1−p2n−1p+1−p

1

Tabella B.1: Sintesi delle probabilita inverse dell’esempio situato, usando ilteorema di Bayes.

alle nostre osservazioni di F ma di certo sono condizionate dall’essere affettodel genitore, dalla malattia del genitore. Se ora sapessimo, o ipotizzassimo,che tutti i figli siano malati (la nostra osservazione F ), qual’e la probabilitache il genitore malato sia omozigote (spesso chiamata anche probabilita aposteriori), quindi P (E1|F )? Viene presentata la tabella B.1 come sintesidelle probabilita dell’esempio, ed evidenza della comodita rappresentativa.Nella tabella B.1 la probabilita congiunta si calcola come il prodotto delleprobabilita condizionata e non (si moltiplicano le colonne), mentre la pro-babilita condizionata inversa si ottiene dividendo le colonne sopra per lasomma sul proprio lato destro.

B.2 Le Reti Bayesiane

Le reti Bayesiane sono modelli grafici della conoscenza in un dominio in-certo. Basandosi sulla regola di Bayes, esprimono relazioni di dipendenzacondizionale (archi) tra le variabili in gioco (nodi). Il vantaggio principaledel ragionamento probabilistico rispetto a quello logico sta nella possibi-lita di giungere a descrizioni razionali anche quando non vi e abbastanzainformazione di tipo deterministico sul funzionamento del sistema.

Spesso, nei ragionamenti probabilistici, capita che si debba valutare unaprobabilita avendo gia delle informazioni su quanto e gia accaduto in pre-cedenza. Dati due eventi A e B, se questi sono in qualche modo correlati,e ragionevole pensare che il sapere che uno dei due e gia avvenuto possamigliorare la conoscenza della probabilita dell’altro.

Si usa una struttura di dati chiamata rete bayesiana (o rete di creden-ze) per rappresentare la dipendenza fra le variabili e per dare una specificaconcisa della distribuzione di probabilita congiunta. Il termine di rete diconoscenza e stato spesso adottato perche si modellizza proprio il tipo di“sapere” a priori e posteriori rispetto ad uno stato, rappresentati tramiteun nodo (lo stato) e i suoi “genitori” e “prole” per le conoscenze.

Una rete Bayesiana e un grafo in cui valgono le seguenti proprieta:

1. un insieme di variabili casuali costituiscono i nodi della rete;

Page 120: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

B.2 Le Reti Bayesiane 114

2. un insieme di archi con verso connette le coppie di nodi (il significatodi una freccia dal nodo X al nodo Y e che X ha un’influenza direttasu Y);

3. ogni nodo ha una tabella delle probabilita condizionate che quantifi-ca gli effetti che i “genitori” hanno sul nodo, dove per “genitori” siintendono tutti quei nodi che hanno frecce che puntano al nodo;

4. il grafo non ha cicli diretti.

Caratteristiche dei nodi:

• un nodo che non ha genitori diretti (cioe non ha frecce che puntanoverso di lui) contiene una tabella di probabilita marginali. Se il nodoe discreto contiene una distribuzione di probabilita sugli stati dellavariabile che rappresenta (come avviene nel caso genetico); mentre seil nodo e continuo contiene una funzione gaussiana di densita (definitada media e varianza) della variabile random che rappresenta;

• un nodo che ha parenti (cioe uno o piu frecce che puntano verso di lui)contiene una tabella di probabilita condizionali. Se il nodo e discretola funzione di probabilita condizionale contiene la probabilita condi-zionale del nodo data una configurazione dei suoi parenti. Se il nodoe continuo, la funzione di probabilita condizionale contiene media evarianza di ogni configurazione degli stati dei suoi nodi parenti.

Page 121: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

Appendice C

Strumenti per l’algoritmoLander-Green

C.1 Il prodotto di Kronecker

Il prodotto di Kronecker, denotato come ⊗, e un’operazione su due matricidi arbitraria dimensione che forma una matrice a blocchi, in maniera moltodiversa dall’usuale prodotto di matrici. Per esempio, se abbiamo una matriceA di dimensione m × n e una B di dimensione p × q, eseguendo il prodottodi Kronecker A⊗B si ottiene una matrice a blocchi di dimensione mp×nq.

A ⊗ B =

⎡⎢⎣

a11B · · · a1nB...

. . ....

am1B · · · amnB

⎤⎥⎦

diventa

⎡⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣

a11b11 a11b12 · · · a11b1q · · · · · · a1nb11 a1nb12 · · · a1nb1q

a11b21 a11b22 · · · a11b2q · · · · · · a1nb21 a1nb22 · · · a1nb2q...

.... . .

......

.... . .

...a11bp1 a11bp2 · · · a11bpq · · · · · · a1nbp1 a1nbp2 · · · a1nbpq

......

.... . .

......

......

......

. . ....

......

am1b11 am1b12 · · · am1b1q · · · · · · amnb11 amnb12 · · · amnb1q

am1b21 am1b22 · · · am1b2q · · · · · · amnb21 amnb22 · · · amnb2q...

.... . .

......

.... . .

...am1bp1 am1bp2 · · · am1bpq · · · · · · amnbp1 amnbp2 · · · amnbpq

⎤⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦

Page 122: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

C.2 Fast Fourier Transform 116

Si riporta un semplice esempio per chiarire il concetto:

A⊗B =[

1 23 1

]⊗

[0 32 1

]=

⎡⎢⎢⎣

1 · 0 1 · 3 2 · 0 2 · 31 · 2 1 · 1 2 · 2 2 · 13 · 0 3 · 3 1 · 0 1 · 33 · 2 3 · 1 1 · 2 1 · 1

⎤⎥⎥⎦ =

⎡⎢⎢⎣

0 3 0 62 1 4 20 9 0 36 3 2 1

⎤⎥⎥⎦

C.2 Fast Fourier Transform

Si riporta brevemente quanto presentato da Kruglyack nell’utilizzo delleFast Fourier Transform per l’algoritmo Lander-Green, al fine di ridurre lacomplessita computazionale dell’algoritmo, rimandando alla bibliografia [40]un miglior approfondimento.Si partira prima descrivendo la trasformata di Fourier applicata, e poi l’ap-proccio FFT.

Considerando la frazione di ricombinazione θ tra due loci adiacenti γe γ′ e la matrice di transizione T (θ), il teorema di Bayes implica che ladistribuzione di probabilita dei vettori eredita v al locus k, avendo lk(v) comeprobabilita del vettore eredita v dato il genotipo a tutti i loci a sinistra di k(similmente rk(v)), e proporzionale a lkqk (probabilita del singolo locus), equindi lk+1 ∝ (lkqk)∗Tθk

(ove appunto θk indica la distanza tra il marcatorek e k − 1, e l’operatore ∗ e il simbolo di convoluzione), ottenendo:

(f ∗ g)(x) =∑

v

f(x − v)g(v) (C.1)

ove x e y sono vettori. In simile modo per la parte destra. La probabilita deivettori eredita al locus k dati i dati genotipici g si ottiene tramite p(·|g) ∝lkqkrk(v).

La metodologia proposta delle FFT serve proprio per risolvere l’equa-zione di convoluzione C.1, e la trasformata di Fourier f di f ha la forma:

f(w) =∑

v

(−1)|vw|f(v). (C.2)

La trasformata inversa e ottenuta tramite f = 2nf ; da cio segue che laconvoluzione e: fc ∗ g = (f g)∨. Il calcolo di f ∗ g tramite C.1 richiede 22n

moltiplicazioni e lo stesso numero di addizioni, ma tramite le FFT f puoessere calcolata usando n2n addizioni e senza moltiplicazioni, e quindi laequazione C.1 richiede 2n moltiplicazioni e 2n2n addizioni.

Usando FFT per f , si pone f0 = f , e poi si calcola per i = 1, 2, ..., n:

fi(v) = (−1)vifi−1(v) + fi−1(v − ei) (C.3)

ove ei e l’iesimo unit vector, e fi sostituisce in memoria fi−1; al termine diquesto calcolo fn contiene f . Il numero di addizioni per il calcolo e n2n,

Page 123: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

C.2 Fast Fourier Transform 117

ma tale valore e teorico, perche il computer non puo gestire tutti i calcoliin memoria centrale, ma dovrebbe adottare soluzioni alternative come laseparazione (iterativa) del calcolo in sottovettori f(g, h) e quindi f(g+h, g−h) per ridurre lo spazio occupato in memoria, ottimizzando le prestazioni.

Page 124: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

Appendice D

Il codice della funzioneRiduciAlleli

Viene presentato il codice della funzione RiduciAlleli, uno dei punti focalidella metodologia finalizzato alla creazione di una combinazione lineare deglialleli dei marcatori secondo la logica sliding window.

var RiduciAlleli = fun(directory,winsize,listamarkers,matricedistanze,filenamedat,classi,primerighe,footer,numeromark)

var indmar = 0; var matricemarcalleli = [];var dimlistamarkers = Size(listamarkers);//scorri lista marcatori fino all’ultimo elementowhile indmar < dimlistamarkers do

var marcatoreattuale = listamarkers[indmar];//carica stringa frequenze dal file temporaneovar stralleli = Files_LoadStringFromFile(directory+

"MarkerFreqsInfo_"+marcatoreattuale+".txt");var strallelisplit = Str_Split(stralleli," ");var listaallelisplit=Rest(strallelisplit);var dimlistaallelisplit = Size(listaallelisplit);var vettore=[];//se il macatore ha meno di winsize alleliif Size(listaallelisplit)<= winsize then

var strallelitemp = ""; var t = 0;while t < Size(listaallelisplit) do

if t==Size(listaallelisplit)-1 thenstrallelitemp=strallelitemp+listaallelisplit[t];

elsestrallelitemp=strallelitemp+listaallelisplit[t]+" ";

end;t=t+1;

Page 125: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

119

end;vettore = vettore + [strallelitemp];

//se il macatore ha piu di 8 allelielse //caso con alleli > 8 -> eseguo sliding win

var i=0;//per tutte le possibili finestre: vettore di q.te n finwhile i<(dimlistaallelisplit-(winsize-1)) do

var finestra=[]; var listaalleli=[]; var ii=0;while ii < winsize do

//copia l’elemento ii nella lista temporanealistaalleli=listaalleli+[listaallelisplit[ii]];ii=ii+1;

end;var strallelitemp=""; var t=0;while t < Size(listaalleli) do

if t==Size(listaalleli)-1 thenstrallelitemp=strallelitemp+listaalleli[t];

elsestrallelitemp=strallelitemp+listaalleli[t]+" ";

end;t=t+1;

end;finestra=finestra+[strallelitemp];vettore=vettore+[finestra];//riduci la listalistaallelisplit = Rest(listaallelisplit);i=i+1;

end;//whileend;//if

matricemarcalleli = matricemarcalleli + [vettore];indmar=indmar+1;

end; //while// estrazione delle distanze del singolo marcatoreindmar=0; var listamarkerstemp=listamarkers;var matricedistout=[];while indmar < dimlistamarkers do

var matricedist=[];//seleziona distanzematricedist = matricedist + [matricedistanze[indmar]];var strdist = ElaboraMatriceDist(matricedist);//lista di out, matrice di matrici di un vettorematricedistout=matricedistout+[[strdist]];indmar=indmar+1;

Page 126: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

120

end;PrintLn("Matrice Distanze Finale: ",matricedistout);

//creazione dei file .dat per ogni marcatore, in una voltavar contatore=0;var nomesenzaest=Str_Split(filenamedat,".");while contatore<Size(matricemarcalleli) do

var numeroalleli="";var nomemar="";//se gli alleli sono < di winsizeif Size(matricemarcalleli[contatore])==1 then

//recupera numero alleli e nome marcatorenumeroalleli=ToString(Size

(Str_Split(matricemarcalleli[contatore][0]," ")));nomemar=listamarkers[contatore];var nomefilenew=nomesenzaest[0]+"_"+nomemar+"_";CreaFileDatRedo(directory,numeroalleli,nomemar,

matricemarcalleli[contatore][0]+"\n",matricedistout[contatore][0],nomefilenew,numeromark,classi,primerighe,footer);

elsenomemar=listamarkers[contatore]; //recupero nome markervar contawin=0;var finestraattuale=matricemarcalleli[contatore];//entra nella lista (finestra)while contawin<Size(finestraattuale) do

numeroalleli=ToString(Size(Str_Split(finestraattuale[contawin][0]," ")));

var nomefilenew=nomesenzaest[0]+"_"+nomemar+"_"+ToString(contawin+1);

CreaFileDatRedo(directory,numeroalleli,nomemar,finestraattuale[contawin][0]+"\n",matricedistout[contatore][0],nomefilenew,numeromark,classi,primerighe,footer);

contawin=contawin+1;end; //while

end; //ifcontatore=contatore+1;

end; //whileend; //funzione RiduciAlleli

Page 127: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

Elenco delle figure

2.1 La struttura del DNA, dalla cellula agli acidi nucleici. . . . . 62.2 Un cariotipo, ed un esempio di polimorfismo. . . . . . . . . . 82.3 Esempio di crossing over, con configurazione coupling e re-

pulsion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.4 Simboli adottati per gli alberi genealogici. . . . . . . . . . . . 112.5 Combinazioni geniche ricombinanti e non. . . . . . . . . . . . 142.6 Combinazioni geniche senza ricombinazione. . . . . . . . . . . 142.7 Famiglia con malattia autosomica dominante. . . . . . . . . . 142.8 Studio fase ai due loci della famiglia. . . . . . . . . . . . . . . 142.9 Studio fase ai due loci della famiglia con ricombinazione. . . . 15

3.1 I loop tra consanguinei (inbreeding loops) e soluzione di se-parazione della persona in due nuclei familiari. . . . . . . . . 25

3.2 Un esempio di pedigree. . . . . . . . . . . . . . . . . . . . . . 253.3 Famiglia d’esempio per il calcolo della verosimiglianza con

l’algoritmo ES. . . . . . . . . . . . . . . . . . . . . . . . . . . 273.4 Gli stati IBD formano una catena di Markov nascosta (HMM)

lungo il cromosoma. . . . . . . . . . . . . . . . . . . . . . . . 293.5 Esempio di vettori eredita’. . . . . . . . . . . . . . . . . . . . 313.6 Grafo delle discendenze. . . . . . . . . . . . . . . . . . . . . . 313.7 Esempio di grafo delle discendenze. . . . . . . . . . . . . . . . 313.8 Esempio di grafo delle osservazioni. . . . . . . . . . . . . . . . 313.9 Esempio di sostituzione e riduzione della matrice di transizio-

ne tramite l’algoritmo di Idury-Elston. . . . . . . . . . . . . . 343.10 Esempio di rete bayesiana. . . . . . . . . . . . . . . . . . . . . 363.11 Esempio di rete bayesiana con relazione genitori-figlio a 3 loci. 383.12 L’algoritmo greedy deterministico. . . . . . . . . . . . . . . . 413.13 L’algoritmo greedy stocastico. . . . . . . . . . . . . . . . . . . 42

4.1 State Diagram per l’interazione Utente-Applicativo. . . . . . 524.2 Flusso di interazione dell’utente con l’applicazione. . . . . . . 524.3 Procedura manuale di recupero informazioni. . . . . . . . . . 534.4 Sequence Diagram per il modulo Recupera Informazioni. . . . 56

Page 128: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

ELENCO DELLE FIGURE 122

4.5 State Diagram generale per il modulo Recupera Informazioni. 584.6 State Diagram dettagliato per il Motore del modulo Ricerca

Informazioni. . . . . . . . . . . . . . . . . . . . . . . . . . . . 594.7 Un esempio di meccanismo sliding window. . . . . . . . . . . 624.8 State Diagram del modulo Combinazione Marcatori. . . . . . 634.9 Flusso di lavoro di SLink. . . . . . . . . . . . . . . . . . . . . 65

5.1 Esempio di matrice con 5 marcatori, e finestra di 8 alleli. . . 865.2 State Diagram delle funzioni in WebL, primo e secondo modulo. 885.3 Interfaccia grafica, sezione Ricerca Informazioni e Creazione

File Marcatori. . . . . . . . . . . . . . . . . . . . . . . . . . . 915.4 Interfaccia grafica, sezione Lancio GeneHunter ed SLink. . . . 92

6.1 La famiglia campione aplotipizzata nella costruzione del pe-digree, considerando tutti gli individui. . . . . . . . . . . . . . 94

A.1 Il processo di meiosi maschile. . . . . . . . . . . . . . . . . . . 109A.2 Il processo di meiosi femminile. . . . . . . . . . . . . . . . . . 110A.3 I differenti tipi di mutazioni (insertion e deletion). . . . . . . 111A.4 I differenti tipi di mutazioni (nonsense e missense). . . . . . . 111

Page 129: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

Elenco delle tabelle

3.1 Esempio di calcolo con l’algoritmo ES. . . . . . . . . . . . . . 243.2 Esempio di stati con i fondatori. . . . . . . . . . . . . . . . . 323.3 Sintesi dei software esistenti che implementano l’analisi di lin-

kage nei differenti algoritmi ( riadattamento dalla fonte web2006: http:// watson.hgen.pitt.edu /docs/ simwalk2.html). . . 44

3.4 Sintesi del costo computazionale degli algoritmi. . . . . . . . 443.5 Sintesi versioni software, macchine e sistemi operativi selezio-

nati per i test degli applicativi di linkage analysis. . . . . . . 453.6 Sintesi dei test effettuati da fonti dati esterne; tra queste si fa

riferimento al sito internet: http://bioinfo.cs.technion.ac.il/superlink/Experimental Results v1.2.html. . . . . . . . . . . . 46

3.7 Sintesi dei test effettuati da fonti dati interne; si riportanosolo alcuni dei casi eseguiti. . . . . . . . . . . . . . . . . . . . 47

4.1 Informazioni di frequenze e distanze geniche sui marcatori dacercare per la famiglia del test case. . . . . . . . . . . . . . . 50

5.1 Set di marcatori eterogenei per l’interrogazione dei database. 72

6.1 Numero di file attesi secondo la logica sliding window per ognimarcatore, con il valore di file creati. . . . . . . . . . . . . . . 96

6.2 Informazioni di frequenze e distanze geniche sui marcatori dacercare per il set “D10S208 D10S1243 D10S1666”. . . . . . . 97

6.3 Informazioni di frequenze e distanze geniche sui marcatori dacercare per il set ”D5S580 D21S11”. . . . . . . . . . . . . . . 98

6.4 Tempi di lavoro con e senza RightLinkS. . . . . . . . . . . . . 100

B.1 Sintesi delle probabilita inverse dell’esempio situato, usandoil teorema di Bayes. . . . . . . . . . . . . . . . . . . . . . . . 113

Page 130: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

Indice analitico

adenina, 5algoritmo, 23

deterministico, 39Elston-Stewart, 23euristico, 38greedy, 38Lander-Green, 28stocastico, 40

allegro, 43alleli, 7aminoacidi, 5analisi computazionale, 20analisi di linkage, 13, 19aploide, 7aplotipo, 10approccio, 22, 35

expectation maximization, 22reti bayesiane, 35

autosomi, 7

base azotata, 5bayesian networks, 35

carattere, 7, 9mendeliano, 9monofattoriale, 7, 9

cariotipo, 7catena di Markov, 28cellule eucariotiche, 5chiasmo, 8citosina, 5codominanza, 9concatenazione genica, 12conditioning, 36coupling, 8cromatidi, 7

cromosomi, 7autosomi, 7omologhi, 7sessuali, 7

crossing over, 8cis, 8trans, 8

desossoribosio, 5distanza fisica, 11distanza genetica, 11divisione cellulare riduzionale, 7dna, 5dominanza, 9duplicazione, 6

eliminating, 36esordio tardivo, 10espressione, 10

variabile, 10eterozigote, 7

fast Fourier transform (fft), 33fastlink, 42fenotipo, 7flusso esecuzione slink, 65formato file marcatori, 54frazione di ricombinazione, 11funzione di mappa, 12

Haldane, 12Kosambi, 12

gamete, 7ovulo, 7spermatozoo, 7

gene, 6genehunter, 43

Page 131: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

INDICE ANALITICO 125

genotipo, 7grafo, 35

aciclico, 35clique, 35, 39sottografo, 39

gruppo fosforico, 5guanina, 5

Haldane, 12

individuoeterozigote, 7omozigote, 7

infrastruttura, 69inheritance vectors, 28input genehunter, 54interfaccia, 69, 87

Kosambi, 12

likelihood, 15linguaggi di programmazione, 66linkage, 10, 12, 13, 19, 42

non parametrico, 19parametrico, 19

locus, 7, 10marcatore, 12polimorfico, 7, 10

lod score, 15

malattia autosomica, 10dominante, 10recessiva, 10

mappaggio, 11marcatore, 12

polimorfico, 12vntr, 12

marcatorifile, 54

markup algebra, 69maximum likelihood estimate (mle),

15, 16meiosi, 6, 7merlin, 43mitosi, 7

modulo, 53combinazione alleli, 60esecuzione, 62ricerca informazioni, 53

monofattoriale, 9mutazione

germinale, 6somatica, 6

mutazioni, 6

NP-hard, 20nucleotidi, 5

omozigote, 7

patrimonio genetico, 7aploide, 7diploide, 7

pcr, 12penetranza, 10

completa, 10incompleta, 10ridotta, 10

pentoso, 5polimeri, 5polimorfismo, 7polipeptidi, 5prodotto Kronecker, 33proteina, 7proteine, 5

recessivita, 9repulsion, 8reti bayesiane, 35ricombinazione, 8, 10, 16

frazione, 9, 11frequenza, 9

RightLinkS, 48

sequence diagram, 56service combinator, 68sintesi proteica, 6sliding window, 60, 86slink, 42state diagram, 57, 61

Page 132: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica

INDICE ANALITICO 126

superlink, 43

test, 93cases, 49, 93domain, 93report, 93

test cases, 44timina, 5traduzione, 6trascrizione, 6tripletta, 5

verosimiglianza, 25vettori eredita, 28vntr, 12

webl, 66markup algebra, 69service combinator, 68

zigote, 7

Page 133: Tesi di Laurea Specialistica - Andrea Calabria · 2006-10-20 · Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Tesi di Laurea Specialistica