Tesi di Laurea Specialistica

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Tesi di Laurea Specialistica"

Transcript

1 POLITECNICO DI MILANO V Facoltà 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 Anno Accademico 2005/2006

2 A mio nonno

3 Ringraziamenti Un sincero ringraziamento alla professoressa Giuseppina Gini, non solo per la sua professionalità e capacità di trasmettere ai propri allievi la scienza ingegneristica e la passione per il settore dell intelligenza artificiale, ma soprattutto per la disponibilità, umiltà e umanità che ha sempre dimostrato. Ringrazio il professor Andrea Remuzzi per avermi dato la possibilità di esplorare il campo della genetica e della biologia molecolare, permettendomi di coniugare i miei studi formativi alla mia personale passione, con l ambizione di poter diventare un ricercatore nel campo della genetica medica. Un sentito ringraziamento a tutte le persone dei laboratori del Mario Negri da quello di Medicina Molecolare, con Ariela Benigni, Marina Noris, Jessica Caprioli e Paola Bettinaglio, a quello di Bioingegneria, con Bogdan, Sergio, Luca e Marina. Naturalmente senza trascurare le persone che mi hanno accompagnato e incoraggiato in quest esperienza, tra cui Caterina, Daniela, Eleonora, Emanuela, Federica, Gaia, Giuseppe, Liffert, Silvia. Immancabile il ringraziamento ai miei genitori, che hanno vissuto e sorbito l altalenante mia umoralità; a mia madre, ripagandola delle scelte e talvolta dei sacrifici che ha fatto per me, a mio padre, per la costante presenza nel guidarmi in una giusta educazione, e alla mia sorellina Eleonora, con la sua dolce presenza, dedico un caloroso abbraccio. E il pensiero non mancadiposarsisuimieinonnianna & Enzo, Lucia & Giuseppe, ilcui modello è fonte costante di ispirazione. Colgo l occasione per ringraziare tutti i miei più cari amici, con cui ho condiviso emozioni indelebili nella sinusoide degli eventi, tra cui Carlo, Giorgio, Alberto, Simone, Riccardo, Linda, Luca e Giovanni, senza voler trascurare tutti i compagni che nella quotidianità hanno saputo regalarmi gioiose e spensierate serate, come la compagnia del Tavernello, o palpitanti soddisfazioni sportive, come la squadra Pallavolo Politecnico, e intensi incontri educativi, come il gruppo adolescenti e giovani dell oratorio di San Vittore al Corpo, o ancora semplici momenti di fatica, come i compagni di università e di lavoro.

4 Come al termine di ogni epigrafe, nell ultima posizione pongo la persona che più ha illuminato il mio spirito, dando equilibrio, saggezza e serenità ad ogni mio incedere; la mia vita, splendida Francesca, non sarebbe completa senza il tuo candido e incondizionato amore. Infine nell ineluttabile ed effimera contingenza dell esistenza, voglio alzare un ringraziamento al Padre, perché il presente laboriosamente costruito non sarebbe così rigoglioso senza tutto il sostegno del passato, nella certezza di un futuro comunque felice. II

5 Sommario Nel presente lavoro viene descritta una soluzione automatica di ricerca delle informazioni geniche presso banche dati pubbliche online ed esecuzione di software di analisi di linkage in modalità multiallelica. Il problema nasce da un esigenza di laboratorio dell unità 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 creazione dei file di marcatori e il lancio dell analisi di linkage con un approccio che permetta di superare i limiti software. Come soluzione al problema è stata progettata una metodologia per superare i limiti computazionali e implementata in un applicazione con interfaccia grafica chiamata RightLinkS che rende automatico il processo di compilazione e stesura dei file dei marcatori (tramite data retrieval dai database online GDB e NIH), e permette una completa e semplice esecuzione dei software GeneHunter ed SLink, indispensabili per un calcolo esatto del lod-score nell analisi di linkage, grazie all elaborazione sequenziale dei file di marcatori, creati come combinazione lineare del numero di alleli presenti. Il problema del superamento dei limiti di SLink è stato risolto mediante la stesura di un numero di file proporzionato alla quantità di alleli, secondo una logica sliding window. RightLinkS è stato testato con successo dagli utenti finali che ne hanno validato le funzionalità, e grazie ed esso è stato possibile ridurre almeno del 90% il tempo di lavoro sull analisi di linkage nel laboratorio.

6 Indice 1 Introduzione 2 2 Genetica e Analisi di Linkage Concettiestrumentidibase DNA(acidodesossiribonucleico) Citologia e Citogenetica Formalismoneglialberigenealogici Laconcatenazionegenica Likelihoodel analisidellodscore Stato dell arte sull analisi di linkage Ilproblemadellinkage Analisi computazionale del problema del linkage Algoritmisullinkage L approccio Expectation-Maximization (EM ) L algoritmo Elston-Stewart (ES) L algoritmo Lander-Green (LG) Approccio con le reti Bayesiane (Bayesian Networks) Implementazionideglialgoritmisullinkage Elston-Stewart: Linkage, Fastlink, SLink Lander-Green: GeneHunter, Allegro, Merlin Reti bayesiane: Superlink SintesidellemetodologieeValutazionedeisoftware Progettazione L applicazione IlmoduloRicercaInformazioni Il modulo Combinazione Alleli dei Marcatori IlmoduloEsecuzione Linguaggi di programmazione e infrastruttura WebL InfrastrutturaeInterfaccia... 69

7 INDICE 1 5 Implementazione IlmoduloRicercaInformazioni L esecuzionedellequery Lanavigazione L estrazionedelleinformazioni Lacreazionedelfile.dat Funzionidisupporto IlMain Il modulo Combinazione Marcatori IlmoduloEsecuzione L interfacciagrafica Test e Validazione Testeseguiti FamigliaCampione Marcatori generici Esecuzionesoftwareconfileesterni Validazione Conclusioni 101 Bibliografia 103 Appendici 108 A Processodimeiosietipidimutazioni B BayesnellaGenetica B.1 TeoremadiBayesapplicatoallagenetica B.2 LeRetiBayesiane C Strumentiperl algoritmolander-green C.1 Il prodotto di Kronecker C.2 FastFourierTransform D IlcodicedellafunzioneRiduciAlleli Elenco delle figure 121 Elenco delle tabelle 122

8 Capitolo 1 Introduzione La scienza è il presente, il passato e il futuro, e ogni piccola scoperta di oggi permette di aggiungere un tassello al mosaico della natura, tanto perfetta quanto misteriosa. Fin dalle origini del pensiero l uomo si è interrogato sull esistenza partendo proprio dall osservazione della natura, non solo dal punto di vista ontologico come hanno iniziato Talete, Platone e Pitagora, ma anche cognitivo ed itinerante dal metodo matematico di Cartesio, alla logica di Kant ed Hegel sotto la spinta delle fondamentali scoperte di Galileo e Newton. E se l ingegneria èlascienzadelledisciplinematematicheefisicheapplicate alla natura, la medicina riversa il suo dominio empirico nell uomo, sfruttando il progresso metodologico e tecnologico. Dal connubio di queste due aree sorgono le più importanti scoperte scientifiche, che alimentano le speranze di una qualità di vita migliore per l umanità. Spinto dalla passione per la medicina e le scienze ho voluto inserirmi proprio in questo settore, nell ambizione di poter contribuire al benessere collettivo applicando gli studi ingegneristici alla ricerca genetica medica. E uno degli istituti più inclini in Italia alla ricerca senza fini di lucro, aspetto fondamentale se davvero si vogliono perseguire scopi sociali, è il Mario Negri, a cui mi sono rivolto per lo sviluppo di una tesi in campo genetico. All interno del Mario Negri nel dipartimento di Genetica vengono studiate le malattie rare, che come tali non hanno forte interesse per le aziende farmaceutiche in quanto gli introiti dalle vendite dei prodotti curativi non compenserebbe gli studi per la loro creazione, nonostante gli effetti di tali affezioni siano spesso devastanti. Il problema che mi è stato affidato riguarda le malattie autosomiche dominanti, il cui significato sarà chiarito all interno della trattazione, in particolare la concatenazione genica tra malattia e gene, chiamata analisi di linkage (linkage analysis). Per le caratteristiche del tipo di malattia gli studi vengono condotti su famiglie intere, analizzando per ogni individuo specifiche regioni del cromosoma che potrebbero codificare l insorgenza della malattia,

9 3 ed essere trasmesse nelle generazioni. Nonostante l approfondito studio del problema nella comunità scientifica e le varie soluzioni proposte dal punto di vista informatico, sono stati creati strumenti parziali per i ricercatori, sia per quanto riguarda l automatizzazione di alcuni processi di recupero di informazioni che di capacità elaborativa. L analisi di linkage è un problema di stima di massima verosimiglianza (MLE) e appartiene alla classe dei problemi NP-hard [9]. Gli algoritmi finora studiati ed implementati sono due: l algoritmo Elston-Stewart [22] e quello Lander-Green [44], dal nome degli ideatori, proposti rispettivamente nel 1971 e nel Per quanto molto potenti ed utili, tali algoritmi presentano limitazioni computazionali, il primo sul numero dei marcatori mentre il secondo sul numero di individui. Gli applicativi che implementano le due logiche sono molteplici, tra cui citiamo Linkage [25] ed SLink [28] per l Elston-Stewart algorithm, e GeneHunter [43] per il Lander-Green algorithm. Recentemente sono stati proposti approcci alternativi che potenzialmente riescono a superare tali limiti, per esempio mediante reti bayesiane [48, 49] o catene di Markov con risoluzione Monte Carlo [54], ma sono ancora ad uno stadio sperimentale poiché le implementazioni derivanti come Superlink [50] non riescono ad essere stabili ed affidabili. Per risolvere il linkage i biologi del laboratorio utilizzano i due programmi citati, GeneHunter ed SLink, e per eseguire tali applicativi è necessario creare dei file specifici, contenenti le informazioni sia delle regioni cromosomiche da osservare, i marcatori, che quelle riguardanti la ricostruzione degli aplotipi della famiglia (ovvero quali dati posseggono nella specifica regione genica) schematizzata come un grafo ad albero. Le informazioni sui marcatori sono pubbliche e liberamente consultabili presso le banche dati online di associazioni come il GDB el NIH, mentre per quanto concerne il pedigree è necessario ricostruire la singola famiglia a mano. Il primo obiettivo è la creazione di un sistema di information retrieval dei dati dei marcatori che interroghi i database citati; in questo modo si realizza l automatizzazione di un processo che solitamente veniva compiuto a mano e spesso comportava molto tempo di lavoro e possibili errori difficilmente rilevabili. Una volta creati i file di ingresso per i programmi, è necessario eseguirli correttamente. La difficoltà in questa fase risiede nella limitazione dal punto di vista computazionale degli algoritmi che processano l analisi di linkage. Infatti sia GeneHunter che SLink, risentendo dei vincoli intrinseci degli algoritmi che implementano, hanno dei limiti nei parametri da inserire, il primo per la variabile del numero di persone all interno del pedigree mentre il secondo per il numero di alleli in ogni marcatore. Nonostante i limiti di GeneHunter non creino ostacoli al lavoro dei biologi, poiché non è stato ancora superato il valore soglia, per SLink invece si presenta la necessità di un esecuzione più ampia. L approccio empirico usato dai biologi è il lancio sequenziale dell applicazione con diversi file di ingresso per ogni marcato-

10 4 re creati come combinazione lineare dei valori di alleli secondo una precisa logica, simile alla tecnica sliding window dei protocolli di trasmissione dati. Il secondo obiettivo diventa quindi la creazione di un sistema che permetta 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 è la creazione di uno strumento completo e agevole all uso per l analisi di linkage, che non solo recuperi automaticamente i dati per la creazione dei file dei marcatori, ma anche possa eseguire i due software maggiormente usati per l analisi di concatenazione genica con implementato l approccio multiallelico. La trattazione inizia con un capitolo di definizioni genetiche, per poter avere gli strumenti essenziali ad una completa comprensione del dominio applicativo. Il successivo capitolo 3 descrive lo stato dell arte del problema del linkage, in cui si analizzano gli algoritmi esistenti per solvere il calcolo matematico, con i rispettivi limiti computazionali e implementazioni realizzate. Nel capitolo 4 viene progettata la soluzione applicativa, e quindi si descriverà il programma creato con i singoli moduli che ricoprono i differenti aspetti del problema, dal data retrieval all esecuzione dei software. Il capitolo 5 è dedicato interamente all implementazione, e dettaglierà ogni parte dei moduli, sia come logica interna che come strutture dati e codifica. Al termine dell implementazione, come si richiede ad ogni processo di creazione software, saranno descritti nella sezione 6 i test eseguiti e la conseguente validazione da parte dei biologi sul programma creato. Infine il capitolo 7 sulle conclusioni sintetizzerà il lavoro svolto, prospettando le future necessità ed estensioni ancora realizzabili. 1 Il termine multiallelica indica la possibilità di processare ogni marcatore per più del numero limite di alleli, vincolo di SLink.

11 Capitolo 2 Genetica e Analisi di Linkage In questo capitolo si introducono i concetti fondamentali per la comprensione del problema, con particolare riguardo per l ambito di maggiore interesse, l analisi di linkage. L intenzione di questa sezione quindi non è di presentare in modo esaustivo tutti gli argomenti sulla genetica e biologia, per i quali si rimanda ai testi specifici, ma richiamare i fondamenti di biologia cellulare e genetica necessari per la comprensione del dominio applicativo, a cui vi saranno dei riferimenti. 2.1 Concetti e strumenti di base Per prima cosa parleremo della struttura del DNA e delle funzioni che ricopre, per arrivare poi all analisi del DNA e alla citogenetica, introduzione che ci avvierà verso la meiosi e da qui verso la concatenazione genica nell ereditarietà DNA (acido desossiribonucleico) Il DNA è il veicolo per l immagazzinamento e la trasmissione dell informazione genetica, codificata nella sequenza lineare dei nucleotidi. I nucleotidi sono composti da una parte costante, costituita da un gruppo fosforico e da un desossiribosio (zucchero a cinque atomi di carbonio, o pentoso), e da una parte variabile (base azotata). Le basi azotate si distinguono in purine (adenina A, e guanina G) e pirimidine (citosina C, e timina T). Il DNA è localizzato nel nucleo delle cellule eucariotiche ed è organizzato in forma compatta in strutture complesse dette cromosomi (figura 2.1). Il DNA è necessario alla cellula per produrre le proteine. Le proteine sono le molecole più abbondanti negli organismi, e con la maggiore eterogeneità funzionale e strutturale; sono polimeri di aminoacidi organizzati in catene polipeptidiche: ciascun tipo di proteina viene sintetizzata mediante

12 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 chiamati aminoacidi. Utilizzando 20 aminoacidi è possibile sintetizzare tutte le proteine necessarie per le funzioni vitali degli organismi viventi. Nella sequenza di basi del DNA è codificata la sequenza di aminoacidi che forma il polipeptide, ove una tripletta di basi identifica uno specifico aminoacido. La sequenza lineare di basi azotate del DNA contiene quindi l informazione per costruire le proteine. Tale sequenza è nota come gene: ilgeneè l unità fondamentale, fisica e funzionale, dell informazione genetica. L espressione dell informazione genetica codificata nel DNA avviene in due stadi: la trascrizione e la traduzione. Nella trascrizione il filamento di DNA fa da stampo per produrre mrna che viene poi opportunamente modificato. Nella traduzione l mrna detta la sintesi delle proteine. La salvaguardia del materiale genetico richiede meccanismi estremamente precisi sia di duplicazione che di riparazione. Nonostante ciò possono avvenire nel DNA di una cellula delle variazioni casuali della normale sequenza nucleotidica (mutazioni). Le malattie genetiche sono causate da mutazioni del genoma. Il genoma è l insieme del DNA di un individuo appartenente ad una determinata specie. Le mutazioni germinali si verificano durante le meiosi (ovvero la produzione dei gameti, o cellule sessuali) e possono essere trasmesse alla prole. Le mutazioni somatiche si verificano durante la mitosi (replicazione del DNA e della cellula) e portano per esempio ai tumori. Uno schema delle possibili

13 2.1 Concetti e strumenti di base 7 mutazioni riscontrabili viene presentato in appendice, A. Per queste caratteristiche le mutazioni sono il nostro primo motivo di indagine per le malattie da analizzare Citologia e Citogenetica Tutti gli esseri viventi sono organismi dotati di un corredo genetico organizzato in cromosomi, quindi tutto il patrimonio informativo è situato nei cromosomi. Questi ultimi vengono ordinati in coppie (cosa che ci caratterizza come organismi diploidi) di cromosomi omologhi in base alle loro caratteristiche; tale classificazione definisce il cariotipo, ovvero il corredo cromosomico di un organismo. I cromatidi sono le due sotto unità dicuiso- no costituiti i cromosomi, e sono costituiti da due filamenti identici di DNA uniti in un punto detto centromero posto a metà dei filamenti. Il cariotipo umano è formato da 22 coppie di autosomi, i cromosomi non sessuali, e da una coppia di cromosomi sessuali, XX per la femmina e XY per il maschio. Un carattere ereditario (mendeliano o monofattoriale) è definito da un segmento di DNA codificante chiamato gene. In ciascun cromosoma i geni hanno un ordine preciso e ciascun gene occupa una posizione specifica detta locus. Le forme alternative di un gene si definiscono alleli; in un individuo i due alleli occupano sui cromosomi omologhi lo stesso locus. Quando ad un dato locus esistono più forme alternative di un gene, quindi alleli, e queste forme hanno una frequenza considerevole in una popolazione, il locus èdefinitopolimorfico: infatti gli alleli si originano per mutazione di un gene, e il polimorfismo si stabilisce quando l allele mutato si conserva e si trasmette nelle generazioni. Nella figura 2.2 si osserva un cariotipo umano, e nella figura di destra su un cromosoma la presenza di due forme alternative di un gene allo stesso locus, nominate A ed a. Se ad un certo locus polimorfico un individuo possiede due alleli identici ereditati rispettivamente uno dal padre e uno dalla madre, si dice che per quel locus è omozigote; se invece possiede due alleli diversi si chiama eterozigote per quel locus. Si definisce genotipo l insieme degli alleli presenti ai diversi loci nel genoma di un individuo. La proteina, nella sua struttura specifica (primaria o lineare, secondaria o doppia elica, terziaria o tridimensionale, e infine quaternaria) acquisisce una funzione specifica, arrivando a manifestare nel fenotipo l informazione biologica codificata nel gene. Il fenotipo è il risultato dell interazione dei geni tra loro e l ambiente, infatti le caratteristiche esteriori che un individuo esplicita nel fenotipo sono variabili (grazie anche all intervento dell azione dell ambiente) sebbene dipendenti da una codifica specifica, il genotipo, che è immutabile. La divisione nelle cellule somatiche, mitosi, garantisce l esatta trasmissio-

14 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 sessualmente maturi avviene anche la meiosi, un processo di divisione cellulare riduzionale che dà origine ai gameti, spermatozoi o ovuli, caratterizzati dall avere un patrimonio genetico aploide. Dall unione alla fecondazione del gamete maschile e femminile si forma lo zigote, che torna ad avere un patrimonio genetico diploide (metà materno e metà paterno). Seguiranno cicli di divisione cellulare mitotica fino alla formazione dell individuo; tutte le sue cellule saranno perciò geneticamente identiche, e le diverse forme e funzioni che esse acquisiranno deriveranno esclusivamente dall accensione o spegnimento dei geni opportuni. La meiosi consente un notevole rimescolamento dei cromosomi, infatti dividendo a metà il corredo cromosomico è improbabile che tutti i cromosomi di origine materna finiscano nello stesso gamete. Al fine di meglio comprendere le dinamiche di meiosi appena esposte, si rimanda all appendice relativa A, in cui vengono presentate immagini di meiosi maschile e femminile durante tutte le loro fasi. Un evento importante che avviene durante la meiosi è la ridistribuzione del patrimonio genetico tra cromosomi omologhi attraverso il crossing over, ovvero lo scambio fisico dei segmenti tra i cromatidi non fratelli dei cromosomi omologhi, che permette la ricombinazione del patrimonio genetico. Le regioni in cui si verificano tali eventi si chiamano chiasmi. Infatti presi due loci e due alleli, come per esempio quelli in figura 2.3,

15 2.1 Concetti e strumenti di base 9 Figura 2.3: Esempio di crossing over, con configurazione coupling e repulsion. tramite il fenomeno del crossing over, si possono ottenere quattro tipi di gameti diversi. In particolare si possono distinguere due tipologie di crossing over: in cis, o coupling, se gli alleli sono sullo stesso cromosoma omologo, mentre in trans, o repulsion, se provengono da diversi cromosomi. A seconda del gamete che il figlio eredita si parlerà di ricombinazione o meno: se il gamete del figlio ha la stessa composizione di quelli parentali allora non si è avuta la ricombinazione, altrimenti sì. Chiamando θ la frazione di ricombinazione, per calcolare θ, sapendo in generale che θ non può superare il valore di 0, 5, basta osservare l albero genealogico e calcolare nella prole quante volte si è verificata la ricombinazione sul numero totale di figli, ponendo numero gameti ricombinanti θ = numero gameti trasmessi Il motivo per cui θ non può superare la soglia del 50% si chiarisce in questo modo: dato che ogni evento di crossing over coinvolge due cromatidi dei quattro presenti a questo stadio, ne risulta una frequenza massima di ricombinazione non superiore al 50%, e perciò θ non potrà maisuperareil valore di 0, 5. I gameti non ricombinanti vengono anche chiamati parentali. La figura 2.3 (lato destro) mostra proprio il perché non si possano avere percentuali superiori al 50: partendo da quattro cromatidi solo due di questi si riconbineranno. Chiamando carattere una qualsiasi caratteristica di un organismo rilevabile, se un carattere è controllato da alleli ad un singolo gene, quest ultimo è chiamato monofattoriale (o mendeliano). Per determinare il fenotipo che farà seguito a un dato genotipo occorre

16 2.2 Formalismo negli alberi genealogici 10 tenere conto della dominanza degli alleli. Un allele dominante si manifesta sia negli individui omozigoti che in quelli eterozigoti: è sufficiente possederne una sola copia per esprimerlo. Un allele recessivo si manifesta solo negli individui omozigoti per l allele in questione. In alcuni casi, gli eterozigoti manifestano fenotipicamente entrambi gli alleli che possiedono: non accade, come di solito, che uno (quello dominante) copra l espressione dell altro (quello recessivo) ma le due espressioni coesistono dando origine a un fenotipo misto. In questi casi di parla di codominanza. Quando la malattia si verifica in tarda o media età viene chiamata a esordio tardivo. Se una malattia era destinata a manifestarsi e non si manifesta si dice che èavvenutoundifetto di penetranza. Il genotipo è malato ma l individuo è sano. Questo è un caso che avviene quando delle malattie hanno espressività variabile, ovvero quando la malattia si manifesta con vari gradi di gravità in presenza di uno stesso genotipo. Il termine penetranza si riferisce all espressione o meno di un fenotipo: in presenza di un determinato genotipo è completa (100%) se il fenotipo si esprime ogni volta che il gene è presente, mentre è incompleta o ridotta quando il fenotipo non può esprimersi nei portatori del gene. Nella eredità autosomica dominante il carattere è indipendente dal sesso, è trasmesso alle generazioni successive in entrambi i sessi, ogni persona affetta ha almeno un genitore affetto, circa il 50% dei figli di un genitore affetto è affetta, e la malattia è presente in tutte le generazioni. Nell eredità autosomica recessiva il carattere è indipendente dal sesso, e se i genitori sono eterozigoti sani i figli sono omozigoti sani, eterozigoti sani o affetti con frequenza rispettivamente del 25%, 50% e 25%; se il carattere è raro vi può essere consanguineità dei genitori degli individui affetti. Nei casi di studio che verranno analizzati dal laboratorio e quindi testati dall applicazione creata sarà presa in considerazione una famiglia affetta da malattia autosomica dominante. 2.2 Formalismo negli alberi genealogici Gli alberi genealogici vengono schematizzati con un formalismo preciso, che possa tener conto di tutte le possibili combinazioni e varianti geniche. L obiettivo infatti è quello di massimizzare la facilità di rappresentazione per una migliore comprensione della famiglia in esame. Nella figura 2.4 sono stati raccolti i principali simboli utilizzati negli alberi che tratteremo. 2.3 La concatenazione genica Geni localizzati su cromosomi diversi vengono trasmessi indipendentemente. Questo però non accade per i geni localizzati in loci vicini sullo stesso cromosoma: la ricombinazione, fenomeno che accade durante la prima divisione

17 2.3 La concatenazione genica 11 Figura 2.4: Simboli adottati per gli alberi genealogici. meiotica, separerà raramente due loci vicini perché solo un crossing-over localizzato esattamente nel piccolo spazio che li separa creerà ricombinanti. Da ciò gruppi di alleli su uno stesso segmento cromosomico tendono ad essere trasmessi in blocco lungo le generazioni in un albero genealogico; tale blocco viene chiamato aplotipo. L interesse nello studio degli aplotipi è dato dalla caratteristica di estensibilità a popolazioni: se non vengono riassortiti dalla ricombinazione gli aplotipi possono essere usati per il mappaggio come alleli a singolo locus altamente polimorfico. Il mappaggio genico diventa uno strumento essenziale di studio. Ora che il genoma è stato completamente sequenziato 1, si ha una misurazione basata sulla distanza fisica dei geni, ovvero in una misura di paia di basi, ed è una misura esatta. Fino a poco tempo fa invece si partiva proprio dalla frazione di ricombinazione per creare l unità di misura del mappaggio, che è una distanza genetica, corrispondente alla distanza tra due loci: in particolare si utilizzava come unità ilcentimorgan (cm), per cui l 1% di ricombinazione (θ = 0, 01) equivale a 1 centimorgan; questa è quindi una misurazione approssimata, infatti si assume che 1 cm equivale mediamente a nucleotidi; si pensi che l intero genoma umano ha una dimensione di circa 3000 cm. Un unità di mappa corrisponde ad un tratto di cromosoma nel quale in media si verifica un crossing over ogni 50 meiosi, generando due 1 Grazie al Progetto Genoma, iniziato nel 1988 e conclusosi nel febbraio 2001, creando database liberi, consultabili via Internet.

