UNIVERSITA' DEGLI STUDI DI PERUGIA FACOLTA' DI SCIENZE MATEMATICHE, FISICHE E NATURALI CORSO DI LAUREA IN INFORMATICA APPLICAZIONE DELL'ANSWER SET PROGRAMMING NELLA SISTEMATICA FILOGENETICA RELATORE: ANDREA FORMISANO TESI DI LAUREA DI: Stefania Cossa Matr. Nr. 175516 ANNO ACCADEMICO 2009-2010
Indice Indice Introduzione 1 1.1. 1.2. 1.3. 6 10 Storia della tassonomia 13 La tassonomia Linneana........................... 13 La teoria dell'evoluzione di Darwin.................. 16 La cladistica di Hennig............................ 17 2 La ricostruzione filogenetica 19 2.1. Albero filogenetico............................... 19 2.2. Ricostruzione filogenetica......................... 20 3 3.1. 3.2. 3.3. 3.4. 3.5. 4 4.1. 4.2. 4.3. 4.4. 4.5. 4.6. Metodi di ricostruzione filogenetica Metodi basati sulle distanze........................ Metodi basati sui caratteri......................... Trovare l'albero ottimale nei sistemi basati sui caratteri.. Tipi di ricerca utilizzati nei sistemi basati sui caratteri... Stimare il grado di fiducia di una ricostruzione filogenetica..................................... 26 26 29 31 32 L'Answer Set Programming Richiami di logica del primo ordine................. Ordini, reticoli e punti fissi........................ Sintassi Answer Set Programming................... Semantica Answer Set Programming................. Tecniche di programmazione ASP................... ASP-solver: Smodels............................. 35 35 37 38 39 43 46 33 6
5 Sistematica filogenetica con ASP 5.1. Richiami sui grafi orientati........................ 5.2. Ricostruzione filogenetica......................... 5.2.1. Descrizione del problema................. 5.2.2. Descrizione del problema con un programma logico................................. 5.2.3. Euristiche utili.......................... 5.3. Ricostruzione di una rete filogenetica................ 5.3.1. Descrizione del problema................. 5.3.2. Soluzione computazionale................. 51 51 52 53 54 58 59 60 64 6 Analisi/comparazione filogenesi ottenute 70 6.1. Calcolare filogenesi simili/diverse................... 70 6.1.1. Complessità risultati...................... 72 6.1.2. Metodi offline........................... 74 6.1.3. Metodi online........................... 74 6.1.4. Misure di distanza per filogenesi simili o diverse................................ 76 6.1.5. Calcolo di filogenesi simili/diverse.......... 78 6.1.6. Risultati sperimentali..................... 81 6.2. Calcolare filogenesi pesate......................... 83 6.2.1. Calcolare soluzioni pesate................. 83 6.2.2. Problema della ricostruzione filogenetica pesata.................................. 87 6.2.3. Calcolo di filogenesi pesate per le lingue indo-europee............................ 87 6.2.4. Calcolo di soluzioni pesate simili/diverse...... 90 6.2.5. Risultati sperimentali..................... 91 7 Esempi di applicazione del Phylo-ASP 94 7.1. Dialetti cinesi................................... 94 7.2. Alcataenia..................................... 105 7
8 Stesura ed esecuzione dell'algoritmo ASP di ricostruzione filogenetica 109 8.1. Stesura del programma ASP....................... 109 8.2. Esempio di esecuzione........................... 111 Conclusioni 117 Riferimenti 119 8
INTRODUZIONE La cladistica (o sistematica filogenetica), sviluppata da Willi Hennig, è lo studio delle relazioni evolutive tra le specie che si basa sui loro tratti comuni. Rappresentate in un diagramma, queste relazioni formano un albero in cui le foglie rappresentano le specie, i nodi interni rappresentano i loro progenitori e gli archi rappresentano le relazioni tra loro. Questo albero viene chiamato albero filogenetico (o filogenesi). Si può considerare la ricostruzione filogenetica come il primo passo per la ricostruzione della storia evolutiva di un insieme di taxa (o unità tassonomiche). Successivamente, infatti, viene ricostruita dalla filogenesi ottenuta una rete filogenetica (temporale) che spiega i contatti (o prestiti) tra le unità tassonomiche. In questo lavoro di tesi, studieremo sia la ricostruzione filogenetica che la ricostruzione delle reti filogenetiche utilizzando l'answer Set Programming (ASP), secondo l'approccio utilizzato da Esra Erdem. Tale approccio basato su questo tipo di programmazione dichiarativa viene chiamato PHYLO-ASP. Per una maggiore comprensione del lavoro svolto dalla Erdem e dai suoi colleghi, mostreremo l'applicabilità e l'efficienza di questo metodo su due dei campi da loro affrontati: l'analisi storica dei linguaggi e l'analisi storica del sistema parassita-ospite. A questo punto viene spontaneo domandarsi: ma perché e per chi, nella pratica, è importante effettuare questi studi? Storie di singole lingue fornisco, ad esempio, informazioni da cui si possono dedurre principi di cambiamento della lingua. Queste informazioni non sono interessanti soltanto per i linguisti storici, ma anche per gli archeologi, i genetisti umani e i fisici antropologi. Per esempio, un'accurata ricostruzione della storia evolutiva di alcune lingue può aiutare a rispondere a domande circa le migrazioni umane, il tempo in cui certi manufatti sono stati realizzati e quando i popoli antichi hanno iniziato ad usare i cavalli nell'agricoltura. Per quanto riguarda i parassiti, invece, sappiamo che essi si presentano in ogni parte del mondo, causando malnutrizione, malattie e, talvolta, anche la morte di chi li ospita. La loro analisi storica fornisce informazioni sulla loro provenienza e sul periodo in cui hanno iniziato ad infettare i loro ospiti. Le filogenie dei parassiti insieme alle filogenie dei loro ospiti e la loro distribuzione geografica, possono essere utilizzate per comprendere le mutazioni delle abitudini alimentari della specie ospite, la struttura e la storia degli ecosistemi ed identificare la storia di malattie umane ed animali. Tali informazioni consentono di effettuare previsioni circa l'età e la durata di specifici gruppi di animali di una particolare regione o di un particolare periodo e di identificare regioni di evoluzione hot spot, utili per valutare l'importanza di habitat specifici e regioni geografiche, e la diversità di aree di criticità genealogica ed ecologica. In questo modo si identificano i membri più vulnerabili della comunità da cui è possibile fare previsioni più attendibili circa l'impatto delle perturbazioni (naturali o causate dall'uomo) sulla 10
struttura degli ecosistemi e la loro stabilità. Una volta capita l'importanza che queste informazioni possano fornire, si arriva facilmente alla conclusione che, utilizzando un metodo computazionale come il PHYLO-ASP, si può ottenere una vera e propria semplificazione dei metodi tradizionalmente utilizzati dagli esperti, che si ritrovano a non dover più calcolare tutte le filogenesi possibili manualmente, risparmiando così una buona parte di tempo ed energie. 11