18 2.3 La concatenazione genica 12 gameti ricombinanti su 200. Le principali differenze tra la distanza fisica e genetica sono enumerabili come segue: la distanza genetica tra due punti localizzati alla stessa distanza fisica non è esattamente la stessa in tutto il genoma, e differisce leggermente anche tra soggetti di diverso sesso; la relazione tra frazione di ricombinazione θ e distanza effettiva di mappa non è lineare: tanto è maggiore la distanza fisica tra loci tanto è maggiore la discrepanza, poiché possono verificarsi doppi eventi di ricombinazione che ristabiliscono la configurazione originale. Grazie all analisi di concatenazione genica, detta linkage, su diversi loci si riesce a determinare più efficientemente la posizione dei crossing-over, e quindi l ordine dei geni e le distanze tra loci. Per ridurre la discrepanza tra la distanza genica e quella fisica si ricorre all utilizzo di un gran numero di loci marcatori. La relazione matematica tra frazione di ricombinazione e distanza di mappa viene descritta attraverso la funzione di mappa. Le due funzioni di mappa più utilizzate sono [13]: funzione di Haldane: se i crossing over si verificano casualmente e senza influenzarsi reciprocamente; funzione di Kosambi: tiene conto delle interferenze tra i crossing-over, poiché la presenza del primo di questi ne impedisce la formazione di un altro. Il mappaggio genico nell uomo sfrutta i marcatori genici, che sono sequenze nucleotidiche note, facilmente rintracciabili. L obiettivo dell analisi di linkage è quindi quello di misurare la tendenza di un marcatore genetico e della malattia ad essere ereditati tra le generazioni, e quindi trovare quante volte negli individui affetti della stessa famiglia venga ereditato lo stesso allele riferito ad uno o più marcatori, partendo dall osservazione che nella famiglia si siano prodotti solo due tipi di gameti anziché quattro equiprobabili da esaminare con la fase degli alleli ai due loci. I marcatori polimorfici più usati sono i VNTR (variable number of tandem repeats), che sono detti microsatelliti quando l unità ripetuta è lunga da due a quattro paia di basi (bp). L analisi dei marcatori polimorfici si può facilmente eseguire in laboratorio: una volta ottenuto il DNA si procede ad un amplificazione del frammento scelto mediante PCR (polymerase chain reaction), seguita da una separazione su gel di acrilammide o mediante metodiche automatizzate su sequenziatore. Al fine di una corretta correlazione c è bisogno di meiosi informative, che si ottengono quando si può identificare se il gamete èricombinanteomeno, e quando si riesce a tracciare il percorso di eredità con certezza.

19 2.3 La concatenazione genica 13 Tale analisi permette di riconoscere a livello del gene i polimorfismi, ovvero varianti geniche tra individui della stessa specie consistenti in differenze più o meno ampie della sequenza nucleotidica. Sintetizzando quelle che sono le migliori condizioni e le caratteristiche per la informatività negli individui, si può asserire che: per avere informazioni su quali alleli in ogni locus sono stati trasmessi da genitori a figli bisogna poter distinguere gli alleli uno dall altro, da ciò sarà maggiormente informativa la segregazione eterozigote ai due loci purché si riesca a distinguere quali siano gli alleli dell altro genitore; i caratteri allelici codominanti sono maggiormente informativi di quelli dominanti-recessivi perché permettono di identificare gli eterozigoti; tipici loci di questo tipo sono i VNTR e i microsatelliti, di cui faremo uso come marcatori poiché costituiti da ripetizioni fissate di sequenze di nucleotidiche differenti per ogni microsatellite; perciò un locus è tanto più informativo quanto maggiore è la probabilità di trovare individui eterozigoti a quel locus; è più probabile che siano informativi loci con molti alleli che non con solo due poiché cresce la probabilità che i genitori siano eterozigoti per ilociconsiderati,echesianodiversitramadreepadre. Dopo aver raccolto famiglie in cui segrega una patologia mendeliana ed averle tipizzate con un marcatore informativo, come si fa a sapere se si è trovato un linkage? Questa domanda potrebbe essere formulata come: quale test statistico bisogna usare per verificare se la frazione di ricombinazione sia significativamente diversa da 0, 5, che è il valore atteso nell ipotesi di assenza di linkage? Nella figura 2.5 si può osservare un esempio di segregazione agli alleli A, a e B, b. Dal genitore eterozigote possono essere prodotti quattro gameti differenti, con equiprobabilità (ipotesi di indipendenza alla segregazione), generando quindi (A,B) (a,b) (A,b) (a,b). In assenza di ricombinazione si otterrebbero degli accoppiamenti sui cromosomi (coupling) omologhi ai genitori (cis-coupling); a contrario se si avessero ricombinazione vedrei accoppiamenti incrociati (trans-coupling). Si noti che se la fase degli alleli a due loci avesse identificato una segregazione (non ricombinante) con solo due tipi di gameti, si sarebbe potuto supporre l ipotesi di concatenamento (linkage); la figura 2.6 presenta esattamente questa situazione, in cui la ricombinazione non è indipendente (avrei dovuto avere 25% di probabilità) ma si presentano solo due conformazioni di gameti nei figli (quindi 50% di probabilità per ogni gamete). Per esemplificare i procedimenti da utilizzare nelle analisi, mostriamo una famiglia secondo la formalizzazione grafica ad albero genealogico (fi-

20 2.3 La concatenazione genica 14 Figura 2.5: Combinazioni geniche ricombinanti e non. Figura 2.6: Combinazioni geniche senza ricombinazione. Figura 2.7: Famiglia con malattia autosomica dominante. Figura 2.8: Studio fase ai due loci della famiglia. gura 2.7); la famiglia è affetta da una malattia autosomica dominante con espressione variabile agli alleli (S,s) e (D,d), in cui il locus s manifesta il fenotipo secretore mentre d manifesta fenotipo malattia; dato questo schema, sapendo che la famiglia è informativa (quindi il padre è omozigote recessivo e la madre eterozigote dominante), si deduce che il padre potrà trasmettere solo (s,d), mentre la madre è (S,s) (D,d), ove la lettera in maiuscolo è la malattia. Eseguendo la fase degli alleli ai due loci si ricava che i figli avranno le caratteristiche visibili nella figura 2.8. Se i due loci fossero localizzati su cromosomi diversi (ipotesi di indipendenza), la madre potrebbe produrre quattro tipi di gameti diversi equiprobabili, ma in questo caso si riscontrano solo due tipi di gameti, non ricombinanti, e ciò induce all ipotesi di concatenazione dei loci e che la fase degli alleli ai due loci nella madre sia (S,D) e (s,d). Nell ipotesi che i due loci siano strettamente correlati ci attendiamo che la madre produca il 50% di gameti (s,d) e il 50% (S,D), e quindi la probabilità di trasmettere a quattro figli il gamete (S,D) è(1/2) 4 (1/2) 2 = 1/32;

21 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 probabilità di generare lo stesso gamete, quindi la probabilità di trasmeterlo è(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 secretore ma sia sano, si avrebbe una caratteristica (S,d), quindi ricombinante. L ipotesi di concatenamento vale ancora: la frazione di ricombinazione sarebbe quindi θ =1/6 =0, 17. In base ai dati in nostro possesso, avendo solo una generazione e sapendo che la fase degli alleli ai due loci nella madre è stata dedotta dalla segregazione nei figli, si potrebbe anche supporre il duale di quanto finora pensato: ci siano cinque figli ricombinanti e solo uno erediti la configurazione parentale (che sarebbe perciò (s,d) e (S,d)), e la figura 2.9 schematizza tale combinazione genica. Per riuscire a scegliere quale sia la combinazione più probabile si calcolano le probabilità 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 la scelta ricade sulla prima ipotesi. La significatività statistica delle osservazioni di concatenazione ad una certa distanza di ricombinazione variabile tra θ = 0eθ = 0, 5 viene valutata tramite un test statistico chiamato lod score (ove lod sta per logarithm of odds ) Likelihood e l analisi del Lod Score Riassumiamo brevemente i concetti applicati alla genetica di verosimiglianza e lod score [8]. La verosimiglianza ( likelihood ) e il lod score sono misure della plausibilità dei dati osservati (sostanzialmente differiscono per la scala, il lod score è in scala logaritmica). Il loro valore dipende dai valori assunti di θ, e ove è massimo si ottiene la massima stima (maximum likelihood estimate MLE); empiricamente il valore maggiore tende ad incrementare con l aggiunta di famiglie.

22 2.3 La concatenazione genica 16 Per spiegare un particolare fenomeno naturale gli scienziati creano un modello del fenomeno, alternativamente definito come ipotesi, che riesca a prendere in considerazione la maggior parte delle informazioni note. Le ipotesi devono essere verificate sulla base di osservazioni: più i dati sono concordi con le ipotesi e maggiore è la veridicità del modello (attinenza modellistica alla realtà). Il problema diventa ora come stimare la correttezza di ipotesi concorrenti, e capire se i dati risultano più inclini ad una ipotesi piuttosto che ad altre formulate. Per risolvere tale questione si ricorre ad una misura statistica, ovverolaverosimiglianza (likelihood), Fisher (1970) e Edwards (1992). La verosimiglianza di un ipotesi H date le osservazioni F è definita come la probabilità con cui le osservazioni ricorrono L(H) = P (F ; H), in funzione della specifica ipotesi. La differenza sostanziale tra verosimiglianza e probabilitàè che la prima è una funzione di un parametro (costante spesso sconosciuta nei modelli genetici come vedremo), mentre la seconda è una funzione di un evento. Comparando le ipotesi, il valore assoluto delle rispettive verosimiglianze non è molto significativo, e quindi si rapporta a costanti adatte; da ciò proviene l utilizzo dell odds 2 come quantità di propensione verso una ipotesi H 1 contro un altra H 2, ovvero il rapporto di verosimiglianza R = L(H 1 )/L(H 2 ). Il logaritmo naturale della verosimiglianza S(H) = ln(l(h)) è chiamato supporto per l ipotesi H. Nell analisi di linkage (per esempio a due loci) le due ipotesi di base sono H 0 (assenza di ricombinazione) e H 1 (concatenamento genico, o linkage); queste differiscono, come detto precedentemente, dai valori assunti da θ: per H 0 si ha θ =0, 5, mentre per H 1 si ha θ 0, 5. Convenzionalmente il logaritmo decimale del rapporto di verosimiglianza è chiamato lod score, ed è usato come misura del supporto per la presenza di linkage contro la sua assenza, ed è espresso nella formula 2.1: L(θ) Z(θ) =log 10 L(1/2). (2.1) Molti modelli, le nostre ipotesi, contengono variabili (i parametri del modelli), i cui valori spesso sono ignoti e devono essere stimati sulla base delle osservazioni: per questa ragione le variabili vengono associate statisticamente alle variabili aleatorie, eperciò ogni funzione di variabili aleatorie che non dipende da valori ignoti è chiamata statistica. Glistimatori sono funzioni di osservazioni costruite per stimare tali valori ignoti. Un metodo generico di stima dei parametri èlastimadimassima verosimiglianza (MLE), Fisher (1922). Preso un supporto quindi, S(H = q) = ln(l(q), il valore di q che massimizza la funzione è la MLE ˆq di q, e analiticamente si trova tramite 2 Letteralmente quota, rapporto diverso da ratio, ma si considera migliore una definizione astratta come quota a favore, data l idea di base rappresentata come rapporto probabilistico p/(1 p) del vantaggio di una ipotesi rispetto al suo complemento.

23 2.3 La concatenazione genica 17 la derivata prima ds/dq, ove questa si annulla, ds/dq = 0. Nell analisi di linkage la verosimiglianza non può essere massimizzata analiticamente, ma le varie MLE devono essere trovate numericamente variando i valori dei parametri di interesse, e ricalcolare la verosimiglianza per molti valori finché non si trova un valore MLE approssimato. Tra le proprietà della MLE si riprende in considerazione una, la distorsione. Spesso le stime sono distorte, quindi se il campione viene ripetuto sugli stessi tipi di dati, la MLE può assumere diversi valori. Per esempio considerando una frazione di ricombinazione ˆθ = k/n (k: numero di ricombinanti; n k: non ricombinanti), la stima può assumere diversi valori (0/n;1/n;...), e la probabilità che si verifichi uno di tali valori è data dal modello binomiale ( n k) θ k (1 θ) n k.conθ i l i-esimo esito di una particolare MLE di θ, ep i la probabilità che si verifichi, allora la media pesata E(ˆθ) = p i ˆθi (2.2) è il valore atteso dello stimatore ˆθ; se il valore di 2.2 è uguale al vero parametro di θ, allora ˆθ è uno stimatore non distorto. La distorsione di ˆθ viene calcolata come: b(ˆθ) =E(ˆθ) θ. In generale nell analisi di linkage non viene considerata la distorsione, né la sua riduzione; è comunque utile sapere che tale caratteristica si può valutare. Considerando un pedigree di dimensione m, sia x i il fenotipo dell iesimo membro della famiglia con fenotipo x ad un locus o a multipli loci. Da qui la verosimiglianza, essendo la probabilità delle osservazioni, è L = P (x 1,x 2,..., x m ). Nella statistica classica le osservazioni sono di solito mutuamente indipendenti e quindi la precedente formula diventa L = P (x i ). I dati in una famiglia invece non sono indipendenti e quindi una semplice rappresentazione della verosimiglianza non è possibile. Nella maggior parte deicasiperò tali informazioni sono condizionatamente indipendenti dati i genotipi, arrivando a stendere la formula P (x 1,x 2,..., x m g 1,g 2,..., g m )= P (xi g i ), che intrinsecamente significa che in ogni individuo il fenotipo dipende dal suo genotipo. Da ciò la verosimiglianza non condizionata può essere scritta come: L = P (x) = g P (x, g) = g P (x g) P (g) (2.3) ove x =(x 1,x 2,..., x m )è l array dei fenotipi mentre g =(g 1,g 2,..., g m )è l array dei genotipi, e la sommatoria tiene conto di tutti gli insiemi degli assegnamenti di genotipi ai membri della famiglia, la cui somma potrebbe essere grande. Infatti per soli due alleli per ciascuno dei due loci si presentano quattro aplotipi, H = 4, e quindi ogni individuo ha H (H +1)/2 potenziali genotipi. Considerando una famiglia costituita da m persone, si materializzano 10 m differenti insiemi di array di genotipi. Si noti che non tutti questi insiemi di genotipi devono essere considerati, poiché per esempio

24 2.3 La concatenazione genica 18 alcuni di essi potrebbero essere incompatibili con le leggi mendeliane. Questa rappresentazione di verosimiglianza nei pedigree è stata portata avanti per prima da Elston e Stewart nel 1971, producendo un algoritmo chiamato appunto Elston-Stewart algorithm, che verrà presentato successivamente. In sintesi il linkage si riassume così: 1. è un metodo per mappare la predisposizione genetica alle malattie nelle famiglie, perciò 2. identifica la posizione del locus malattia nel genoma; 3. la segregazione del locus malattia e del locus del marcatore genetico è statisticamente testato tramite (1) stima della frazione di ricombinazione, cioè distanza genetica tra locus malattia e marcatore, e (2) metodi di massima verosimiglianza L(θ) =P (dati θ).

25 Capitolo 3 Stato dell arte sull analisi di linkage In questo capitolo verrà presentato lo stato dell arte sul problema dell analisi di linkage, partendo dalla identificazione del problema dal punto di vista computazionale, passando attraverso gli algoritmi di calcolo esatto e loro implementazioni, fino ad arrivare ai test effettuati sui software esistenti. 3.1 Il problema del linkage L analisi standard del lod score viene definita parametrica perché richiede un preciso modello genetico, in cui si dettagliano le modalità di eredità, le frequenze geniche e la penetranza di ciascun genotipo. In questo modo se si hanno modelli attendibili, l analisi di linkage parametrica risulta un metodo estremamente potente per sondare il genoma. Riuscire a specificare un modello adeguato per i caratteri mendeliani non è particolarmente complesso; mentre per le condizioni non mendeliane si presentano molti problemi, tra cui stabilire criteri diagnostici, effettuare l analisi della segregazione (per identificare le modalità ereditarie, le frequenze geniche e le penetranze più probabili), e utilizzare criteri estendibili a più famiglie. In questo contesto si utilizza l analisi di linkage non parametrica, ovvero ignorando l analisi delle persone non affette ma concentrandosi sulla ricerca di alleli o segmenti cromosomici comuni agli individui affetti. Tale approccio viene utilizzato non solo per la singola famiglia, ma esteso anche a più famiglie fino ad arrivare agli studi sulle popolazioni. Nel nostro ambito verrà preso in esame il modello parametrico perché si concentreranno gli studi sulle malattie autosomiche dominanti in cui il calcolo analizza una singola famiglia in base alla modalità di eredità, frequenze e penetranze dei genotipi.

26 3.2 Analisi computazionale del problema del linkage Analisi computazionale del problema del linkage Il problema dell analisi di linkage appartiene alla classe dei problemi NPhard [9], quindi per definizione ha una complessità almeno pari alla classe dei problemi NP-completi, ma potrebbe anche non appartenere all insieme NP 1. Una prerogativa della teoria computazione è verificare che i problemi siano trattabili oppure insolubili, e riuscire a classificare gli algoritmi in un modo o nell altro. In questo modo cerchiamo di risolvere un problema di soddisfacibilità, sapendo che ogni problema è riconducibile ad uno equivalente decisionale, e quindi di soddisfacibilità (teorema di Cook della riduzione polinomiale a SAT). Definendo con P la classe dei problemi decisionali risolvibili in tempo polinomiale da un algoritmo deterministico, NP la classe dei problemi di decisione risolvibili in tempo polinomiale da un algoritmo non deterministico, si afferma che P è incluso in NP; ma l inclusione è stretta o no? Ovvero, è possibile risolvere in maniera efficiente ogni problema decidibile? Se esiste un algoritmo deterministico che risolve il problema della soddisfacibilità in tempo polinomiale allora P = NP. Dal punto di vista teorico non esiste ancora un metodo per stabilire tale relazione. Esistono molti problemi ai quali si applica il teorema di Cook, perché sono tanto complessi quanto il problema della soddisfacibilità, e vengono chiamati NP-completi, in particolare sono quei quesiti ritenuti intrinsecamente difficili. Un problema è detto NP-arduo (hard), se il problema della soddisfacibilità è riducibile ad esso in tempo polinomiale; un problema è NP-completo se è NP-hard e appartiene ad NP. La dimostrazione che il problema del linkage è NP-hard, data da Piccolboni e Gusfield [9] parte dalla modellizzazione della struttura del pedigree in un grafo ove i nodi sono gli individui e gli archi le relazioni di parentela, e associando ad ogni istanza del problema due variabili per nodo rappresentanti il genotipo (alleli) e il fenotipo: quest ultima separazione trova necessità nel caso in cui bisogna inferire ipotesi dal fenotipo al genotipo; come ultimo parametro si inserisce il modello ereditario. In generale i pedigree possono contenere dei cicli (loops) creando grafi ciclici, a causa per esempio di matrimoni tra consanguinei, cosa che aumenta la complessità di calcolo, e che potrebbe far diventare il problema non NP, quindi insolubile; la dimostrazione portata avanti dagli autori però non considera cicli tra consanguinei ma valida la dimostrazione sperimentale della solvibilità dei problemi con famiglie senza cicli. I due principali problemi computazionali riscontrati nell analisi 1 Si ricorda che NP indica la classe di tutti i problemi decisionali, che quindi terminano con una risposta affermativa o negativa dato che ogni problema di ottimizzazione può essere sempre ridotto in forma decisionale, risolvibili in tempo polinomiale da una macchina sequenziale a stati finiti deterministica, come la RAM (in questo modo si sceglie un modello computazionale semplice e versatile che sfrutta registri e memoria finita).

27 3.3 Algoritmi sul linkage 21 dei pedigree sono: il problema della probabilità marginale (marginal probability), e la massima verosimiglianza (maximum likelihood). Per entrambi i problemi la strategia ricorre alla riduzione al dominio di soddisfacibilità SAT, per poi dimostrare la decidibilità. Dimostrare che il problema del linkage appartiene alla classe NP-hard è importante perché giustifica la difficoltà intrinseca nel trovare un algoritmo completo che risolva il calcolo in tempo polinomiale, e quindi assolve gli algoritmi esistenti che come vedremo hanno limitazioni computazionali e presentano vincoli nei parametri a cui sottostare. 3.3 Algoritmi sul linkage Gli algoritmi che calcolano il linkage sono derivati dall iniziale problema del mappaggio genico in base alla frazione di ricombinazione, cosí da risalire alla posizione del locus malattia nel genoma rispetto al marcatore. In questa ottica sono stati ideati i primi algoritmi, poi estesi all analisi del linkage [1]. Un problema fondamentale con la ricostruzione di mappe di linkage genetiche negli uomini è che alcuni dati importanti spesso mancano. In questo modo i genetisti non possono semplicemente contare le ricombinazioni negli incroci proprio perché la mancanza di tutte le informazioni non permette di capire senza ambiguità dove sono avvenute; le motivazioni possono essere: (1) i genitori sono spesso omozigoti, e quindi poco informativi, e (2) anche se i genitori fossero informativi sono spesso sconosciuti quali alleli nei loci sono in ricombinazione cis o trans (per esempio se la fase è sconosciuta), e (3) il genotipo non è univocamente dedotto dal fenotipo. Come accennato finora, tale problematica è stata affrontata tramite la teoria della verosimiglianza, e in particolare con il metodo della stima della massima verosimiglianza (MLE - maximum likelihood estimation): considerando tutte le possibilità per i dati mancanti, le mappe sono scelte in base a quali massimizzano la probabilità che i dati osservati emergono. Uno dei primi algoritmi che ha sviluppato tale teoria è stato quello di Elston e Stewart del 1971, chiamato con il nome degli ideatori Elston-Stewart algorithm, che da pioniere ha aperto la strada ai successivi approcci quali quello proposto da Lander e Green nel 1986, Lander-Green algorithm, e ai metodi ancora sperimentali delle reti Bayesiane. In questa parte della trattazione saranno presi in esame tali algoritmi partendo dagli approcci tradizionali, cercando di presentarne una sintesi, e rimandando alla bibliografia una più approfondita analisi. Esistono anche altri metodi algoritmici per il calcolo del lod-score, tra cui quelli con le catene di Markov con risoluzione Monte Carlo, ma a differenza di quelli che verranno proposti eseguono un analisi di linkage stimata e non esatta; per questa caratteristica non saranno riportati, poiché nel no-

28 3.3 Algoritmi sul linkage 22 stro studio stiamo cercando valori esatti di lod-score, ma si rimanda alla bibliografia per approfondimenti L approccio Expectation-Maximization (EM ) Il primo approccio studiato viene chiamato EM-algorithm (Expectation- Maximization algorithm), chiamato cosí dai due passi fondamentali che lo compongono [34, 16]. Consideriamo i loci collocati in ordine nei cromosomi come M 1,M 2,...M m, e siano identificate come frazioni di ricombinazione tra loci adiacenti M i,m i+1 le variabili θ i ; il nostro obiettivo è trovare i valori di θ =(θ 1,θ 2,..., θ m 1 ) che massimizzano la possibilità dei dati rilevati; per semplicità si assume indipendenza di ricombinazione tra tutti gli intervalli cromosomici. La ricerca di θ richiede uno spazio multidimensionale, e la procedura iterativa deve modificare i valori di θ old iniziale con il θ new trovato in cui la verosimiglianza è maggiore. L algoritmo EM si articola in queste fasi: 1. proponi un iniziale valore di θ,chesaràilprimoθ old =(θ 1,θ 2,..., θ m 1 ); 2. passo Expectation: usando il valore θ old come se fosse il vero valore della frazione di ricombinazione, esegui il calcolo del valore atteso per tutti i dati (il numero atteso di meiosi ricombinanti e non ricombinanti per ciascun intervallo); 3. passo Maximization: esegui il calcolo della MLE (maximum likelihood estimation) usando il valore precedentemente estratto, e trovando la nuova stima θ new della frazione di ricombinazione; 4. ripetere i passi Expectation e Maximization finché la verosimiglianza converge al massimo. Il passo di terminazione dell algoritmo EM trova fondamento negli studi condotti da Dempster [15] e Wu [17] sulla funzione di verosimiglianza, monotona crescente, deducendone un teorema che asserisce: stime consecutive di θ generate dall algoritmo EM incrementano il valore di verosimiglianza e convergono ad un punto θ in cui la derivata della funzione di verosimiglianza è zero. Nonostante tale considerazione, il tempo di convergenza è rapido ad avvicinarsi nell intorno del valore, ma è lento nel trovare la soluzione; perciò si ricorre all approssimazione sopra un determinato numero di decimali, poiché nelle 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 θ old i ) θ i (1 θ i ) (3.1)

29 3.3 Algoritmi sul linkage 23 ove n è il numero totale delle meiosi nel pedigree. Sebbene si citi come algoritmo, l EM in realtàè solo un approccio, poiché non esiste una specifica di procedura su come affrontare i passi di Expectation e Maximization. Al contrario gli algoritmi che andremo a visitare adesso sono espressi tramite procedure, e quindi non solo possono essere valutati per la loro efficienza (in termini computazionali) ma hanno reso possibile una reale implementazione L algoritmo Elston-Stewart (ES) La funzione di verosimiglianza in funzione di θ può essere riscritta, dalla 2.3, come multipla somma (telescopica) di prodotti come segue: L(θ) =... n Pen(x i g i ) G 1 G n 1 f n Pop(g i ) Trans(g i g i,p,g i,m ) (3.2) 1 f+1 ove n è la cardinalità del pedigree, numero di individui, f sono gli individui fondatori (ovvero le radici dei pedigree negli alberi genealogici), Pen èla penetranza, Pop e Trans sono i parametri di popolazione e trasmissione rispettivamente, ovvero il primo si riferisce alla probabilità della combinazione degli aplotipi-genotipi dei fondatori, mentre il secondo alla probabilità della combinazione aplotipi-genotipi della prole condizionata dalla combinazione deigenitori(p ed m per padre e madre), calcolata per tutti gli individui non fondatori. Come si evince, dalla formula 2.3 alla formula 3.2 sono state effettuate delle sostituzioni, tra cui P (x g) = n 1 Pen(x i g i )ovelapenetranza è espressa per l i-esimo individuo della famiglia. Si presentano n somme e ciascuna è indicizzata su tutte le possibili combinazioni di genotipi ordinati (ovvero con sorgente degli alleli, se da madre o padre, nota, quindi a fase nota) G di un membro della famiglia. Se ogni membro del pedigree ha G possibili genotipi, la famiglia ha G n possibili combinazioni di genotipi. Ogni genotipo è associato ad n penetranze ed n parametri di popolazione e trasmissione, quindi la procedura richiede G n (2n 1) moltiplicazioni seguite da G n 1 somme. Esempio: se avessimo un marcatore con due alleli, detti A e B, i possibili genotipi ordinati G sarebbero: G =2 2 = 4; con un pedigree di 4 membri, i possibili genotipi ordinati sarebbero: G =(2 2 ) 4 = 256; con due alleli nei marcatori il numero sarebbe: G =((2 2 2 ) 4 ) = Al variare del numero di individui nel pedigree si ottiene una variazione più bassa: con 5 individui e un marcatore avremmo: G =(2 2 ) 5 = 1024 possibili genotipi; con 6 membri: G =(2 2 ) 6 = La tabella 3.1 sintetizza tale crescite. Questa è la particolare rappresentazione della verosimiglianza pubblicata da Elston e Stewart, che permette di calcolare le likelihood in modo telescopico per famiglie di grandi dimensioni, ma di struttura semplice, ove con

30 3.3 Algoritmi sul linkage 24 ES Algo # loci marcatori # 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 (inbreeding loops), ovvero matrimoni ed unioni feconde tra parenti; solo anni dopo Cannings (1978) dimostrò che il metodo poteva in teoria essere applicato anche in pedigree complessi con cicli parentali [18]. Una caratteristica di questa rappresentazione è che il pedigree può essere analizzato separatamente per ogni nucleo familiare, quindi ogni due livelli generazionali. In questo modo la funzione di verosimiglianza 3.2 diventa per un singolo nucleo familiare con K figli: L(θ) = G m Pen(x m g m )Pop(g m ) G p Pen(x p g p )Pop(g p ) K i=1 G i Pen(x i g i )Trans(g i g p,g m ) (3.3) L importanza di tale proprietà risiede nel vantaggio computazione che ne deriva: ora la procedura elabora l aggiunta di individui all interno dell intero albero in analisi in modo lineare e non più esponenziale. Si noti che tale equazione 3.3 (e quindi 3.2) è una funzione di θ quindi il calcolo dovrà essere ripetuto per tutti i valori nell intervallo 0 <θ 0, 5. Si nota che tramite tale accorgimento si è potuti arrivare ad applicare l algoritmo ES a pedigree ritenuti complessi, ovvero per esempio con legami fecondi tra consanguinei: infatti il trucco utilizzato [18] è stato quello di considerare gli individui di tali legami come più individui, ovvero presenti in diversi nuclei familiari, come nell esempio in figura 3.1 viene mostrato. Come per l approccio EM, anche in questo caso esistono delle combinazioni di genotipi matematicamente possibili ma in relazione al dominio applicativo genetico incompatibili; questo insieme ad altri miglioramenti euristici (per esempio sui genotipi omozigoti) permette di diminuire l insieme delle combinazioni genotipiche da analizzare. Mostriamo il metodo di elaborazione dell algoritmo prendendo come esempio di famiglia il pedigree nella figura 3.2. Il procedimento parte dall ultima generazione, le foglie dell albero, calcolando le probabilità condizionate per le persone (i genitori) nei singoli nuclei familiari, esempio operativo:

31 3.3 Algoritmi sul linkage 25 Figura 3.1: I loop tra consanguinei (inbreeding loops) e soluzione di separazione della persona in due nuclei familiari. Figura 3.2: Un esempio di pedigree. 1. elabora il calcolo della probabilità condizionata per l individuo II-2 usando 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 la somma delle likelihood dei singoli nuclei familiari. Come si è visto il grande vantaggio di tale algoritmo è la possibilità di eseguire il calcolo della verosimiglianza attraverso pedigree di notevoli dimensioni (costo computazionale che varia linearmente al variare del numero di individui considerati); il difetto intrinseco è l incapacità di processare lo stesso calcolo con più di un certo numero di loci di marcatori (costo computazionale con crescita esponenziale al crescere del numero di marcatori). Si nota che tale algoritmo è adatto all analisi di linkage parametrica; per quella non parametrica (NPL) è più adatto l algoritmo Lander-Green. Data sia l importanza storica che avuto tale metodologia che il focus della trattazione, è utile semplificare e sintetizzare i concetti esposti.

32 3.3 Algoritmi sul linkage 26 Il problema. La verosimiglianza di un dato èlaprobabilità di un dato osservato, conosciuti i fenotipi e assegnati alcuni valori per l incognita frazione di ricombinazione; ciascuna persona ha un ordinato genotipo multi-locus (quindi a più alleli)x i =(x 1,x 2, x n ), e un fenotipo multi-locus g i. Per un pedigree contenente m persone la verosimiglianza 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. Nella scrittura generica il problema esegue un calcolo probabilistico sommando tutte le combinazioni di genotipi possibili per ogni individuo; tale computo quindi ha un costo computazionale pari a O((2 n ) p )), dove p è il numero di individui nel pedigree, ed n in numero di loci marcatore; come si vede il costo computazionale ha un andamento esponenziale sia 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). Il peeling viene effettuato su quei genotipi che non sono realizzabili, e che quindi è inutile computare. Il modo più semplice per sapere quali sono i genotipi reali è partire dall ultima generazione, eseguendo a ritroso il calcolo di ricostruzione allelica sui genitori; per realizzare ciò si eseguono visite nell albero per ordinare l insieme di esplorazione, per poi eseguire il calcolo. Per chiarire il concetto dalle formule ad un esempio di pedigree, dalla figura 3.3 si osserva che il calcolo della verosimiglianza senza logica ES è (3.4): L(θ) = h(g 1 )h(g 2 )h(g 1,g 2,g 3 )h(g 1,g 2,g 4 ) g 1 g 2 g 7 h(g 5 )h(g 4,g 5,g 6 )h(g 4,g 5,g 7 ) (3.4) che diventa (3.5) grazie all utilizzo dell algoritmo ES: L(θ) = h(g 1 ) h(g 2 ) h(g 1,g 2,g 3 ) h(g 1,g 2,g 4 ) g 1 g 2 g 3 g 4 h(g 5 ) h(g 4,g 5,g 6 ) h(g 4,g 5,g 7 ) (3.5) g 5 g 6 g 7 in cui h(g i )=P (x i g i ) P (g i ), e h(g m,g p,g i )=P (x i g i ) P (g i g m g p ) (i è l i-esimo elemento considerato, m e p sono i genitori dell i-esimo individuo).

33 3.3 Algoritmi sul linkage 27 Figura 3.3: Famiglia d esempio per il calcolo della verosimiglianza con l algoritmo ES. In questo modo il costo computazionale si riduce notevolmente nella dimensione del numero di persone, perché il calcolo della ricostruzione genotipica per ogni persona non viene eseguito su tutte le combinazioni di valori, ma solo su quelli reali. L ottimizzazione. Il completamento dell algoritmo prevede la schematizzazione ulteriore del pedigree, scomponendolo in nuclei familiari, ed ottenendo diversi grafi su cui eseguire il calcolo della verosimiglianza con meno variabili; infatti dato che ogni pedigree è schematizzabile in un numero abbastanza basso di nuclei familiari (solitamente non supera mai i cinque o sei gruppi) poiché è sempre possibile eseguire ricorsivamente la riduzione delle persone nel pedigree in nuclei, in questo modo il costo computazionale è praticamente indipendente dal numero di persone, ma rimane legato intrinsecamente al numero di loci marcatore. Ecco perché si dice che l algoritmo elabora in tempo lineare la variabile del numero di persone del pedigree, mentre necessita di un tempo esponenziale per processare i loci marcatore, che rimane il limite intrinseco dell algoritmo. Il costo computazionale finale diventa quindi O((2 n ) pc c), ove c identifica il nucleo familiare considerato, al cui interno ci sono p c elementi. Dall algoritmo ES è stato implementato SLink, che sarà utilizzato per l analisi di linkage all interno di RightLinkS durante la fase di lancio degli eseguibili. Come vedremo nella sezione 3.4.1, SLink ha limiti negli alleli, e l obiettivo da raggiungere in fase di esecuzione con la metodologia proposta è quello di trovare un modo per eseguire l applicazione con più del limite dei sui alleli.

34 3.3 Algoritmi sul linkage L algoritmo Lander-Green (LG) Un algoritmo alternativo all ES che si propone di analizzare molti marcatori in una famiglia è stato avanzato da Lander e Green (1987) [44], e una delle implementazioni esistenti, GeneHunter, verrà sfruttata parallelamente ad SLink nello strumento prodotto, RightLinkS, all interno del modulo di esecuzione dei software di analisi di linkage. Per quanto riguarda GeneHunter in laboratorio non si sono verificati casi di limitazioni, quindi RightLinkS si occuperà solo del lancio dell applicazione come contenitore e interfaccia utente. L algoritmo Lander-Green (LG) utilizza un approccio basato su vettori eredità (inheritance vectors) che sintetizzano le informazioni ereditarie in una specifica locazione genomica. Gli ideatori hanno mostrato che la probabilità di dati genotipici o fenotipici osservati può essere calcolata per ogni vettore eredità e che, in assenza di interferenze genetiche, tali vettori formano una catena di Markov lungo il cromosoma. Perciò usandoilmodello delle catene di Markov nascoste (Hidden Markov Model - HMM), sono arrivati ad un algoritmo per il calcolo della verosimiglianza di un pedigree la cui complessità cresce in maniera lineare con il numero di marcatori, ed è adatto ad un gran numero di marcatori; nonostante ciò si presenta il limite speculare rispetto all algoritmo ES, ovvero computa un numero circoscritto di individui all interno della famiglia. Dal punto di vista teorico la soluzione è simile all approccio di analisi sib pair. Si considera un pedigree ove ci sono k non fondatori, ovvero tutte le persone con almeno un genitore nell albero, per un locus M i si definisce il vettore eredità v i come vettore binario di dimensione 2k di coordinate corrispondenti ai 2k gameti. Una coordinata ha valore 0 se il gamete è derivato dal cromosoma paterno, altrimenti 1. In questo modo la possibilità a priori che una specifica coordinata v i differisca dalla successiva v i+1 è proprio la frazione di ricombinazione θ. Da un altro punto di vista si può interpretare tale modello come una catena di Markov: il vettore eredità v = v 1,...v m proviene da una catena di Markov disomogenea con matrici di transizioni note, T (θ i ). In particolare la transizione T (θ i ) tra il locus M i e M i+1 è il prodotto di Kronecker di matrici 2 2 corrispondenti alle transizioni in ciascuno delle 2k coordinate; nell appendice C.1 si mostra la definizione e un esempio del prodotto di Kronecker. Il modello di Markov a stati nascosti rappresenta gli stati in modo non esplicito a differenza del modello classico di Markov, quindi non sono esplicitamente osservabili ma ogni stato è visto come la distribuzione di probabilità sulle possibili osservazioni date per quello stato. Il tempo corrisponde alla posizione del marcatore, sapendo che questi ultimi sono ordinati da sinistra a destra. Gli stati dunque sono modi di eredità, chiamati anche inheritance pattern, espressi come vettori di bit per ogni marcatore; le osservazioni sono sequenze di genotipi date per ogni marcatore. Attraverso tale interpre-

35 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 è possibile sfruttare il modello statistico delle HMM e la sua teoria. La figura 3.4 mostra la modellizzazione tramite catene di Markov nascoste degli stati (Identity By Descent), in cui si hanno M marcatori, I vettori di eredità edx genotipi. In questo approccio algoritmico la verosimiglianza acquista la forma dell equazione seguente 3.6: L =... m m P (I i I i 1 ) P (X i I i ) (3.6) I 1 I m i=2 in cui m è il numero di marcatori ed I sono i vettori eredità. La probabilità che il dato fenotipo sia osservato al marcatore M i èsemplice da calcolare dato ogni possibile valore del vettore v i. Considerando q i come il vettore riga di queste probabilità, di coordinate indicizzate dai possibili valori di v i, applicando il teorema di Bayes (riportato in appendice B.1 nel contesto genetico) con tutti i vettori eredità equamente probabili a priori, si può calcolare la distribuzione di probabilità p i sui valori possibili v i condizionatamente al dato fenotipico M i ; anche p i èunvettorerigacome q i. Come descritto dagli autori, per ricostruire il numero atteso di meiosi ricombinanti in un dato intervallo si procede come segue: 1. (passi di ricostruzione genetica) calcola ricorsivamente la distribuzione di probabilità condizionata sinistra p L i per v i condizionato su tutti i dati dei loci M 1,..., M i ; dato p L i, q i+1, et (θ i ), applica il teorema di Bayes ottenendo p L i+1 come: p L i+1 = [pl i T (θ i)] [q i+1 ] [p L i T (θ (3.7) i)] [q i+1 ] i=1

36 3.3 Algoritmi sul linkage 30 ove indica il prodotto vettoriale mentre quello scalare; 2. calcola la distribuzione di probabilità condizionata destra in modo analogo alla sinistra; 3. definisci la matrice di transizione T (θ i ) come segue: ponendo t vw come il singolo valore della matrice di transizione T (θ i ) corrispondente alla transizione dal vettore eredità v a w, e ponendo d(v, w) ilnumerodi coordinate per il quale v e w differiscono, si definisce t vw = d(v, w)t vw e T (θ i )=t vw. Dal teorema di Bayes il numero atteso di ricombinazioni tra M i ed M i+1 è: [p L i T (θ i )] [p R i+1 ] [p L i T (θ i )] [p R i+1 ] (3.8) 4. (passo di calcolo della verosimiglianza) sapendo che nell equazione 3.8 il denominatore è la verosimiglianza di i +1, ovvero L i+1 =[p L i T (θ i)] [p R i+1 ]è la probabilità condizionata per i dati al marcatore M i+1, la verosimiglianza totale è: L(θ 1,..., θ m 1 )=L 2 L 3...L m. (3.9) Per quanto riguarda il calcolo dell algoritmo, le parti fondamentali sono: Trovare ed elencare i possibili stati IBD. In questa parte bisogna specificare gli IBD tra gli individui in modo compatto, e per permettere una più agevole identificazione si creano due modelli: il grafo delle discendenze (Descent Graph) e i percorsi di flusso genico (Gene Flow Pattern). Tramite tali strumenti, che saranno usati anche nella seconda parte, si trova il numero delle meiosi, e proprio dalle meiosi si creano i vettori eredità; le figure 3.5 e 3.6 mostrano il concetto: per riuscire ad identificare le meiosi e i relativi vettori V n eredità IDB, figura 3.5, si creano due schemi, di cui la figura 3.6 riporta il grafo delle discendenze. Un insieme di 2n cifre binarie specifica quindi un IBD in un pedigree con n elementi non-fondatori; in tutto si creeranno 2 2n insiemi. Probabilità dei dati genotipici per gli stati IBD. Per ogni vettore trovato deve essere calcolata la probabilità del genotipo osservato, ricercando gli insiemi allelici di ogni membro fondatore; ovviamente bisognerà eseguire il calcolo anche per ogni marcatore. La verosimiglianza è il prodotto delle frequenze alleliche. Un esempio è 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 alleli forniti da grafo delle osservazioni 3.8, si possono creare solo alcune combinazioni degli alleli dei fondatori, come la tabella 3.2 mostra;

37 3.3 Algoritmi sul linkage 31 Figura 3.5: eredita. Esempio di vettori Figura 3.6: Grafo delle discendenze. Figura 3.7: discendenze. Esempio di grafo delle Figura 3.8: Esempio di grafo delle 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 figura delle osservazioni suggerisce, la scelta tra le due opzioni è diretta. Matrici di transizioni delle probabilità. Nelle matrici di transizione si specifica la frazione di ricombinazione, e la forma che ne deriva ha una struttura che cresce notevolmente di rango al variare del numero di meiosi. Per esempio con una meiosi la matrice di transizione risulta essere: T(θ) = [ (1 θ) θ θ (1 θ) ]

38 3.3 Algoritmi sul linkage 32 Alleli fondatori Corrispondenza Probabilità in gruppi alleli stati (B) ogni allele 1 (A,C,E) (1,2,1) oppure (2,1,2) P (1) 2 P (2) + P (2) 2 P (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 rango quattro volte maggiore della versione con due meiosi, e sedici volte quella 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 matrice di transizione come segue: [ T(θ) n+1 (1 θ)t n θt = n ] θt n (1 θ)t n

39 3.3 Algoritmi sul linkage 33 Esecuzione delle catene di Markov. Iniziando dal primo marcatore si crea un vettore con le probabilità; spostandosi lungo il cromosoma, si moltiplica il vettore per la matrice di transizione; infine si uniscono tali informazioni con i marcatori successivi, per ripetere fino al termine dei marcatori tali precedenti operazioni. Un idea dei calcoli della catena di Markov viene data da queste equazione: P (X 1,..., X m I m )= P (X 1,..., X m 1 I m 1 )P (I m I m 1 )P (X m I m ) I m 1 (3.10) ove P (X 1,..., X m 1 I m 1 ) definisce un vettore per ogni I m ; P (I m I m 1 ) è una matrice per ogni coppia I m 1,I m, e l ultimo termine P (X m I m ) crea un altro vettore per ogni I m 1, arrivando a stendere la 3.10 come: [ P (X1..m 1 I m 1 = 00)... P (X 1..m 1 I m 1 = 11) ] (3.11) P (I m =00 I m 1 = 00)... P (I m =11 I m 1 = 00)... P (I m =00 I m 1 = 11)... P (I m =11 I m 1 = 11) P (X m I m = 00). P (X m I m = 11) Per risolvere tali equazioni matematiche (3.10 e 3.11) sono stati avanzati 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 complessità computazionale dei passi dell algoritmo LG (dall 1 al 3), esposti precedentemente, essi richiedono un totale di 3(m 1) moltiplicazioni di matrici di dimensione 2 2k. La versione originale dell algoritmo LG ha un tempo di esecuzione dell ordine di O(m2 4n ), con m numero marcatori ed n numero degli individui non fondatori. Poiché lematricit (θ i )et (θ i ) sono costruite a partire dal prodotto di Kronecker di matrici 2 2, ciascuna moltiplicazione matriciale può essere eseguita tramite 2n2 2n moltiplicazioni usando un approccio divide et impera, invece delle previste 2 4n ; tale idea è stata portata avanti da Idury ed Elston. I miglioramenti apportati all algoritmo si possono classificare in due aree in funzione della parte che influenzano e modificano, come segue. Riduzione dello spazio dei vettori. Esistono molte ridondanze all interno dello spazio vettori, così che è possibile raggruppare i vettori eredità; si tratta dunque di scegliere come individuare tali ridondanze e come raggruppare i vettori. In tal senso si sono mossi tre studi, poi

40 3.3 Algoritmi sul linkage 34 Figura 3.9: Esempio di sostituzione e riduzione della matrice di transizione tramite l algoritmo di Idury-Elston. implementati in diversi programmi, identificando delle simmetrie di trasmissione degli allei prima dai singoli fondatori (Kruglyak, 1996), poi da coppie di fondatori (Gudbjartsson 2000) e infine per gli altri individui (Markianos 2001; Abecasis 2002)[43]. Sintetizzando i vari approcci si ha: 1. simmetria tra fondatori (founder symmetry): lo spazio dei vettori diventa 2 2n f ; 2. simmetria tra coppie di fondatori (founder couple symmetry): lo spazio di eredità diventa 2 2n f c,ovec è il numero di coppie nel pedigree; 3. simmetrie arbitrarie dipendenti dal genotipo: il carico computazionale diventa O(2 2n f k )dao(2 2n f ), ove con k si indicano il numero di meiosi; Manipolazione delle matrici di transizione. Tale area va a toccare la parte dell algoritmo che calcola la catena di Markov, e i metodi studiati ad implementati riguardano l approccio divide et impera di Idury ed Elston, e quello con la Fast Fourier Transform di Kruglyak e Lander; entrambi riescono a ridurre il tempo computazionale di alcuni ordini di grandezza. La modifica apportata da Idury et al considera sotto problemi della matrice di transizione, per la sua proprietà di avere dei pattern (quindi percorsi ricorrenti) al suo interno: in pratica hanno verificato l esistenza di una regolarità interna della matrice grazie alla sua stesura come prodotto di Kronecker di matrici semplici; tale vantaggio permette di arrivare ad un tempo di elaborazione di O(mn2 n ). La figura 3.9 mostra un esempio di elaborazione in cui viene rimpiazzata la matrice di partenza da quattro sotto matrici più piccole. Si rimanda in appendice C.2 per la logica delle FFT. Nonostante le implementazioni dell algoritmo LG riescano a gestire decine di loci marcatori, i progressi nei laboratori genetici stimolano necessità di maggiore potenza, e che tengano conto anche di nuovi data set provenienti da studi di popolazioni e linkage disequilibrium.

41 3.3 Algoritmi sul linkage 35 L implementazione GeneHunter è ad ogni modo uno strumento tuttora molto utile nei laboratori, e per questo l applicazione RightLinkS lo utilizzerà nella fase di esecuzione dei programmi sull analisi di linkage Approccio con le reti Bayesiane (Bayesian Networks) Come il titolo suggerisce, l utilizzo delle reti bayesiane è un approccio, e nonostante esista un implementazione basata su questo metodo, rimane in fase di studio. Una rete bayesiana, come anche descritto nell appendice B.2, è un modello grafico che codifica la distribuzione congiunta di probabilità di un insieme di variabili aleatorie X = {X 1,X 2,..., X n } tramite una rappresentazione a grafo. Un grafo aciclico (detto struttura) G =(I, A, P )è visto come un grafo diretto senza cicli tale che ogni vertice i corrisponda ad una variabile X i e sia associata ad una distribuzione di probabilità P (X i = x i Pa i = pa i ), ove Pa i è l insieme dei nodi padre, ovvero le variabili che hanno vertici che conducono ad i. I è l insieme dei nodi (o vertici) del grafo, A è l insieme degli archi (o lati, edges), e P è l insieme delle distribuzioni di probabilità condizionate, ovvero P = {p i } V in cui p i = P (X i = x i Pa i = pa i ). La distribuzione congiunta di probabilità è rappresentata da un insieme P di distribuzioni locali di probabilità, ciascuna associata ad una variabile aleatoria X i e condizionata dalle variabili corrispondenti ai nodi sorgenti degli archi entranti nel nodo a cui è associata X i. Data una struttura S e le distribuzioni locali di probabilità di ciascun nodo P (X i = x i Pa i = pa i ), la distribuzione di probabilità congiunta assume al forma della formula 3.12: P (x 1,x 2,..., x n )= n P (x i pa i ) (3.12) Nella figura 3.10 si illustra un esempio di probabilità congiunta ad un nodo. L unione della distribuzione di probabilità congiunta e del grafo aciclico è chiamata rete bayesiana. Si noti che l assenza di un arco fra due nodi riflette la loro indipendenza condizionale. Al contrario, la presenza di un arco dal nodo X i al nodo X j può essere interpretata come dipendenza diretta di X j da X i. L approccio tramite reti bayesiane per il linkage proposto da Fishelson e Geiger (2002) [48] inizia con la definizione del problema di inferenza in cui l ingresso è la rete bayesiana con un sottoinsieme di nodi E, el uscita è la tabella di probabilità P (E = e) per un dato sottoinsieme disgiunto di variabili E {X 1,..., X n }. Supponendo che X 1,..., X k sono variabili non in E, allora usando l equa- i=1

42 3.3 Algoritmi sul linkage 36 Figura 3.10: Esempio di rete bayesiana. zione 3.12 si ottiene: Pr(e) =... Pr(x 1,..., x k,e)=... Pr(x i pa i ). (3.13) x 1 x k x 1 x k Il problema inferenziale può essere tradotto nel problema di valutazione dell espressione della forma: E =... f l (Y l ) (3.14) x 1 x k ove f l è un fattore (o una tabella) che contiene un valore per ciascun indice di Y l {X 1,..., X k }. I due modi per calcolare tale espressione sono: eliminazione di variabili (eliminating), e condizionamento (conditioning). Il vantaggio dell utilizzo dell approccio conditioning rispetto all eliminazione di variabili risiede nel minore overhead di memoria; lo svantaggio però è che possono essere valutate più volte alcune sottoespressioni aumentando il tempo di elaborazione. Algoritmi ibridi che coniughino risparmi di spazio e tempo sono oggetto di ricerca, e alcuni sono stati proposti: per esempio alcuni scelgono prima un insieme di variabili, poi viene calcolata la probabilità per ogni variabile usando il metodo di eliminazione delle variabili, e infine i risultati vengono sommati ottenendo la verosimiglianza. Un modo per ottimizzare tale procedura è stato proposto dagli autori (Fishelson e Geiger) chiamato problema dell eliminazione dei vincoli (constrained elimination problem), che migliora l eliminazione di variabili in spazio di memoria tramite un algoritmo vorace (greedy algorithm). In particolare viene sottolineato come gli algoritmi ES e LG precedentemente esposti siano anch essi tipizzabili come problemi di eliminazione di variabili, che sfruttano differenti metodi di taglio, e perciò un applicazione che implementasse l approccio a reti di bayes riuscirebbe a combinare i due algoritmi in maniera efficiente. La rappresentazione della rete bayesiana si caratterizza con la contestualizzazione alla genetica, in cui si identificano due tipologie di oggetti: le variabili aleatorie eletabelle di probabilità locali. l i

43 3.3 Algoritmi sul linkage 37 Variabili aleatorie: loci genetici: per ogni individuo i e locus j si definisce la variabile aleatoria G i,jp,eg i,jm, in cui la sigla di estensione p ed m identificano l allele paterno e materno; fenotipi: per ogni persona viene assegnato il proprio fenotipo come P i.j,ovestavoltaj identifica il fenotipo; variabili di selezione: esistono delle variabili ausiliarie di eredità che delineano il pattern di eredità nel pedigree; si denotano S i,jp e S i,jm le selezioni in base alle meiosi sul locus j, e,cona padre di i, si considera: { Ga,jp se S G i,jp = i,jp =0 G a,jm se S i,jp =1 similmente per G i,jm. Tabelle di probabilità locali: modelli di trasmissione: Pr(G i,jp G a,jp,g a,jm,s i,jp )e Pr(G i,jm G b,jp,g b,jm,s i,jm ), ove a e b sono i genitori dell individuo i nel pedigree; modello di penetranza: Pr(P i,j G i,jp,g i,jm ); modello di ricombinazione: Pr(S i,1p )=Pr(S i,1m )=0, 5, Pr(S i,jp S i,j 1p,θ j 1 )epr(s i,jm S i,j 1m,θ j 1 ), in cui θ j 1 èlafrazione ricombinazione nota o no tra il locus j 1ej; probabilità alleliche generiche di popolazione: Pr(G i,jp )epr(g i,jm ) con i fondatore. La verosimiglianza Pr(e θ) del pedigree è il prodotto di tutte le probabilità locali (espresse in tabelle) della rete bayesiana, marginalizzata su tutte le variabili della rete che non sono assegnate Un esempio di rete bayesiana che descrive una semplice interazione genitorifiglio con un analisi a tre loci è mostrato in figura Nell immagine 3.11 i genotipi sono rappresentati in quadrati in cui i genitori hanno numerazione 1 e 2 mentre il figlio 3. Insieme allo schema di genotipo si affianca il modello di penetranza per l analisi a tre loci; si è assunto nello schema che ciascuna variabile di fenotipo dipende dal genotipo. I passi dell algoritmo [47] si sintetizzano nei seguenti punti: 1. eliminazione dei valori sul pedigree (preprocessing): taglio delle variabili (variable trimming), unione di variabili (merging variables), e riduzione del range di valori validi per ogni variabile (value and allele exclusion) con soluzioni discendenti, ascendenti o selettive (downward, upward, selector upgrate);

44 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 più complesse riguardano non tanto il calcolo della verosimiglianza in sé, ultimo passo del procedimento, quanto l eliminazione delle variabili e il conditioning: bisogna riuscire a trovare il giusto tradeoff computazionale tra quale metodo utilizzare e come. L ordine dell eliminazione delle variabili è un fattore critico a livello computazionale, che fa pendere l ago della bilancia in favore di un metodo piuttosto che dell altro, e viene eseguito in base ai parametri specifici del pedigree, quali la dimensione della famiglia e il numero di marcatori: per piccoli pedigree con molti marcatori l algoritmo seleziona un ordine di levigatura (peeling) basato sull algoritmo LG, elaborando un locus alla volta; specularmente se il pedigree avesse molti individui con pochi marcatori l algoritmo segue la traccia del metodo ES, estrapolando una famiglia singola (nucleo familiare) alla volta. Spesso si uniscono le due strategie per famiglie con parametri intermedi tramite euristiche, che accomunano i due punti di vista e adattano le strategie ai due estremi per il caso specifico. Un algoritmo euristico vorace (o greedy) [49] viene applicato per valutare l ordine di eliminazione: se il pedigree si avvicina di più ai parametri del metodo LG, allora la valutazione è diretta (poichéè sequenziale sulla mappa genetica), mentre nel secondo caso stima un costo di eliminazione, chesaràil parametro di scelta d ordine (tra eliminazione di variabili e conditioning). Il costo dell eliminazione della variabile v è espresso come EC(v) (elimination cost), e calcolato come segue:

45 3.3 Algoritmi sul linkage 39 se l eliminazione della variabile v è in una funzione le cui variabili sono già contenute in una funzione esistente, il costo della variabile è zero; se si elimina tale variabile si riduce semplicemente la richiesta memoria, e quindi è desiderabile assegnare a tale variabile il costo minore possibile; altrimenti il costo dell eliminazione di v è proporzionale alla dimensione della tabella di probabilità della funzione che uscirebbero eliminandola; formalmente, con F (v) insieme di funzioni che usano la variabile v, allora la dimensione della tabella di probabilità che uscirebbe eliminandola è: EC(v) = Val(X) (3.15) X N(v) ove N(v) =( f F (v) Arg(f ) {v}, earg(f )è l insieme di variabili su cui la funzione f è definita. La variabile da eliminare è: arg min v (EC(v)). (3.16) La spiegazione della scelta dell euristica è che la dimensione della tabella costituisce una buona misura della complessità di eliminazione di alcune variabili. Per scegliere se effettuare l eliminazione di variabili o il conditioning si pone una soglia di costo di accettazione, superata la quale si propende a utilizzare la seconda strategia (conditioning) rispetto alla prima. Per questo, l euristica greedy è usata per scegliere una variabile che soddisfa la condizione: arg max v (n(v)ec(v)) (3.17) ove EC(v) è il costo di eliminazione di v ed n(v) èilnumerodifunzioniche usa v. Scendendo meglio nell algoritmo deterministico, chiamiamo un grafo pesato G(V,E,w) dove ad ogni vertice è assegnato un peso w(v), N G (v) ={u V (u, w) E} l insieme dei vertici adiacenti a v in G e N G (v) =N G (v) {v} l insieme dei vertici adiacenti a v con esso compreso. Riscrivendo il costo di eliminazione come n C(X α )= C Gi (X α(i) ) (3.18) i=1 con α permutazioni sui vertici. Si cerca la soluzione ottimale data da ˆX α = arg min α C(X α ); con la presenza di eliminazioni vincolate denotate dal vettore β, si ottiene una nuova soluzione come ˆX α,β = arg min α,β C(X α,β ). L algoritmo greedy deterministico riceve in ingresso un grafo pesato G(V,E,w) e una soglia T 2, ed emette in uscita una sequenza di eliminazione di vincoli X α,β (β vettore di eliminazione vincolata (constrained 2 Viene posta la soglia perché ipoteticamente basterebbe porre come limite computazionale la massima clique (sottografo completo) costruibile su G dopo aver eliminato i vertici

46 3.4 Implementazioni degli algoritmi sul linkage 40 elimination)) tale che il costo di eliminazione di ciascun vertice sia al massimo T. Durante l iterazione i l algoritmo sceglie un vertice X i che soddisfi X i = arg min X Vi C Gi (X), e termina quando tutti i vertici sono stati rimossi dal grafo: se nell iterazione i il costo di eliminazione C Gi (X) supera la soglia data, allora il vertice X i viene scelto come vincolato invece che eliminato. Un modo per scegliere tale vertice vincolato è: X i = arg max X Vi N Gi (X) C Gi (X). (3.19) In figura 3.12 viene mostrato l algoritmo greedy deterministico presentato da Fishelson e Geiger. Aspetti importanti nell implementazione di tale approccio da ben stimare sono: la rappresentazione della rete bayesiana, la rappresentazione compatta delle informazioni sui genotipi a più loci, e delle tabelle di probabilità. La soluzione al problema della rappresentazione compatta dei genotipi si applica con lo storing separato delle liste degli alleli a singolo locus per i due aplotipi, paterno e materno, quindi per ogni locus una lista, invece di memorizzare per esempio per ogni persona una matrice di dimensione N(N 1)/2 per rappresentare tutte le possibili combinazioni genotipiche. La soluzioni al problema della rappresentazione delle tabelle prevede un dimensionamento flessibile in funzione dei valori validi delle variabili grazie all uso di indici, puntatori, e vettori. Un evoluzione dell algoritmo greedy deterministico inizialmente proposto da Fishelson e Geiger, vede l avanzamento di un algoritmo greedy nella versione stocastica [49, 50, 51], visibile in figura 3.13, in cui la selezione dei vertici da eliminare è casuale, e la procedura sg(g, T ) trova le sequenze di eliminazione vincolate usando una selezione casuale dei vertici. I dati sperimentali delle due versioni degli algoritmi e delle prestazioni in confronto verranno presentati nella sezione dedicata nel paragrafo 3.4.3; dal punto di vista teorico non è stato possibile estrapolare effettivamente quale sia il tempo elaborativo, perché per quanto affermino la combinazione ad hoc degli algoritmi ES e LG non viene riportato il modo di elaborare, che a seconda di come si sceglie di elaborare gli algoritmi nelle figure appena viste 3.12 e 3.13 può cambiare. 3.4 Implementazioni degli algoritmi sul linkage Vengono qui riportate alcune delle implementazioni esistenti degli algoritmi sul 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, ma spesso tale misura è imprecisa nella maggior parte dei casi e quindi non generalizzabile; una soglia fissata invece è standard anche se rigida.

47 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 di eliminazione di ogni vertice è T. Elaborazione: 1. Inizializza il vettore β di dimensione n, con zero 2. i 1 3. G G i 4. While G i non è vuoto, Do for all X V i calcola C Gi (X) preleva X k = arg min X Vi C Gi (X) if C Gi (X) >T then {conditioning su X k } for all X V i calcola N Gi (X) C Gi (X) preleva X k = arg max X Vi NGi (X) C Gi (X) β i 1 else {eliminating X k } E i E i {(u, w) u, w NGi (X k )} rimuovi X k e i suoi archi incidenti da G i α i k i i return X α,β Figura 3.12: L algoritmo greedy deterministico.

48 3.4 Implementazioni degli algoritmi sul linkage 42 Input: un grafo pesato G(V,E,w), una soglia T, e un costo minimo C min. Output: un sequenza di eliminazioni vincolate X α,β tale che il costo di eliminazione di ogni vertice è T. Elaborazione: 1. X α,β algodeterministico (G, T ) 2. if C(X α,β ) <C min then return X α,β 3. set IconC(X α,β ) for i 1toIdo X temp α,β sg(g, T ) if C(X temp α,β ) <C(X α,β) then X α,β X temp α,β 4. return X α,β Figura 3.13: L algoritmo greedy stocastico Elston-Stewart: Linkage, Fastlink, SLink Linkage è il primo software che ha implementato l algoritmo ES, ed è stato ideato da Lathrop [25] e Ott [26], ed è stata la base per i successivi sviluppi quali l utilizzo della riduzione ricorsiva degli alberi a nuclei familiari. Ad ogni modo questa versione permette la localizzazione di loci in pedigree relativamente grandi. Fastlink, ideato da Cottingham, Idury e Schaffer [29, 19] è l estensione di Linkage con utilizzo di tecniche di rappresentazione del pedigree tramite alberi ridotti, e nella sua implementazione più avanzata permette l esecuzione parallela [20, 23, 30]. Oltre alle versioni finora citate, ne esistono svariate che eseguono il calcolo del lod-score, ma il cui algoritmo non si discosta molto da quelli elencati. Si riporta SLink in quanto è una versione che nonostante implementi l algoritmo ES, sfrutta un approccio simulativo, ovvero sapere a priori se il singolo marcatore considerato potrebbe essere significativo nell analisi di linkage per la data famiglia. Si basa su Linkage, tanto da essere stato ideato dagli stessi autori Weeks, Ott, Lathrop [28, 32, 33], ed è composto di molteplici eseguibili al suo interno, tra cui Unknown ed Msim. Maggiori informazioni sulle procedure elaborative si trovano nelle documentazioni del software [33], e verranno accennate in fase di progettazione per lo studio dell applicazione RightLinkS.

49 3.5 Sintesi delle metodologie e Valutazione dei software Lander-Green: GeneHunter, Allegro, Merlin GeneHunter [43] è basato sull approccio con le matrici di transizione generate tramite trasformate di Fourier (fast Fourier trasform) [42], implementate da Kruglyak e Lander. Allegro [38][37] è una implementazione dell approccio all algoritmo LG tramite FFT ma senza fare distinzione, a differenza di GeneHunter, tra gli individui di una coppia fondatore, e ciò permette la riduzione della complessità di un fattore di 2 c, ove con c si indica il numero di coppie nel pedigree, e con esecuzione top down così da trovare le inconsistenze appena capitano [42]. Successive versioni (Allegro v2) vedranno implementate nuove caratteristiche di riduzione degli spazi di eredità e di rappresentazione: riprendendo l idea implementata in Merlin, il pedigree viene rappresentato come un albero, ma non binario sparso come hanno sviluppato i creatori di Merlin, bensì multi terminale, o meglio Multi Terminal Binary Decision Diagrams, (MTBDD) particolarizzazione del già usato e noto metodo dei Binary Decision Diagrams (BDD) nella verifica software [36]. Merlin [35] è basato sull approccio di Idury-Elston, ma i vettori eredità sono rappresentati come alberi binari sparsi (sparse binary tree). In questa modellizzazioneglialberihannotretipidinodi: inodistandard,inodi simmetrici (che rappresentano il caso in cui entrambi i rami portano ad identici sottoalberi, e nodi foglia prematuri, che indicano che tutti i rami che seguono hanno lo stesso valore. In questo modo alcune ridondanze nella rappresentazione di identiche strutture vengono evitate. Merlin comprende la riduzione dei fondatori ma non delle coppie (founder couple reduction) [42] Reti bayesiane: Superlink Superlink è l unica implementazione dell approccio con le reti bayesiane realizzata 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 è open-source. L aspetto positivo delle implementazioni e delle sue varie versioni è che ne esiste una remota [52], con processamento parallelo disponibile con web-interface: una volta inseriti i file necessari per il calcolo (marcatori e pedigree) i risultati vengono spediti via mail al sottoscrittore del job remoto, previo contatto con gli autori che rilasciano una password di accesso alla risorsa [53]. 3.5 Sintesi delle metodologie e Valutazione dei software Nelle due tabelle 3.3 e 3.4 viene sintetizzato quanto finora visto per il problema del linkage, in base agli algoritmi esistenti, ai loro limiti e alle imple-

50 3.5 Sintesi delle metodologie e Valutazione dei software 44 Algoritmo Programmi Soluzione Limitazioni Elston-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<20 Bayesian Superlink esatta #loci: nd Networks #persone: nd Tabella 3.3: Sintesi dei software esistenti che implementano l analisi di linkage nei differenti algoritmi ( riadattamento dalla fonte web 2006: 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 (2 n ) pc ) Lander-Green (LG) Esponenziale Lineare O(m (2 4p )) 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 bayesiane non è stato possibile dare una stima esatta né dei limiti né del tempo di computazione poiché il software Superlink interrompe l esecuzione dopo un certo numero di elaborazioni, e non è stato possibile indagare quanto affermano gli autori, ovvero che riesce a combinare ad hoc gli algoritmi ES e LG, perché non è 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 completezza è stato pensato di sviluppare questi test su diverse piattaforme, e diverse macchine; la tabella 3.5 riporta le versioni dei software per ogni piattaforma e relativo sistema operativo. I test cases, gli input ai programmi, sono stati recuperati sia da fonti online, per esempio con risultati noti e pubblicati e con test già effettuati da altri, che da fonte interna all Istituto Mario Negri, prendendo casi di famiglie dal laboratorio. La motivazione di utilizzare due diverse fonti trae ragione dal voler replicare gli esperimenti eseguiti da altri per verificare la correttezza di lancio dei software e trovare un metodo comparativo, affinché poi i test sui dati interni possano essere affidabili. In quest ottica quindi sono

51 3.5 Sintesi delle metodologie e Valutazione dei software 45 Software Vers. Op.System Workstation GeneHunter 1.2 Win Xp Intel Pentium 4, 32bit, Ide Hd H.E. SP2 1 Cpu: 2.8 GHz; RAM: 512 MB 2.1 Mac OSX Motorola G4, 32bit, Ide Hd OS 10.4 Tiger 1 Cpu: 1.6 GHz; RAM: 1024 MB Fastlink 4.1 Win Xp Intel Pentium 4, 32bit, Ide Hd H.E. SP2 1 Cpu: 2.8 GHz; RAM: 512 MB 4.1 Mac OSX Motorola G4, 32bit, Ide Hd OS 10.4 Tiger 1 Cpu: 1.6 GHz; RAM: 1024 MB Superlink 1.6 Win Xp Intel Pentium 4, 32bit, Ide Hd H.E. SP2 1 Cpu: 2.8 GHz; RAM: 512 MB 1.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 operativi selezionati 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 create due tabelle riassuntive (3.6 e 3.7), in cui sono stati messi in luce i file di ingresso eseguiti, la fonte, e i risultati finali (i tempi sono espressi in un range perché si tiene conto della variazione elaborativa specifica delle due macchine su cui sono stati eseguiti). Come sintesi finale è possibile notare che nonostante le esecuzioni dei file di input dalla fonte remota (tra cui riportiamo Results v1.2.html,dove sono presenti molti dati campioni di prova) abbiano dato esito positivo, quindi i risultati pubblicati hanno trovato riscontro negli output di esecuzione locale dei test sulle diverse macchine, quando si è passati ai file interni al laboratorio si sono verificati problemi computazionali soprattutto da parte del programma Superlink (sia in locale che nella sua versione parallela in remoto), per quanto si affermi che possa superare entrambe le limitazioni degli algoritmi ES e LG, tanto da interrompere in locale il calcolo dopo ore di lavoro senza averlo completato mentre in remoto ha provocato più di una volta il crollo del sistema, bloccandolo. Da queste osservazioni emerge che i software standard che implementano l analisi di linkage, ovvero GeneHunter e Fastlink (o Linkage) nonostante siano limitati nella capacità elaborativa, sono affidabili, eperquestola comunità scientifica se ne serve da anni continuativamente, anche perché il codice è aperto, e quindi è possibile capire come davvero lavora; mentre l approccio a reti bayesiane implementato in Superlink rimane in fase sperimentale (è infatti nato solo nel 2004, e non ha avuto ancora forte risonanza). Queste

52 3.5 Sintesi delle metodologie e Valutazione dei software 46 Tipo Nome Programma Scostamento Tempo di dati File val. Lod-Score Calcolo 15 persone GeneHunter assente 7-10 sec 6loci GC 69 2 Fastlink assente sec Superlink assente 3-5 sec 20 persone GeneHunter assente sec 6loci GC 86 2 Fastlink assente sec Superlink assente sec 20 persone GeneHunter assente sec 8loci GC 86 3 Fastlink assente sec Superlink assente sec 57 persone GeneHunter assente non calcolabile 2loci EA0 Fastlink assente sec Superlink assente sec 57 persone GeneHunter assente non calcolabile 6loci EA2 Fastlink assente sec Superlink trascurabile sec 57 persone GeneHunter assente non calcolabile 10 loci EA5 Fastlink trascurabile non calcolabile Superlink trascurabile sec 15 persone GeneHunter assente sec 10 loci EA5b Fastlink assente non calcolabile Superlink assente sec 20 persone GeneHunter assente sec 10 loci EA5b Fastlink assente non calcolabile Superlink assente sec 30 persone GeneHunter assente non calcolabile 10 loci EA5b Fastlink assente non calcolabile Superlink trascurabile sec Tabella 3.6: Sintesi dei test effettuati da fonti dati esterne; tra queste si fa riferimento al sito internet: superlink/experimental Results v1.2.html.

53 3.5 Sintesi delle metodologie e Valutazione dei software 47 Tipo Nome Programma Tempo Note di dati File Calcolo 20 persone GeneHunter sec 9loci SimBon Fastlink non calcolabile pedigree complesso Superlink 3575 sec 16 persone GeneHunter sec 7loci SimBon Fastlink sec Superlink sec 30 persone GeneHunter non calcolato 7loci SimBon Fastlink sec Superlink sec valori lod diversi persone GeneHunter sec entro 20 persone 7 loci 7lRec Fastlink sec (più famiglie) Superlink non eseguito bloccato sistema persone GeneHunter sec entro 20 persone 9loci 9lRec Fastlink sec entro 8 loci (più famiglie) Superlink non eseguito bloccato sistema Tabella 3.7: Sintesi dei test effettuati da fonti dati interne; si riportano solo alcuni dei casi eseguiti. motivazioni spingono a trascurare per ora l impatto di questa metodologia, perché non trova effettivamente un pratico riscontro, e l unica implementazione esistente è a codice chiuso, il cui algoritmo ovviamente rimane nelle parti principali celato, e quindi inaffidabile a meno di evoluzioni stabili. La metodologia presentata nel testo è studiata per poter eseguire i software GeneHunter ed SLink anche con valori oltre i limiti esistenti, in particolare quelli di SLink dove il laboratorio trova ostacoli effettivi, estendendone le potenzialità in maniera empirica, con l impronta del dominio biologico; infatti come verrà descritto nel modulo 5.2 che esegue la ricombinazione degli alleli (visto che la limitazione si trova non tanto nella dimensione del pedigree ma nel numero di alleli marcatore) si eseguiranno diverse esecuzioni del software SLink con una combinazione lineare di alleli, il cui output poi sarà valutato e interpretato dai biologi, utenti finali dell applicazione creata.

54 Capitolo 4 Progettazione Al fine di superare le limitazioni dei software esistenti, senza scrivere un nuovo algoritmo per i problemi computazionali esposti, si è valutata la possibilità di progettare ed implementare un programma che permetta il recupero automatico delle informazioni dai database genetici come GDB e NCBI per creare i file di input correttamente, e lanciare automaticamente i due software, GeneHunter e SLink, con opportuni accorgimenti nei file di ingresso, per esempio manipolandoli in modo da ottenere la migliore combinazione di alleli nei marcatori ma senza varcare le intrinseche limitazioni algoritmiche. In questo capitolo verrà discussa la progettazione dell applicazione creata, 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 è RightLinkS, acronimo per Retrieving of Information in Genetic databases and Hashing Tool for Linkage analysis Software. Dopo la parte di progettazione software verranno presentate le scelte ad hoc dell infrastruttura hardware e dei linguaggi di programmazione che meglio si addicono al caso. 4.1 L applicazione Una consapevole progettazione software deve prevedere almeno le fasi di analisi degli obiettivi con stesura degli input e output, ideazione dei test cases, progettazione generale, implementazione, esecuzione dei test e debug, e validazione; nel seguito verranno prese in esame le prime fasi, per dettagliare nei capitoli specifici le parti di implementazione (5) e test (6). Analisi degli Obiettivi. L obiettivo è creare uno strumento per i biologi che possa automatizzare il processo di recupero delle informazioni sui marcatori (distanze geniche e frequenze degli alleli) da inserire nel file dei marcatori, input dei software di analisi di linkage GeneHunter ed SLink,

55 4.1 L applicazione 49 creandone i file nel corretto formato e con le informazioni aggiunte definite dall utente. A seguito di questa fase si deve strutturare una tecnica per il superamento delle limitazioni intrinseche di SLink, in cui il numero massimo di alleli per ogni marcatore computabile è otto, mentre molto spesso i marcatori ne hanno più di otto. Dato che in laboratorio l esecuzione di GeneHunter non presenta limitazioni poiché il un numero di individui nei pedigree non supera la soglia limite di 20, mentre con SLink si verificano di sovente necessità di estensione, l obiettivo è la risoluzione del problema per quest ultimo programma; poiché la letteratura ha proposto molteplici varianti ma tutte insoddisfacenti come soluzioni definitive del limite di otto alleli, l idea è la creazione di un applicativo che possa eseguire SLink con una combinazione lineare di alleli, e permettere all utente di capire dove vi sono i migliori risultati. Questa tecnica ègià in uso in laboratorio come soluzione empirica alla limitazione del programma, perciò automatizzando tale approccio al problema si può rilasciare uno strumento adatto e conforme alle esigenze dei biologi. Creazione Test Cases. I test cases riguardano i marcatori da ricercare nelle banche dati online, e alcune famiglie, con relativi alberi genealogici, in cui sono stati analizzati i marcatori ricercati. Una combinazione di tali informazioni si recupera in un caso reale di una famiglia, affetta da una malattia autosomica dominante, presentata con relativa figura nel capitolo dei test. I marcatori da considerare sono: d17s943 d17s1795 d17s588 d17s1319 d17s1869 d17s787 d17s1853 d17s944. Quello che ci aspettiamo è la creazione di un file contenente tutte le informazioni di tutti i marcatori, chiamato per esempio SimData.dat, e di n file dei singoli marcatori; il primo serve per lanciare GeneHunter, gli ultimi per SLink (poiché per ogni marcatore ne cerco il potere predittivo di lod-score). Nella fase di data retrieval ci si aspetta che il motore interroghi correttamente le banche dati, seguendo tutti i link necessari per arrivare alle informazioni delle frequenze alleliche e delle localizzazioni dei loci nel cromosoma, le distanze. Per la fase di elaborazione multiallelica l atteso output è la creazione di un file generico con le informazioni ricercate, e di un file per ogni marcatore in cui vi sia un numero di alleli non superiore ad un valore prefissato, per esempio 8 poichéè il limite effettivo dell applicazione SLink, e di altri file simili che permettano di non perdere le informazioni sugli alleli mancanti. Infine nella fase di esecuzione software si devono lanciare i programmi di analisi di linkage; ovviamente quest ultima parte ha solo lo scopo di controllo di corretta strutturazione dei file creati in quanto, per quel che riguarda l applicazione creata, non si entra nella logica interna di processamento. Analizzando ogni marcatore inserito si giunge al recupero delle informa-

56 4.1 L applicazione 50 zioni sulle frequenze e distanze sintetizzate nella tabella 4.1; i dati da scrivere quindi devono essere esattamente quelli ivi indicati (recuperati manualmente dalle stesse banche dati su cui si dovrà andare ad estrarre le informazioni). Ovviamente per quanto riguarda la distanza genica, in quanto si recuperano informazioni in unità di misura bp (base-pair) poiché nella banca dati è presente la grandezza del marcatore, si dovrà prima eseguire una conversione in Kosambi centi-morgan, e successivamente la differenza reciproca per trovare la distanza tra marcatori, considerando il primo immesso come riferimento 1. # Marcatore #Alleli Frequenze Dimensione in alleliche base pair (bp) 1 D17S D17S D17S D17S D17S D17S D17S D17S Tabella 4.1: Informazioni di frequenze e distanze geniche sui marcatori da cercare per la famiglia del test case. Per migliorare significatività ai test da eseguire,è utile soprattutto nella fase di data retrieval aggiungere altri marcatori da cercare, localizzati su un diverso cromosoma. A tal fine si è scelto un insieme di elementi contigui, come D10S208 D10S1243 D10S1666, e un insieme di elementi generici, per 1 Si noti che i marcatori sono immessi consapevolmente dall utente in ordine di locazione cromosomica, quindi sicuramente sono consecutivi a partire dal primo fino ad arrivare all ultimo.

57 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 che segnali nel file creato l assenza di tali dati. Infine si dovranno cercare dei file di marcatori e pedigree esterni con cui provare il lancio dei software da locale, senza l utilizzo dei primi due moduli, proprio come se fosse un contenitore e un interfaccia per GeneHunter ed SLink. In tal senso sono stati scelti due file appartenenti a famiglie già studiate precedentemente in laboratorio, i cui risultati erano disponibili e confrontabili. Sintetizzando i tre test cases, dovremo verificare l applicazione ponendo in ingresso: (1) una famiglia completa, su cui provare tutte le opzioni disponibili, quindi sia il recupero delle informazioni, che la creazione dei file dei marcatori, che il lancio degli applicativi di linkage, (2) un set di marcatori eterogenei, su cui validare il corretto funzionamento del data retrieval e della creazione dei molteplici file per ogni marcatore, (3) un precedente studio su un altra famiglia campione da cui prendere il file dei marcatori e del pedigree per verificare che l applicazione riesca a lanciare correttamente i software di analisi di concatenazione genica. Progettazione Generale. L interazione tra l utente e l applicazione può essere sintetizzata nello schema UML 4.1, in cui l utente deve inserire i marcatori nel loro codice identificativo (es: D17S787 ), per poi scegliere di lanciare, anche tramite file in locale precedentemente compilati, due software scelti per l analisi di linkage, GeneHunter ed SLink. Dallo schema in figura 4.1 segue direttamente il flusso di operazioni che può eseguire l utente, e che l interfaccia dovrà realizzare. I passi che l utilizzatore deve poter effettuare si suddividono in due aree: la ricerca delle informazioni dei marcatori e l esecuzione dei due software; infine al termine dell esecuzione deve essere possibile visualizzare i file prodotti. Uno schema di tale flusso viene presentato nella figura 4.2.

58 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.

59 4.2 Il modulo Ricerca Informazioni Il modulo Ricerca Informazioni L obiettivo di questo modulo è recuperare dalle banche dati pubbliche i dati dei marcatori necessari per creare il file di input per GeneHunter e SLink, che esigono un preciso formato e specifiche informazioni quali le frequenze degli 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 online, e tra i più completi ed aggiornati, per questo il nostro software si appoggerà a loro, si annoverano il GDB ( The Human Genome Database ) 2 el NCBI ( National Center for Biotechnology Information ) 3. Fortunatamente tali enti permettono di eseguire interrogazioni anche tramite software ai loro database, consentendo un accesso completo alle risorse; tale condizione infatti non sempre è garantita, per esempio il motore di ricerca Google vieta le ricerche automatiche effettuate da programmi, per impedire la creazione di metamotori illegali su di sé. I dati di nostro interesse da estrarre 2 Consultabile all indirizzo internet: 3 Consultabile all indirizzo internet:

60 4.2 Il modulo Ricerca Informazioni 54 riguardano le frequenze, per cui si sfrutta il primo database, e le distanze geniche, per cui ci si avvalerà della seconda banca dati. La procedura manuale che effettuano i biologi per l estrazione dei dati di frequenze e distanze geniche segue un tracciato laborioso, sintetizzato dalla figura 4.3 in cui dapprima si accede al sito del database, poi si esegue la query sul marcatore di interesse da recuperare e si naviga nelle pagine dei risultati fino a quella in cui sono contenuti i valori numerici, e infine si copiano tali dati in un file. L automatizzazione di tale processo deve seguire lo stesso tipo di percorso ma sfruttando metodi di accesso ai dati differenti, per esempio tramite i parametri di interrogazione dei database presenti nell url. Questo metodo d accesso garantisce la corretta interrogazione delle banche dati, e grazie successivo al parsing delle pagine restituite dal server remoto è possibile trovare il giusto link alla pagina dove sono presenti i valori numerici da estrarre. Queste procedure saranno a breve descritte, ma prima è utile introdurre il file di input agli applicativi sopra citati che ha una struttura esemplificata di seguito: << NO. OF LOCI, RISK LOCUS, SEXLINKED (IF 1), PROGRAM << MUT LOCUS, MUT RATE, HAPLOTYPE FREQS (IF 1) << AFFECTION, NO. OF ALLELES << GENE FREQUENCIES 1 << NO. OF LIABILITY CLASSES << PENETRANCES 3 7 << ALLELE NUMBERS, NO. OF ALLELES D17S << GENE FREQUENCIES 3 7 << ALLELE NUMBERS, NO. OF ALLELES D17S << FREQS 3 6 << ALLELE NUMBERS, NO. OF ALLELES D17S << GENE FREQUENCIES 3 7 << ALLELE NUMBERS, NO. OF ALLELES D17S << GENE FREQUENCIES 3 7 << ALLELE NUMBERS, NO. OF ALLELES D17S << GENE FREQS 0 0 << SEX DIFFERENCE, INTERFERENCE (IF 1 OR 2) << DISTS in kcm << 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 centrale del file, mentre quelle relative alle distanze geniche sono localizzate nella penultima riga. E utile accennare al significato di questi parametri poiché saranno richiesti all utente e utilizzati dai software da eseguire. Come utilizzare nei

61 4.2 Il modulo Ricerca Informazioni 55 software le informazioni di tali parametri verrà specificato successivamente, durante la descrizione delle istruzioni da inserire e digitare 4. In generale, nella prima riga il primo numero èlaquantità di marcatori inserita più uno, il secondo valore è il risk locus (0 se non è stato calcolato), ovvero il locus di rischio malattia, il terzo indica se la malattia è legata al sesso (X-linked), mentre l ultimo identifica il tipo di programma da eseguire (i codici identificano: 1 clink, 2 cmap, 3 ilink, 4 linkmap, 5 mlink, 6 lodscore, 7 clodscore). La seconda riga memorizza informazioni sul locus della mutazione, il tasso di mutazione, e le frequenze di aplotipo: se esistono calcoli già eseguiti, si immettono valori maggiori di 0. La terza riga elenca l ordine dei marcatori, mentre la quarta l affection status e il numero di alleli per cromosoma, e la quinta le frequenze geniche. Le successive due righe riportanoilnumerodiclassiacuiunindividuopuò appartenere (per esempio classi in base all età) e i rispettivi valori di penetranze. La possibilità di specificare molteplici righe per le classi, in base al numero immesso dall utente, deve essere resa disponibile dall applicazione. Dopo le classi di penetranza vengono descritti i marcatori, ciascuno con la rispettiva lista di alleli e loro frequenze. Nelle ultime tre righe vengono segnate le differenze tra sesso e interferenze, seguite dalla lista delle distanze geniche in cui il primo valore è il riferimento, quindi posto a zero, mentre gli altri numeri sono calcolati come differenza tra i punti iniziali di ciascun marcatore consecutivo; infine i valori di variazioni di ricombinazioni, incremento e sequenza terminale. Il primo modulo deve recuperare le informazioni di frequenze e distanze, mentre gli altri parametri sono importati a piacimento dell utente, e potranno essere utili nel secondo modulo, quindi affinché in tale fase si possano eseguire le ricerche correttamente è necessario acquisire il nome dei marcatori, nel loro identificativo univoco internazionale. Il motore di ricerca dei dati genetici avrà bisogno solo di tali dati per interrogare i database. In modo più schematico possiamo quindi sintetizzare gli ingressi e le uscite del modulo: Input: numero e relativi nomi dei marcatori da cercare; informazioni dei parametri dell header e footer del file.dat definite dall utente, ma non utilizzate durante l elaborazione da questo modulo (l utilità di inserirle qui risiede nella possibilità 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; sarà poi il motore interno al modulo a dialogare con i database. Tramite l uso di diagrammi UML è possibile quindi procedere gradualmente alla progettazione del modulo. 4 La creazione del file.dat riguarda entrambi i programmi, ma solo GeneHunter permette di inserire istruzioni aggiunte per customizzare l analisi.

62 4.2 Il modulo Ricerca Informazioni 56 Come prima cosa si deve creare il diagramma di sequenza, che permette di visualizzare come gli attori coinvolti nel processo interagiscono e in che sequenze. 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 parte dell utente, l applicazione effettua per ogni marcatore una query al database GDB, navigando fino alla pagina delle informazioni specifiche delle frequenze, ed estraendone i valori numerici per ogni allele contenuto. Successivamente interroga il database NCBI per le distanze, arrivando alla pagina di interesse tramite navigazione per link, ed estrapolando la coppia di valori in paia di basi del marcatore, ovvero dove inizia e dove termina nel cromosoma (la migliore unità di misura è l utilizzo delle paia di basi, ma tale informazione deve essere trasformata comunque in KcM (Kosambi centi-morgan) per poter essere correttamente processata dai programmi, come si vede nel file d esempio sopra riportato alla penultima riga). Infine le informazioni vengono scritte sul file finale, creato al primo ciclo e modificato ad ogni iterazione di marcatore; questo file è l output atteso. L analisi dei database e della locazione specifica delle informazioni utili da raccogliere ha messo in luce importanti aspetti da tenere in considerazione durante l implementazione, per esempio: i query engine hanno un riconoscimento di stringa case-sensitive, quindi il marcatore deve essere inserito sempre in maiuscolo; le etichette nelle pagine variano in funzione dello specifico marcatore e delle informazioni in possesso riguardo quest ultimo, quindi dove

63 4.2 Il modulo Ricerca Informazioni 57 mancano delle conoscenze su alcuni aspetti o semplicemente esistono diverse categorie, le etichette dei link assumono diversa denominazione; GDB ha una struttura di organizzazione della pagina in tag particolari: per esempio le informazioni delle frequenze si trovano all interno del tag <pre>; per arrivare alle frequenze bisogna attraversare obbligatoriamente un percorso di navigazione specifico: dal genomic segment si arriva alla pagina amplimer per toccare la pagina polimorphism fino agli allele sets e alle frequenze; il database NCBI ha una impaginazione automatica molto precisa e facilmente interrogabile; esistono diverse denominazioni di distanze in paia di basi: quella classica e quella Celera, di queste si deve utilizzare quella classica. Alla luce delle accortezze emerse dallo studio dei database a disposizione è possibile creare un diagramma di stato, che sintetizzi quello che l applicazione deve esattamente fare per ogni specifico passo. Tale flusso è presentato nelle due figure 4.5 e 4.6, in cui vengono rappresentati livelli di dettaglio diversi: prima gli stati semplici di esecuzione, e successivamente i diagrammi a granularità specifica per ogni passo, che permettono una futura traduzione in funzioni immediata. Nella figura 4.6 vengono visualizzate all interno di cornici con etichette le varie funzioni che sono state individuate con i relativi passi interni da effettuare: in questo modo il programma main non dovrà far altro che seguire le frecce dallo stato iniziale a quello finale invocando le funzioni che trova nel suo percorso; tale flusso dovrà essere ripetuto per ogni marcatore immesso, arrivando alla fine alla creazione del file.dat (chiaramente tale file nascerà dall append progressivo delle informazioni raccolte).

64 4.2 Il modulo Ricerca Informazioni 58 Figura 4.5: State Diagram generale per il modulo Recupera Informazioni.

65 4.2 Il modulo Ricerca Informazioni 59 Figura 4.6: State Diagram dettagliato per il Motore del modulo Ricerca Informazioni.

66 4.3 Il modulo Combinazione Alleli dei Marcatori Il modulo Combinazione Alleli dei Marcatori Il secondo aspetto fondamentale del lavoro di tesi è la creazione di una scatola di lancio dei programmi di linkage al fine di superare i limiti computazionali soprattutto dell applicazione SLink, poiché la possibilità di scegliere un numero inferiore ad 8 come alleli per ogni marcatore rappresenta una notevole limitazione elaborativa 5. La soluzione proposta prevede la creazione di file di ingresso con un numero inferiore di alleli per ogni marcatore, in particolare con una loro combinazione lineare, scegliendo di tagliare di volta in volta quelli posizionati alle estremità, come empiricamente viene tuttora effettuato dai biologi per poter sfruttare i dati di correlazione genetica tra marcatori e malattie. L obiettivo di questo modulo è la creazione di file.dat che siano combinazioni lineari degli alleli dei marcatori inseriti in ingresso, e quindi la frammentazione del file.dat di tutti i marcatori in n file.dat per ogni marcatore contenenti ciascuno un numero di alleli specificato dall utente, e con tutti i parametri precedentemente immessi dall utente posizionati nel corretto formato. E inoltre importante sottolineare che serve un file.dat per ogni singolo marcatore, come SLink necessita e come i biologi del laboratorio operano, contenente quindi le informazioni di un marcatore con i rispettivi alleli: in questo modo ogni marcatore deve essere processato singolarmente nell elaborazione degli alleli e si devono creare m file.dat per ogni marcatore, ove m rappresenta il numero di file creati come combinazione lineare degli alleli, secondo la logica scelta, e quindi la somma degli m file per ogni marcatore è n. Rimane da definire che logica usare nella selezione degli alleli dei marcatori e la loro quantità. Per quanto riguarda quest ultimo aspetto la scelta migliore è utilizzare 8 marcatori, poiché questo è il valore numerico limite dell algoritmo Elston-Stewart anche se al fine di massimizzare la flessibilità e la customizzazione deve comunque essere possibile scegliere la cardinalità della selezione degli alleli dei marcatori. Per quanto riguarda la logica da utilizzare si deve cercare di implementare il procedimento attualmente in uso in laboratorio, ovvero scegliere a alleli contigui, eliminando quelli alle estremità, per ogni blocco di a alleli fino all ultimo. Tale logica rispecchia perfettamente l idea di base dei protocolli di trasmissione dati, ovvero lo sliding window: dati A alleli recuperati da GDB e disposti ordinatamente 6, e data a la dimensione della finestra ovvero la quantità degli alleli che si 5 La parola soprattutto indica che anche il secondo software che viene eseguito all interno 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. 6 Non interessa con quale logica di ordinamento, ma ai fini del protocollo è importante che siano già in ordine; nel nostro caso l ordine è stabilito dal database GDB: come sono inseriti all interno del database (e quindi posizionati sul cromosoma all interno del marcatore) così vengono elaborati dall applicazione.

67 4.3 Il modulo Combinazione Alleli dei Marcatori 61 vogliono selezionare per volta, elaboro a alleli alla volta in A partendo dal primo e, facendo scorrere la finestra di una posizione fino all allele in posizione 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 dimensione della finestra desiderata a; se a A allora crea il file con i valori di frequenze degli alleli trovati in GDB; 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 in cui si mostra un esempio del procedimento su dieci alleli in un marcatore: partendo dal primo allele, si seleziona la prima finestra di dimensione prefissata 8, e ad ogni esecuzione si avanza di un allele per volta scorrendo la finestra rigidamente di una posizione. Gli ingressi di questo modulo sono la lista dei marcatori e la specificazione della dimensione della finestra, mentre le uscite sono i molteplici file.dat; la motivazione della lista dei marcatori èchepresalalista,nerichiamo in ordine di marcatori i rispettivi alleli recuperati. La quantitàdeifile.dat generali (escludendo quello che accorpa tutti i marcatori poiché viene sempre generato) che si creeranno varia in funzione del numero di alleli che ciascun marcatore possiede, per questo è possibile stabilire un range: avendo a disposizione m marcatori, il numero massimo teorico di file nella logica sliding window è m (A (a 1)), mentre ovviamente il minimo è0. Ora che gli input e gli output son stati specificati, ed è stata descritta la logica dell elaborazione è possibile comporre il diagramma di stato, come la figura 4.8 propone.

68 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 e SLink con in ingresso i file creati e i pedigree. Parallelamente alla progettazione del modulo è utile accennare a come praticamente lavorano i software, a livello di input, output, e comandi interni, soprattutto quelli che dovranno essere utilizzati dal modulo. I risultati di ogni lancio vengono inseriti dall applicazione all interno di una nuova cartella etichettata con la data odierna, nel formato ggmeseaaaa, garantendo all utente l ordine dei file creati e il facile loro recupero cronologico. GeneHunter nella versione 1.2 per piattaforma Windows MS-Dos, ha una modalità di esecuzione a riga di comando: una volta avviato l eseguibile quindi si specificano le istruzioni da utilizzare, modificando i parametri di calcolo del lod-score. E possibile creare un file unico che contiene tali istruzioni, ciascuna su una riga, per eseguire tutto il necessario già impostato in un istruzione unica con il comando run; il programma può anche accettare in ingresso una pipe di standard input. Queste ultime due caratteristiche sono alla base della progettazione della parte di lancio di GeneHunter all interno del programma RightLinkS. La strutturazione del file unico da eseguire come pipe di standard input, che verrà chiamato RUN_gh.in, prevede una serie di comandi già impostati, che l utente se lo desidera può poi cambiare e rieseguire; di questi parametri diamo per completezza una semplice descrizione:

69 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 istruzioni eseguite internamente, e quindi èilfilesucuiverrannoindicatiirisultati dell esecuzione e che dovrà essere visionato dall utente; il nome di tale file in default dato è OUT_gh.txt, localizzato nella cartella dei risultati con nome della data odierna; haplotype (on/off) permette di attivare o disattivare il comando di ricostruzione degli aplotipi, con relativa creazione di un grafico.ps; count recs (on/off) esegue il conteggio delle ricombinazioni tra generazioni;

70 4.4 Il modulo Esecuzione 64 load markers è il comando di caricamento dei marcatori nella struttura dati interna di GeneHunter; scan pedigree permette di avviare l analisi del lod score nella famiglia (pedigree) selezionata con i marcatori sopra specificati. L applicazione deve quindi dare la possibilità all utente di considerare questi parametri, ed altri non descritti, ed includerli nell elaborazione; in tale senso quindi al momento dell esecuzione di GeneHunter dall interfaccia dell applicazione deve essere creato il file delle istruzioni RUN_gh.in con tutti i valori importati dalle preferenze dell utilizzatore, e deve essere alla fine possibile non solo vedere l output dell esecuzione di GeneHunter (OUT_gh.txt), ma anche il file di istruzioni per poterlo modificare a piacere ed eventualmente rieseguire. L esecuzione di GeneHunter necessita di particolari attenzioni, tra cui: (1) i file dei marcatori e del pedigree devono essere localizzati nella stessa cartella dell eseguibile, (2) è possibile strutturare un file di istruzioni, ma il formato dei percorsi dei file deve avere lo slash di tipo /, al contrario di quanto avviene per la shell MS-Dos. Per superare la prima difficoltà è necessario copiare il file dei marcatori e del pedigree nella cartella del software, posizionata staticamente allo stesso livello dell interfaccia di accesso. Il flusso di operazioni quindi si può sintetizzare come segue: accedi alla cartella dell eseguibile del software Genehuter, chiamata gh; 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) nella cartella gh; i file di output del software devono comunque essere scritti nella cartella dei risultati odierni quindi all interno del file run si deve far riferimento alla cartella specifica nel formato corretto, esempio:../<data>; crea il file.bat nella directory allo stesso livello dell interfaccia di accesso. Al fine di mantenere coerenza nell implementazione e una maggiore portabilità permettendo all interfaccia di rimanere unicamente un contenitore di lancio, anche l esecuzione di GeneHunter è avviata sfruttando WebL. SLink è un pacchetto di software, che comprende quattro programmi (SLink.exe, Unknown.exe, Msim.exe, edelodhet.exe), di cui vengono usati

71 4.4 Il modulo Esecuzione 65 i primi tre per il calcolo del lod-score. Ognuno di essi svolge una specifica funzione nel calcolo e nella modica dei file, che qui non verrà discussa. I file di output che contengono i risultati vengono staticamente etichettati come outfile.dat e msim.dat ; saranno questi ultimi ad essere estratti, copiati e visionati dall utente tramite RightLinkS. Nella figura 4.9 viene presentato il flusso di elaborazione di SLink, con i file di ingresso all applicazione ( simdata.dat e simped.dat ) contenenti rispettivamente i marcatori e il pedigree negli stessi formati richiesti da GeneHunter, e i file intermedi prodotti durante i calcoli, per giungere infine agli output sopra enunciati. Figura 4.9: Flusso di lavoro di SLink. A differenza di GeneHunter, SLink non è a riga di comando, ma ad esecuzione diretta, quindi il lancio dell eseguibile (uno qualsiasi interni al pacchetto) richiede file standard e produce output standard. Inoltre nonostante sia un pacchetto di eseguibili, questi devono essere lanciati ad uno ad uno con i file di ingresso correttamente formattati; presumibilmente questa scelta lascia all utente la flessibilità di scegliere quando eseguire il prossimo programma nel flusso e controllarne facilmente gli output di ciascun

72 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 ingresso hanno nomi prestabiliti (per i marcatori è simdata.dat, per il pedigree è 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 interno della cartella di SLink, e rinominarli correttamente; i risultati poi devono essere trasferiti all esterno della cartella per evitare che lanci successivi possano sovrascrivere elaborazioni precedenti. Come per GeneHunter, deve essere possibile eseguire SLink anche senza aver eseguito la ricerca di informazioni automatiche. Per riuscire a lanciare sequenzialmente in modo automatico tutti i file dei marcatori trovati con la logica sliding window (dal singolo file a svariate decine) e il singolo file pedigree, la sequenza di operazioni da effettuare è: accedi alla cartella dell eseguibile SLink, chiamata slink; acquisisci la cartella dove recuperare il/i file dei marcatori, e il prefisso del nome del file (per prefisso si identifica la prima parte del nome, senza le possibili etichettature finali con il nome del marcatore, ed altro), 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 figura 4.9); crea una cartella con la data odierna dei risultati, se non presente; copia nella cartella dei risultati i file di output outfile.dat e msim.dat, rinominandoli con il suffisso del file di lancio (se presente, quindi se c è più di un file di marcatori). 4.5 Linguaggi di programmazione e infrastruttura Per l estrazione delle informazioni si è scelto di utilizzare il linguaggio di programmazione WebL [59, 58], ideato e sviluppato dalla Compaq alla fine degli anni novanta e tuttora supportato 7. WebL è stato studiato appositamente per interfacciarsi con il web, ed ha una struttura particolarmente adatta alle elaborazioni delle pagine, al parsing. Inoltre è realizzato tramite una libreria.jar che garantisce la massima portabilità; una breve panoramica sarà di seguito presentata. Queste motivazioni hanno indotto a privilegiare WebL 7 Sito internet:

73 4.5 Linguaggi di programmazione e infrastruttura 67 a qualsiasi altro metodo di elaborazione delle pagine, quale per esempio un parsificatore creato ad hoc tramite Flex e Bison, che avrebbe necessitato una programmazione in C, quindi meno agevole e flessibile per la rete WebL WebL è un linguaggio creato appositamente per gestire ed elaborare documenti sul World Wide Web, non soltanto potendo appoggiarsi ai protocolli HTTP ed FTP ma anche ai tipi diversi di pagine come HTML, XML, ecc. I componenti principali del linguaggio sono i service combinators e il markup algebra: i service combinator sono servizi che permettono di accedere in maniera più sicura e flessibile alle risorse online, con la capacità di gestione delle eccezioni; il markup algebra è un formalismo atto ad estrarre informazioni dalle risorse recuperate, con funzioni di individuazione di elementi, pattern, ricerche indirizzate, e funzioni di manipolazione e creazione dinamica delle pagine. Qui di seguito verranno riportate alcune delle caratteristiche principali che hanno contribuito notevolmente alla scelta di WebL come linguaggio implementativo. Caratteristiche: WebL lavora ad alto livello, è imperativo, interpretato, a tipizzazione dinamica, 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 classici linguaggi C: integer, double, char, array, liste, metodi; i protocolli supportati includono HTTP, FTP, File, ed è possibile eseguire interrogazioni ai form delle pagine, consente la gestione dei cookies, 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 può importare moduli per la gestione di files (quindi scrittura e lettura di file) e download in memoria delle pagine, e la gestione concorrente parallela dei job; WebL è completamente portabile poiché scritto in Java, quindi ogni programma può essere lanciato da piattaforme Unix senza modificare il codice;

74 4.5 Linguaggi di programmazione e infrastruttura 68 il codice interno è aperto, contenuto nel file.jar, e quindi altamente customizzabile. Service Combinators GetURL(url, [. parametro1=val1, parametro2=val2,....]) PostURL(url, [. parametro1=val1, parametro2=val2,....]) sono i due service combinator più utilizzati; come suggerisce lo stesso nome, la GetURL esegue una chiamata Get su HTTP, mentre la PostURL usa il protocollo Post di HTTP. I parametri sono: url, indirizzo web della risorsa, passato come stringa, mentre [. param1=val1, param2=v2.] è un oggetto in cui sono memorizzati i parametri da passare come Get o Post nel protocollo, richiamando le funzioni del server. Entrambi ritornano un oggetto pagina che incapsula le risorse. Un esempio di come operano viene riportato di seguito: volendo realizzare una interrogazione nel motore di ricerca Yahoo! 8 cercando le parole genetic linkage tramite il service combinator GetURL si avrebbe: var pageyahoo = GetURL(" [. p="genetic+linkage", fr="fp-tab-web-t340", ei="utf-8", meta="vl%3d".]); che come risultato da l oggetto: [. "URL" = " Blinkage&fr=FP-tab-web-t340&ei=UTF-8&meta=vl%253D", "date" = "Mon, 21 Aug :32:27 GMT", "p3p" = "policyref=" CP="CAO DSP COR CUR ADM DEV TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE GOV"", "cache-control" = "private", "connection" = "close", "content-type" = "text/html; charset=iso ", "set-cookie" = "B=15pcoql2ejdfb&b=3&s=45; expires=tue, 02-Jun :00:00 GMT; path=/; domain=.yahoo.com".] Una caratteristica interessante è la possibilità di eseguire in sequenza o parallelo tali invocazioni, usando rispettivamente i caratteri? e!, ed assegnare termini di timeout(timeout) e di riconnessione (retry). 8 Indirizzo web:

75 4.5 Linguaggi di programmazione e infrastruttura 69 Markup Algebra La parte centrale del linguaggio è proprio il markup algebra, costituito da elementi specifici come piece, piece-set, pages, e tags, e di operatori su questi ultimi. Il piece è una regione della pagina page, a cui si può accedere tramite i tag poiché sono i delimitatori dello stesso piece, mentre il piece-set è un insieme di piece all interno della stessa pagina. Uno degli aspetti più importanti è la funzione di ricerca che recupera elementi con tag specificati, pagine mediante espressioni regolari, segmenti di testo, o pattern. Tramite operatori come Elem, Pat (per i pattern), e PCData si filtrano parti di pagine e se ne selezionano altre. Inoltre sugli elementi recuperati è 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 su file xml), e altri ancora. Inoltre sono disponibili moduli creati per la gestione di file, stringhe (con operazioni come splitting, ecc), cookies, java applications, servlet, che completano le potenzialità del linguaggio. Ed infine è possibile sfruttare il multithreading per il lancio concorrente di WebL Infrastruttura e Interfaccia L idea portante è realizzare un software installabile ed eseguibile in locale, da ogni postazione, con interfaccia grafica user-friendly; la soluzione di rilasciare una versione con elaborazione remota potrebbe essere una futura estensione, soprattutto in una prospettiva di distribuzione open-source. In questo senso quindi si è preferito pensare ad un software il più possibile portabile, e facile da installare ed usare. Ovviamente diventa necessario avere una connessione ad Internet attiva per sfruttare il modulo di data retrieval. Per esigenze di laboratorio in cui sono presenti principalmente postazioni con sistema operativo Ms-Windows, si è pensato ad implementare una prima interfaccia per tale piattaforma, dalla versione 1998 in avanti. Una soluzione pratica per progettare un software ready-to-run in modalità grafica è resa possibile sia tramite WebL, che ottimizza la portabilità e si occupa del motore di recupero informazioni, sia con Visual Basic, che assolve alla funzione di leggera interfaccia grafica e lancio diretto dei motori in WebL. La proprietà di essere un software non installabile e quindi solo una cartella da copiare nella cartella preferita (che si consiglia essere C: Programmi ) permette notevole facilità d uso; in questo modo i due software GeneHunter ed SLink sono già forniti all interno della cartella dell applicazione. Per quanto riguarda l affidabilità del programma questa è affidata ai motori interni in WebL: così facendo l interfaccia diventa unicamente lo

76 4.5 Linguaggi di programmazione e infrastruttura 70 strumento di esecuzione, in cui gli unici controlli da eseguire riguardano la completezza dei dati immessi e il loro formato. Per quanto concerne la compatibilità invece tale interfaccia non può essere sfruttata su tutte le piattaforme, ma per la facilità di realizzazione permette un porting agevole verso sistemi Unix-like, lasciando inalterati i codici dei motori.

77 Capitolo 5 Implementazione L implementazione dell applicazione è stata sviluppata con un approccio bottom-up, affrontando nell albero progettuale prima le foglie per poi risalire verso la radice. Infatti, similmente a come verranno presentate, sono state 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 è il motore di ricerca ed estrazione dati costruito in WebL. Seguendo gli schemi UML degli stati progettati (4.6 e 4.4) è possibile arrivare ad una soluzione progressiva di implementazione, creando una funzione per volta, e testandola per ogni tipo di marcatori. In questo caso quindi i test cases di funzione risultano essere composti dagli ingressi e dalle uscite nel flusso di lavoro, e da un set di marcatori che riesca a toccare ogni potenziale eccezione sollevabile (per esempio, come accennavamo in precedenza, marcatori con assenza di informazioni, disposti su più cromosomi, ecc). In sintesi ogni funzione dovrà ricevere in ingresso gli output della funzione precedente e un insieme di marcatori eterogenei da processare, come quelli d esempio nella tabella 5.1. Verranno presentate le singole funzioni implementate, esaminando quali sono gli ingressi e le uscite, e la loro logica interna. In aggiunta allo schema progettato sono state implementate altre funzionalità di supporto all utente, come la creazione di una cartella dei risultati, etichettata con la sigla del giorno di esecuzione, in una locazione preferita scelta dall utilizzatore, e il salvataggio come file di cronologia delle informazioni estratte sulle frequenze dai singoli marcatori (questi stessi dati verranno poi uniti a creare il file di output finale). Il main è l ultima parte che viene presentata, e ripercorre esattamente il flusso progettato; al fine di una migliore comprensione delle funzioni si ricorda che la mentalità con cui è stato affrontato il design delle funzioni prevede che per ogni marcatore vengano estratte tutti i dati neces-

78 5.1 Il modulo Ricerca Informazioni 72 Num. Id. Marcatore Descrizione 1 D17S1872 cromosoma 17, con 14 alleli 2 D17S1522 cromosoma 17, con mancata definizione della popolazione nel set degli alleli 3 D17S1319 cromosoma 17, con etichette dei polimorfismi in GDB ambigue, e assenza informazioni alleliche 4 D17S933 cromosoma 17, in cui le etichette dei link in GDB sono ambigue 5 D10S208 cromosoma 10, con 9 alleli 6 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 nelle funzioni di query, navigazione, ed estrazione informazioni si avrà in ingresso il singolo marcatore (in tipi di dato diversi a seconda della funzione); la creazione finale del file invece raccoglierà i dati memorizzati in un solo passo L esecuzione delle Query I database GDB e NCBI permettono fortunatamente di effettuare interrogazioni automatiche. La realizzazione delle query avviene grazie all utilizzo dei service combinators GetURL e PostURL specificando i parametri dell interrogazione. Nel motore le query vengono chiamate due volte (per GDB ed NCBI distintamente), ed in entrambi i casi è stata sfruttata la GetURL immettendo l indirizzo della cgi di interrogazione con i parametri di interesse come campi della funzione (oggetto chiamante). Nel caso del database GDB infatti abbiamo la chiamata var pagegdb = GetURL(" /hgd/genomicsegment?!action=query&displayname="+marcatore); ove marcatore indica il codice del marcatore da ricercare, specificato in lettere maiuscole. Similmente per NCBI abbiamo l invocazione var pagencbi = GetURL(" /map_search.cgi", [. taxid="9606", query=marcatore.]); ma in questo caso è stato possibile sfruttare al meglio le caratteristiche del linguaggio WebL e del service combinator GetURL con la creazione dello spazio dei parametri dell oggetto, specificando quindi [. taxid="9606",

79 5.1 Il modulo Ricerca Informazioni 73 query=marcatore.] ove il taxid identifica il tipo di database che si utilizza, nel nostro caso quello dell uomo chiamato Homo sapiens (human) Build 36 e con codice identificativo L associazione ad una variabile del risultato della query permette la successiva elaborazione dell oggetto, infatti da una GetURL viene recuperato un oggetto con diversi campi ben definiti tra cui URL, date, ecc, comemostra il codice d esempio sottostante che riporta l oggetto pagegdb creato dall interrogazione a GDB con il primo marcatore citato nel set D17S1872: [. "URL" = " /hgd/genomicsegment?!action=query&displayname=d17s1872", "date" = "Sun, 20 Aug :49:54 GMT", "server"="apache/ (Unix) mod_perl/ Perl/v5.8.3", "connection" = "close", "content-type" = "text/html; charset=iso ".] Accedendo al campo URL dell oggetto ritornato è possibile recuperare l intera pagina di risposta della query e sottoporla alle fasi successive, la prima delle quali è la navigazione La navigazione La navigazione tra le pagine estratte dai database presenta due approcci: nel primo caso è stato replicato il comportamento di un utente che sfoglia le pagine online grazie al nome significativo delle etichette, nel secondo caso si è dovuto specificare il link da seguire perché le etichette dei collegamenti presentano problemi come ambiguità o inconsistenza dei nomi, nel senso che cambiano a seconda delle informazioni in possesso sullo specifico marcatore, e quindi è stato necessario sviluppare una funzione flessibile a queste variazioni. Le due funzioni sotto presentate implementano entrambe le soluzioni, ove per il primo caso si usa la FollowLinkByLabel mentre nel secondo si sfrutta la NavigaFinoFrequenze. Il motivo del suffisso specifico frequenze indica proprio che la seconda alternativa è emersa solo nel database GDB, e non in NCBI. Funzione FollowLinkByLabel Logica. Obiettivo della funzione è seguire il link con etichetta specificata dal nome; in tal modo si vuole ricreare il comportamento dell utente durante la navigazione, che segue le pagine grazie all etichetta dei link e non all indirizzo puntato. Si noti che l etichetta in questa pagina può anche non essere unica, ma bisognerà specificare nel seguito quale collegamento usare nel caso di omonimia; in default viene preso il primo collegamento trovato,

80 5.1 Il modulo Ricerca Informazioni 74 quindi l associazione è statica; è sempre possibile estendere tale funzione creando una lista di collegamenti rilevati, entro cui recuperare quello di interesse, ma in tal caso si necessiterà dell informazione del collegamento per scegliere, cosa che farebbe deviare dall intenzione della funzione che vuole seguire solo l etichetta. Altre funzioni implementano la scelta via collegamento ipertestuale. Input. Gli ingressi sono: la pagina come oggetto GetURL (tipo: oggetto GetURL), e l etichetta da cercare (tipo: stringa). Output. L oggetto di uscita è la GetURL della pagina raggiunta tramite l etichetta. Codice. La variabile dest è una lista che contiene tutti gli elementi della pagina parsata di tag <a>, trovati con la Element Search, incuiiltestoin- terno, l etichetta, contiene la stringa dell ancoratext, recuperata attraverso la Pattern Search. Di questa lista scelgo il primo elemento, e recupero in output 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 è raggiungere la pagina delle frequenze in GDB. Data l impossibilità nell utilizzare la funzione FollowLinkByLabel nel sito GDB a causa delle variazioni dei link in nomi non predicibili a priori, si è dovuta strutturare una funzione apposita che elaborasse le pagine delle risorse recuperate dalle query per giungere alla pagina di interesse contenente le informazioni sulle frequenze geniche, passando attraverso svariate pagine, come Amplimer, Polimorphism, Allele Sets. Per quanto sia studiata appositamente per l utilizzo specifico in GDB, è facilmente customizzabile, poiché implementa la logica complementare rispetto alla FollowLinkByLabel, ovvero segue i link nelle pagine non dall etichetta ma selezionando il collegamento giusto in base al contesto della pagina attuale: per esempio, sapendo che i passaggi tra le pagine sono nell ordine sopra citato, quando il motore si trova nella pagina Amplimer sa che deve cercare il collegamento alla pagina Polimorphism. Si noti che in tale ragionamento, come il test set dei marcatori evidenzia nella sezione 5.1, possono esistere sia collegamenti che etichette ambigue, con più collegamenti per uno stesso tipo di risorsa,

81 5.1 Il modulo Ricerca Informazioni 75 ma il motore è flessibile perché crea una lista con tali riferimenti di cui il primo elemento è quello che punta alla risorsa di nostro interesse, dimostrando quindi flessibilità e robustezza ai cambiamenti di pagina. Input. L unico ingresso è il marcatore, espresso come stringa, e inserito in maiuscolo, a causa della caratteristica case-sensitive negli input del database; tale controllo verrà automatizzato nel main, senza deviare l obiettivo della funzione. Output. L uscita è la pagina delle frequenze come oggetto GetURL. Codice. Il codice si compone di più parti innestate, tra cui funzioni specifiche di supporto, e funzioni di navigazione contestuale alla pagina assegnata: nel primo caso rientrano le funzioni FollowLinkByLabelStarting e EstraiCodiceGDBMarcatore, mentre nel secondo le funzioni EstraiUrlDaHome, EstraiUrlDaAmplimer, EstraiUrlDaPolymorphism, eestraiurldaallele- Sets. LaFollowLinkByLabelStarting=fun(page, testo) risponde all esigenza di navigare nella pagina non attraverso le etichette ma tramite la specificazione di una parte del link ipertestuale, in particolare che inizi con la stringa in ingresso chiamata testo. Dipersé questa costituisce il cuore della funzione, e infatti verrà invocata dal main per navigare attraverso le pagine contestualizzate tramite le funzioni EstraiUrlDaHome=fun(page), EstraiUrlDaAmplimer=fun(page), EstraiUrlDaPolymorphism=fun(page), e EstraiUrlDaAlleleSets=fun(page), che hanno come obiettivo l estrazione del link alla pagina successiva. Nel main, dopo aver estratto il codice identificativo usato da GDB per il marcatore con la EstraiCodiceGDBMarcatore =fun(linkamp), si procede page-by-page navigando in sequenza grazie alle funzioni sopra citate, estraendo alla fine l oggetto GetURL della pagina delle frequenze L estrazione delle informazioni L estrazione delle informazioni dalle pagine deve adattarsi ai due casi di dati da recuperare, non tanto perché essi siano diversi in formato (le frequenze solitamente sono reali mentre le distanze interi), ma per la disomogeneità delle pagine da parsare nei due diversi database. Questo costringe a creare due distinte funzioni customizzate per il caso specifico, come anche lo schema modellato nella figura 4.6 mette in luce. Funzione EstraiInfoFreqDa Logica. Obiettivo della funzione è parsare la pagina delle frequenze in ingresso e ricavarne le informazioni delle frequenze. Il parsing mette in luce che tali dati si trovano nei tag <pre> della pagina, ma collocati in modo

82 5.1 Il modulo Ricerca Informazioni 76 disordinato, non all interno di altri tag tabulativi (come tabelle, o altro) ma come testo. Si sottolinea che tale struttura non è quella vista dal browser, ma recuperata da WebL: infatti ogni browser vede ed analizza i dati nella pagina all interno di una tabella, ma ciò senza ragione apparente, non avviene con WebL; al contrario è con il database NCBI ove tutte le strutture sono viste allo stesso modo del browser. Questo ha costretto all utilizzo della funzione di built-in PCData, che permette di recuperare il testo della sezione o pieceset di interesse, che verrà successivamente parsato per raccogliere i dati numerici strettamente necessari, memorizzati anche in un file di cronologia nel disco fisso. Importante nota nella logica: se le informazioni delle frequenze sono assenti nel file viene scritta una riga di errore con valori di frequenza assurdi (ovvero ), affinché l utente possa facilmente localizzare il punto d errore. Una funzionalità aggiunta utile è la somma dei valori delle frequenze scritta alla fine della riga nel file. Input. Si presentano molteplici ingressi poiché in tale funzioneè stato pensato anche di raccogliere in file statici per ogni marcatore i dati recuperati, e quindi 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 il file di memoria (il percorso interno al proprio computer, come stringa) e il nome del file di memoria (di tipo stringa): per quest ultimo ingresso si nota che non è l utente a specificarlo, ma l applicazione interna, ove di default è stato scelto il nome di tipo MarkerFreqsInfo <marcatore>.txt. Output. L output è la scrittura corretta dei file in memoria, con la giusta formattazione allineata come richiesto dal tipo di file.dat. Codice. Il codice si può suddividere in quattro sezioni: nella prima si recupera il pieceset contenente il tag <pre>, cosa che viene fatta richiamando una funzione al fine di rendere flessibile ed estendibile il programma nel caso cambiasse il tag di contenimento dei dati allelici, nella seconda viene effettuata una ricerca sul pieceset dei valori numerici tramite parsing attraverso una espressione regolare specifica, nella terza si memorizzano le informazioni nel corretto formato nel singolo file del marcatore, mentre nell ultima si effettua la somma delle frequenze e il relativo controllo d errore (nel caso superi una soglia fissata si assume un errore nei dati). La funzione var ExtractAllObj=fun(page, tag) implementa la prima sezione, e tramite la successiva invocazione con il parametro tag = pre si ottiene il pieceset delle frequenze: l output è una lista, e staticamente il primo elemento contiene i dati in forma testuale (rilevati con PCData) delle frequenze, input della seconda sezione. Nel caso di assenza di informazioni alleliche, come si vede nella parte then del ciclo if la cui condizione èsulla

83 5.1 Il modulo Ricerca Informazioni 77 dimensione del pieceset (nel caso sia un insieme vuoto è zero), viene scritta una riga di errore nel file localizzabile con i valori assurdi var ExtractAllObj = fun(page, tag) var dest3 = Elem(page,tag); //è lista // ciclo sulla lista var j=0; // contatore, parte da 0, primo elem lista var strtutteinfo = ""; if Size(dest3)==0 then strtutteinfo = " \n \n"; else //ciclo contenuto testuale elementi estratti //[0]: è sempre staticam 1o oggetto della lista! every t in PCData(dest3[0]) do strtutteinfo = strtutteinfo+text(t); end; end; //if return strtutteinfo; end; //function ExtractAllObj L espressione regolare sotto riportata sintetizza come viene effettuata la ricerca all interno del testo recuperato, il cui formato è ricorrente: spazi, almeno uno, seguiti da un numero di al massimo due cifre (la numerazione degli alleli in ordine da 1 a 10), seguiti da almeno un altro spazio, seguito da il numero reale (nel caso in cui si presentasse la formattazione del reale senza lo 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 di seguito: EsprReg (spazio + ) int [int] (spazio + ) int 5 [.int 7 ](spazio + ) int 0-9 spazio tab La terza sezione è una scrittura su file con scansione della lista di elementi estratta dall espressione regolare, mentre la quarta sezione vede la correzione d errore d approssimazione riportato dal computer. Infatti nell effettuare il calcolo delle frequenze dai dati estratti è necessario eseguire conversioni di

84 5.1 Il modulo Ricerca Informazioni 78 tipo delle variabili, e in queste conversioni il computer oltre la settima cifra decimale riporta un errore di calcolo quasi sistematico, eliminato tagliando le cifre oltre la settima, per poi riconvertire il numero in stringa da scrivere nel 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 numero frequenza = c1[4]; // controllo consistenza inizio numero con 0. e non solo. if Str_StartsWith(frequenza,"[.]")==true then frequenza = "0"+frequenza; end; // end if sumoffreq = sumoffreq+toreal(frequenza); //scrivo le informazioni delle frequenze nel file Files_AppendToFile(filefreq,frequenza+" "); end; // end every var strsumfreq = ToString(sumoffreq); Print("\n\tLa somma delle frequenze è (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 dall assenza delle informazioni alleliche nel database GDB, viene eseguito un controllo sulla somma delle frequenze, poi scritto anche su file: var sommafreqesatta = (listshortrealfreq[0])[0]; //stringa if sumoffreq>50 then Files_AppendToFile(filefreq," << ERROR IN GENE FREQS for marker: "+marker+" [gdb.org does not have the frequencies for this marker] ERROR"); else Files_AppendToFile(filefreq," << GENE FREQS for marker: "+marker+" [sum of freqs is "+sommafreqesatta+"]"); end; Funzione EstraiInfoDistDa Logica. Collegandosi all indirizzo del database, effettua la navigazione fino alla pagina delle distanze in paia di basi, dove ricerca le informazioni con la stessa procedura che adotterebbe un utente: dall analisi della pagina si evidenzia che tutte le informazioni utili da recuperare si situano all interno di due elementi, etichettati rispettivamente Mapping Information

85 5.1 Il modulo Ricerca Informazioni 79 ed Electronic PCR results. La omogeneità nella struttura delle pagine in NCBI permette quindi di localizzare agevolmente la regione dati con lo stesso approccio utente e senza commettere errori. Le informazioni recuperate sono ancora da elaborare per estrarne i valori giusti, ovvero quelli in unità classica e non celera ; tali dati si trovano staticamente in una parte del testo recuperato, quindi parsando esattamente quella regione si estraggono i numeri dei due estremi del marcatore. Input. L unico ingresso è il marcatore in stringa. Output. Crea una lista contenente i due valori in paia di basi (ciascuno di tipo stringa) dell inizio e della fine del marcatore (estremità); in questo modo ciclando per ogni marcatore è possibile nel main ottenere una matrice di valori con i dati degli estremi. Codice. L implementazione della funzione vede una divisione naturale in due zone: nella prima si effettua il recupero della tabella delle distanze geniche, nella seconda si estraggono tali dati e si inseriscono in una lista di due elementi. La prima zona di codice seleziona la tabella nei confini degli elementi Mapping Information e Electronic PCR results, per poi localizzare nella tabella delle distanze i valori corretti nella unità classica (non Celera). // seleziona la tabella delle distanze nei confini var Unists = GetURL(paginaUnists.URL); var nometabella = "Mapping Information"; var nometabelladopo = "Electronic PCR results"; var zonainfo = Elem(Unists,"table") directlyafter ((Elem(Unists,"table") contain Pat(Unists,nometabella)) directlybefore (Elem(Unists,"table") contain Pat(Unists,nometabelladopo))); // seleziona riga 4 colonna 2, classic units var 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 i valori numerici: il procedimento vede dapprima l utilizzo di una espressione regolare 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 posizione del primo oggetto nella lista) tramite la Split nei due numeri (di tipo ancora stringa). Infine la funzione esegue il return dell output.

86 5.1 Il modulo Ricerca Informazioni 80 // crea una lista con i due valori in bp var listadist = Str_Search(Text(selcol), ((\d)+)[-]((\d)+) ); // separa i due valori, creando una lista var splitdist = Str_Split((listadist[0])[0],"-"); return splitdist; La creazione del file.dat La creazione del file.dat avviene integralmente in unico momento richiamando diverse funzioni. Tranne la funzione EseguiMergeFrequenze che viene invocata per ogni marcatore ed esegue la creazione di un file provvisorio (o l append nel caso sia già presente), tutte le altre vengono chiamate una sola volta nel main: CreaFileDat è il cuore del merge dei parametri da scrivere nel file (sia quelli recuperati che quelli immessi dall utente), mentre ElaboraMatriceDist ha lo scopo di calcolare le distanze tra marcatori nell ordine inserito. Funzione EseguiMergeFrequenze Logica. Obiettivo della funzione è recuperare i singoli file delle frequenze dei marcatori creati nel loop, caricare in memoria il loro contenuto e creare (o eseguire l append se già esistente) il file temporaneo MarkersFrequencies.txt inserendovi le informazioni nel corretto formato del file di output.dat. Input. L input è il marcatore, come stringa, in quanto la funzione viene chiamata per ogni marcatore; la directory in cui risiedono i singoli file dei marcatori e in cui verrà anche scritto il file temporaneo; il nome da assegnare al file temporaneo (in default è MarkersFrequencies.txt, per cambiarlo bisogna modificare anche la funzione CreaFileDat nel punto in cui lo cerca nella cartella). Output. Creazione del file MarkersFrequencies.txt ; bisogna fare attenzione ad un passaggio delicato: tale file deve essere cancellato (ecco perché chiamato temporaneo) all uscita dell applicazione, altrimenti ad ogni lancio (effettuato a breve distanza o comunque con dati già esistenti) il file temporaneo non verrà sovrascritto, ma gli saranno accodati con l append i dati dei marcatori cercati nel nuovo avvio, creando inconsistenza nella futura creazione del file.dat causata dai dati aggiunti, e quindi errati. Tale cancellazione è affidata al main, nelle istruzioni conclusive. Funzione ElaboraMatriceDist Logica. Il nome suggerisce lo scopo della funzione: presa in ingresso la matrice delle distanze, ricordando che la funzione EstraiInfoDistDa ritorna

87 5.1 Il modulo Ricerca Informazioni 81 una lista di due valori assimilabile ad un vettore di distanze e anticipando che nel main tale vettore per ogni marcatore sarà incapsulato in un altra lista creando una matrice di dimensione (marcatori,2), viene implementata la logica di calcolo delle distanze tramite differenza tra il punto iniziale del marcatore i esimo e quello iniziale del marcatore i+1 esimo; ovviamente le estremità saranno trattate in questo modo: il primo marcatore viene usato come punto di riferimento, quindi posto a 0.0, mentre l ultimo non rientra nel calcolo in quanto non ha l elemento i +1. Input. L unico ingresso è la matrice dei marcatori. Output. In quanto lo scopo finale è la creazione di una stringa da inserire nel file.dat, l output è proprio la stringa delle distanze. Codice. Il codice non presenta particolari punti rilevanti, ma si preferisce riportare l istruzione del calcolo nel caso si volesse cambiare la logica interna di elaborazione. var distanze="0.000"; // estremo iniziale // contatori var m=0; var valoretemp=0; var deltacm=0.0; // ciclo di scansione lista ed elaborazione, fino al penultimo while m < Size(matrice)-1 do valoretemp = ToInt((matrice[m+1])[0])-ToInt((matrice[m])[0]); // trasformo in cm: divido l intero bp per deltacm = valoretemp/ ; // aggiungo al vettore stringa delle distanze valore trovato distanze=distanze+" "+ToString(deltacm); m = m+1; end; //while Funzione CreaFileDat Logica. Acquisiti i parametri definiti dall utente e quelli recuperati dall 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 specificati; in ordine di immissione gli input sono: (1) la directory in cui scrivere il file, stringa, (2) il nome del file dove prendere i valori delle frequenze dei marcatori considerati, (3) la stringa delle distanze, (4) il nome da assegnare al file.dat, stringa, (5) il numero dei marcatori in ingresso, (6) la lista delle classi di penetranza, (7) la lista dei parametri delle prime, e (8) del footer.

88 5.1 Il modulo Ricerca Informazioni 82 Output. Ovviamente l output è il file.dat creato Funzioni di supporto Le funzioni di supporto servono per migliorare l efficienza dell applicazione e aggiungere funzionalità di controllo, come nel caso della ControllaDirInserita, e di gestione interna, come avviene per la CreaCartellaData. Nonostante esistano altre funzioni di supporto nel codice del motore, come CancellaFilesIn, non saranno prese in esame poiché di immediata comprensione. Funzione ControllaDirInserita Logica. Il controllo della correttezza della stringa in ingresso rappresentante il percorso della directory serve per non rischiare errori nell elaborazione del motore al momento della creazione della cartella di lavoro e dei file. Infatti, al fine di rendere flessibile e portabile il più possibile tale motore, è utile pensare che possano essere molteplici i formati in ingresso, usando diverse inclinazioni dei separatori di cartelle (slash o backslash), singoli o doppi. Per evitare confusioni e mismatch, la stringa in ingresso viene riconosciuta nel formato (per inclinazione di slash e sua quantità) e trasformata in un formato standard: singolo slash. Un esempio è: dalla path directory C:\Universitas\TESI\ alla stringa C:/Universitas/TESI/. Per realizzare il riconoscimento si utilizzano le espressioni regolari sulle stringhe. Input. Output. La stringa della directory nel formato originale. La stringa della directory nel formato standard. Codice. Unico punto interessante da riportare nel codice è la parte del riconoscimento delle stringhe tramite espressioni regolari, sia nella parte iniziale, per acquisire la disposizione dei separatori e la loro quantità, che finale, per validare che sia una directory o sia stato immesso per errore un percorso che non finisce con gli slash. Nel codice tali riconoscimenti hanno la seguente forma, rispettivamente per la parte iniziale e finale: // er parte iniziale stringa var erdirstart = (\w{1})[:]([/]){1,2}((\w)+) ; // er parte finale stringa var 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 è:

89 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 inseriti tutti i file da creare con etichetta uguale alla data dell avvio del programma, nel formato gg//mese//aaaa, per esempio 17Aug2006. Perfarciò si sfrutta il service combinator GetURL nel campo date, richiamando un indirizzo totalmente affidabile; nel programma il sito di appoggio per ricavare la data ègoogle( poiché storicamente è sempre stato attivo. Una volta acceduti al campo date bisogna elaborare la stringa per estrarne la data nel formato voluto, poiché la stringa contiene simboli non utilizzabili come caratteri di directory, come :. Input. In ingresso vuole la directory entro cui creare la nuova cartella: può anche essere esterna alla cartella del programma. Output. La creazione della nuova cartella nel formato sopra citato, con il cambio del percorso di directory, dato che serve per i passaggi di parametri interni tra le funzioni. Codice. Operativamente dopo aver invocato la GetURL, bisogna accedere al campo date, che si presenta come "date" = "Sun, 20 Aug :49: :54 GMT"; l implementazione utilizza la funzione Str_Split prima con separatore la virgola e poi con lo spazio, creando delle liste analizzabili e modellabili. Da queste liste si estraggono i campi con la data, mese ed anno, per fonderli in una stringa che sarà usata come etichetta della directory tramite la Files_Mkdir 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, e i marcatori. Inframezzati in queste stringhe di dati ci sono dei separatori che permettono di individuare senza l uso di espressioni regolari dove inizia la sezione dei marcatori, quella delle classi, e del footer. In quest ottica il primo passo è ciclare sugli ingressi per recuperare il valore numerico di indice

90 5.1 Il modulo Ricerca Informazioni 84 di inizio e fine della lista di marcatori e degli altri dati, per poi sfruttare le funzioni sopra descritte arrivando all output finale nel file.dat. I parametri in ingresso ricalcano tutte le informazioni necessarie a Genehunter e Linkage per eseguire i loro calcoli, perciò lacardinalità degli input è26 + ClassiP enetranza + Marcatori. I nomi qui riportati seguono i sostantivi presenti nei file.dat come commenti ai parametri; l ordine è: (1) directory in cui voler salvare le elaborazioni, (2) nome del file.dat da salvare, (3) stringa inizio parametri header: startheader, (4) risk locus, (5) sex linked, (6) program, (7) mutation locus, (8) mutation rate, (9) haplotype frequencies, (10) affection, (11) number of alleles, (12) gene frequencies, (13) number of classes, (14) stringa inizio parametri classi: startclass, (15) valore classe 1, (16) valore classe 2, (17) valore classe 3, (18) opzionalmente altri valori di classi, (18) stringa fine parametri classi: endclass, (19) stringa fine parametri header: endheader, ( Marcatori ) marcatori, (+1) stringa inizio parametri footer: startfooter, (+1) sex difference, (+1) interference, (+1) recombination varied, (+1) increment, (+1) finishing value, (+1) stringa fine parametri footer: endfooter 1, (+1) dimensione della finestra(campochesarà usato nella funzione di riassortimento del modulo Combinazione Marcatori, comeverrà approfondito nella sezione relativa 5.2). L output finale che il main produce è il file.dat completo di tutte le informazioni inserite e recuperate. Per quanto riguarda la procedura elaborativa l unica parte che si riporta per evitare la ripetizione dello schema progettuale, in quanto viene implementato dal main nello stesso ordine, è l acquisizione dei valori di indice degli input. Tale codice occupa le prime istruzioni ed è stata realizzata attraverso un ciclo while che percorre gli argomenti in ingresso, che sono visti tutti come stringhe. Infatti WebL incapsula tutti i parametri passati in una lista, chiamata ARGS, senza limitazioni trovate di memoria né cardinalità. Per recuperare i delimitatori inseriti si percorre la lista da 0 a Size(ARGS) cercando la stringa esatta in ARGS[indiceargomenti], ed assegnando il valore intero ai vari indici da utilizzare successivamente. Il controllo della stringa del marcatore, che sia tutta in maiuscolo, viene effettuato dall istruzione Str_ToUpperCase (ARGS[contatoreinput]) che converte la stringa del singolo marcatore (assegnata ad una variabile temporanea) in maiuscolo. 1 Il numero 18 è ripetuto due volte non per errore ma per sottolineare l opzionalità della lista di classi di penetranze aggiuntive. Con la notazione (+1) si intende aggiungere alla numerazione variabile precedente una unità come indice d ingresso.

91 5.2 Il modulo Combinazione Marcatori Il modulo Combinazione Marcatori Anche questo modulo è stato implementato in WebL, poichésièsceltodi unirlo all interno del motore, precedentemente descritto. La motivazione di queste due scelte è basata sulla efficienza elaborativa: infatti inserire come funzione interna al motore tale modulo permette di svolgere in una sola passata due dei passi progettati; sebbene possa sembrare una deviazione dagli schemi UML presentati, l implementazione della Combinazione Marcatori viene richiamata nella parte finale del motore nella stessa logica progettuale, e i parametri del motore sono separati da quelli della funzione chiamata RiduzioneAlleli. In quest ultima considerazione ricade proprio l ultimo parametro della lista di ingressi al motore, ovvero il numero relativo alla dimensione della finestra, posizionato dopo il delimitatore endfooter, ultima stringa utile per il motore. Le funzioni implementate sono due, di cui la prima è il cuore della logica citata in progettazione: RiduciAlleli, ecreafiledatredo; nelmaindel motore, non precedentemente accennato perché il riferimento corretto si trova in questo modulo, invece è riportata l invocazione alla prima funzione. Funzione RiduciAlleli Logica L obiettivo della funzione RiduciAlleli rispecchia la logica di progettazione, ovvero realizzare uno strumento capace di verificare il numero di alleli presenti per ogni marcatore e creare un file specifico del marcatore con una selezione di alleli, secondo la logica slinding window. Le strutture dati utilizzate sono matrici di marcatori, contenenti la lista dei marcatori nell ordine immesso dall utente, e matrici di alleli. Al fine di rispecchiare la cardinalità tra le due matrici nella dimensione dei marcatori, posti come righe, è stato pensato di strutturare la matrice degli alleli, contenente le frequenze alleliche in questo modo: ogni riga corrisponde al singolo marcatore, e possiede un vettore, costituito al suo interno da almeno una finestra di dimensione massima a, specificata dall utente (8 in default, ovvero il numero limite del programma). Concettualmente quindi la matrice si presenta nello schema 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 e dimensione della finestra a di 8 alleli, in cui il vettore in ciascuna riga è rap-

92 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 singole finestre, contenenti gli alleli nel range specificato. La motivazione nell utilizzo di una simile struttura dati risiede nella sua omogeneità con la matrice dei marcatori: in questo modo è facilmente possibile associare ad ogni riga un marcatore, che poi nella singola colonna del vettore delle finestre può specificare il numero di alleli frammentati nelle possibili finestre componibili su essi, nella logica slinding window. Una volta definita la struttura dati da utilizzare si può implementare la logica di progettazione; in questo caso la funzione rispecchia pienamente la logica studiata in fase di analisi, quindi per non tediare il lettore il codice verrà riportato in appendice (D), mentre segue una sua breve descrizione. La parte di logica elaborativa più importante da esplicitare è il trattamento delle frequenze alleliche. Caricata in ingresso la stringa delle frequenze dal file di database del singolo marcatore chiamato MarkerFreqsInfo <marker id>.txt, si converte in lista la stringa eseguendo una split sul carattere spaziatore. Se la dimensione della lista è inferiore o uguale alla dimensione della finestra scelta dall utente allora si copia nel vettore la lista di alleli riconvertiti in stringa, creando la singola finestra, mentre se superiore allora si necessita del trattamento a sliding window: per tutte le possibilifinestrecreabili(quindialmassimoa (a 1), con A numero di alleli presenti sul marcatore ed a dimensione della finestra) prendi a elementi consecutivi ed inseriscili nel vettore come finestra singola. Il meccanismo di scivolamento della finestra avviene all interno di quest ultimo ciclo, realizzato con un while, non solo tramite l indice intero di scansione, ma anche con l operatore proprio del Lisp (usato nell IA) Rest sulle liste: quindi avanzo dell indice di una posizione nella lista ma cancello dalla stessa lista l elemento sorpassato. In questo modo riesco a shiftare rigidamente la finestra di una posizione alla volta, per il numero corretto di posizioni.

93 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 lista dei 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 di marcatori coinvolti come intero; nel nostro caso tale ultimo valore èsempre 1, e non è ancora configurabile, scelta giustificata dell utilizzo esclusivo in laboratorio di un solo marcatore per volta nell esecuzione del software SLink. Output Le uscite non ci sono poiché all interno si richiama la funzione CreaFileDatRedo, successivamente descritta, che si adopera alla creazione dei file.dat; quindi come uscite ci sono le stampe video di conferma del monitoraggio dell esecuzione. Funzione CreaFileDatRedo Il motivo per cui è stata creata una funzione diversa dalla CreaFileDat per quanto assolvano allo stesso scopo è che mentre quest ultima elabora una lista di frequenze, nella CreaFileDatRedo si processa una stringa di frequenze; 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. Unica nota è proprio nell output, ove si presenta il file (o i file).dat con gli alleli ricombinati, nel formato <nomefile>_<id_marcatore>_<#finestra>.dat, incuiilsuffissoindicailnumerodellafinestra. Un quadro generico di interazione ed esecuzione di tutte le funzioni è fornito dalla figura 5.2 in cui si rappresentano tutte le funzioni con le rispettive chiamate: le frecce continue tra stati, quadrati con angoli smussati, rappresentano il flusso del programma mentre quelle tratteggiate le chiamate di funzione o blocco di funzioni; all interno dei quadrati vi sono gli oggetti che producono le funzioni e di cui si servono, ove con temp si identifica un oggetto temporaneo mentre con memo uno di memorizzazione fissa. 5.3 Il modulo Esecuzione Anche l esecuzione dei software è avviata sfruttando WebL: un interfaccia che esegua i codici WebL in questo modo si riduce ad una semplice maschera di inserimento parametri, e lancio di eseguibili. L implementazione del lancio di Genehunter ed SLink segue il flusso studiato in fase di progettazione, e il codice non si discosta molto da quanto visto finora nelle precedenti funzioni; per questo non sarà riportato. Il sorgente in WebL si preoccupa di creare la cartella dei risultati, controllare tutti gli input immessi, sia come percorso che come esistenza, e generare un file di esecuzione per la piattaforma in uso; in questo caso la piattaforma è MS-Dos quindi verrà creato un file batch con all interno le istruzioni da

94 5.3 Il modulo Esecuzione 88 Figura 5.2: State Diagram delle funzioni in WebL, primo e secondo modulo.

95 5.4 L interfaccia grafica 89 eseguire. La motivazione del file batch è che i due software non possono essere lanciati se non dalla cartella in cui si trovano, poiché non riescono ad acquisire i file di input dall esterno della loro localizzazione (come accennato in progettazione), e quindi la soluzione è creare un file batch in cui prima si accede alla directory di lancio, e poi si eseguono i due applicativi con i rispettivi input. In questo modo gli output dei software possono essere scritti nella stessa cartella dell eseguibile, per poi essere copiati nei risultati. 5.4 L interfaccia grafica L interfaccia grafica è stata ideata con l ottica che gli utilizzatori sono biologi, o quantomeno persone con diversa formazione dall informatica, e quindi il più possibile user-friendly. Senza entrare nel merito della progettazione secondo gli studi di human-computer interaction poiché non èquestoilfocus dell argomento, verrà descritta in linea generale la struttura dell interfaccia con le rispettive motivazioni. L interfaccia grafica segue la suddivisione dei moduli (ove i primi due sono accorpati perché riguardano lo stesso ambito), e presenta due etichette che permettono di spostarsi facilmente nel modulo desiderato: il modulo Ricerca Informazioni e quello Combinazione Marcatori appartengono alla prima etichetta nominata Recupera Informazioni e Crea File Marcatori, mentre il modulo Esecuzione è inserito all interno dell etichetta Lancia GeneHunter ed SLink. In questo modo è stata realizzata una suddivisione tematica, che permette all utente di affacciarsi alla parte che desidera eseguire in base all obiettivo per cui ha avviato l applicazione. Ovviamente la prima etichetta che si presenta all utente è quella che realizza il focus della metodologia implementata, ovvero la ricerca delle informazioni e la creazione di file di marcatori come combinazione lineari dei rispettivi alleli. Le figure 5.3 e 5.4 mostrano l interfaccia grafica nella sua interezza: la prima con il modulo di ricerca informazioni e creazione dei file.dat, la seconda il modulo di esecuzione dei software. Come è visibile dalla seconda maschera, figura 5.4, i software di analisi di linkage possono essere lanciati anche senza aver avviato la ricerca automatica delle informazioni, prima etichetta, ma tramite file in locale. Per facilitare l immissione dei dati all interno dei campi di inserimento parametri, sono state riportate le istruzioni, e vengono caricati in default dei valori d esempio. Inoltre per quanto riguarda la ricerca delle informazioni e la creazione dei file di marcatori la stessa disposizione dei riquadri testuali è stata strutturata come verrà scritta nel file, nel formato standard. L obiettivo del controllo dei file di output è stato realizzato con i pulsanti di apertura degli stessi file: in questo modo i file dei marcatori, per quanto riguarda la prima maschera, e i file di run e di output di GeneHutner per la

96 5.4 L interfaccia grafica 90 seconda schermata, possono essere non solo controllati dall utente ma anche corretti e salvati, ed eventualmente rieseguite le applicazioni. Infine sono stati predisposti dei controlli interni all interfaccia per il corretto e completo inserimento dei dati nei campi 2 e l abilitazione dei pulsanti insequenzaaeventidielaborazione: perquantoriguardailprimodeidue aspetti, alla pressione dei tasti di esecuzione, viene effettuato il controllo sulla presenza del testo dei campi per non lasciare valori nulli, mentre il secondo aspetto emerge durante la fase di controllo dei risultati, in cui i pulsanti di apertura dei file devono essere attivati solo dopo la creazione di questi ultimi, e previa pressione dell esecuzione dei software o della ricerca delle informazioni. 2 Si ricorda che sarà poi il codice del motore in WebL ed eseguire controlli interni sulle stringhe inserite, quindi a livello di interfaccia è necessario solo controllare che tutti i campi siano completi.

97 5.4 L interfaccia grafica 91 Figura 5.3: Interfaccia grafica, sezione Ricerca Informazioni e Creazione File Marcatori.

98 5.4 L interfaccia grafica 92 Figura 5.4: Interfaccia grafica, sezione Lancio GeneHunter ed SLink.

99 Capitolo 6 Test e Validazione Come si addice ad ogni ciclo software, bisogna verificare se il programma RightLinkS esegue correttamente i sui compiti, e se i compiti che elabora sono giusti, compiti assegnati rispettivamente alla fase di testing e di validazione 1. In questa sezione verranno sviluppati ed eseguiti i test progettati nel capitolo 4, suddivisi tematicamente, partendo dal test sulla famiglia campione che prevede l utilizzo di tutta l applicazione, passando al test sui moduli separatamente, prima la ricerca delle informazioni e la creazione dei file, e successivamente l esecuzione di file esterni tramite l interfaccia grafica dei software di analisi di linkage. A conclusione del lavoro verrà sintetizzata la fase di validazione, in cui si concretizza l apporto di RightLinkS nel lavoro sul linkage dei biologi. 6.1 Test eseguiti Famiglia Campione Per la famiglia campione è possibile eseguire il test di tutta l applicazione, partendo dalla fase di data retrieval passando per la combinazione multiallelica e arrivando al lancio applicativi. Ovviamente per poter svolgere l ultima parte di prova è necessario che sia stato creato il file del pedigree esternamente (operazione che non è possibile automatizzare perché bisogna raccogliere tutti i dati estratti dai campioni biologici di ogni individuo, che non sono presenti in database, ma su fogli di carta stampati dai diversi macchinari). Il pedigree della famiglia è visibile nell immagine 6.1. In questa immagine sono stati considerati tutti gli individui dell albero genealogico, nonostante alla fine quelli che sono effettivamente disponibili siano 17 su 20; le persone escluse hanno la colorazione arancione. Come si nota, è presente l aploti- 1 La domanda originaria nota in lingua inglese infatti è: Did the program do the work right? Did the program do the right work?.

100 6.1 Test eseguiti 94 pizzazione degli individui per i marcatori segnati lateralmente, e i settori evidenziati rappresentano le regioni in cui si potrebbero avere concatenazioni geniche, poiché i valori si mantengono uguali nelle persone. In particolare i settori evidenziati in verde rappresentano le regioni più significative, poiché sono comuni a tutti gli individui affetti. L immagine presenta la ricostruzione degli aplotipi per lettere, e non per numeri, per esigenze contingenti del laboratorio; per chiarirne la conversione, ogni lettera rappresenta l allele del singolo marcatore ordinati in base al suo peso molecolare, quindi alla lettera A corrisponde il peso molecolare minore, ecc. Figura 6.1: La famiglia campione aplotipizzata nella costruzione del pedigree, considerando tutti gli individui. Recupero Informazioni e Creazione File Test Domain. I marcatori da ricercare sono quelli proposti nella figura del pedigree già elencati nella tabella 4.1. Data la presenza di molteplici alleli per ogni marcatore, l obiettivo è il recupero corretto di tutte le informazioni di frequenze e distanze geniche nel giusto ordine, e la creazione dei file dei marcatori, sia quello unico generico che quelli per ogni singolo marcatore

Genetica. Mendel e la genetica

Genetica. Mendel e la genetica Genetica Le leggi dell ereditarietà di Mendel Ereditarietà e cromosomi Estensioni della genetica mendeliana Applicazioni della genetica Genoma umano Mendel e la genetica Mendel 81822-1884), un monaco di

Dettagli

TEORIA CROMOSOMICA : ALLEGATI

TEORIA CROMOSOMICA : ALLEGATI TEORIA CROMOSOMICA : ALLEGATI FIG. 2 a pag. 1 FIG. 5 a pag. 3 FIG. 7 a pag. 5 FIG. 9 a pag. 7 FIG. 3 e 4 a pag. 2 FIG. 6 a pag. 4 FIG. 8 a pag. 6 FIG. 10 e 11 a pag. 8 1 FIGURA 2 Perché sono tutti maschi

Dettagli

La trasmissione dei caratteri ereditari. Le leggi di Mendel (1882-1884)

La trasmissione dei caratteri ereditari. Le leggi di Mendel (1882-1884) La trasmissione dei caratteri ereditari Le leggi di Mendel (1882-1884) Le leggi di Mendel studiano la trasmissione di caratteri qualitativi prodotti da un singolo gene Procedimento sperimentale di Mendel

Dettagli

CORSO INTEGRATO DI GENETICA

CORSO INTEGRATO DI GENETICA CORSO INTEGRATO DI GENETICA a.a.2011-2012 11.10.2011 Lezioni N. 7 e 8 Ereditarietà Mendeliana Segregazione alleli, indipendenza geni, associazione, ricombinazione Dott.ssa Elisabetta Trabetti UN GENE =

Dettagli

GENETICA MENDELIANA NELL UOMO

GENETICA MENDELIANA NELL UOMO GENETICA MENDELIANA NELL UOMO GENETICA FORMALE o GENETICA CLASSICA basata unicamente su risultati visibili di atti riproduttivi. È la parte più antica della genetica, risalendo agli esperimenti di Mendel

Dettagli

GENETICA seconda parte

GENETICA seconda parte GENETICA seconda parte I cromosomi sono lunghe molecole di una sostanza l acido desossiribonucleico. DNA Il DNA è una lunga catena fatta da due lunghi fili avvolti su se stessi a doppia elica. Sembra una

Dettagli

1. Distribuzioni campionarie

1. Distribuzioni campionarie Università degli Studi di Basilicata Facoltà di Economia Corso di Laurea in Economia Aziendale - a.a. 2012/2013 lezioni di statistica del 3 e 6 giugno 2013 - di Massimo Cristallo - 1. Distribuzioni campionarie

Dettagli

Alberto Viale I CROMOSOMI

Alberto Viale I CROMOSOMI Alberto Viale I CROMOSOMI DA MENDEL ALLA GENETICA AL DNA ALLE MUTAZIONI I cromosomi sono dei particolari bastoncelli colorati situati nel nucleo delle cellule. Sono presenti nelle cellule di ogni organismo

Dettagli

EREDITA MENDELIANA IL CARATTERE E TRASMESSO CON GLI AUTOSOMI O E ASSOCIATO AI CROMOSOMI SESSUALI?

EREDITA MENDELIANA IL CARATTERE E TRASMESSO CON GLI AUTOSOMI O E ASSOCIATO AI CROMOSOMI SESSUALI? EREDITA MENDELIANA IL CARATTERE E TRASMESSO CON GLI AUTOSOMI O E ASSOCIATO AI CROMOSOMI SESSUALI? CARATTERE AUTOSOMICO -codificato da geni su cromosomi non sessuali -non ci sono differenze di trasmissione

Dettagli

GENETICA... lessico. Genetica: studio dei geni e dell'ereditarietà

GENETICA... lessico. Genetica: studio dei geni e dell'ereditarietà GENETICA... lessico Genetica: studio dei geni e dell'ereditarietà Geni: porzioni di DNA contenenti un'informazione che permette di decodificare una certa proteina. Es: gene che determina il colore dei

Dettagli

= femmina. = maschio. = fenotipo banda bianca. = fenotipo pezzato. =fenotipo colore uniforme

= femmina. = maschio. = fenotipo banda bianca. = fenotipo pezzato. =fenotipo colore uniforme Test n.8 Dalle Olimpiadi delle Scienze Naturali 2002 PARTE TERZA Le 5 domande di questa parte riguardano il medesimo argomento e sono introdotte da un breve testo e da uno schema. In una razza bovina il

Dettagli

risulta (x) = 1 se x < 0.

risulta (x) = 1 se x < 0. Questo file si pone come obiettivo quello di mostrarvi come lo studio di una funzione reale di una variabile reale, nella cui espressione compare un qualche valore assoluto, possa essere svolto senza necessariamente

Dettagli

Corso di. Dott.ssa Donatella Cocca

Corso di. Dott.ssa Donatella Cocca Corso di Statistica medica e applicata Dott.ssa Donatella Cocca 1 a Lezione Cos'è la statistica? Come in tutta la ricerca scientifica sperimentale, anche nelle scienze mediche e biologiche è indispensabile

Dettagli

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it Automazione Industriale (scheduling+mms) scheduling+mms adacher@dia.uniroma3.it Introduzione Sistemi e Modelli Lo studio e l analisi di sistemi tramite una rappresentazione astratta o una sua formalizzazione

Dettagli

Linkage. Lezione 4 (riprendere il testo di Genetica ) By NA

Linkage. Lezione 4 (riprendere il testo di Genetica ) By NA Linkage Lezione (riprendere il testo di Genetica ) Tipi di mappe: mappe genetiche Mappe genetiche : si basano sulla frequenza di ricombinazione fra locus identificati attraverso marcatori di varia natura:

Dettagli

Un gioco con tre dadi

Un gioco con tre dadi Un gioco con tre dadi Livello scolare: biennio Abilità interessate Costruire lo spazio degli eventi in casi semplici e determinarne la cardinalità. Valutare la probabilità in diversi contesti problematici.

Dettagli

OMOZIGOTE Dominante. OMOZIGOTE Recessivo ETEROZIGOTE

OMOZIGOTE Dominante. OMOZIGOTE Recessivo ETEROZIGOTE GENI E CARATTERI EREDITARI I caratteri ereditari corrispondono a precisi tratti di DNA, i geni, che contengono le informazioni per la sintesi delle proteine. Ciascun gene occupa nel cromosoma una determinata

Dettagli

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

Page 1. Evoluzione. Intelligenza Artificiale. Algoritmi Genetici. Evoluzione. Evoluzione: nomenclatura. Corrispondenze natura-calcolo Evoluzione In ogni popolazione si verificano delle mutazioni. Intelligenza Artificiale In un ambiente che varia, le mutazioni possono generare individui che meglio si adattano alle nuove condizioni. Questi

Dettagli

www.fisiokinesiterapia.biz LE LEGGI DI MENDEL

www.fisiokinesiterapia.biz LE LEGGI DI MENDEL www.fisiokinesiterapia.biz LE LEGGI DI MENDEL Gregor Johann Mendel (1822-1884) Comprese i principi che regolano la trasmissione dei caratteri ereditari alla progenie senza conoscere - l esistenza dei geni

Dettagli

Capitolo 3 Riproduzione e trasmissione dei cromosomi

Capitolo 3 Riproduzione e trasmissione dei cromosomi Capitolo 3 Riproduzione e trasmissione dei cromosomi 3.1 Nelle cellule somatiche del topolino domestico vi sono 40 cromosomi. a. Quanti cromosomi riceve dal padre? b. Quanti autosomi sono presenti nel

Dettagli

La distribuzione Normale. La distribuzione Normale

La distribuzione Normale. La distribuzione Normale La Distribuzione Normale o Gaussiana è la distribuzione più importante ed utilizzata in tutta la statistica La curva delle frequenze della distribuzione Normale ha una forma caratteristica, simile ad una

Dettagli

Algoritmi e strutture dati. Codici di Huffman

Algoritmi e strutture dati. Codici di Huffman Algoritmi e strutture dati Codici di Huffman Memorizzazione dei dati Quando un file viene memorizzato, esso va memorizzato in qualche formato binario Modo più semplice: memorizzare il codice ASCII per

Dettagli

Elementi di Psicometria con Laboratorio di SPSS 1

Elementi di Psicometria con Laboratorio di SPSS 1 Elementi di Psicometria con Laboratorio di SPSS 1 12-Il t-test per campioni appaiati vers. 1.2 (7 novembre 2014) Germano Rossi 1 germano.rossi@unimib.it 1 Dipartimento di Psicologia, Università di Milano-Bicocca

Dettagli

Mendeliana Autosomica Dominante (AD) Autosomica Recessiva (AR) X-linked Recessiva (X-linked R) X-linked Dominante (X-linked D) Y-linked

Mendeliana Autosomica Dominante (AD) Autosomica Recessiva (AR) X-linked Recessiva (X-linked R) X-linked Dominante (X-linked D) Y-linked Trasmissione ereditaria di un singolo gene (eredità monofattoriale) Mendeliana Autosomica Dominante (AD) Autosomica Recessiva (AR) X-linked Recessiva (X-linked R) X-linked Dominante (X-linked D) Y-linked

Dettagli

Prima Legge di Mendel LEGGE DELLA SEGREGAZIONE IN PROPORZIONI UGUALI:

Prima Legge di Mendel LEGGE DELLA SEGREGAZIONE IN PROPORZIONI UGUALI: Prima Legge di Mendel LEGGE DELLA SEGREGAZIONE IN PROPORZIONI UGUALI: Durante la meiosi, i membri di una coppia allelica si separano in modo simmetrico nelle uova e negli spermatozoi. Questa separazione

Dettagli

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. Algoritmi 1 Sommario Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. 2 Informatica Nome Informatica=informazione+automatica. Definizione Scienza che si occupa dell

Dettagli

Parte I. Prima Parte

Parte I. Prima Parte Parte I Prima Parte Capitolo 1 Introduzione generale 1.1 Il problema dell assegnazione Corsi-Borsisti Il problema dell assegnazione delle borse dei corsi ai vari studenti può essere riassunto nei punti

Dettagli

Le leggi di Mendel esposte in modo ragionato e critico di Luciano Porta

Le leggi di Mendel esposte in modo ragionato e critico di Luciano Porta Le leggi di Mendel esposte in modo ragionato e critico di Luciano Porta Le tre leggi di Mendel, che descrivono la trasmissione dei caratteri ereditari da una generazione all altra, segnano l inizio della

Dettagli

PROGETTO EM.MA PRESIDIO

PROGETTO EM.MA PRESIDIO PROGETTO EM.MA PRESIDIO di PIACENZA Bentornati Il quadro di riferimento di matematica : INVALSI e TIMSS A CONFRONTO LE PROVE INVALSI Quadro di riferimento per la valutazione Quadro di riferimento per i

Dettagli

Rappresentazione dei numeri in un calcolatore

Rappresentazione dei numeri in un calcolatore Corso di Calcolatori Elettronici I A.A. 2010-2011 Rappresentazione dei numeri in un calcolatore Lezione 2 Università degli Studi di Napoli Federico II Facoltà di Ingegneria Rappresentazione dei numeri

Dettagli

Statistica. Lezione 6

Statistica. Lezione 6 Università degli Studi del Piemonte Orientale Corso di Laurea in Infermieristica Corso integrato in Scienze della Prevenzione e dei Servizi sanitari Statistica Lezione 6 a.a 011-01 Dott.ssa Daniela Ferrante

Dettagli

STATISTICA IX lezione

STATISTICA IX lezione Anno Accademico 013-014 STATISTICA IX lezione 1 Il problema della verifica di un ipotesi statistica In termini generali, si studia la distribuzione T(X) di un opportuna grandezza X legata ai parametri

Dettagli

Il concetto di valore medio in generale

Il concetto di valore medio in generale Il concetto di valore medio in generale Nella statistica descrittiva si distinguono solitamente due tipi di medie: - le medie analitiche, che soddisfano ad una condizione di invarianza e si calcolano tenendo

Dettagli

Rapporto dal Questionari Insegnanti

Rapporto dal Questionari Insegnanti Rapporto dal Questionari Insegnanti SCUOLA CHIC81400N N. Docenti che hanno compilato il questionario: 60 Anno Scolastico 2014/15 Le Aree Indagate Il Questionario Insegnanti ha l obiettivo di rilevare la

Dettagli

Scopo della lezione. Informatica. Informatica - def. 1. Informatica

Scopo della lezione. Informatica. Informatica - def. 1. Informatica Scopo della lezione Informatica per le lauree triennali LEZIONE 1 - Che cos è l informatica Introdurre i concetti base della materia Definire le differenze tra hardware e software Individuare le applicazioni

Dettagli

Nota interpretativa. La definizione delle imprese di dimensione minori ai fini dell applicazione dei principi di revisione internazionali

Nota interpretativa. La definizione delle imprese di dimensione minori ai fini dell applicazione dei principi di revisione internazionali Nota interpretativa La definizione delle imprese di dimensione minori ai fini dell applicazione dei principi di revisione internazionali Febbraio 2012 1 Mandato 2008-2012 Area di delega Consigliere Delegato

Dettagli

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI Indice 1 Le frazioni algebriche 1.1 Il minimo comune multiplo e il Massimo Comun Divisore fra polinomi........ 1. Le frazioni algebriche....................................

Dettagli

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

Carpire il segreto della vita con l informatica Giosuè Lo Bosco Dipartimento di Matematica e Informatica, Università di Palermo, ITALY. Carpire il segreto della vita con l informatica Giosuè Lo Bosco Dipartimento di Matematica e Informatica, Università di Palermo, ITALY. Lezioni Lincee Palermo, 26 Febbraio 2015 Alla base della vita degli

Dettagli

4 modulo didattico - Modalità di trasmissione delle malattie

4 modulo didattico - Modalità di trasmissione delle malattie 4 modulo didattico - Modalità di trasmissione delle malattie monogeniche. L analisi dell albero genealogico: uno strumento indispensabile della genetica medica I SIMBOLI DELL ALBERO GENEALOGICO L ANEMIA

Dettagli

METODOLOGIA STATISTICA E CLASSIFICAZIONE DEI DATI

METODOLOGIA STATISTICA E CLASSIFICAZIONE DEI DATI METODOLOGIA STATISTICA E CLASSIFICAZIONE DEI DATI 1.1 La Statistica La Statistica è la scienza che raccoglie, elabora ed interpreta i dati (informazioni) relativi ad un dato fenomeno oggetto di osservazione.

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso

Appunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso Università Roma Tre Facoltà di Scienze M.F.N. Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

LE MOLECOLE INFORMAZIONALI. Lezioni d'autore Treccani

LE MOLECOLE INFORMAZIONALI. Lezioni d'autore Treccani LE MOLECOLE INFORMAZIONALI Lezioni d'autore Treccani Introduzione (I) I pionieri della biologia molecolare, scoperta la struttura degli acidi nucleici, pensarono di associare al DNA una sequenza di simboli,

Dettagli

PROBABILITA MISURARE L INCERTEZZA Lanciamo due dadi, facciamo la somma dei punteggi ottenuti. Su quale numero mi conviene scommettere?

PROBABILITA MISURARE L INCERTEZZA Lanciamo due dadi, facciamo la somma dei punteggi ottenuti. Su quale numero mi conviene scommettere? Lanciamo due dadi, facciamo la somma dei punteggi ottenuti. Su quale numero mi conviene scommettere? Abbiamo visto nella lezione precedente che lo spazio degli eventi più idoneo a rappresentare l esperimento

Dettagli

GENOMA. c varia da pochi kb nei virus a milioni di kb in piante e animali

GENOMA. c varia da pochi kb nei virus a milioni di kb in piante e animali GENOMA Insieme del materiale genetico presente in una cellula (DNA nucleare, plastidiale e mitocondriale) Contiene tutte le informazioni necessarie per consentire la vita alla cellula e all individuo Nei

Dettagli

Probabilità discreta

Probabilità discreta Probabilità discreta Daniele A. Gewurz 1 Che probabilità c è che succeda...? Una delle applicazioni della combinatoria è nel calcolo di probabilità discrete. Quando abbiamo a che fare con un fenomeno che

Dettagli

Corrispondenze e funzioni

Corrispondenze e funzioni Corrispondenze e funzioni L attività fondamentale della mente umana consiste nello stabilire corrispondenze e relazioni tra oggetti; è anche per questo motivo che il concetto di corrispondenza è uno dei

Dettagli

LA GENETICA: DNA e RNA LA GENETICA. DNA e RNA. Prof. Daniele Verri

LA GENETICA: DNA e RNA LA GENETICA. DNA e RNA. Prof. Daniele Verri LA GENETICA DNA e RNA Prof. Daniele Verri L'acido desossiribonucleico o deossiribonucleico (DNA) è un acido nucleico che contiene le informazioni necessarie per la formazione di RNA e proteine. LA GENETICA:

Dettagli

Appunti sulla Macchina di Turing. Macchina di Turing

Appunti sulla Macchina di Turing. Macchina di Turing Macchina di Turing Una macchina di Turing è costituita dai seguenti elementi (vedi fig. 1): a) una unità di memoria, detta memoria esterna, consistente in un nastro illimitato in entrambi i sensi e suddiviso

Dettagli

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it Excel A cura di Luigi Labonia e-mail: luigi.lab@libero.it Introduzione Un foglio elettronico è un applicazione comunemente usata per bilanci, previsioni ed altri compiti tipici del campo amministrativo

Dettagli

Correttezza. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 10. A. Miola Novembre 2007

Correttezza. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 10. A. Miola Novembre 2007 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 10 Correttezza A. Miola Novembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Correttezza 1 Contenuti Introduzione alla correttezza

Dettagli

Database. Si ringrazia Marco Bertini per le slides

Database. Si ringrazia Marco Bertini per le slides Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida

Dettagli

LE FUNZIONI A DUE VARIABILI

LE FUNZIONI A DUE VARIABILI Capitolo I LE FUNZIONI A DUE VARIABILI In questo primo capitolo introduciamo alcune definizioni di base delle funzioni reali a due variabili reali. Nel seguito R denoterà l insieme dei numeri reali mentre

Dettagli

Raccomandazione del Parlamento europeo 18/12/2006 CLASSE PRIMA COMPETENZE ABILITÀ CONOSCENZE. Operare con i numeri

Raccomandazione del Parlamento europeo 18/12/2006 CLASSE PRIMA COMPETENZE ABILITÀ CONOSCENZE. Operare con i numeri COMPETENZA CHIAVE MATEMATICA Fonte di legittimazione Raccomandazione del Parlamento europeo 18/12/2006 CLASSE PRIMA COMPETENZE ABILITÀ CONOSCENZE L alunno utilizza il calcolo scritto e mentale con i numeri

Dettagli

Guida Compilazione Piani di Studio on-line

Guida Compilazione Piani di Studio on-line Guida Compilazione Piani di Studio on-line SIA (Sistemi Informativi d Ateneo) Visualizzazione e presentazione piani di studio ordinamento 509 e 270 Università della Calabria (Unità organizzativa complessa-

Dettagli

La Genetica. Le leggi di Mendel

La Genetica. Le leggi di Mendel La Genetica Le leggi di Mendel La Genetica Il monaco Gregor Mendel (1822-1884) fu il primo a studiare in modo rigoroso il fenomeno della trasmissione dei caratteri ereditari. Per questo, pur non avendo

Dettagli

Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi.

Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi. E. Calabrese: Fondamenti di Informatica Problemi-1 Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi. L'informatica

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T3 1-Sottoprogrammi 1 Prerequisiti Tecnica top-down Programmazione elementare 2 1 Introduzione Lo scopo di questa Unità è utilizzare la metodologia di progettazione top-down

Dettagli

IL CICLO DI VITA DEL PROGETTO. Elementi essenziali di progetto. Fasi e tappe Gli Approcci

IL CICLO DI VITA DEL PROGETTO. Elementi essenziali di progetto. Fasi e tappe Gli Approcci UNIVERSITA MILANO BICOCCA Corso di laurea di primo livello in servizio sociale anno accademico 2009-2010 Progettare il sociale Prof. Dario A. Colombo IL CICLO DI VITA DEL PROGETTO Elementi essenziali di

Dettagli

Elementi di Psicometria con Laboratorio di SPSS 1

Elementi di Psicometria con Laboratorio di SPSS 1 Elementi di Psicometria con Laboratorio di SPSS 1 29-Analisi della potenza statistica vers. 1.0 (12 dicembre 2014) Germano Rossi 1 germano.rossi@unimib.it 1 Dipartimento di Psicologia, Università di Milano-Bicocca

Dettagli

Indice. 1 Il monitoraggio del progetto formativo --------------------------------------------------------------- 3. 2 di 6

Indice. 1 Il monitoraggio del progetto formativo --------------------------------------------------------------- 3. 2 di 6 LEZIONE MONITORARE UN PROGETTO FORMATIVO. UNA TABELLA PROF. NICOLA PAPARELLA Indice 1 Il monitoraggio del progetto formativo --------------------------------------------------------------- 3 2 di 6 1 Il

Dettagli

Soluzione dell esercizio del 2 Febbraio 2004

Soluzione dell esercizio del 2 Febbraio 2004 Soluzione dell esercizio del 2 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. E evidenziato un sotto caso di uso. 2. Modello concettuale Osserviamo

Dettagli

Strutturazione logica dei dati: i file

Strutturazione logica dei dati: i file Strutturazione logica dei dati: i file Informazioni più complesse possono essere composte a partire da informazioni elementari Esempio di una banca: supponiamo di voler mantenere all'interno di un computer

Dettagli

Capitolo II. La forma del valore. 7. La duplice forma in cui si presenta la merce: naturale e di valore.

Capitolo II. La forma del valore. 7. La duplice forma in cui si presenta la merce: naturale e di valore. Capitolo II La forma del valore 7. La duplice forma in cui si presenta la merce: naturale e di valore. I beni nascono come valori d uso: nel loro divenire merci acquisiscono anche un valore (di scambio).

Dettagli

Organizzazione degli archivi

Organizzazione degli archivi COSA E UN DATA-BASE (DB)? è l insieme di dati relativo ad un sistema informativo COSA CARATTERIZZA UN DB? la struttura dei dati le relazioni fra i dati I REQUISITI DI UN DB SONO: la ridondanza minima i

Dettagli

TRAGUARDI PER LO SVILUPPO DELLE COMPETENZE AL TERMINE DELLA SCUOLA PRIMARIA

TRAGUARDI PER LO SVILUPPO DELLE COMPETENZE AL TERMINE DELLA SCUOLA PRIMARIA SCUOLA PRIMARIA DI CORTE FRANCA MATEMATICA CLASSE QUINTA TRAGUARDI PER LO SVILUPPO DELLE COMPETENZE AL TERMINE DELLA SCUOLA PRIMARIA L ALUNNO SVILUPPA UN ATTEGGIAMENTO POSITIVO RISPETTO ALLA MATEMATICA,

Dettagli

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo. DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti

Dettagli

Statistica e biometria. D. Bertacchi. Variabili aleatorie. V.a. discrete e continue. La densità di una v.a. discreta. Esempi.

Statistica e biometria. D. Bertacchi. Variabili aleatorie. V.a. discrete e continue. La densità di una v.a. discreta. Esempi. Iniziamo con definizione (capiremo fra poco la sua utilità): DEFINIZIONE DI VARIABILE ALEATORIA Una variabile aleatoria (in breve v.a.) X è funzione che ha come dominio Ω e come codominio R. In formule:

Dettagli

UTILIZZATORI A VALLE: COME RENDERE NOTI GLI USI AI FORNITORI

UTILIZZATORI A VALLE: COME RENDERE NOTI GLI USI AI FORNITORI UTILIZZATORI A VALLE: COME RENDERE NOTI GLI USI AI FORNITORI Un utilizzatore a valle di sostanze chimiche dovrebbe informare i propri fornitori riguardo al suo utilizzo delle sostanze (come tali o all

Dettagli

come nasce una ricerca

come nasce una ricerca PSICOLOGIA SOCIALE lez. 2 RICERCA SCIENTIFICA O SENSO COMUNE? Paola Magnano paola.magnano@unikore.it ricevimento: martedì ore 10-11 c/o Studio 16, piano -1 PSICOLOGIA SOCIALE COME SCIENZA EMPIRICA le sue

Dettagli

Mappatura genetica. alberi genealogici (pedigree) stima del rischio genetico (counseling) analisi di linkage (lod score) Paolo Edomi - Genetica

Mappatura genetica. alberi genealogici (pedigree) stima del rischio genetico (counseling) analisi di linkage (lod score) Paolo Edomi - Genetica Mappatura genetica alberi genealogici (pedigree) stima del rischio genetico (counseling) analisi di linkage (lod score) Alberi genealogici Simbologia negli alberi genealogici Eredità autosomica recessiva

Dettagli

Lezioni di Matematica 1 - I modulo

Lezioni di Matematica 1 - I modulo Lezioni di Matematica 1 - I modulo Luciano Battaia 16 ottobre 2008 Luciano Battaia - http://www.batmath.it Matematica 1 - I modulo. Lezione del 16/10/2008 1 / 13 L introduzione dei numeri reali si può

Dettagli

CAPITOLO 8 LA VERIFICA D IPOTESI. I FONDAMENTI

CAPITOLO 8 LA VERIFICA D IPOTESI. I FONDAMENTI VERO FALSO CAPITOLO 8 LA VERIFICA D IPOTESI. I FONDAMENTI 1. V F Un ipotesi statistica è un assunzione sulle caratteristiche di una o più variabili in una o più popolazioni 2. V F L ipotesi nulla unita

Dettagli

11. Analisi statistica degli eventi idrologici estremi

11. Analisi statistica degli eventi idrologici estremi . Analisi statistica degli eventi idrologici estremi I processi idrologici evolvono, nello spazio e nel tempo, secondo modalità che sono in parte predicibili (deterministiche) ed in parte casuali (stocastiche

Dettagli

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci Corso di Laurea Magistrale in Ingegneria per l Ambiente e il Territorio A.A. 2014-2015 Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci Strutture di dati: DB e DBMS DATO E INFORMAZIONE Dato: insieme

Dettagli

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

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati Informatica 3 Informatica 3 LEZIONE 10: Introduzione agli algoritmi e alle strutture dati Modulo 1: Perchè studiare algoritmi e strutture dati Modulo 2: Definizioni di base Lezione 10 - Modulo 1 Perchè

Dettagli

Università del Piemonte Orientale. Corsi di Laurea Triennale di area tecnica. Corso di Statistica Medica

Università del Piemonte Orientale. Corsi di Laurea Triennale di area tecnica. Corso di Statistica Medica Università del Piemonte Orientale Corsi di Laurea Triennale di area tecnica Corso di Statistica Medica Campionamento e distribuzione campionaria della media Corsi di laurea triennale di area tecnica -

Dettagli

Principi di mappatura genetica. Paolo Edomi - Genetica

Principi di mappatura genetica. Paolo Edomi - Genetica Principi di mappatura genetica Mappa genetica o di associazione cromosoma = mappa lineare posizione dei geni = punti sulla mappa loci genici frequenza di ricombinazione A B A B distanza dei geni > distanza

Dettagli

Esponenziali elogaritmi

Esponenziali elogaritmi Esponenziali elogaritmi Potenze ad esponente reale Ricordiamo che per un qualsiasi numero razionale m n prendere n>0) si pone a m n = n a m (in cui si può sempre a patto che a sia un numero reale positivo.

Dettagli

Le funzioni continue. A. Pisani Liceo Classico Dante Alighieri A.S. 2002-03. A. Pisani, appunti di Matematica 1

Le funzioni continue. A. Pisani Liceo Classico Dante Alighieri A.S. 2002-03. A. Pisani, appunti di Matematica 1 Le funzioni continue A. Pisani Liceo Classico Dante Alighieri A.S. -3 A. Pisani, appunti di Matematica 1 Nota bene Questi appunti sono da intendere come guida allo studio e come riassunto di quanto illustrato

Dettagli

SERVIZIO NAZIONALE DI VALUTAZIONE 2010 11

SERVIZIO NAZIONALE DI VALUTAZIONE 2010 11 SERVIZIO NAZIONALE DI VALUTAZIONE 2010 11 Le rilevazioni degli apprendimenti A.S. 2010 11 Gli esiti del Servizio nazionale di valutazione 2011 e della Prova nazionale 2011 ABSTRACT Le rilevazioni degli

Dettagli

Test statistici di verifica di ipotesi

Test statistici di verifica di ipotesi Test e verifica di ipotesi Test e verifica di ipotesi Il test delle ipotesi consente di verificare se, e quanto, una determinata ipotesi (di carattere biologico, medico, economico,...) è supportata dall

Dettagli

Amplificatori Audio di Potenza

Amplificatori Audio di Potenza Amplificatori Audio di Potenza Un amplificatore, semplificando al massimo, può essere visto come un oggetto in grado di aumentare il livello di un segnale. Ha quindi, generalmente, due porte: un ingresso

Dettagli

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile Problemi connessi all utilizzo di un numero di bit limitato Abbiamo visto quali sono i vantaggi dell utilizzo della rappresentazione in complemento alla base: corrispondenza biunivoca fra rappresentazione

Dettagli

Il Problem-Based Learning dalla pratica alla teoria

Il Problem-Based Learning dalla pratica alla teoria Il Problem-Based Learning dalla pratica alla teoria Il Problem-based learning (apprendimento basato su un problema) è un metodo di insegnamento in cui un problema costituisce il punto di inizio del processo

Dettagli

L età dei vincitori La presenza femminile. L età dei vincitori La presenza femminile. Confronto tra il concorso ordinario ed il concorso riservato

L età dei vincitori La presenza femminile. L età dei vincitori La presenza femminile. Confronto tra il concorso ordinario ed il concorso riservato Premessa Corso-concorso ordinario L età dei vincitori La presenza femminile Corso-concorso riservato L età dei vincitori La presenza femminile Confronto tra il concorso ordinario ed il concorso riservato

Dettagli

Calcolo del Valore Attuale Netto (VAN)

Calcolo del Valore Attuale Netto (VAN) Calcolo del Valore Attuale Netto (VAN) Il calcolo del valore attuale netto (VAN) serve per determinare la redditività di un investimento. Si tratta di utilizzare un procedimento che può consentirci di

Dettagli

Modelli di Programmazione Lineare e Programmazione Lineare Intera

Modelli di Programmazione Lineare e Programmazione Lineare Intera Modelli di Programmazione Lineare e Programmazione Lineare Intera 1 Azienda Dolciaria Un azienda di cioccolatini deve pianificare la produzione per i prossimi m mesi. In ogni mese l azienda ha a disposizione

Dettagli

Introduzione agli Algoritmi Genetici Prof. Beatrice Lazzerini

Introduzione agli Algoritmi Genetici Prof. Beatrice Lazzerini Introduzione agli Algoritmi Genetici Prof. Beatrice Lazzerini Dipartimento di Ingegneria della Informazione Via Diotisalvi, 2 56122 PISA ALGORITMI GENETICI (GA) Sono usati per risolvere problemi di ricerca

Dettagli

PROCESSO DI INDICIZZAZIONE SEMANTICA

PROCESSO DI INDICIZZAZIONE SEMANTICA PROCESSO DI INDICIZZAZIONE SEMANTICA INDIVIDUAZIONE DEI TEMI/CONCETTI SELEZIONE DEI TEMI/CONCETTI ESPRESSIONE DEI CONCETTI NEL LINGUAGGIO DI INDICIZZAZIONE TIPI DI INDICIZZAZIONE SOMMARIZZAZIONE INDICIZZAZIONE

Dettagli

Mete e coerenze formative. Dalla scuola dell infanzia al biennio della scuola secondaria di II grado

Mete e coerenze formative. Dalla scuola dell infanzia al biennio della scuola secondaria di II grado Mete e coerenze formative Dalla scuola dell infanzia al biennio della scuola secondaria di II grado Area disciplinare: Area Matematica Finalità Educativa Acquisire gli alfabeti di base della cultura Disciplina

Dettagli

Laboratorio di Pedagogia Sperimentale. Indice

Laboratorio di Pedagogia Sperimentale. Indice INSEGNAMENTO DI LABORATORIO DI PEDAGOGIA SPERIMENTALE LEZIONE III INTRODUZIONE ALLA RICERCA SPERIMENTALE (PARTE III) PROF. VINCENZO BONAZZA Indice 1 L ipotesi -----------------------------------------------------------

Dettagli

Capitolo 4 Probabilità

Capitolo 4 Probabilità Levine, Krehbiel, Berenson Statistica II ed. 2006 Apogeo Capitolo 4 Probabilità Insegnamento: Statistica Corso di Laurea Triennale in Economia Facoltà di Economia, Università di Ferrara Docenti: Dott.

Dettagli

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due:

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due: Il modello relazionale I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due: 1. forniscono sistemi semplici ed efficienti per rappresentare

Dettagli

L intelligenza numerica

L intelligenza numerica L intelligenza numerica Consiste nel pensare il mondo in termini di quantità. Ha una forte base biologica, sia gli animali che i bambini molto piccoli sanno distinguere poco e molto. È potentissima e può

Dettagli

2. Leggi finanziarie di capitalizzazione

2. Leggi finanziarie di capitalizzazione 2. Leggi finanziarie di capitalizzazione Si chiama legge finanziaria di capitalizzazione una funzione atta a definire il montante M(t accumulato al tempo generico t da un capitale C: M(t = F(C, t C t M

Dettagli

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da Data una funzione reale f di variabile reale x, definita su un sottoinsieme proprio D f di R (con questo voglio dire che il dominio di f è un sottoinsieme di R che non coincide con tutto R), ci si chiede

Dettagli

Interesse, sconto, ratei e risconti

Interesse, sconto, ratei e risconti TXT HTM PDF pdf P1 P2 P3 P4 293 Interesse, sconto, ratei e risconti Capitolo 129 129.1 Interesse semplice....................................................... 293 129.1.1 Esercizio per il calcolo dell

Dettagli

LE SUCCESSIONI 1. COS E UNA SUCCESSIONE

LE SUCCESSIONI 1. COS E UNA SUCCESSIONE LE SUCCESSIONI 1. COS E UNA SUCCESSIONE La sequenza costituisce un esempio di SUCCESSIONE. Ecco un altro esempio di successione: Una successione è dunque una sequenza infinita di numeri reali (ma potrebbe

Dettagli

Mon Ami 3000 Varianti articolo Gestione di varianti articoli

Mon Ami 3000 Varianti articolo Gestione di varianti articoli Prerequisiti Mon Ami 3000 Varianti articolo Gestione di varianti articoli L opzione Varianti articolo è disponibile per le versioni Azienda Light e Azienda Pro e include tre funzionalità distinte: 1. Gestione

Dettagli