2 Supertræer Træer Supertræer Fordele ved supertræer Kritik af supertræer... 11

Størrelse: px
Starte visningen fra side:

Download "2 Supertræer Træer Supertræer Fordele ved supertræer Kritik af supertræer... 11"

Transkript

1 Indhold 1 Indledning 3 2 Supertræer Træer Supertræer Fordele ved supertræer Kritik af supertræer Supertræmetoder Metoder Streng-konsensus-supertræ Metode Analyse og implementering Implementering Eksperimenter Matrix repræsentation med parsimony Metode Kvartetsupertræer Metode Supertræsoftware Datasæt Programmer Quartet Suite Clann r8s Supertree Server (MinCutSupertree) Supertree Server (MRP og MinCutSupertree) Resultater Sammenligning af supertræer Kvalitet af supertræer

2 2 INDHOLD 5 Konklusion 59 A Skærmbilleder af webside 61 B Konstruerede supertræer 65 C Kildekode 71 C.1 supertree.py C.2 node.py C.3 newick C.4 set.py C.5 permutation.py Litteraturliste 87

3 Kapitel 1 Indledning Træer også kaldet fylogenier har længe været brugt inden for biologi til at repræsentere relationerne mellem forskellige arter. Den forholdsvis nye mulighed for at sammenligne arter ud fra deres DNA har ført til opbygning af mange partielle fylogenier for forskellige taksonomiske grupper ved anvendelse af DNA som karakterdata eksempelvis fylogenien over dele af søfuglegruppen Procellariiformes vist i figur 1.1. Antallet af fuldstændige fylogenier (dvs. fylogenier for alle arter i en gruppe) baseret på karakterdata er imidlertid begrænset, eftersom det langt fra altid er muligt at indhente karakterdata, der dækker alle arter i en given gruppe (Sanderson and Puffinus_mauretanicus Puffinus_yelkouan Puffinus_gavia Puffinus_huttoni Puffinus_puffinus Puffinus_lherminieri Puffinus_auricularis Puffinus_assimilis Puffinus_nativitatis Puffinus_bulleri Puffinus_pacificus Puffinus_carneipes Puffinus_creatopus Puffinus_tenuirostris Puffinus_griseus Puffinus_gravis Fulmarus_glacialis Figur 1.1: Fylogeni over søfugle (Kennedy and Page, 2002). Driskell, 2003). I dette speciale ses der på en forholdsvis ny tilgang til opbygning af fylogenier, der går ud på at kombinere overlappende fylogenier til ét samlet træ et såkaldt supertræ. Strategien, der betegnes supertrækonstruktion, har vundet poularitet, fordi et supertræ kan opbygges fra fylogenier baseret på forskellige typer karakterdata som fx molekylære og morfologiske data. Denne kombination af ellers inkompatible data betyder, at supertræer i mange tilfælde kan opnå en bredere taksonomisk dækning end fylogenier opbygget direkte fra karakterdata. Fylogenien vist i figur 1.2 er et eksempel på et supertræ sammensat af syv mindre fylogenier over søfugle. Resultatet er en fuldstændig fylogeni, der inkluderer alle 121 eksisterende arter i gruppen. Siden supertræbegrebet blev introduceret af Allan D. Gordon i 1986 (Gordon, 1986), er der udviklet mange metoder til supertrækonstruktion. Metoderne gør brug af meget forskelligartede strategier, og alle er derfor heller

4 4 Indledning Fulmarus_glacialis Puffinus_gravis Puffinus_griseus Puffinus_tenuirostris Puffinus_creatopus Puffinus_carneipes Puffinus_pacificus Puffinus_bulleri Puffinus_nativitatis Puffinus_assimilis Puffinus_auricularis Puffinus_lherminieri Puffinus_puffinus Puffinus_huttoni Puffinus_gavia Puffinus_yelkouan Puffinus_mauretanicus Oceanodroma_leucorhoa Diomedea_exulans Pelecanoides_urinatrix Pterodroma_nigripennis Pterodroma_baraui Pagodroma_nivea Macronectes_giganteus Fulmarus_glacialis Procellaria_cinerea Bulweria_bulwerii Puffinus_pacificus Calonectris_diomedea Pseudobulweria_rostrata Pseudobulweria_aterrima Oceanodroma_castro Hydrobates_pelagicus Thalassarche_chrysostoma Thalassarche_bulleri Phoebetria_palpebrata Phoebetria_fusca Phoebastria_immutabilis Phoebastria_albatrus Diomedea_epomophora Diomedea_amsterdamensis Macronectes_giganteus Fulmarus_glacialoides Fulmarus_glacialis Bulweria_bulwerii Procellaria_cinerea Calonectris_diomedea Puffinus_assimilis Puffinus_puffinus Puffinus_yelkouan Puffinus_mauretanicus Pterodroma_axillaris Pterodroma_nigripennis Pterodroma_cervicalis Pterodroma_hypoleuca Pterodroma_pycrofti Pterodroma_longirostris Pterodroma_brevipes Pterodroma_leucoptera Pterodroma_defilippiana Pterodroma_cookii Pterodroma_alba Pterodroma_heraldica Pterodroma_sandwichensis Pterodroma_phaeopygia Pterodroma_neglecta Pterodroma_externa Pterodroma_baraui Pterodroma_arminjoniana Pterodroma_inexpectata Pterodroma_ultima Pterodroma_solandri Pterodroma_macroptera Pterodroma_magentae Pterodroma_mollis Pterodroma_madeira Pterodroma_feae Pterodroma_lessonii Pterodroma_incerta Pterodroma_hasitata Pterodroma_cahow Pygoscelis_papua Pygoscelis_antarctica Aptenodytes_patagonicus Eudyptes_chrysolophus Eudyptes_chrysocome Oceanodroma_melania Oceanodroma_tethys Halocyptena_microsoma Oceanodroma_tristrami Oceanodroma_leucorhoa Oceanodroma_furcata Hydrobates_pelagicus Oceanites_oceanicus Pelagodroma_marina Garrodia_nereis Fregetta_tropica Fregetta_grallaria Phoebetria_palpebrata Phoebetria_fusca Thalassarche_chlororhynchos Thalassarche_bassi Thalassarche_chrysostoma Thalassarche_melanophris Thalassarche_impavida Thalassarche_bulleri Thalassarche_cauta Thalassarche_salvini Thalassarche_eremita Phoebastria_irrorata Phoebastria_albatrus Phoebastria_nigripes Phoebastria_immutabilis Diomedea_sanfordi Diomedea_epomophora Diomedea_dabbenena Diomedea_gibsoni Diomedea_antipodensis Diomedea_exulans Diomedea_amsterdamensis Pelecanoides_garnotii Pelecanoides_urinatrix Pelecanoides_magellani Pelecanoides_georgicus Pterodroma_nigripennis Pterodroma_hypoleuca Pterodroma_longirostris Pterodroma_cookii Pterodroma_neglecta Pterodroma_inexpectata Pterodroma_phaeopygia Pterodroma_externa Pterodroma_mollis Pterodroma_hasitata Pterodroma_feae Pterodroma_cahow Pterodroma_magentae Pterodroma_incerta Pterodroma_macroptera Pterodroma_lessonii Pagodroma_nivea Thalassoica_antarctica Daption_capense Macronectes_halli Macronectes_giganteus Fulmarus_glacialoides Fulmarus_glacialis Bulweria_bulwerii Procellaria_westlandica Procellaria_parkinsoni Procellaria_aequinoctialis Halobaena_caerulea Pachyptila_turtur Pachyptila_vittata Pachyptila_salvini Pachyptila_desolata Lugensa_brevirostris Puffinus_pacificus Puffinus_bulleri Puffinus_gravis Puffinus_griseus Puffinus_creatopus Puffinus_carneipes Calonectris_leucomelas Calonectris_diomedea Puffinus_nativitatis Puffinus_huttoni Puffinus_opisthomelas Puffinus_puffinus Puffinus_lherminieri Puffinus_assimilis Pygoscelis_adeliae Eudyptula_minor Megadyptes_antipodes Eudyptes_pachyrhynchus Pelagodroma_marina Thalassarche_bulleri Diomedea_epomophora Daption_capense Pelecanoides_georgicus Pachyptila_vittata Pachyptila_turtur Pterodroma_inexpectata Pterodroma_cookii Procellaria_westlandica Puffinus_huttoni Puffinus_griseus Aptenodytes_patagonicus Pygoscelis_papua Megadyptes_antipodes Spheniscus_demersus Eudyptula_minor Gavia_stellata Gavia_immer Oceanites_oceanicus Oceanodroma_leucorhoa Oceanodroma_hornbyi Oceanodroma_furcata Thalassarche_bulleri Thalassarche_cauta Thalassarche_chrysostoma Phoebastria_nigripes Phoebastria_irrorata Phoebastria_immutabilis Diomedea_epomophora Pelecanoides_urinatrix Pelecanoides_georgicus Macronectes_giganteus Pachyptila_vittata Thalassoica_antarctica Puffinus_griseus Calonectris_diomedea Lugensa_brevirostris Pterodroma_hypoleuca Pterodroma_hasitata Pterodroma_cookii Pterodroma_arminjoniana outgroup_to_procellariiformes_mrp Spheniscus_demersus Pygoscelis_papua Pygoscelis_antarctica Pygoscelis_adeliae Megadyptes_antipodes Eudyptula_minor Eudyptes_pachyrhynchus Eudyptes_chrysolophus Eudyptes_chrysocome Aptenodytes_patagonicus Gavia_stellata Gavia_immer Fregetta_grallaria Fregetta_tropica Garrodia_nereis Halocyptena_microsoma Hydrobates_pelagicus Oceanites_oceanicus Oceanodroma_castro Oceanodroma_furcata Oceanodroma_hornbyi Oceanodroma_leucorhoa Oceanodroma_melania Oceanodroma_tethys Oceanodroma_tristrami Pelagodroma_marina Phoebetria_palpebrata Phoebetria_fusca Thalassarche_chlororhynchos Thalassarche_bassi Thalassarche_chrysostoma Thalassarche_melanophris Thalassarche_impavida Thalassarche_bulleri Thalassarche_cauta Thalassarche_salvini Thalassarche_eremita Phoebastria_irrorata Phoebastria_albatrus Phoebastria_nigripes Phoebastria_immutabilis Diomedea_sanfordi Diomedea_epomophora Diomedea_dabbenena Diomedea_gibsoni Diomedea_antipodensis Diomedea_exulans Diomedea_amsterdamensis Pelecanoides_garnotii Pelecanoides_urinatrix Pelecanoides_magellani Pelecanoides_georgicus Pterodroma_axillaris Pterodroma_nigripennis Pterodroma_cervicalis Pterodroma_hypoleuca Pterodroma_pycrofti Pterodroma_longirostris Pterodroma_brevipes Pterodroma_leucoptera Pterodroma_defilippiana Pterodroma_cookii Pterodroma_inexpectata Pterodroma_alba Pterodroma_heraldica Pterodroma_sandwichensis Pterodroma_phaeopygia Pterodroma_neglecta Pterodroma_externa Pterodroma_baraui Pterodroma_arminjoniana Pterodroma_ultima Pterodroma_solandri Pterodroma_incerta Pterodroma_lessonii Pterodroma_macroptera Pterodroma_magentae Pterodroma_mollis Pterodroma_hasitata Pterodroma_cahow Pterodroma_madeira Pterodroma_feae Pagodroma_nivea Thalassoica_antarctica Daption_capense Macronectes_halli Macronectes_giganteus Fulmarus_glacialoides Fulmarus_glacialis Bulweria_bulwerii Lugensa_brevirostris Procellaria_aequinoctialis Procellaria_cinerea Procellaria_parkinsoni Procellaria_westlandica Pseudobulweria_aterrima Pseudobulweria_rostrata Halobaena_caerulea Pachyptila_turtur Pachyptila_vittata Pachyptila_salvini Pachyptila_desolata Puffinus_gravis Puffinus_griseus Puffinus_tenuirostris Puffinus_creatopus Puffinus_carneipes Puffinus_pacificus Puffinus_bulleri Calonectris_leucomelas Calonectris_diomedea Puffinus_nativitatis Puffinus_assimilis Puffinus_auricularis Puffinus_lherminieri Puffinus_mauretanicus Puffinus_opisthomelas Puffinus_puffinus Puffinus_yelkouan Puffinus_huttoni Puffinus_gavia Figur 1.2: Supertræ (nederst) over søfugle. Supertræet er sammensat af de syv mindre fylogenier vist øverst i figuren (Kennedy and Page, 2002).

5 ikke lige anvendelige til konstruktion af supertræer fra rigtige fylogenier. Formålet i dette speciale er at give et overblik over det forholdsvis brede udvalg af supertræmetoder ved at fokusere på metoder, der repræsenterer nogle af de mest generelle strategier anvendt til supertrækonstruktion. Begyndende gennemgås Gordons (1986) streng-konsensus-supertræ-metode. Metoden var den første supertræmetode, som i sin tid blev introduceret, og som er i stand til at konstruere et supertræ i O(n 3 ) tid, hvor n er det samlede antal arter i de anvendte fylogenier. Det vises, at tidsforbruget kan reduceres til O(n 2 ), hvilket endvidere testes gennem en praktisk implementation af metoden. Streng-konsensus-supertræ-metoden repræsenterer gruppen af metoder, som kræver, at de anvendte fylogenier er fri for konfliktende grene. Metoden er derfor mindre anvendelig til opbygning af supertræer fra rigtige fylogenier, som ofte indeholder en eller anden form for konflikt blandt grenene. Dette er derimod ikke tilfældet for metoderne MRP (matrix repræsentation med parsimony) (Ragan, 1992) og kvartetsupertræer (Piaggio-Talice et al., 2004), hvilke dernæst gennemgås. Disse metoder kan opbygge supertræer uden hensyntagen til, hvordan og hvor meget de enkelte fylogenier konflikter med hinanden. Mange af de eksisterende supertræmetoder er implementeret i frit tilgængelige softwarepakker, der kan hentes via Internettet. Som opfølgning på gennemgangen af udvalgte supertræmetoder afprøves derfor et udsnit af supertræprogrammer både med henblik på at give en dokumenteret kørsel af programmerne og sammenligne forskelligheden og kvaliteten af de producerede supertræer. Resultatet af sammenligningerne giver en ide om hvilke metoder, der producerer det mest præcise supertræ. Strukturen for rapporten er som følger. I kapitel 2 gives en generel introduktion til supertræer samt en kort diskussion af fordele og ulemper ved supertrækonstruktion. Kapitel 3 indeholder en oversigt over eksisterende supertræmetoder samt en gennemgang af supertræmetoderne streng-konsensussupertræ, MRP og kvartetsupertræer. I kapitel 4 gennemgås eksisterende supertræprogrammer. Kapitel 5 indeholder en afsluttende konklusion. Webside om supertræer Meget materiale om supertræer er tilgængeligt via Internettet. Dette gælder blandt andet artikler, diverse softwarepakker til supertrækonstruktion samt generelle websider om supertræer. Som et forsøg på at samle denne mængde information er der i forbindelse med specialet udarbejdet en webside indeholdende links til relevant supertræmateriale (se figur 1.3). Foruden det eksisterende materiale inkluderer websiden også links til den implementerede udgave af streng-konsensus-supertræ-metoden og forskellige testdata. 5

6 6 Indledning Websiden er tilgængelig fra u Figur 1.3: Skærmbillede af webside.

7 Kapitel 2 Supertræer I dette kapitel gives en introduktion til supertræer. Kapitlet indledes med en generel definition af træer, hvorefter begrebet supertræ formelt defineres. Som afslutning gives en kort diskussion af fordele og ulemper ved supertrækonstruktion. 2.1 Træer Et træ er en sammenhængende acyklisk graf T = (V, E) bestående af en mængde af knuder V og en mængde af kanter også kaldet grene E, der forbinder de enkelte knuder v V med hinanden. Træer kan både være rodede og urodede. Hvis et træ T har en rodknude, kaldes det for et rodet træ og kan betragtes som en orienteret graf i hvilken, alle kanter e E er orienteret væk fra roden. Bortset fra roden har hver knude i et rodet træ T en forældre-knude samt nul eller flere børn. Knuderne fra roden og ned til en given knude v betegnes alle som forfædre til v, mens en efterkommer af v er en knude, der har v som sin forfader. Et urodet træ har ingen rod og derfor heller ingen ordnet rækkefølge af knuderne. Ethvert urodet træ kan laves om til et rodet træ ved at vælge en hvilken som helst knude som rod. Graden af en knude v angiver, hvor mange kanter, der er forbundet til v. Knuder i et træ T med en grad på netop 1 kaldes for blade, mens knuder, der ikke er blade, kaldes for indre knuder. Kanter i T er indre kanter, hvis knuderne i begge ender er indre knuder. Et træ er binært, hvis alle indre knuder har en grad på 3. Figur 2.1 (a) og (b) viser et eksempel på et træ T. Træerne i (a) og (b) er det samme træ i henholdsvis en rodet og urodet udgave. De forskellige termer blade, knuder, kanter etc. er angivet på figuren. Alternativt kan træerne i (a) og (b) beskrives i form af mængderepræsentation, som det er gjort i (c). De

8 8 Supertræer Figur 2.1: Repræsentation af træer. (a) viser et rodet træ med syv blade/taxa. (b) viser den urodede version af træet i (a). (c) viser den alternative repræsentation af (a) og (b) i form af delmængder. enkelte delmængder repræsenterer i dette tilfælde både knuderne og grenene i træet. Rekonstruktion af træerne i (a) og (b) fra mængderepræsentationen i (c) gøres ved at anbringe en orienteret kant fra en delmængde A til en anden delmængde B, hvis det gælder, at alle blade fra B er indeholdt i A, og A er den mindste delmængde med denne egenskab. Delmængderne {a, b, c, d} og {a, b} opfylder eksempelvis denne egenskab.. I en biologisk kontekst betegnes et rodet træ T ofte som en fylogeni, hvor de enkelte knuder svarer til taxa og forfædre. Kanterne afspejler udviklingen mellem to knuder og kan vedhæftes grenlængder, der beskriver den evolutionære tid. Bladene i en fylogeni er labelet med nulevende arter, mens indre knuder svarer til hypotetiske forfædre. Da der ikke haves nogen viden om forfædrene, er det kun bladene i træet, som er labelet. Termerne taxa, arter og eksterne knuder bruges alle om bladene i en fylogeni. 2.2 Supertræer Et supertræ er en fylogeni opbygget fra mindre fylogenier kaldet kildetræer, som har fuldt eller delvist overlappende taxamængder (Sanderson et al., 1998). I figur 2.2 er givet et eksempel på et supertræ opbygget fra to overlappende kildetræer. Som det fremgår af figuren, indeholder supertræet alle taxa fundet i kildetræerne og bevarer samtidig den fylogenetiske information fra disse træer. Supertræet kan derfor være og er sædvanligvis større end de

9 2.2 Supertræer 9 Figur 2.2: Supertræ opbygget fra kildetræerne T 1 og T 2. enkelte kildetræer, det er opbygget fra. Mere formelt kan et supertræ defineres på følgende måde: Antag at et træ T i indeholder blade S i for i = 1,..., k. Et supertræ for T 1, T 2,..., T k betegner i så fald et træ T med bladmængde S = S 1 S 1... S k sådan, at T S i = T i for alle i. Udtrykket T S i = T i betyder, at hvis supertræet T beskæres til kun at indeholde grene vedhæftet blade S i fra T i, så er T i og T identiske. Supertræet skal dermed afspejle alle de kildetræer, det er opbygget fra. Konstruktionen af supertræer fra eksisterende fylogenier er forskellig fra strategien i konventionelle fylogenetiske metoder, hvor der anvendes kildedata, der kan betegnes som målelige egenskaber ved en organisme (se Nei and Kumar (2000)). Målelige egenskaber er data som afstandsmatricer, aminosyresekvenser, morfologiske træk etc., der kan benyttes til at afgøre slægtsskabet mellem forskellige arter. Sådanne data angiver noget helt grundlæggende for arterne og betegnes derfor primære data. Supertræer, der opbygges på baggrund af topologierne fra eksisterende fylogenier, kan i bedste fald betragtes som stedfortrædere for delte egenskaber mellem arter. De anvendte kildedata kan i dette tilfælde siges at være et skridt væk fra de oprindelige data og betegnes derfor sekundære data. Forskellen på primære og sekundære kildedata er illustreret i figur Fordele ved supertræer En væsentlig fordel ved supertræer er, at de kan sammensættes af kildetræer konstrueret fra vidt forskellige slags primære data som eksempelvis mole-

10 10 Supertræer Figur 2.3: Forskellen på primære og sekundære data. Træet i (a) er opbygget direkte fra primære data, mens supertræet i (b) er opbygget fra sekundære data. kylære og morfologiske data. I forhold til konventionelle fylogenier, der kun kan konstrueres fra kompatible data (fx samme gen), kan supertræer derfor gøre brug af et bredt udvalg af data. Dette er af stor betydning, eftersom en væsentlig hindring for konstruktion af fuldstændige fylogenier fra primære data stadig er den begrænsede mulighed for at indhente data, der dækker alle arter i en given taksonomisk gruppe. Eksempelvis er størrelsen af fylogenier konstrueret fra sekvensdata som nukleotid- og aminosyresekvenser endnu begrænset af den ulige fordeling af disse data i databaser som fx GenBank ( hvor antallet af sekventierede gener for få bestemte arter er stærkt overrepræsenteret, mens antallet af sekventierede gener for mange andre arter er stærkt underrepræsenteret (Sanderson and Driskell, 2003). Indhentning af sekvensdata til konstruktion af en fuldstændig fylogeni for en given taksonomisk gruppe er derfor sjældent mulig, da der i de fleste tilfælde vil mangle data for dele af gruppen. Som et konkret eksempel kan nævnes fylogenien over cetartiodactyl-gruppen af pattedyr, hvor det kun har været muligt at inkludere 51 af de 293 eksisterende arter (Gatesy et al., 2002). Til sammenligning har supertræers mulighed for at sammensætte kildetræer opbygget fra forskellige slags primære data ført til konstruktionen af fuldstændige fylogenier for mange forskellige taksonomiske grupper. Herunder supertræer for flere af de store grupper af pattedyr fx supertræet over flagermus (Chiroptera) af Jones et al. (2002) sammensat af 105 kildetræer og med et samlet antal taxa på 916. Eksempler på andre konstruerede

11 2.2 Supertræer 11 supertræer med en fuldstændig taksonomisk dækning er listet i tabel 2.1. Supertræ Taxa i alt Antal kildetræer Reference Flagermus (Chiroptera) (Jones et al., 2002) Dinosaurius (Dinosauria) (Pisani et al., 2001) Rovdyr (Carnivoras) (Bininda-Emonds et al., 1999) Søfugle (Procellariiformes) (Kennedy and Page, 2002) Fyrretræer (Pinus) (Schwilk and Ackerly, 2001) Tabel 2.1: Oversigt over supertræer for forskellige taksonomiske grupper. Alle supertræer er taksonomisk fuldstændige Kritik af supertræer Supertrækonstruktion er blevet kritiseret på grund af den manglende kontakt med de primære data og betegnes af mange kritikere som værende resumeer af resumeer, der er to skridt væk fra de oprindelige data. Den manglende datagennemsigtighed er årsag til de største kritikpunkter, der vedrører risikoen for dataduplikation, kvaliteten af de anvendte kildetræer samt dataansvarlighed. Dataduplikation Supertræer kan indeholde dataduplikation, da de samme primære data kan have bidraget til mere end et kildetræ og derfor dublikeres i supertræet. Et eksempel på dataduplikation er givet i figur 2.4, hvor kildetræ T 1 og T 2 begge er konstrueret fra en datamængde indeholdende den samme aminosyresekvens p53 macmu. Dette overlap mellem de to primære datamængder betyder, at T 1 og T 2 ikke kan betragtes som uafhængige. Resultatet af den manglende uafhængighed er, at de duplikerede data opvægtes under konstruktionen af supertræet og således får en større indflydelse på topologien end de øvrige data (Bininda-Emonds et al., 2003). Risikoen for dataduplikation i supertræer kan siges at være større end i konventionelle fylogenier på grund af den manglende gennemsigtighed til de primære data, som kildetræerne oprindelig er opbygget fra. Af den grund er det sværere at afgøre, om fx bestemte aminosyresekvenser er blevet anvendt flere gange, da gengangere kun kan findes ved at se direkte på de involverede sekvenser. Bininda-Emonds et al. (2004) har i den forbindelse foreslået en række formelle retningslinjer for indhentning af kildetræer med henblik på at minimere dataduplikation mellem kildetræer.

12 12 Supertræer Figur 2.4: Eksempel på dataduplikation. T 1 og T 2 er begge opbygget fra datamængder indeholdende aminosyresekvensen p53 macmu. Det resulterende supertræ T indeholder derfor dataduplikation. Kvalitet af kildetræer Et supertræ kan som nævnt opnå en bred taksonomisk dækning, fordi det kan sammensættes af kildetræer opbygget fra forskellige typer primære data. Indhentning af mange kildetræer for at dække et bredt taksonomisk område øger imidlertid risikoen for, at der inkluderes kildetræer af lav kvalitet (Gatesy et al., 2002). Med lav kvalitet menes især kildetræer, der henviser til autoritet eller har et tvivlsomt fylogenetisk indhold. Henvisning til autoritet vil sige, at der er gjort forskellige antagelser om kildetræerne, mens et tvivlsomt fylogenetisk indhold blandet andet vedrører kildetræer, der ikke er opbygget ud fra nogen bestemt metodologi. Hvor stor indflydelse kildetræernes kvalitet har på supertræet afhænger dog af antallet, der indgår i analysen (Bininda-Emonds, 2004b). Inkludering af mindre gode kildetræer behøver derfor ikke at være ødelæggende for supertræet, hvis der indgår mange gode kildetræer, eftersom upræcis information burde udkonkurreres af det sammenhængende fylogenetiske signal fra de gode kildetræer. Bininda-Emonds (2004b) har i relation hertil vist, at kraftig nedvægtning af de mindre gode kildetræer har lille mærkbar effekt på de fleste supertræer. Under alle omstændigheder bør det sikres, at kildetræer, der anvendes i et supertræ, har den højst mulige kvalitet. Dette kan igen gøres ved at tage udgangspunkt i formelle retningslinjer for indhentning af gyldige kildetræer. Dataansvarlighed Supertræer indeholder ikke den samme form for dataansvarlighed som konventionelle fylogenier, idet de primære data, som kildetræerne er opbygget fra, ikke direkte indgår i konstruktionen af et supertræ. Eventuelle fejl (fx

13 2.2 Supertræer 13 redigeringsfejl eller misalignments) i de oprindelige primære data opdages derfor ikke (Gatesy et al., 2002). I modsætning hertil er alle primære data eksplicit repræsenteret under opbygningen af en konventionel fylogeni, hvoraf det tydeligt fremgår hvilke egenskaber, der er eller ikke er blevet scoret for bestemte taxa. Ifølge Bininda-Emonds et al. (2003) kan fylogenier konstrueret fra primære data lige såvel som supertræer lide af manglende dataansvarlighed, da primære data er mere gennemsigtige i teorien end i praksis. Unøjagtigheder i molekylære sekvenser er eksempelvis vanskelige at opdage og kan stort set kun ventes at blive fundet, hvis den resulterende fylogeni er indlysende forkert.

14 14 Supertræer

15 Kapitel 3 Supertræmetoder Siden supertræbegrebet og den første supertræmetode formelt blev introduceret af Allan D. Gordon i 1986 (Gordon, 1986), er der udviklet mange nye og forskellige supertræmetoder. Gennembruddet for disse kom i 1992, hvor Bernard Baum (Baum, 1992) og Mark Ragan (Ragan, 1992) uafhængigt af hinanden beskrev en ny supertræmetode kendt under navnet MRP (matrix repræsentation med parsimony). Metoden fjernede den grundlæggende begrænsning ved Gordons (1986) streng-konsensus-supertræ-metode, der kræver, at de enkelte kildetræer er fri for konfliktende grene. Alle overlappende kildetræer kunne dermed kombineres til et supertræ uden hensyntagen til hvordan og hvor meget, kildetræerne konflikter med hinanden (Bininda- Emonds, 2004b). Mere end 15 supertræmetoder og forskellige varianter af disse eksisterer på nuværende tidspunkt, og nye metoder udvikles fortsat. Formålet i det følgende er at give et overblik over disse metoder samt en detaljeret gennemgang af udvalgte metoder. 3.1 Metoder I tabel 3.1 er givet en oversigt over supertræmetoder. Tabellen er resultatet af en litteratursøgning, hvis formål har været at finde frem til eksisterende supertræmetoder. Som det fremgår af tabellen kan metoderne overordnet opdeles i direkte og indirekte metoder. Indirekte metoder gør brug af et mellemliggende trin, hvor de enkelte kildetrætopologier fx kodes i matricer. De kodede kildetræer analyseres herefter ud fra et optimeringskriterium, som finder det bedste supertræ ved anvendelse af en heuristisk metode. Supertræer konstrueret ved en indirekte metode betegnes i nogle tilfælde som optimeringssupertræer, fordi metoden maksimerer tilpasningen til mængden af kildetræer ud fra en objektiv funktion. Direkte metoder udleder i modsæt-

16 16 Supertræmetoder Supertræmetode Referencer Build (Aho et al., 1981)) Strict consensus supertree (Gordon, 1986) Semi-strict supertree (Goloboff and Pol, 2002) Strict consensus merger (Hudson et al., 1999) Direkte MinCutSupertree (Semple and Steel, 2000) metoder Modified MinCutSupertree (Page, 2002) RankedTree (Semple et al., 2004) Semi-labelledBuild (Semple et al., 2004) AncestralBuild (Semple et al., 2004) SUPERB (Constantinescu and Sankoff, 1995) MRP (matrix representation using parsimony) (Baum, 1992), (Ragan, 1992) MRD (matrix representation using distances) (Lapointe and Cucumel, 1997) MRC (matrix representation using compability) (Ross and Rodigro, 2004) MRF (matrix representation using flipping) (Chen et al., 2001) Indirekte Most Similar Supertree (Creevey, 2003) metoder Maximum Quartet fit (Creevey, 2003) Maximum Splits fit (Creevey, 2003) Bayesian supertrees (Ronquist, 2004) Gene tree parsimony (Slowinski and Page, 1999) Quartet supertrees (Piaggio-Talice et al., 2004) Tabel 3.1: Oversigt over eksisterende supertræmetoder og deres tilhørende referencer. Metoder angivet med kursivtype kræver alle kompatible kildetræer som input. De to grundlæggende supertræmetoder, strict consensus supertree og MRP, er fremhævet med fed type. Alle metoder er angivet med deres engelske betegnelser. ning hertil supertræet direkte fra kildetræerne uden et mellemliggende trin til kodning. Denne type metoder har forbindelse til konventionelle konsensusteknikker som eksempelvis streng-konsensus og Adams-konsensus (se Bryant (2003) for en gennemgang af konsensusmetoder). Supertræer konstrueret ved direkte metoder betegnes i nogle tilfælde som overensstemmelsessupertræer, fordi metoden opsummerer den fælles struktur blandt kildetræerne (Bininda- Emonds, 2002). Metoderne angivet i øverste og nederste halvdel af tabel 3.1 er henholdsvis direkte og indirekte metoder. Foruden opdelingen i direkte og indirekte metoder varierer supertræmetoderne også med hensyn til typen af kildetræer, som det er muligt at benytte til konstruktion af et supertræ. Nogle metoder kræver, at kildetræerne er kompatible (konsistente), mens andre kan opbygge supertræer fra både kompatible og inkompatible kildetræer. To træer siges at være kompatible, hvis træerne, der opnås ved at sammentrække grene med unikke blade, er identiske. Figur 3.1 (a) og (b) viser to kompatible træer T 1 og T 2. Den fælles bladmængde for de to træer er udgjort af mængden C = {1, 2, 3, 4, 5}. Træerne er kompatible, fordi en sammentrækning af grenene i T 1 og T 2, der ikke har vedhæftet blade tilhørende C, begge resulterer i træet i (c). To træer siges omvendt at være inkompatible, hvis de indeholder modstridende træer for den samme mængde blade. Metoderne angivet med kursiv type i tabel 3.1

17 3.1 Metoder 17 Figur 3.1: To kompatible kildetræer (a) og (b) og deres fælles beskårede træ (c). kræver alle kompatible kildetræer som input, mens de øvrige er i stand til at håndtere inkompatible kildetræer. I praksis er der næsten altid en form for inkompatibilitet til stede blandt mængden af kildetræer, hvorved metoderne, der alene kan håndtere kompatible kildetræer, stort set kun er anvendelige for simulerede kildetræer, som er designet til at være kompatible. Anvendes en sådan metode alligevel på inkompatible kildetræer, er det nødvendigt først at rette i kildetræerne, så der opnås en kompatibel samling kildetræer. Dette kan fx gøres ved at beskære træerne for konfliktende blade (Bininda-Emonds, 2002). Streng-konsensus-supertræ og MRP udgør de to grundlæggende supertræmetoder, som har givet anledning til udvikling af de mange andre metoder i tabel 3.1. Metoderne er fremhævet med fed type i tabellen. Strengkonsensus-supertæ er baseret på ideen i Build-algoritmen af Aho et al. (1981), der oprindelig blev udviklet til relationelle databaser og derfor først senere har fundet anvendelse inden for supertrækonstruktion. Mange af de øvrige direkte supertræmetoder følger Gordons (1986) eksempel og bygger videre på strategien i Build-algoritmen. MRP-metoden er baseret på ideen om, at trætopologier kan repræsenteres i form af matrixelementer kodet ved additiv binær kodning. Dette har gjort MRP til en af de mest populære supertræmetoder, eftersom metoden tillader konstruktion af supertræer fra inkompatible kildetræer. Enkelte af de indirekte metoder i tabellen er letterede modificerede udgaver af MRP-metoden, mens de resterende alene bygger videre på optimeringsprincippet anvendt i metoden. Kvartetsupertræmetoden er et eksempel på en sådan metode, der benytter en ny og meget anderledes strategi end MRP-metoden. Metoderne streng-konsensus-supertræ, MRP og kvartetsupertræ kan til sammen siges at være repræsentanter for de forskellige strategier, som an-

18 18 Supertræmetoder vendes blandt de eksisterende metoder i tabel 3.1. De to førstnævnte fordi de udgør de grundlæggende metoder, som mange af de eksisterende metoder bygger videre på og sidstenævnte, fordi denne repræsenterer en af de helt nye og anderledes strategier til supertrækonstruktion. Den algoritmiske strategi bag disse metoder vil derfor blive gennemgået i de næste afsnit. 3.2 Streng-konsensus-supertræ Gordon (1986) introducerede som den første en formel supertræmetode, der muliggør konstruktion af et supertræ fra to rodede, kompatible kildetræer. Metoden er en udvidelse af konsensusmetoden streng-konsensus (se Bryant (2003)) og er derfor navngivet streng-konsensus-supertræ Metode Opbygning af et strengt-konsensus-supertræ tager udgangspunkt i kildetræernes fælles beskårede træ. Et fælles beskåret træ indeholder kun grene med blade, der er fælles for de pågældende kildetræer. I figur 3.1 (a) og (b) er givet et eksempel på to kompatible kildetræer T r (r = 1, 2), hvis fælles bladmængde C er {1, 2, 3, 4, 5}. Kildetræernes fælles beskårede træ findes ved at fjerne grene vedhæftet blade, der ikke tilhører mængden C. I dette tilfælde resulterer beskæringen i træet angivet i figur 3.1 (c), som betegnes T r {1, 2, 3, 4, 5}. Ideen er nu at udbygge det fælles beskårede træ med de resterende unikke blade fra kildetræerne således, at dette træ til sidst kommer til at udgøre supertræet. Strategien for udbygning af det fælles beskårede træ kan forklares gennem mængderepræsentation af de involverede træer (se afsnit 2.1 vedr. mængderepræsentation af træer). Betragtes igen det fælles beskårede træ i figur 3.1 (c) ses, at dette entydigt kan repræsenteres ud fra sine bladdelmængder, som i dette tilfælde er {1}, {2}, {3}, {4}, {5}, {1, 2}, {3, 4}, {3, 4, 5}, {1, 2, 3, 4, 5}. Hver enkelt delmængde {C j (j = 1,..., n p )} kan fortolkes som en knude eller en gren i træet fx repræsenterer delmængden C 6 = {1, 2} både den fremhævede gren og den mærkede knude i figur 3.2 (a). I det følgende vil begreberne gren og knude derfor blive anvendt afhængig af hvad, der er mest passende for konteksten. Udbygningen af det fælles beskårede træ sker ved at sammenligne dets grene C j med de tilsvarende grene i kildetræerne for derved at undersøge, om disse har vedhæftet unikke blade. Vælges det at betragte grenen repræsenteret ved bladmængden C 6 i figur 3.2 (a) bemærkes, at undertræet til C 6 indeholder bladene 1 og 2, mens træets resterende blade 3, 4 og 5 er indeholdt

19 3.2 Streng-konsensus-supertræ 19 Figur 3.2: Identifikation af grenen C 6 markeret i (a) i de to træer i (b) og (c). i andre undertræer. Dette betyder, at undertræet for den tilsvarende gren i kildetræerne nødvendigvis må indeholde bladene 1 og 2 samt eventuelle andre unikke blade, men ikke bladene 3, 4 eller 5. I figur 3.2 (b) og (c) er indrammet det største og mindste undertræ, som indeholder bladene 1 og 2 uden at inkludere de resterende blade 3, 4 og 5 fra mængden C. Bladmængden indeholdt i henholdsvis det største og mindste undertræ af C j angives med generel notation som M rj og m rj, hvor r betegner kildetræet, og j betegner den aktuelle gren fra det fælles beskårede træ. T 1 i figur 3.2 (b) indeholder således bladmængderne M 16 = {1, 2, 6, 7, 8} og m 16 = {1, 2}, og T 2 i figur 3.2 (c) indeholder bladmængderne M 26 = {1, 2, 10} og m 26 = {1, 2}. Mængden af unikke blade på en given gren i et kildetræ kan findes som forskellen mellem M rj og m rj, hvilket med generel notation betegnes som A rj = M rj \m rj. Eksempelvis udgør A 16 og A 26 i figur 3.2 (b) og (c) henholdsvis bladmængderne {6, 7, 8} og {10}. Den samlede mængde unikke blade for en given gren i begge kildetræer kan findes ved først at beregne foreningsmængderne M j = M 1j M 2j og m j = m 1j m 2j og derpå beregne forskellen A j = M j \ m j. I tabel 3.2 er beregnet bladmængderne M rj, m rj, M j, m j og A j for samtlige grene C j i figur 3.2 (a). Når mængderne M j, m j og A j er identificeret i kildetræerne, skal det afgøres, om de unikke blade i A j er fordelt på et eller begge kildetræer, eftersom dette er bestemmende for, hvordan A j skal placeres i det fælles beskårede træ. Hvis A j udgør blade, der kun stammer fra et enkelt kildetræ, så indsættes undertræet indeholdende disse blade direkte i det fælles beskårede træ. Figur 3.3 (a) viser et eksempel på denne situation, hvor grenen C 7 = {3, 4} i det fælles beskårede træ kun har vedhæftet unikke blade i et af de to kildetræer. Som det fremgår af figuren, kopieres den indrammede del af kildetræet over på den markerede gren i det fælles beskårede træ, hvorved

20 20 Supertræmetoder C j m 1j M 1j m 2j M 2j m j M j A j Nye delmængder {1} {1} {1} {1} {1} {1} {1} ø - {2} {2} {2} {2} {2} {2} {2} ø - {3} {3} {3} {3} {3} {3} {3} ø - {4} {4} {4} {4} {4} {4} {4} ø - {5} {5} {5} {5} {5,14} {5} {5,14} {14} {14} {1,2} {1,2} {1,2,6-8} {1,2} {1,2,10} {1,2} {1,2,6-8,10} {6-8,10} {6}, {7}, {8}, {10} {3,4} {3,4} {3,4} {3,4} {3,4,11-13} {3,4} {3,4,11-13} {11-13} {11},{12},{13}, {11, 12}, {3, 4, 11, 12} {3-5} {3-5} {3-5} {3-5,11-14} {3-5,11-14} {3-5,11-14} {3-5,11-14} ø - {1-5} {1-8} {1-9} {1-5,10-14} {1-5,10-14} {1-8,10-14} {1-14} {9} {9} Tabel 3.2: Streng-konsensus-supertræ anvendt på T 1 og T 2 i figur 3.1 (a) og (b). Mængderne angivet i sidste kolonne samt i kolonnerne m j og M j udgør tilsammen det konstruerede supertræ (Gordon, 1986, s. 342). dette bliver udvidet med de unikke blade fra A j. Hvis A j derimod indeholder blade tilhørende begge kildetræer, er det ikke muligt at vedhæfte de unikke blade entydigt på det fælles beskårede træ. Fremgangsmåden er derfor som vist i eksemplet i figur 3.3 (b), hvor der oprettes en ny knude i det fælles beskårede træ, på hvilken samtlige unikke blade vedhæftes som singletons. Sidstnævnte betyder, at det endelige supertræ i figur 3.3 (c) ikke vil være entydigt bestemt, men dække over flere mulige supertræer. Dette skyldes, at blad 10 fra T 2 som vist i figur 3.4 vil kunne placeres syv forskellige steder på grenene indeholdende bladene 6, 7 og 8 fra T 1. I den sammenhæng skal det bemærkes, at de enkelte kildetræer kan indeholde information om strukturen i den uløste del af supertræet fx indeholder T 1 information om, at bladene 7 og 8 er tættere knyttet til hinanden end til blad 6. Opbygning af et strengt-konsensus-supertræ er begrænset til kombinering af to kompatible kildetræer. En simpel generalisering af metoden til kombinering af flere kildetræer er mulig, hvis fællesmængden mellem hvert par af kildetræer er den samme mængde. I så fald er det tilstrækkeligt at identificere mængden A rj i alle kildetræer og undersøge, om blade fra A rj er fordelt over et eller flere kildetræer. Hvis mængden af overlappende blade derimod er meget varierende, vil det fælles beskårede træ indholde færre grene og resultere i et supertræ med mange uløste knuder. Alternativt kan det vælges at benytte strategien illustreret i figur 3.6, hvor supertræet konstrueret fra to kildetræer kombineres med et af de øvrige kildetræer, hvis resulterende supertræ igen kombineres med et nyt kildetræ og så fremdeles. Topologien af det sidste supertræ vil afhænge af, i hvilken rækkefølge kildetræerne kombineres. Supertræet med færrest uløste knuder findes derfor kun ved at afprøve alle mulige kombinationer af kildetræerne.

21 3.2 Streng-konsensus-supertræ 21 Figur 3.3: Kopiering af grene. (a) viser situationen, hvor grenen fra ét kildetræ kopieres over i det fælles beskårede træ. (b) viser situationen, hvor en gren fra hvert kildetræ kopieres over i det fælles beskårede træ. (c) Det fuldstændige supertræ for kildetræerne i figur 3.1 (a) og (b) Analyse og implementering Gordon (1986) har opsummeret streng-konsensus-supertræ-metoden i de seks trin, som er gengivet i tabel 3.3. Hvert trin beskriver i mængderepræsenta-

22 22 Supertræmetoder Figur 3.4: De syv mulige placeringer af blad 10 (Gordon, 1986, s. 344). tion fremgangsmåden for opbygning af et streng-konsensus-supertræ. Den samlede tidskompleksitet for trinene er O(n 3 ), hvor n er det samlede antal blade fra T 1 og T 2. Det kritiske trin er trin fem, som tager O(n 2 ) tid og er omgivet af et loop, der gentages O(n) gange. Antallet af gennemløb afhænger af størrelsen af det fælles beskårede træ, som har maksimal størrelse O(n) (Gordon, 1986). Metoden kan imidlertid forbedres til kun at bruge O(n 2 ) tid, hvis problemet ikke kun betragtes gennem mængderepræsentation af de involverede træer, men også gennem en mere visuel repræsentation af træer som knuder forbundet med kanter. I det følgende er givet en analyse af, hvordan trin (1) til (6) i tabel 3.3 kan implementeres, så den samlede udførelsestid forbedres fra O(n 3 ) til O(n 2 ). I trin (1) identificeres mængderne C og C j ved at beregne fællesmængden mellem T 1 og T 2. Hvis det antages, at delmængderne, som specificerer T 1 og T 2, er repræsenteret i to lister, kan fællesmængden mellem disse beregnes i O(nlogn) eller i O(n) tid afhængig af hvilken sorteringsalgoritme, der anvendes på listerne. Anvendes fx merge-sort opnås førstnævnte udførelsestid, mens sortering ved hjælp af bucket-sort giver sidstnævnte og dermed den hurtigste udførelsestid. Sorteringsalgoritmerne er beskrevet i Goodrich and Tamassia (2002). Trin (2) udgør en for-løkke, som omgiver trin (3) til (6). For-løkken gentages O(n) gange, idet den gennemløber samtlige delmængder C j i det fælles beskårede træ. I trin (3) skal mængderne m rj og M rj identificeres i T 1 og T 2. Dette kan gøres ved et dybdeførst-gennemløb fra roden og ned til en nederste gren i kildetræet, der har vedhæftet et blad tilhørende mængden C j. Dette blad vælges nu som kandidat til m rj og M rj, hvorefter der backtrackes op gennem træet. Hvis den næste gren er vedhæftet blade, som tilhører mængden C j og samtidig ikke er vedhæftet blade fra mængden C, så vælges denne bladmængde som kandidat til m rj og M rj. Når der på et tidspunkt mødes en gren, hvis blad ikke er indeholdt i C j, kan mængden m rj ikke udvides mere.

23 3.2 Streng-konsensus-supertræ 23 Figur 3.5: Kombinering af flere kildetræer. De fremhævede træer T S1, T S2 og T S3 illustrerer de konstruerede supertræer. T S3 er det sidst konstruerede supertræ og derfor det endelige supertræ. Herefter fortsættes med at finde flere elementer til M rj indtil, der mødes en gren vedhæftet blade fra C. I alt besøges hvert blad i kildetræerne højst to gange, hvorved tidskompleksiteten bliver O(2n). I trin (4) beregnes foreningsmængderne M j = M 1j M 2j og m j = m 1j m 2j. Hvis M rj og m rj er repræsenteret i lister, kan hver mængde beregnes i O(nlogn) eller i O(n) tid ud fra samme argrument som i trin (1). I trin (5) testes, om mængden A j kun indeholder blade fra et kildetræ. Hvis dette er tilfældet, skal knuderne, der indeholder disse blade, identificeres i kildetræet, så det efterfølgende kan udskrives, at de udgør delmængder af supertræet. Knuderne findes ved at undersøge, om mængderepræsentationen for samtlige knuder i kildetræet enten opfylder, at {T 1k T 1k A j } eller {T 1l m 2j m 1j T 1l M 1j }. Hver enkelt knude i kildetræet udsættes således for to sammenligninger, som hver tager O(n 2 ) tid. Tidskompleksiteten kan forbedres til O(n), idet roden for deltræet indeholdende de unikke blade A j allerede er identificeret i form af M rj. Det er derfor nok at kopiere de underliggende knuder/grene over i det fælles beskårede træ. Kopieringen forløber som illustreret i figur 3.3 (a), hvor grenen C 7 slettes og erstattes af det markerede undertræ. I trin (6) testes, om A j indeholder blade fra begge kildetræer. Hvis dette er tilfældet, er det kun nødvendigt at udskrive elementerne fra A j som singletondelmængder. Dette tager højst O(n) tid. Forbedringen af trin (5) til kun at bruge O(n) frem for O(n 2 ) tid betyder, at metodens samlede udførelsestid reduceres til O(n 2 ) Implementering Uførelsestiden for en algoritme kan testes eksperimentielt ved at sammenholde størrelsen af inputtet med tiden, det tager at beregne det ønskede output. For at afgøre om forbedringen i trin (5) rent faktisk resulterer i en

24 24 Supertræmetoder Algoritme: Streng konsensus supertræ Input: To rodede, kompatible kildetræer Output: Et supertræ Metode: 1. Find mængden af fælles blade C for kildetræerne T r (r = 1, 2) samt delmængderne {C j (j = 1,..., n p )}, der tilsammen udgør det fælles beskårede træ. 2. for j := 1 to n p do 3. for r := 1 to 2 do Find den mindste mængde m rj (og den største mængde M rj ) af T r, som indeholder C j, men ingen andre blade fra C. 4. Udskriv at mængderne m j = m 1j m 2j og M j = M 1j M 2j tilhører supertræet. 5. if A j = M j \m j udgør blade, som kun tilhører et kildetræ (fx T 1 ) then Udskriv at mængderne {T 1k T 1k A j } og {T 1l m 2j m 1j T 1l M 1j } tilhører supertræet. 6. if A j udgør objekter tilhørende begge kildetræer then Udskriv at singleton delmængderne af A j tilhører supertræet. Tabel 3.3: Pseudokode for streng-konsensus-supertræ (Gordon, 1986, s. 341). forbedret udførelsestid på O(n 2 ), er det valgt at foretage en praktisk implementering af metoden i Python 2.2. Designvalg Den overordnede struktur for programmet er vist i figur 3.6. Som det fremgår af figuren, er programmet sammensat af Python-modulerne supertree.py, newick.py, node.py, set.py og permutation.py, hvis indbyrdes interaktioner er repræsenteret med pile. Til sammen udgør disse moduler et program, som kan indlæse rodede kildetræer i newickformat ( washington.edu/phylip/newicktree.html), repræsentere disse træer i en datastruktur udgjort af knudeobjekter og konstruere et streng-konsensus-supertræ. Kildekoden for de enkelte moduler er indeholdt i bilag C og er ligeledes tilgængelig fra u020110/software.html. En speciel onlineudgave af progammet kan desuden benyttes via au.dk/cgi-u020110/strict.py. Modulet newick.py indeholder en newickparser, der givet en strengrepræsentation af et træ i newickformat, kan opbygge et rodet træ fra knudeobjekter. Knudeobjekterne er repræsenteret ved datastrukturen indeholdt i node.py. Hver knude har et navn, en pointer til sin forfader, pointere til sine børn i form af en liste med knuder samt et flag, der benyttes til at specificere knudens tilstand. Navnet på en knude angiver, om knuden er en indre knude eller et blad. En indre knude har navnet internal, mens et blad har samme navn som det indlæste blad. Den overordnede strategi for newickparseren er at lægge en knude på en stak s hver gang, der læses en startparentes og igen fjerne knuden, når der læses en slutparentes. Når en knude fjernes fra stakken tilføjes denne til efterkommeren af den sidste knude på stakken, hvorved træstrukturen stadig huskes, efterhånden som de sidste

25 3.2 Streng-konsensus-supertræ 25 Figur 3.6: Programstruktur. knuder fjernes. Når strengrepræsentationen er læst til ende (dvs. når der læses et semikolon), er hele træstrukturen gemt i den første efterkommer af en speciel dummyknude, som derfor returneres af funktionen parse(). Et træ er således repræsenteret ved dets rodknude, som er forbundet med de øvrige knuder gennem pointere. Modulet supertree.py indlæser kildetræerne og returnerer det konstruerede supertræ i newickformat. Funktionen read souce trees() indlæser kildetræerne, fjerner eventuelle længdelabels og konstruerer træerne T 1, T 2 og T 3 ved brug af newickparseren. T 1 og T 2 repræsenterer de to kildetræer, mens T 3 er en kopi af T 1, der senere skal udgøre kildetræernes fælles beskårede træ. T 1, T 2 og T 3 gives som input til funktionen strict consensus supertree(), der beregner supertræet ved anvendelse af forskellige hjælpefunktioner. Mængden af fælles blade C mellem T 1 og T 2 beregnes af funktionen all taxa(), der returnerer alle blade i et træ T og intersect() fra set.py, der giver fællesmængden mellem to mængder. Mængden af unikke blade i T 1 og T 2 findes som forskellen mellem deres bladmængder ved anvendelse af funktionen substract() fra set.py. Den unikke bladmængde gives sammen med T 3 som input til funktionen common pruned tree(), der beskærer T 3 ved at fjerne unikke blade og sammentrække grene, hvis blade er blevet fjernet. T 3 gennemløbes ved en dybdeførstsøgning med henblik på at undersøge, om de enkelte knuder/grene har vedhæftet unikke blade. Søgningen implementeres ved begyndende at lægge rodknuden på en stak, tage knuden af stakken og lægge knudens børn på stakken. Den øverste knude på stakken fjernes igen, hvorefter dennes børn lægges på stakken. Sådan fortsættes indtil stakken er tom, og alle knuder i T 3 dermed er besøgt. For hver besøgt knude C j findes bladmængden i dens undertræ ved hjælp af funktionen all taxa(). Identifikation af mængderne m rj og M rj i T 1 og T 2 findes ved brug af funktionen find subtree(), der begynder søgningen fra et tilfældigt blad indeholdt

26 26 Supertræmetoder i C j s undertræ og fortsætter op gennem træet indtil knuderne, hvis underliggende bladmængder opfylder kravene til m rj og M rj, er fundet. De unikke blade i T 1 og T 2 findes som forskellen mellem bladmængderne i m rj og M rj. Funktionen copy subtree() kopierer unikke blade over på T 3 i tilfældet, hvor kun en af T 1 og T 2 indeholder unikke blade. Nye knuder kopieres ved først at oprette en såkaldt deepcopy af knuden M rj og derpå identificere knuden m rj i dennes undertræ. En deepcopy af en knude svarer til at gennemløbe knudens undertræ og tager tid proportionalt med undertræet. m rj og M rj indsættes efterfølgende i T 3 ved at ændre og slette pointere mellem de forskellige knuder i T 3. Hvis både T 1 og T 2 indeholder unikke blade, benyttes funktionen copy singletons(), som opretter en ny knude for hvert unikt blad, tilføjer disse til efterkommeren af en ny indre knude og indsætter denne knude i T 3. Knuder der indsættes i T 3, sættes alle til at have tilstanden inserted, så der kan ses bort fra disse under gennemløbet af T 3. Implementeringen af streng-konsensus-supertræ er desuden udvidet med en funktion, der muliggør kombinering af mere end to kildetræer til et supertræ. Funktionen combine all() kombinerer et kildetræ med et tidligere konstrueret supertræ, som eksemplificeret i figur 3.5. Da det endelige supertræ som tidligere nævnt afhænger af rækkefølgen i hvilken, de enkelte kildetræer og supertræer kombineres, er funktionen all supertrees() også implementeret. Denne funktion beregner alle mulige permuteringer af kildetræer og supertræer ved at anvende funktionen permutation() fra permuation.py, der ud fra en liste af træfiler returnerer en liste indeholdende alle permuteringer af elementerne i listen. Test For at sikre at programmet returnerer et korrekt streng-konsensus-supertræ, er der implementeret en testfunktion, som kører programmet på en række udvalgte kildetræer og sammenligner det konstruerede supertræ med det forventede supertræ. Kildetræerne inkluderet i testfunktionen er udvalgt, så de både repræsenterer specielle og generelle tilfælde for kombinering af kildetræer. De udvalgte kildetræer dækker derfor blandt andet over de specielle situationer, hvor knuderne m rj og M rj er ens, og hvor grene kopieres over på roden i T 3. Kørsel Det samlede program køres ved at kalde >python supertree.py <metode> <filer>

27 3.2 Streng-konsensus-supertræ 27 Parametrene <metode> og <filer> specificerer henholdsvis valget af metode og kildetræer. En programkørsel på kildetræerne indeholdt i filerne t4.tre og t5.tre forløber som følger: >python supertree.py ********************************** *** Streng konsensus Supertrae *** ********************************** Brug: python supertree.py <metode> <filer> Metoder: - 2KT - MKT - MKT2 - test Tast python supertree.py <metode>? for beskrivelse af en metode. >python supertree.py 2KT t4.tre t5.tre Supertrae er skrevet til filen supertree t4.tre t5.tre.tre Antal faelles taxa C = 133 n1 + n2 = 266 Tid = sek. > Supertræet udskrives i newickformat til filen supertree t4.tre t5.tre.tre, der eventuelt kan visualiseres med programmet TreeView ( zoology.gla.ac.uk/rod/treeview/) Eksperimenter Implementeringen af streng-konsensus-supertræ giver mulighed for at afprøve metoden eksperimentelt. I det følgende afprøves metoden på et datasæt bestående af en mængde fylogenier opbygget fra forskellige pfam afstandsmatricer ( i hvilke, antallet af arter spænder over et jævnt interval fra 10 til Eftersom metoden kræver kompatible kildetræer som input, er det ikke muligt at anvende fylogenierne direkte. I stedet benyttes disse som udgangspunkt for generering af en mængde kildetræer, som er parvis kompatible. To kompatible kildetræer kan fx genereres ved at kopiere en fylogeni og udskifte nogle af fylogeniens blade med helt nye blade. Tidsforbrug Som det fremgår af analysen i afsnit 3.2.2, afhænger metodens udførelsestid af størrelsen på kildetræernes fælles beskårede træ. Et lille fælles beskåret træ betyder, at trin (3) til (6) i tabel 3.3 kun skal gennemløbes få gange, hvorimod et stort fælles beskåret træ kræver mange gennemløb af trinene. I en eksperimentiel undersøgelse af metodens tidsforbrug er det derfor nødvendigt, at størrelsen på det fælles beskårede træ er den samme for alle par af kompatible kildetræer i testmængden. For at opfylde dette krav og samtidig sikre,

28 28 Supertræmetoder Figur 3.7: Tiden afbildet som funktion af det samlede antal blade for kildetræerne i test 1 til 4. Bemærk at grafen for test 4 er sammenfaldende med x-aksen. at de forskellige trin i metoden bringes i spil under måling af udførelsestiden konstrueres fire forskellige testmængder (test 1 til 4) indeholdende par af kompatible kildetræer. Testmængderne er konstrueret, så hvert par af kompatible kildetræer opfylder følgende: Test 1: Begge kildetræer er identiske, hvilket betyder, at det fælles beskårede træ har maksimal størrelse. En kørsel af programmet med to identiske kildetræer vil kun involvere trin (1) til (3). Test 2: Halvdelen af bladene i de to kildetræer er udskiftet med unikke blade. En kørsel af programmet vil derfor involvere alle trin på nær trin (5). Test 3: Der er indsat ekstra grene med unikke blade på halvdelen af grenene i det ene kildetræ. En kørsel af programmet vil derfor involvere alle trin på nær trin (6).

29 3.2 Streng-konsensus-supertræ 29 Figur 3.8: Dobbeltlogaritmisk plot af graferne i figur 3.7. Test 4: Kildetræernes fælles beskårede træ har en minimal størrelse på to blade. Trin (3) til (6) gennemløbes derfor kun to gange. Det forventes, at test 1 og 3 vil give de længste udførelsestider, eftersom det fælles beskårede træ har maksimal størrelse i disse tests. Kildetræerne i test 3 er på grund af de ekstra indsatte blade væsentlig større end kildetræerne i test 1, og det forventes derfor, at test 3 har det største tidsforbrug af de to. Test 2 indeholder kildetræer, hvis fælles beskårede træ er mindre end dem i test 1 og 3, og forventes derfor at give en hurtigere udførelsestid. Test 4 har i forhold til de tre øvrige tests det mindste fælles beskårede og vil derfor give den hurtigste udførelsestid. Eftersom det fælles beskårede træ kun er udgjort af to blade, forventes det, at udførelsestiden i dette tilfælde nærmer sig lineær tid. Graferne i figur 3.7 viser resultaterne for kørslerne af programmet på kildetræerne i test 1 til 4. Som det heraf fremgår, tager det som forventet længst tid at opbygge supertræerne fra kildetræerne i test 3 og kortest tid fra kildetræerne i test 4. Hvorvidt de plottede grafer er af anden eller tredje orden, kan afgøres ved at plotte disse i et dobbeltlogaritmisk koordinatsystem og estimere ligningen for de rette linjer. Dette er gjort i figur 3.8, hvoraf det ses,

30 30 Supertræmetoder tdist-værdier Supertræ test 1 test 2 test 3 T T T T T T Tabel 3.4: tdist-værdier. at graferne for test 1 til 3 alle tilnærmelsesvis følger en andenordensfunktion, og grafen for test 4 som ventet nærmer sig en førsteordensfunktion. Kombinering af flere kildetræer Som nævnt kan metoden udvides til kombinering af mere end to kildetræer ved at følge strategien i figur 3.5. Det bedste supertræ (dvs. det med færrest uløste knuder) kan findes ved at afprøve alle mulige kombinationer af kildetræerne. I den forbindelse er det interessant at undersøge, hvor forskellige supertræer der returnes, hvis kildetræerne permuteres på alle mulige måder. Ideen til eksperimentet er opstået i forbindelse med afprøvningen af programmet tdist fra softwarepakken Quartet Suite (se kapitel 4 afsnit 4.2.1), som ud fra et supertræ og en mængde kildetræer kan beregne, hvor godt informationen i kildetræerne gengives i supertræet. Supertræer indeholdende mange uløste knuder gengiver ikke ret meget af informationen fra kildetræerne. Anvendes tdist på supertræerne konstrueret fra en mængde permuterede kildetræer, opnås derfor et mål for hvilket supertræ, der indeholder færrest uløste knuder. Tabel 3.4 viser resultaterne fra en kørsel af tdist på seks supertræer konstrueret fra tre testmængder (test 1 3), der hver indeholder tre kompatible kildetræer. Kildetræerne er konstrueret, så de opfylder følgende: Test 1: Kildetræerne er næsten identiske og indeholder kun få forskellige blade. Test 2: Der er indsat ekstra grene med unikke blade på en fjerdel af grenene i alle kildetræer. Test 3: Der er indsat ekstra grene med unikke blade på en tredjedel af grenene i alle kildetræer. Af resultaterne i tabel 3.4 fremgår det, at supertræerne opbygget fra kildetræerne i test 1 alle er meget ens. Dette resultat er som forventet, idet

31 3.3 Matrix repræsentation med parsimony 31 Figur 3.9: MRP anvendt på to kildetræer. (a) og (b) viser kodningen af kildetræerne ud fra Baum/Ragans skema. (c) viser den sammensatte datamatrice og det resulterende supertræ. kildetræerne næsten er identiske og derfor ikke giver anledning til mange uløste knuder, når de sammensættes til et supertræ. Supertræerne i test 2 og 3 varierer imodsætning hertil mere indbyrdes, hvilket er forventeligt på grund af de mange grene med unikke blade indeholdt i hvert kildetræ. Samlet set er supertræerne i test 1 bedst til at gengive informationen fra kildetræerne, hvorimod test 2 og 3 viser, at præcisionen af supertræerne falder efterhånden, som kildetræerne gøres mere forskellige. 3.3 Matrix repræsentation med parsimony Baum (1992) og Ragan (1992) foreslog uafhængigt af hinanden en optimeringsbaseret teknik til supertrækonstruktion, som gør det muligt at kombinere både kompatible og inkompatible kildetræer. Metoden betegnes MRP (matrix repræsentation med parsimony), da den består af en repræsentationsdel, hvor de enkelte kildetræer kodes i en matrice efterfulgt af en optimeringsdel, i hvilken de kodede kildetræer analyseres med parsimony.

32 32 Supertræmetoder Purvis kodning Baum/Ragan kodning for alle knuder i kildetræet: for alle knuder i kildetræet: scor blade i en forgrening defineret af den givne knude med 1. scor alle blade i en forgrening med 1. scor blade i søster-forgreningen med 0. scor alle andre blade med 0. scor et hvilket som helst andet blad med?. Tabel 3.5: Baum/Ragan og Purvis kodningsskema Metode Ideen i MRP-metoden er at repræsentere topologien for hvert kildetræ i en binær m n matrice i hvilken, de m rækker og n kolonner henholdsvis repræsenterer kildetræets bladmængde og indre knuder. Oversættelse af et kildetræ til en binær datamatrice sker ved at kode de indre knuder med karakteren 0 eller 1 alt afhængig af, om de er forfædre eller ej til et givent blad. Baum (1992) og Ragan (1992) har foreslået et kodningsskema, der tildeler karakteren 1 for hvert blad i en given forgrening og karakteren 0 for de blade, der ikke er til stede i forgreningen. Hvis kildetræet er urodet, tilføjes desuden en rodkunde, som gives karakteren 0 for alle blade. Figur 3.9 (a) viser et eksempel på anvendelse af kodningsskemaet. Det ses, at knude 2 kodes med karakteren 1 for bladene A og B, fordi disse er efterkommere af knude 2. Bladene C og D er derimod ikke efterkommere af knuden, så knuden tildeles karakteren 0 for disse blade. Når topologien for alle kildetræer er oversat til binære datamatricer, kombineres disse til én samlet matrice. I tilfælde, hvor matrixelementer svarer til blade, som ikke er til stede i et givet træ, kodes disse som manglende med karakteren?. Den sammensatte matrice danner nu udgangspunkt for anden del af MRP-metoden, hvor de kodede kildetræer analyseres ved parsimony med henblik på at opnå det endelige supertræ. En parsimonyanalyse opbygger et træ fra en mængde blade ved at beregne det træ, hvis topologi er tættest på topologien i kildetræerne. I praksis betyder dette, at samtlige mulige topologier for bladmængden skal beregnes, hvorefter det ud fra disse skal afgøres, hvilke der kræver færrest ændringer fra kildetræerne. Problemet ved en sådan fremgangsmåde er, at antallet af mulige topologier hurtigt vokser efterhånden, som antallet af blade øges. For at beregne det mest parsimone træ, er det derfor nødvendigt at gøre brug af en heuristisk metode som fx Branch-and-Bound (Hendy and Penny, 1982). Denne metode starter søgningen efter det mest parsimone træ ved først at oprette et midlertidigt træ bestående af tre blade og udbygger derpå træet ved at tilføje de resterende blade på en af de mulige placeringer i dette træ efter en bestemt rækkefølge. Hver gang et blad tilføjes, beregnes hvor meget det nye midlertidige træ afviger fra topologierne i kildetræerne. Hvis indsæt-

33 3.4 Kvartetsupertræer 33 Figur 3.10: De fire mulige kvartettræer for kvartetten M = {1, 2, 3, 4}. telsen af et bestemt blad i det midlertidige træ resulterer i afvigelse større end en foruddefineret øvre grænse, så kan denne topologi og alle øvrige topologier, der kan generes ved tilføjelse af flere blade til dette træ, ignoreres. Sådan fortsættes indtil alle blade er tilføjet det midlertidige træ, og det mest parsimone træ dermed er fundet. I praksis er det muligt, at en parsimonyanalyse giver anledning til mere end et parsimonytræ. Hvis dette er tilfældet, beregnes et konsensustræ af de parsimone træer, som så vil udgøre supertræet. Purvis (1995) har argumenteret for, at Baum (1992) og Ragans (1992) kodningsskema introducerer redundant information i datamatricen, så metoden i nogle tilfælde vælger et bestemt supertræ frem for et andet, selvom der er lige evidens for begge. Eksempelvis indeholder datamatricen i figur 3.9 (a) mere information end nødvendigt, da informationen om, at bladet D er forfader til bladene A og B både forekommer under kunde 1 og 2. Når de to matricer i figur 3.9 (a) og (b) kombineres og senere analyseres ved en parsimonymetode, er der således to indre knuder, som støtter topologien ((A, B), D) og en indre knude, som støtter topologien ((A, D), B). Topologien ((A, B), D) vælges derfor som supertræ. Dette valg er ikke berettiget, fordi en hvilken som helst position af bladet C i figur 1 (b) vil producere en anden indre knude, der støtter topologien ((A, D), B). For at eliminere den påståede redundans har Purvis (1995) derfor foreslået en mindre ændring i kodningsproceduren, som går ud på kun at tildele søsterforgreninger karakteren 0 og mere fjerne slægtninge karakteren?. Forskellen på de to kodningsprocedurer er sammenfattet i tabel Kvartetsupertræer Piaggio-Talice et al. (2004) har foreslået en metode til konstruktion af supertræer fra vægtede kvartettræer. Metoden betegnes kvartetsupertræer og er ligesom MRP-metoden diskuteret tidligere en optimeringsbaseret teknik bestående af en repræsentationsdel, hvor samtlige kvartettræer identificeres

34 34 Supertræmetoder Figur 3.11: Problemet ved udledning af kvartettræer fra to forskellige kildetræer. Kvartettræet for kvartetten M = {1, 2, 3, 4} kan ikke udledes, fordi bladene er fordelt over kildetræ T 1 og T 2. i kildetræerne efterfulgt af en optimeringssdel, i hvilken kvartettræerne kombineres til et samlet supertræ. Givet en bladmængde S = {1, 2,..., N} betegner en kvartet M en delmængde af præcis fire blade fra S. Delmængden M = {1, 2, 3, 4} er et eksempel på en kvartet fra S. I alt inducerer S ( n 4) = O(n 4 ) kvartetter, hvor n er antallet af blade i S. Et kvartettræ T (M) angiver de indbyrdes relationer mellem bladene indeholdt i en kvartet. For hver kvartet induceret af S eksisterer der fire forskellige kvartettræer. Figur 3.10 viser de fire kvartettræer for kvartetten M = {1, 2, 3, 4}. De tre første træer fra venstre repræsenterer de mulige binære kvartettræer, mens det sidste kvartettræ repræsenterer den ikke-binære udgave. Topologien for et binært kvartettræ er unikt beskrevet ved splittet induceret af den indre kant. De binære kvartettræer i figur 3.10 betegnes derfor 1, 2 3, 4, 1, 3 2, 4 og 1, 4 2, 3. Konstruktion af supertræer fra kvartettræer adskilder sig fra konstruktion af konventionelle fylogenier fra kvartettræer (se Stimmer and Haeseler (1996)). I konventionelle fylogenier tages udgangspunkt i primære data som fx afstandsmatricer, hvilket betyder, at et kvartettræ kan udledes for alle kvartetter i datamængden. Samme mulighed haves ikke ved konstruktion af supertræer fra en mængde overlappende kildetræer, da bladene i de enkelte kvartetter i mange tilfælde er fordelt over flere kildetræer. Situationen er skitseret i figur 3.11, hvoraf det fremgår, at kvartettræet for kvartetten {1, 2, 3, 4} ikke kan udledes fra kildetræ T 1 og T 2, fordi bladene 1, 2 og 3 er indeholdt i T 1 og bladet 4 i T 2 således, der ikke haves nogen information om relationerne mellem alle fire blade. Den ofte store mængde af kvartetter for hvilke, der ikke kan udledes et kvartettræ, betyder, at et supertræ konstrueret alene ud fra de identificerede kvartettræer vil være meget upræcist. For at opnå det

35 3.4 Kvartetsupertræer 35 Figur 3.12: De binære kvartettræer for kvartetterne J og K. Tallet ved hvert kvartettræ angiver trælængden. mest præcise supertræ er det derfor nødvendigt at benytte en strategi til at finde frem til de manglende kvartettræer. I konventionelle fylogenetiske metoder haves et mål for konfidensen af de forskellige kvartettræer for en given kvartet. Et eksempel er givet i figur 3.12, hvor kvartettræerne for de to kvartetter J og K alle inkluderer information om trælængden. Disse trælængder kan fx bruges i en maksimum parsimony analyse til at afgøre hvilke træer, der indeholder færrest ændringer og dermed er det bedste træ jf. afsnit om parsimonyanalyse. De bedste kvartettræer for J og K vil henholdsvis være 1, 2 3, 4 og 5, 6 7, 8, fordi disse har den mindste trælængde og derfor indeholder færrest ændringer. Trælængderne i J er tættest på hinanden, hvilket betyder, at fejl i datasættet (fx misalignments) let kunne have ændret resultatet. I K er der omvendt et stort interval mellem trælængderne. Dette betyder, at der skal have været mange fejl i datasættet for, at kvartettræet er ukorrekt valgt. Konfidensen for kvartetten K er derfor størst. Samme fremgangsmåde kan ikke benyttes i forbindelse med konstruktion af et supertræ fra kvartettræer, fordi kildetræerne ikke indeholder ekstra information som trælængder. Kvartettræer må derfor vægtes ud fra deres frekvens blandt kildetræerne for at opnå et tilsvarende konfidensmål for udvælgelse af det bedste kvartettræ.

36 36 Supertræmetoder Metode For at opfylde ovenstående krav til supertrækonstruktion fra kvartettræer indeholder kvartetsupertræmetoden både en strategi for inferering af manglende kvartettræer samt en vægtfunktion til vægtning af de enkelte binære kvartettræer. Den overordnede fremgangsmåde er derfor en opdeling af inputkildetræerne i kvartettræmængder, tildeling af en vægt til hvert enkelt kvartettræ, inferering af manglende kvartettræer og til sidst opbygning af et enkelt supertræ fra kvartettræerne. Kvartetopdeling og -vægtning Kvartetopdelingen forløber ved først at beregne den begrænsede kvartettræmængde Q(T ) for hvert kildetræ T. Q(T ) udgør mængden af alle kvartettræer induceret af T. Figur 3.13 viser et eksempel på mængden af binære kvartettræer induceret af et træ T. Herefter tælles, hvor mange gange hvert kvartettræ T (M) for alle kvartetter M i S er til stede i disse mængder. Hvis et kvartettræ T (M) for kvartetten M er til stede blandt mængderne Q(T ), så er frekvensen f(t (M)) lig antallet af gange, T (M) er til stede blandt mængderne divideret med antallet af gange, et hvilket som helst kvartettræ for M er til stede blandt mængderne. I alle andre tilfælde er f(t (M)) = 0. Vægten w(t (M)), der gives hvert enkelt kvartettræ, er defineret som følger: w(t (M)) = { log(f(t (M))) hvis f(t (M)) > 0 r hvis f(t (M)) = 0 hvor værdien af r altid sættes højere end den maksimale værdi af log(f(t (M))). Definitionen indikerer, at jo mindre vægt et kvartettræ har, des bedre understøttet er det af kildetræerne. Det bedste kvartettræ for en given kvartet er derfor det, som har den mindste vægt. De vægtede kvartettræer danner nu udgangspunkt for optimeringsdelen, hvor problemet består i at finde et supertræ indeholdende alle blade fra kildetræerne, der minimerer summen af de vægtede kvartettræer. Problemet er NP-fuldstændigt, eftersom det er en generalisering af Maximum Quartet Consistency, der også er NP-fuldstændigt (se Berry et al. (1999)). Kvartetsupertræmetoden anvender derfor en variant af Willsons (1999) heuristiske local inconsistency metode, der bygger fylogenier fra kvartettræer. Opbygning af supertræ Willsons (1999) metode opbygger et samlet træ fra mængden af vægtede kvartettræer ved at tilføje arter en ad gangen til det endelige træ. For hver

37 3.4 Kvartetsupertræer 37 Figur 3.13: Mængden af binære kvartettræer induceret af T. De inducerede kvartettræer er alle kompatible med T. mulig placering af en given art beregnes den lokale inkonsistens, der opstår ved placering af en ny art på en bestemt position i træet. De bedste placeringer er dem med den laveste lokale inkonsistens. Målingen af den lokale inkonsistens i et træ T med bladmængde S kræver, at der defineres følgende størrelser: Antag at M er en kvartet, og T (M) er et kvartettræ med en minimal vægt w(t (M)), så defineres overskuddet (excess) af T på en kvartet M som { w(t M) w(t (M)) hvis T M T (M) e(t, M) = w(t M) w(u(t, M)) ellers Det første udtryk i definitionen angiver excess-værdien i tilfældet, hvor det minimalt vægtede kvartettræ T (M) er inkompatibelt med træet T. Det vil sige, hvis kvartettræet T M i T ikke er identisk med T (M). Hvis T (M) omvendt er kompatibelt med T, og de to kvartettræer dermed er identiske, så beregnes excess-værdien som angivet ved det andet udtryk i definitionen. Eftersom w(t M) i dette tilfælde antager samme værdi som w(t (M)), er det nødvendigt at anvende vægten for det næstbedste kvartettræ U(T, M) for at kunne beregne excess-værdien. Det næstbedste kvartettræ er det, som har den mindste vægt blandt de resterende kvartettræer for en given kvartet. Den lokale inkonsistens LI(T, x) for et bestemt blad x fra S kan nu findes som den maksimale excess-værdi blandt alle kvartetter indeholdende x. Med ovenstående definitioner på plads kan Willsons (1999) metode for opbygning af et træ fra vægtede kvartettræer forklares. Antag at S er mængden

38 38 Supertræmetoder Figur 3.14: Et træ W 4 med blade S 4 = {1, 2, 3, 4} og de fem mulige placeringer for et nyt blad 5. De fem placeringer betegnes 5a 5e (Willson, 1999, s. 678) af alle blade fra de vægtede kvartettræer og W k er et træ med bladmængde S k (S k S). Det ønskes nu at indsætte et nyt blad x fra S S k i træet W k. I figur 3.14 er givet et eksempel på et træ W 4 med bladmængden S 4 = {1, 2, 3, 4} og de mulige placeringer af det nye blad 5. Som det fremgår af figuren, er der fem forskellige placeringer. For hver mulig placering i af bladet x i træet W k opnås et prøvetræ W k (x, i). Den lokale inkonsistens for den i te placering af x defineres som g(x, i) = LI(W k (x, i), x) og betegner den værst mulige modsætning for bladet x, hvis dette indsættes i W k med placering i. En høj positiv værdi for g(x, i) indikerer, at placering i af bladet x sandsynligvis ikke er korrekt, mens en lille positiv værdi indikerer muligheden for, at W k (x, i) er korrekt, men at der er nogle fejl i data. En negativ værdi betyder derimod, at placeringen er kompatibel med alle kvartetter indeholdende x. Den bedste placering af x er derfor den, der minimerer g(x, i). Hvis der findes en unik placering i, som minimerer g(x, i), så betegner P (x) den bedste placering af x. I mange tilfælde forekommer der dog flere placeringer i for hvilke, g(i, x) er minimal, og det er derfor nødvendigt at benytte en form for tie-breaking (uafgjort) regel. I kvartetsupertræmetodens anvendelse af Willsons (1999) metode brydes ties tilfældigt og med lige sandsynlighed. Den tilfældige brydning af ties betyder, at der kan opstå forskellige supertræer ved gentagne anvendelser af metoden på det samme input. Metoden kan illustreres ud fra eksemplet i figur 3.14 og de hypotetiske data i tabel 3.6. Betragtes eksempelvis placering 5b ses, at e(w 4 (5, 5b), {1, 2, 3, 5}) = = 0.489, idet placering 5b inducerer kvartettræet W 4 (5, 5b) {2, 3, 4, 5} = 2, 5 3, 4 med vægt 0.831, mens det minimalt vægtede træ for denne kvartet er 2, 3 4, 5 med vægt e(w 4 (5, 5b), {1, 2, 4, 5}) = = 0.356, da placering 5b inducerer kvartettræet W 4 (5, 5b) {1, 2, 4, 5 = 1, 2 4, 5 med vægt Dette kvartettræ har den mindste vægt, hvilket betyder, at det næstbedste kvartettræ 1, 4 2, 5 med vægt identificeres. De øvrige excess-værdier for 5b beregnes på samme måde, hvilket

39 3.4 Kvartetsupertræer 39 Blade Vægte a b c d a, b c, d a, c b, d a, d b, c Tabel 3.6: Hypotetiske data for placering af de fem blade i figur Modificeret udgave af tabellen i Willson (1999, s. 688). betyder, at den maksimale excess for placering 5b bliver g(5, 5b) = Lignende beregninger foretages for hver af de andre placeringer af blad 5, og det findes at g(5, 5e) = er mindre end alle andre værdier af g(5, i). Dette betyder, at P (5) = 5e, hvormed 5e er den bedste placering. Metoden kan bruges rekursivt til at bygge et træ indeholdende alle blade fra S. Begyndende udvælges en kvartet, for hvilken der haves høj konfidens i korrektheden af T (M), og samtidig sættes W 4 = T (M) og S 4 = M. I dette tilfælde vælges en tilfældig kvartet M fra S og kvartettræet med den mindste vægt for M anvendes som det initierende træ W 4. Hvis S k S, så vælges et blad x i mængden S S k, hvorefter ovennævnte procedure bruges til indsættelse af x i W k. Når S k = S, haves det konstruerede supertræ i form af W k. Det skal i den forbindelse bemærkes, at den tilfældige rækkefølge i tilføjelsen af nye arter til W k, kan have indflydelse på topologien af det endelige supertræ. Piaggio-Talice et al. (2004) foreslår ikke nogen løsning på denne problemstilling, så dette vil være et oplagt sted at forbedre metoden. En mulighed kunne være at vælge forskellige rækkefølger for tilføjelsen af en ny art og beregne supertræet for hvert af disse tilfælde. De forskellige supertræer kunne derpå gives som input til en konsensusmetode, som så vil returnere et enkelt konsensussupertræ for de forskellige supertræer (se Bryant (2003)). Alternativt kunne det vælges at opstille en rækkefølge for tilføjelsen af de forskellige arter baseret på nogle foruddefinerede kriterier. Kvartetinferens Som tidligere nævnt er det ikke muligt at udlede alle kvartettræer for kvartetterne indeholdt i kildetræmængden. Kvartetsupertræmetoden indeholder derfor en metode til at inferere de bedste kvartettræer blandt mængden af manglende kvartettræer. Inputtet til inferensmetoden består både af en supported (understøttet) og en rejected (afvist) mængde. Hvert element i den supportede mængde repræsenterer et kvartettræ, som er det mest understøttede for den pågældende bladmængde, mens hvert element i den afviste mængde repræsenterer et kvar-

40 40 Supertræmetoder Figur 3.15: Alle quintettræerne som afspejler kvartettræet 1, 2 3, 4 med et ekstra tilføjet blad (Piaggio-Talice et al., 2004, s. 179). tettræ, som ikke er acceptabelt for dets bladmængde et af de to øvrige kvartettræer for bladmængden betragtes i stedet for som det korrekte. Kvartettræerne tilføjes de to mængder ud fra følgende kriterier: Hvis w(t (M)) er mindre end de to øvrige kvartettræer på M, så tilføjes T (M) den supportede mængde. Hvis w(t (M)) er lig et af de to øvrige kvartettræer på M, så tilføjes det kvartettræ, der er forskellig fra disse to, den afviste mængde. Hvis w(t (M)) er lig de to øvrige kvartettræer haves ingen information til at udvælge et af de tre kvartettræer på M fremfor de andre, så kvartetten ignoreres. Inferensmetoden består i at tildele alle potentielle kvartettræer for hver kvartet M i S en strafpointtæller. For hvert kvartettræ bygges alle quintettræer (binære træer med fem blade) for alle quintetter (delmængder af fem) i S. Hver quintetmængde giver anledning til fem quintettræer, og hvert af disse afspejler fire kvartettræer foruden kvartettræet T (M). Figur 3.15 viser et eksempel på alle quintettræerne, der afspejler kvartettræet 1, 2 3, 4 med et ekstra blad tilføjet. Strafpointtælleren øges med én for hvert af disse kvartettræer, som er til stede i den afviste mængde og for hvert forskelligt kvartettræ for den samme kvartet, der er til stede i den supportede mængde. Valget af de bedste kvartettræer kan herefter baseres på værdien af de enkelte strafpointtællere. Hvis der for hver kvartet M i S findes et kvartettræ med færre strafpoint end de to øvrige, så vælges dette kvartettræ som det korrekte for M og gives fuld support. Hvis antallet af strafpoint er uafgjort

41 3.4 Kvartetsupertræer 41 mellem de to kvartettræer med det mindste antal point, eller hvis alle tre kvartettræer har det samme antal strafpoint, ses der bort fra kvartetten M. Outputtet fra inferensmetoden er mængden af de mest understøttede kvartettræer. Dette output kan oversættes til vægtfunktionen, der benyttes i forbindelse med træbygningen ved at give det fuldt supportede kvartettræ for hver kvartet en vægt på nul og de to øvrige en vægt på r. For de kvartetter, hvor der ikke eksisterer et fuldt supportet kvartettræ, gives vægten r.

42 42 Supertræmetoder

43 Kapitel 4 Supertræsoftware Størstedelen af alle eksisterende supertræer er konstrueret ved hjælp af MRP, der fortsat er den mest anvendte supertræmetode. Dette skyldes blandt andet metodens generelt gode perfomance i simulationsstudier og muligheden for at anvende eksisterende software til parsimonydelen (Bininda-Emonds, 2004a). Siden introduktionen af MRP er mange af de øvrige supertræmetoder blevet implementeret i forskellige softwarepakker, hvilket giver mulighed for at afprøve disse i praksis og samtidig undersøge hvilke metoder, der konstruerer de mest præcise supertrær. Formålet i det følgende vil derfor være at afprøve et udsnit af supertræprogrammer og sammenligne forskelligheden og kvaliteten af de producerede supertræer. 4.1 Datasæt Afprøvningen af de forskellige supertræprogrammer vil tage udgangspunkt i fylogenier fra Kenney and Page s (2002) supertræstudium over søfuglegruppen Procellariiformes. Det oprindelige supertræ er sammensat af syv mindre fylogenier, som til sammen udgør de 121 arter i gruppen. Fylogenierne er alle visualiseret i artiklen og kan derfor manuelt oversættes til en træfil i et passende format. De benyttede fylogenier er angivet i figur 4.1 og er udvalgt blandt de syv, fordi deres samlede antal blade har en størrelse, der gør det muligt at køre alle programmer i tabel 4.1 inden for en overskuelig tidsramme. Datasættet med kildetræerne er samlet i filen SeaBirds, som kan hentes fra u020110/software.html.

44 44 Supertræsoftware Puffinus_mauretanicus Puffinus_yelkouan Puffinus_gavia Puffinus_huttoni Puffinus_puffinus Puffinus_lherminieri Puffinus_auricularis Puffinus_assimilis Puffinus_nativitatis Puffinus_bulleri Puffinus_pacificus Puffinus_carneipes Puffinus_creatopus Puffinus_tenuirostris Puffinus_griseus Puffinus_gravis Fulmarus_glacialis Pseudobulweria_aterrima Pseudobulweria_rostrata Calonectris_diomedea Puffinus_pacificus Bulweria_bulwerii Procellaria_cinerea Fulmarus_glacialis Macronectes_giganteus Pagodroma_nivea Pterodroma_baraui Pterodroma_nigripennis Pelecanoides_urinatrix Diomedea_exulans Oceanodroma_leucorhoa (a) (b) Puffinus_mauretanicus Puffinus_yelkouan Puffinus_puffinus Puffinus_assimilis Calonectris_diomedea Procellaria_cinerea Bulweria_bulwerii Fulmarus_glacialis Fulmarus_glacialoides Macronectes_giganteus Diomedea_amsterdamensis Diomedea_epomophora Phoebastria_albatrus Phoebastria_immutabilis Phoebetria_fusca Phoebetria_palpebrata Thalassarche_bulleri Thalassarche_chrysostoma Hydrobates_pelagicus Oceanodroma_castro Figur 4.1: Fylogenier over søfugle (Kennedy and Page, 2002, s ). 4.2 Programmer Supertræprogrammerne, som gennemgås i det følgende, er listet i tabel 4.1 sammen med deres tilhørende webadresse. Listen er også tilgængelig online fra u020110/software.html. Programmerne er alle enten kommandobaserede programmer eller onlineprogrammer, der kan benyttes via webben. I det følgende vil de kommandobaserede programmer Quartet Suite, Clann, r8s samt onlineprogrammerne Supertree Server (Min- CutSupertree) og Supertree Server (MRP og MinCutSupertree) blive gennemgået i nævnte rækkefølge. For hvert program gives en kort gennemgang (c)

45 4.2 Programmer 45 Program Quartet Suite Clann r8s MinCutSupertree MRP og MinCutSupertree Webside Tabel 4.1: Supertræprogrammer og tilhørende webside. af den algoritmiske ide, som programmet implementerer samt et eksempel på en kørsel med fylogenierne i figur 4.1 som input. De returnerede supertræer er alle vist i bilag B. Specifikke detaljer som filformater og systemkrav angives desuden i en faktaboks i begyndelsen af hver programbeskrivelse. Kørslerne er afhængig af programmets systemkrav foretaget på en Pentium IIII 2.4 ghz, 264 MB ram maskine under Windows XP og en Pentium IIII 3 ghz, 1 GB ram under Redhat Linux version Quartet Suite Quartet Suite af Raul Piaggio implementerer kvartetsupertræmetoden, der blev gennemgået i afsnit 3.4. Programpakken udgøres af de fire kommandobaserede programmer t2q, rectify, assemble og tdist, der tilsammen er i stand til at opbygge et supertræ fra en mængde kildetræer. Quartet Suite faktaboks Metode: KvartetSupertræer. Input: Kompatible og inkompatible kildetræer i nexusformat. Output: Supertræ i nexusformat. Eksempel: Figur B.5. Systemkrav: Pc eller Unix Webside: Referencer: (Piaggio-Talice et al., 2004) BEMÆRK: - t2q Programmet t2q (trees to quartets) har til formål at nedbryde de enkelte kildetræer til kvartetfrekvenser eller kvartetvægte. En kvartetfrekvens angiver, hvor ofte et bestemt deltræ med fire taxa forekommer blandt de kildetræer, der indeholder denne mængde af fire blade, mens vægten for en kvartettopologi betegner log(frekvensen). Programmet kan køres med en af de tre parametre -mf (frequencies), -mw (weights) eller -mr (rectify) afhængig af hvilket output, der ønskes. Parameteren -mf giver et output indeholdende frekvensen for kvartettopologierne, -mw giver et output indeholdende kvartetvægtene, og -mr giver et output, der er kompatibelt med metoden implementeret i programmet rectify. En kørsel af t2q forløber som følger:

46 46 Supertræsoftware >t2q -mw SeaBirds.nex > SeaBirds.w Resultatet fra kørslen gemmes i filen SeaBirds.w, som efterfølgende kan benyttes som input til programmet assemble. Output til brug i programmet rectify kan opnås ved en lignende programkørsel: >t2q -mr SeaBirds.nex > Seabirds.wr rectify Programmet rectify har til formål at inferere mængden af kvartettræer for de kvartetter, hvis blade er fordelt over forskellige kildetræer (se evt. afsnit 3.4 vedr. manglende kvartettræer). Programmet kan køres med en af de tre parametre -mn (no change), -mc (changed quartets) og -mf (full support). Parameteren -mv giver en topologi for de manglende kvartettræer uden at ændre kvartettræerne, som er til stede i inputtet, -mc giver en topologi for de manglende kvartettræer og ændrer kvartettræerne i inputtet, hvis der findes en mere passende blandt de manglende kvartettræer, og -mf finder topologierne for de manglende kvartettræer og inddrager disse i inputtet sammen med de eksisterende kvartettræer. En kørsel af rectify på SeaBirds.wr forløber som følger: >rectify -mn SeaBirds.wr SeaBirds.w Reading: SeaBirds.wr 40 iterations remaining... Total demerits in last pass: iterations remaining.... Total demerits in last pass: 405 No changes from previous pass. Resultatet fra kørslen gemmes i Seabirds.w, som herefter kan bruges som input til programmet assemble. assemble Programmet assemble konstruerer et supertræ fra en komplet mængde af vægtede kvartettræer. En kørsel af assemble med de vægtede kvartettræer indeholdt i filen SeaBirds.w som input forløber således: >assemble SeaBirds.w SeaBirdsSupertree.nex >Reading: SeaBirds.w > 5% Det konstruerede supertræ er vist i figur B.5 side 67.

47 4.2 Programmer 47 tdist Programmet tdist er ikke en del af selve træbygningsprocessen, men kan benyttes til at undersøge, hvor godt det beregnede supertræ stemmer overens med informationen i kildetræerne. Programmet tager to træmængder som input og beregner den gennemsnitlige normaliserede asymmetriske kvartet fit fra en mængde til en anden. Beregningen af den gennemsnitlige asymmetriske kvartet fit er en udvidelse af den normaliserede triplet distance for rodede træer til kvartetter beskrevet i Page (2002). En kørsel af tdist med SeaBirdsSupertree.nex og SeaBirds.nex forløber som følger: >tdist SeaBirdsSupertree.nex SeaBirds.nex > Clann Clann-programmet af Christopher Creevey implementerer supertræmetoderne most Similar Supertree (dfit), maximum Quartet fit (qfit), maximum Splits fit (sfit) og matrix repræsentation med parsimony (mrp). Programmet anvendes ved først at indlæse kildetræerne i hukommelsen og efterfølgende specificere valget af supertræmetode ved en af parametrene: dfit, sfit, qfit eller mrp. Under indlæsningen af kildetræerne beregner programmet desuden samtlige mulige supertrætopologier, hvilket er nødvendigt for, at de tre førstnævnte supertræmetoder kan bruges. Clann faktaboks Metode: Matrix repræsentation med parsimony, most Similar Supertree, maximum Quartet fit og maximum Splits fit. Input: Kompatible og inkompatible kildetræer i phylipformat (uden trælængder og labels for indre knuder). Output: Supertræer i phylip- og ps-format i filerne heuristic-result.txt og supertree.ps. Eksempel: Figur B.1, B.2, B.3 og B.4. Systemkrav: Pc, Unix eller Mac Webside: Referencer: (Creevey, 2003) BEMÆRK: Labels i kildetræer må ikke indeholde mere end tyve tegn. For at undgå fejl er det derfor bedst at oversætte samtlige labels til tal, før de indlæses i Clann. Fejlmeddelelsen ved for lange labels er segmentation error. Most Similar Supertree (dfit) Metoden most Similar Supertree søger at finde det korrekte supertræ ved at sammenligne en afstandsmatrice udledt for hvert enkelt kildetræ med en afstandsmatrice udledt for ét af de mulige supertræer. Forskellen mellem

48 48 Supertræsoftware matricerne scores, og summen af scoren fra alle sammenligninger beregnes. Det pågældende supertræ sættes herefter til at have den beregnede score. Sammenligningen af et supertræ med et kildetræ er kun mulig, hvis begge træer har samme størrelse. Supertræet må derfor nødvendigvis for hver sammenligning reduceres til at have samme størrelse som kildetræet. Reduktionen foretages ved at beskære de blade fra supertræet, som ikke findes i kildetræet. Når beskæringen er fuldendt beregnes en afstandsmatrice for supertræet ved at tælle antallet af knuder, der adskiller hvert enkelt blad fra alle andre blade. Den beregnede afstandsmatrice har samme størrelse som kildetræets afstandsmatrice, hvilket gør de to sammenlignelige. Forskellen mellem de to afstandsmatricer findes ved først at beregne den absolutte værdi af forskellen mellem matricerne. Summen af de absolutte værdier beregnes efterfølgende, og denne score er nu et mål for forskellen mellem det undersøgte kildetræ og supertræ. Hvis det beskårede supertræ og kildetræet er ens, vil scoren være nul. Størrelsen af træscoren og det undersøgte kildetræ er ikke uafhængige, idet store træer resulterer i en høj score og små træer i mindre scorer. Metoden implementerer af den grund en normaliseringsfunktion, der giver brugeren mulighed for at normalisere mod denne effekt på træscoren sådan, at både små og store kildetræer får samme indflydelse på supertræet. Normaliseringen kan foretages ved at specificere parameteren comparision, der normaliserer afstandsmatricerne, så hvert kildetræ har samme indflydelse på supertræet uafhængig af træstørrelsen. En kørsel af programmet forløber således: clann> exe SeaBirds.phy...(kildetræer indlæses i hukommelsen)... clann> set criterion=dfit Scoring criterion set to Most Similar Supertree (dfit) clann>hs swaps=nni nreps=10 maxswaps= weight=comparision Repetition 1 progress indicator: = = = = = Repetition 2 progress indicator: = = = = = =. Repetition 10 progress indicator: = = = = =...(udskriver supertræer på skærm)... Supertree 144 of 144 score = Time taken: 5 Minutes 17 Seconds clann> Det konstruerede supertræ er vist i figur B.2 side 66. Tiden for konstruktionen af supertræet er 5 minutter og 17 sekunder.

49 4.2 Programmer 49 Maximum Splits fit (sfit) Metoden maximum Splits fit søger at finde det korrekte supertræ gennem sammenligning af samtlige splits for de foreslåede supertræer og for kildetræerne (se afsnit for definition af splits). Sammenligningen foretages ved at beregne en score, der er defineret som antal splits delt mellem supertræet og mængden af kildetræer. Scoren benyttes som optimeringskriterium til bestemmelse af det supertræ, som deler det største antal splits med mængden af kildetræer. Det kan vælges at normalisere den beregnede score, så det undgås, at store kildetræer får en større vægt end små kildetræer. Normaliseringen foretages ved at specificere parameteren splits, der normaliserer scoren, så hvert kildetræ har samme indflydelse på den resulterende supertrætopologi uafhængig af dets størrelse. En kørsel af programmet forløber således: clann> exe SeaBirds.phy...(kildetræer indlæses i hukommelsen)... clann> set criterion=sfit Scoring criterion set to maximum Splits fit (sfit) clann>hs swaps=nni nreps=1 maxswaps=10000 weight=splits Repetition 1 progress indicator: = = = = =...(udskriver supertræer på skærm)... Supertree 451 of 451 score = Time taken 5 Minutes 53 Seconds >clann Det konstruerede supertræ er vist i figur B.3 side 66. Tiden for konstruktionen af supertræet er 5 minutter og 53 sekunder. Maximum Quartet fit (qfit) Metoden maximum Quartet fit søger at finde det korrekte supertræ gennem sammenligning af samtlige kvartettræer for de foreslåede supertræer og for kildetræerne (se afsnit 3.4 for definition af kvartettræer). Sammenligningen foretages ved at beregne en score, som er defineret ved antallet af kvartettræer delt mellem supertræet og mængden af kildetræer. Scoren benyttes som et optimeringskriterium til at bestemme supertræet, der deler det største antal kvartettræer med kildetræerne. Et træ T med n blade inducerer binomialkoefficenten ( n 4) = O(n 4 ). Store træer har således langt flere kvartettræer end små træer. For at undgå at store træer får større indflydelse på supertrætopologien end små træer, kan de beregnede scores normaliseres ved at specificere parametren taxa eller parameteren quartets. Førstnævnte normaliserer dataene, så store træer har større indflydelse end små træer, men ikke i samme grad som hvis der ikke

50 50 Supertræsoftware var foretaget en normalisering. Sidstnævnte normaliserer parametrene, så store og små træer får samme indflydelse på supertrætopologien. En kørsel af programmet forløber således: clann> exe SeaBirds.phy...(kildetræer indlæses i hukommelsen)... clann> set criterion=qfit Scoring criterion set to maximum Quartet fit (qfit) clann>hs swaps=nni nreps=1 maxswaps=10000 weight=taxa Repetition 1 progress indicator: = = = = =...(udskriver supertræer på skærm)... Supertree 295 of 295 score = 0,45070 Time taken: 50 Minutes 18 Seconds clann> Det konstruerede supertræ er vist i figur B.4 side 67. Tiden for konstruktion af supertræet er 50 minutter og 18 sekunder, hvilket indikerer, at qfit er meget tidskrævende i forhold til sfit og dfit, som hver konstruerer supertræet på lidt over 5 minutter. Forøgelsen i tid skyldes, at antallet af kvartettræer, der sammenlignes i qfit, er langt større end antallet af splits og afstandsmatricer, der sammenlignes i henholdsvis sfit og dfit. Matrix repræsentation med parsimony (mrp) Metoden matrix repræsentation med parsimony blev gennemgået i afsnit 3.3. I dette tilfælde anvendes Baum/Ragans kodningsskema til at konstruere datamatricen med kildetræernes topologier. Parsimonyanalysen foretages ved at køre programmet PAUP med datamatricen som input. PAUP er tilgængeligt fra mod køb af en licens og er beskrevet i Swofford (2002). Hvis PAUP ikke er installeret, udskrives en note om at køre programmet på outputfilen Coding.nex. En kørsel af programmet forløber som følger: clann> exe SeaBirds.phy...(kildetræer indlæses i hukommelsen)... clann> set criterion=mrp Scoring criterion set to matrix representation with parsimony (MRP) clann> hs swap=nni Error calling paup, please execute the file Coding.nex in paup to perform the parsimony step. clann> Som alternativ til PAUP kan det vælges at anvende programmer fra PHYLIPpakken til udførelse af parsimonyanalysen. PHYLIP er frit tilgængeligt fra

51 4.2 Programmer 51 websiden som også inkluderer en beskrivelse af programpakken. Programmet penny implementerer en branch-and-bound-algoritme, der finder alle parsimone træer fra 0 1 karakterdata, og programmet consense implementerer en konsensus-algoritme til at finde konsensustræet for en mængde parsimone træer. Supertræet kan derfor konstrueres ved først at oversætte datamatricen i filen Coding.nex til en phylipmatrice og derpå køre penny og consense i nævnte rækkefølge. En fortsættelse af programkørslen ved hjælp af disse programmer forløber som følger: Please enter filename> Coding.phy...(liste over default settings)... Are these settings correct (type Y or the letter for one to change) Y...(udskriver beregninger på skærm)... Search broken of Output fra penny udskrives i filerne outfile og treefile. Sidstnævnte indeholder samtlige beregnede parsimone træer og anvendes som input til programmet consense: Please enter filename> treefile...(udskriver default settings)... Are these settings correct (type Y or the letter for one to change) Y Supertræet (konsensustræet) af de parsiomone træer kan herefter findes i filen treefile. Supertræet er vist i figur B.1 side r8s Programmet r8s af Michael J. Sanderson er et program til estimering af absolutte hastigheder for molekylærevolution og divergenstider i en fylogeni. Programmet kan også anvendes til konstruktion af supertræer, da det implementerer metoden matrix repræsentation med parsimony (MRP) (se afsnit 3.3). I forhold til mrp-funktionen implementeret i Clann-programmet giver r8s mulighed for både at anvende Baum/Ragans og Purvis kodningsskemaer. Brugen af MRP-funktionen i r8s forløber lettest ved at angive følgende del af programparametrene sidst i filen indeholdende kildetræerne: begin rates; mrp method=baum weight=no; end;

52 52 Supertræsoftware r8s faktaboks Metode: Matrix repræsentation med parsimony. Input: Kompatible og inkompatible kildetræer i nexusformat. Output: Supertræ i nexus-format. Eksempel: Figur B.6. Systemkrav: Unix eller Mac Webside: Referencer: (Ragan, 1992) og (Sanderson et al., 1998). BEMÆRK: - Kørslen af programmet forløber i så fald som følger: r8s -f datafile > mrp.nex Parsimonyanalysen af den returnerede datamatrice mrp.nex kan ikke foretages med r8s, men kan som beskrevet i afsnit foretages med programmerne PAUP eller PHYLIP. Anvendes PHYLIP til parsimonyanalysen opnås supertræet i figur B.6 side Supertree Server (MinCutSupertree) Onlineprogrammet Supertree Server (MinCutSupertree) af Roderic D. M. Page implementerer supertræmetoderne MinCutSupertree og Modified Min- CutSupertree. Programmet anvendes ved at uploade træfilen indeholdende kildetræerne, specificere valget af supertræmetode og til sidst klikke på knappen Build Supertree. Et skærmbillede af programmets brugergrænseflade er givet i figur 4.2. Metode: Input: Output: Eksempel: Systemkrav: Webside: Supertree Server (MinCutSupertree) faktaboks MinCutSupertree og Modified MinCutSupertree. Kompatible og inkompatible kildetræer i nexus- eller phylipformat. Supertræ i ps-, pdf-, phylip- og nexus-format. Figur B.8 og B.7. Benyttes online Referencer: (Semple and Steel, 2000) og (Page, 2002). BEMÆRK: - MinCutSupertree bygger videre på Build-algoritmen af Aho et al. (1981). Metodens overordnede strategi er konstruktionen af en graf S T fra mængden af kildetræer T i hvilken, knuderne repræsenterer arter, og knuderne a og b er forbundne, hvis a og b er indeholdt i samme delmængde (cluster) i mindst ét af kildetræerne. Dernæst anvendes en minimum-cut-metode på den konstruerede graf S T, som efter et antal iterationer returnerer et supertræ. Algoritmen er udførligt beskrevet i Semple and Steel (2000). Det konstruerede supertræ er vist i figur B.8 side 69.

53 4.2 Programmer 53 Figur 4.2: Skærmbillede af Supertree Server (MinCutSupertree). Modified MinCutSupertree søger at undgå en række observerede problemer i den oprindelige metode. Eksempelvis er MinCutSupertree sensitiv over for kildetræernes størrelse og kan i nogle tilfælde resultere i et supertræ, som indeholder væsentligt mindre information end kildetræerne. Den modificerede algoritme er udførligt beskrevet i Page (2002). Det konstruerede supertræ er vist i figur B.7 side Supertree Server (MRP og MinCutSupertree) Onlineprogrammet Supertree Server (MRP og MinCutSupertree) implementerer metoderne matrix repræsentation med parsimony (MRP) (se afsnit 3.3) og MinCutSupertree. Programmet anvendes ved at uploade en træfil med kildetræer, specificere valget af supertræmetode og dernæst klikke på knappen Build Supertree. Brugergrænsefladen er stort set identisk med den vist i figur 4.2. Supertree Server (MRP og MinCutSupertree) faktaboks Metode: Matrix repræsentation med parsimony og MinCutSupertree. Input: Kompatible og inkompatible kildetræer i nexusformat. Output: Supertræ i nexusformat. Eksempel: Figur B.9 og B.10. Systemkrav: Benyttes online. Webside: Referencer: (Ragan, 1992) og (Semple and Steel, 2000). BEMÆRK: Websiden er endnu delvist under konstruktion. MRP-funktionen er begrænset til at konstruere supertræer fra en mængde

54 54 Supertræsoftware Figur 4.3: Sammenligning af træer ved hjælp af splits. Den stiplede linje angiver et split i træerne T 1 og T 2. Splittet er ens i begge træer, fordi det opdeler bladene i de samme mængder {a, b} og {c, d, e} i hvert træ. kildetræer, hvis samlede antal blade ikke overstiger 64. Afhængig af størrelsen på bladmængden kan det vælges at foretage en heuristisk-søgning (hvis antallet af blade er <= 64) eller en branch-and-bound-søgning (hvis antallet af blade er < 20). Det konstruerede supertræ er vist i figur B.9 side 69. MinCutSupertree-funktionen implementerer samme version af MinCutsupertreemetoden, som blev gennemgået i det foregående afsnit. Det konstruerede supertræ er vist i figur B.10 side Resultater Som det fremgår af bilag B varierer topologierne blandt de konstruerede supertræer. Dette er forventeligt på grund af de meget forskellige supertræmetoder, som programmerne implementerer. Hvor meget, de enkelte supertræer varierer, er imidlertid relevant at vide, eftersom en stor variation blandt disse indikerer, at topologien afhænger meget af den benyttede supertræmetode. Foruden variationen i supertræertopologier er det væsentligt at kendte til kvaliteten af de enkelte supertræer. Kvaliteten af et supertræ kan ifølge Page (2002) evalueres gennem en undersøgelse af, hvor godt supertræet stemmer overens med kildetræerne, som det er sammensat af. I det følgende vil supertræerne blive sammenlignet ved hjælp af programmet SplitDist ( mailund/split-dist.html), og kvaliteten af de enkelte supertræer vil blive vurderet gennem brug af programmet tdist (

55 4.3 Resultater 55 Tabel 4.2: Similaritetsmatrice for de konstruerede supertræer. Tabelindgangene er farvet efter 3D-diagrammet i figur Sammenligning af supertræer SplitDist sammenligner to træer T i og T j med samme bladmængde og beregner antallet af kanter i T i, som ikke er til stede i T j (Mailund, 2004). Hver kant i et træ T svarer til et split af bladene i to mængder. To kanter fra T i og T j er ens, hvis de opdeler bladende på samme måde. Et eksempel herpå er givet i figur 4.3, hvor splittet angivet ved den stiplede linje opdeler både T 1 og T 2 i bladmængderne {a, b} og {c, d, e}. De to kanter er dermed ens. Anvendes SplitDist på en mængde inputtræer fås en similaritetsmatrice, der angiver similariteten mellem hvert par af træer i inputmængden. Tabel 4.2 viser similaritetsmatricen beregnet for de konstruerede supertræer, der endvidere er visualiseret i 3D-diagrammet i figur 4.4. Det ses, at similariteten mellem supertræerne varierer fra 0.55 til 1. Fire indgange i matricen antager værdien 1, hvilket betyder, at de pågældende supertræer er ens. Som forventet er det supertræer konstrueret med programmer, som implementerer den samme supertræmetode. Den næsthøjeste similaritet opnås mellem supertræer konstrueret ved hjælp af MRP- og MinCutSupertreemetoderne. Similariteten antager i dette tilfælde en værdi mellem 0.8 og 0.95, hvilket indikerer, at de to metoder returnerer meget ens supertræer. Supertræet konstrueret med metoden maximum Quartet fit (qfit) opnår en similaritet tæt på 0.8 med supertræerne konstrueret ved MinCutSupertreemetoderne. Supertræet konstrueret ved kvartetsupertræmetoden (qsuite), der ligesom maximum Quartet fit opbygger supertræer fra kvartettræer, opnår en noget lavere similaritet på omkring sammenlignet med de samme super-

56 56 Supertræsoftware Figur 4.4: Visualisering af matricen i tabel 4.2. træer. Supertræerne, der har den laveste similaritet med de øvrige, er dem, der er konstrueret med metoderne most Similar Supertree (dfit) og maximum Splits fit (sfit). Similariteten ligger i dette tilfælde på omkring Kvalitet af supertræer Programmet tdist fra Quartet Suite programpakken, der blev gennemgået i afsnit 4.2.1, beregner, hvor godt informationen i en mængde træer stemmer overens med informationen i en anden mængde træer. Gentagne kørsler af programmet med kildetræerne og de konstruerede supertræer som input, producerer similaritetsværdierne i tabel 4.3. Som det fremgår af tabellen, opnår alle supertræer en forholdsvis høj similaritet med de tilsvarende kildetræer, hvilket indikerer, at de bevarer en stor del af informationen fra disse. Supertræet med den højste værdi på er konstrueret med MRP-metoden, mens den laveste værdi på opnås af supertræet konstrueret med metoden maximum Splits fit (sfit). Den høje værdi for supertræet konstrueret med MRP stemmer overens med lignende eksperimenter (se fx Bininda-Emonds and Sanderson (2001)), der har vist, at MRP-metoden generelt er god til at bevare informationen fra kildetræerne. Supertræerne konstrueret ved MinCutSupertreemetoderne har også en meget høj similaritet omkring 0.98, mens supertræerne konstrueret ved metoderne most Similar Supertree (dfit) og kvartetsupertræer (qsuite) opnår en lavere similaritet på henholdsvis og Resultaterne stemmer overens med resultaterne fra det foregående afsnit,

57 4.3 Resultater 57 Supertræ tdist-værdi mrp mincut Semple Page r8s cl.mrp qfit dfit qsuite sfit Tabel 4.3: tdist-værdier for supertræerne. idet supertræerne fra MRP- og MinCutSupertreemetoderne stort set er lige gode til at gengive informationen fra kildetræerne og derfor kan sluttes at være meget ens. Det samme kan siges at være gældende for de øvrige supertræer. Samlet set kan det sluttes, at MRP- og MinCutSupertreemetoderne producerer de mest præcise supertræer for fylogenierne i figur 4.1. Metoderne maximum Quartet fit og most Similar Supertree giver de næstbedste supertræer, mens metoderne kvartetsupertræer og maximum Splits fit producerer de mindst præcise supertræer for fylogenierne.

58 58 Supertræsoftware

59 Kapitel 5 Konklusion Supertrækonstruktion repræsenterer et alternativ til opbygning af fylogenier fra molekylære data. Fordelen ved supertræer er, at de sammensættes af eksisterende fylogenier og derfor giver mulighed for at kombinere ellers inkompatible data som molekylære og morfologiske data. Dette betyder endvidere, at supertræer er i stand til at opnå en bredere taksonomisk dækning end fylogenier, der kun opbygges fra én bestemt type data. Formålet med dette speciale har været at undersøge forskellige tilgangsvinkler til supertrækonstruktion. I den forbindelse er supertræmetoderne streng-konsensus-supertræ, MRP (matrix repræsentation med parsimony) og kvartetsupertræer blevet gennemgået. Disse metoder repræsenterer til sammen strategierne anvendt i mange af de øvrige supertræmetoder. Strengkonsensus-supertræ-metoden er endvidere blevet omsat til en konkret implementation i Python 2.2 med henblik på at afteste den observerede forbedring i udførelsestid fra O(n 3 ) til O(n 2 ) tid, hvor n er det samlede antal arter i de anvendte fylogenier. En række test af programmets tidsforbrug peger på, at forbedringen er opnået. Foruden gennemgangen af de nævnte supertræmetoder er forskellige supertræprogrammer blevet afprøvet, og supertræerne konstrueret ved de enkelte programkørsler er blevet sammenlignet for at undersøge forskelligheden og kvaliteten af disse. Sammenligningen af de producerede supertræer viste, at programmerne som forventet returnerer forskellige supertræer på grund af de meget forskellige supertræmetoder, som de implementerer. Supertræerne opnår dog en rimelig similaritet på trods af de forskellige metoder. Kvaliteten af de enkelte supertræer blev undersøgt ved at beregne, hvor godt informationen fra de anvendte fylogenier gengives i supertræet. Samtlige supertræer viste at have en høj kvalitet.

60 60 Konklusion

61 Bilag A Skærmbilleder af webside Figur A.1: Hovedsiden

62 62 Skærmbilleder af webside Figur A.2: Side til download af supertræsoftware. Figur A.3: Side til download af supertræartikler. Inkluderer en kort beskrivelse af hver artikel.

63 63 Figur A.4: Onlineudgave af streng-konsensus-supertræ-programmet. Figur A.5: Vejledning til brug af steng-konsensus-supertræ-programmet via websiden.

22 Hobe. Noter. PS1 -- Hobe. Binære hobe. Minimum-hob og maximum-hob. Den abstrakte datatype minimum-hob. Opbygning af hobe. Operationen siv-ned.

22 Hobe. Noter. PS1 -- Hobe. Binære hobe. Minimum-hob og maximum-hob. Den abstrakte datatype minimum-hob. Opbygning af hobe. Operationen siv-ned. 22 Hobe. Binære hobe. Minimum-hob og maximum-hob. Den abstrakte datatype minimum-hob. Opbygning af hobe. Operationen siv-ned. Indsættelse i hobe. Sletning af minimalt element i hobe. Repræsentation. 327

Læs mere

Kvartetafstand Chris Christiansen

Kvartetafstand Chris Christiansen Kvartetafstand Chris Christiansen 1 af 58 Oversigt Kvartetafstanden. Skitsering af algoritmer. Implementering og tool. Eksperimenter. Visualisering. 2 af 58 Afstand mellem træer 3 af 58 Træer Rodet Urodet

Læs mere

Algoritmisk geometri

Algoritmisk geometri Algoritmisk geometri 1 Intervalsøgning 2 Motivation for intervaltræer Lad der være givet en database over ansatte i en virksomhed Ansat Alder Løn Ansættelsesdato post i databasen Antag, at vi ønsker at

Læs mere

Sortering. Eksempel: De n tal i sorteret orden

Sortering. Eksempel: De n tal i sorteret orden Sortering 1 / 34 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 2 / 34 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden

Læs mere

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for

Læs mere

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for

Læs mere

Intervalsøgning. Algoritmisk geometri. Motivation for intervaltræer. Intervalsøgning. Lad der være givet en database over ansatte i en virksomhed

Intervalsøgning. Algoritmisk geometri. Motivation for intervaltræer. Intervalsøgning. Lad der være givet en database over ansatte i en virksomhed Algoritmisk geometri Intervalsøgning 1 2 Motivation for intervaltræer Intervalsøgning Lad der være givet en database over ansatte i en virksomhed Ansat Alder Løn Ansættelsesdato post i databasen Vi kan

Læs mere

Sortering af information er en fundamental og central opgave.

Sortering af information er en fundamental og central opgave. Sortering 1 / 36 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 6, 9 Mange opgaver er hurtigere i sorteret information (tænk på ordbøger, telefonbøger,

Læs mere

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for

Læs mere

Sortering. Eksempel: De n tal i sorteret orden

Sortering. Eksempel: De n tal i sorteret orden Sortering 1 / 32 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 2 / 32 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden

Læs mere

Sortering af information er en fundamental og central opgave.

Sortering af information er en fundamental og central opgave. Sortering Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 Mange opgaver er hurtigere i sorteret information (tænk på ordbøger, telefonbøger,

Læs mere

Definition : Et træ er en sammenhængende ikke-orienteret graf uden simple kredse. Sætning : En ikke-orienteret graf er et træ hvis og kun hvis der er

Definition : Et træ er en sammenhængende ikke-orienteret graf uden simple kredse. Sætning : En ikke-orienteret graf er et træ hvis og kun hvis der er Definition : Et træ er en sammenhængende ikke-orienteret graf uden simple kredse. Sætning : En ikke-orienteret graf er et træ hvis og kun hvis der er en unik simpel vej mellem ethvert par af punkter i

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 0. Kursusnavn: Algoritmer og datastrukturer Kursus nr. 06. Tilladte hjælpemidler: Skriftlige hjælpemidler. Varighed: timer Vægtning

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 0. Kursusnavn: Algoritmer og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Skriftlige hjælpemidler. Varighed: timer Vægtning

Læs mere

Sortering. De n tal i sorteret orden. Eksempel: Kommentarer:

Sortering. De n tal i sorteret orden. Eksempel: Kommentarer: Sortering Sortering Input: Output: n tal De n tal i sorteret orden Eksempel: Kommentarer: 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 Sorteret orden kan være stigende eller faldende. Vi vil i dette kursus

Læs mere

Invarianter. Invariant: Et forhold, som vedligeholdes af algoritmen gennem (dele af) dens udførelse. Udgør ofte kernen af ideen bag algoritmen.

Invarianter. Invariant: Et forhold, som vedligeholdes af algoritmen gennem (dele af) dens udførelse. Udgør ofte kernen af ideen bag algoritmen. Invariant: Et forhold, som vedligeholdes af algoritmen gennem (dele af) dens udførelse. Udgør ofte kernen af ideen bag algoritmen. Invariant: Et forhold, som vedligeholdes af algoritmen gennem (dele af)

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 20. marts, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Grafer og graf-gennemløb

Grafer og graf-gennemløb Grafer og graf-gennemløb Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges). Dvs. ordnede par af knuder. Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges).

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af sider Danmarks Tekniske Universitet Skriftlig prøve, den. maj 00. Kursusnavn Algoritmer og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Alle skriftlige hjælpemidler. Vægtning af opgaverne:

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2012 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 15. marts, 2012 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Algoritmer og datastrukturer Course No. 02105 Cheat Sheet 2012. May 15, 2012

Algoritmer og datastrukturer Course No. 02105 Cheat Sheet 2012. May 15, 2012 Algoritmer og datastrukturer Course No. 02105 Cheat Sheet 2012 May 15, 2012 1 CONTENTS 2012 CONTENTS Contents 1 Kompleksitet 3 1.1 Køretid................................................ 3 1.2 Asymptotisk

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af sider Danmarks Tekniske Universitet Skriftlig prøve, den. maj 00. Kursusnavn Algoritmer og datastrukturer Kursus nr. 06. Tilladte hjælpemidler: Alle hjælpemidler. Vægtning af opgaverne: Opgave

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af 2 sider anmarks Tekniske Universitet Skriftlig prøve, den 23. maj 20. Kursusnavn: lgoritmer og datastrukturer Kursus nr. 02326. Varighed: 4 timer Tilladte hjælpemidler: lle skriftlige hjælpemidler.

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af 2 sider Danmarks Tekniske Universitet Skriftlig prøve, den 23. maj 20. Kursusnavn: Algoritmer og datastrukturer I Kursus nr. 0205. Varighed: 4 timer Tilladte hjælpemidler: Alle skriftlige hjælpemidler.

Læs mere

Datastrukturer (recap)

Datastrukturer (recap) Dictionaries Datastrukturer (recap) Data: Datastruktur = data + operationer herpå En ID (nøgle) + associeret data. Operationer: Datastrukturens egenskaber udgøres af de tilbudte operationer (API for adgang

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2012 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 29. april, 2012 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2019 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 10. april, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 13. marts, 2018 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Prioritetskøer og hobe. Philip Bille

Prioritetskøer og hobe. Philip Bille Prioritetskøer og hobe Philip Bille Plan Prioritetskøer Træer Hobe Repræsentation Prioritetskøoperationer Konstruktion af hob Hobsortering Prioritetskøer Prioritetskø Vedligehold en dynamisk mængde S af

Læs mere

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507) Skriftlig Eksamen Algoritmer og Datastrukturer (DM507) Institut for Matematik og Datalogi Syddansk Universitet, Odense Mandag den 7. juni 00, kl. 9 Alle sædvanlige hjælpemidler (lærebøger, notater, osv.)

Læs mere

Grundlæggende køretidsanalyse af algoritmer

Grundlæggende køretidsanalyse af algoritmer Grundlæggende køretidsanalyse af algoritmer Algoritmers effektivitet Størrelse af inddata Forskellige mål for køretid Store -notationen Klassiske effektivitetsklasser Martin Zachariasen DIKU 1 Algoritmers

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2016 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 20. april, 2016 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af 2 sider Danmarks Tekniske Universitet Skriftlig prøve, den 2. maj 200. Kursusnavn Algoritmer og datastrukturer I Kursus nr. 0205. Tilladte hjælpemidler: Alle skriftlige hjælpemidler. Vægtning af

Læs mere

Grafer og graf-gennemløb

Grafer og graf-gennemløb Grafer og graf-gennemløb Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges). Dvs. ordnede par af knuder. Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges).

Læs mere

Om binære søgetræer i Java

Om binære søgetræer i Java Om binære søgetræer i Java Mads Rosendahl 7. november 2002 Resumé En fix måde at gemme data på er i en træstruktur. Måden er nyttig hvis man får noget data ind og man gerne vil have at det gemt i en sorteret

Læs mere

Datastrukturer (recap)

Datastrukturer (recap) Dictionaries Datastrukturer (recap) Data: Datastruktur = data + operationer herpå En ID (nøgle) + associeret data. Operationer: Datastrukturens egenskaber udgøres af de tilbudte operationer (API for adgang

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af 2 sider Danmarks Tekniske Universitet Skriftlig prøve, den 2. maj 200. Kursusnavn Algoritmer og datastrukturer Kursus nr. 02326. Tilladte hjælpemidler: Alle hjælpemidler. Vægtning af opgaverne:

Læs mere

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Datalogisk Institut Aarhus Universitet Mandag den 27. maj 2002, kl. 9.00 13.00 Opgave 1 (25%) Denne opgave handler om multiplikation af positive heltal.

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2017 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 6. april, 2017 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Grafer og graf-gennemløb

Grafer og graf-gennemløb Grafer og graf-gennemløb Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges). Dvs. ordnede par af knuder. Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges).

Læs mere

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507) Skriftlig Eksamen Algoritmer og Datastrukturer (DM507) Institut for Matematik og Datalogi Syddansk Universitet, Odense Onsdag den 0. juni 009, kl. 9 Alle sædvanlige hjælpemidler (lærebøger, notater, osv.)

Læs mere

Grafer og graf-gennemløb

Grafer og graf-gennemløb Grafer og graf-gennemløb Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges). Dvs. ordnede par af knuder. Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges).

Læs mere

DM517:Supplerende noter om uafgørlighedsbeviser:

DM517:Supplerende noter om uafgørlighedsbeviser: DM517:Supplerende noter om uafgørlighedsbeviser: Jørgen Bang-Jensen October 9, 2013 Abstract Formålet med denne note er at give en form for kogebogsopskrift på, hvorledes man bygger et uafgørlighedsbevis

Læs mere

Prioritetskøer. Prioritetskøer. Prioritetskøer. Prioritetskøer

Prioritetskøer. Prioritetskøer. Prioritetskøer. Prioritetskøer Philip Bille (priority-queues). Vedligehold en dynamisk mængde S af elementer. Hver element x er tilknyttet en nøgle x.key og satellitdata x.data. MAX(): returner element med største nøgle. EXTRACTMAX():

Læs mere

DM13-1. Obligatorisk opgave E.05. Jacob Aae Mikkelsen

DM13-1. Obligatorisk opgave E.05. Jacob Aae Mikkelsen DM13-1. Obligatorisk opgave E.05 Jacob Aae Mikkelsen - 191076 26. september 2005 Indhold Analyse af problemstillingen........................ 2 Spørgsmål 1................................. 3 Spørgsmål

Læs mere

Evolutionstræer (Phylogenetic trees)

Evolutionstræer (Phylogenetic trees) BM forelæsning d november 00 Referat af Claus Skovgaard Evolutionstræer (Phylogenetic trees) Baseres på hvor meget de forskellige arter ligner hinanden og hvordan man tror udviklingen har forløbet menneske

Læs mere

18 Multivejstræer og B-træer.

18 Multivejstræer og B-træer. 18 Multivejstræer og B-træer. Multivejs søgetræer. Søgning i multivejssøgetræer. Pragmatisk lagring af data i multivejstræer. B-træer. Indsættelse i B-træer. Eksempel på indsættelse i B-træ. Facts om B-træer.

Læs mere

Prioritetskøer. Prioritetskøer Træer og hobe Repræsentation af hobe Algoritmer på hobe Hobkonstruktion Hobsortering. Philip Bille

Prioritetskøer. Prioritetskøer Træer og hobe Repræsentation af hobe Algoritmer på hobe Hobkonstruktion Hobsortering. Philip Bille Prioritetskøer Prioritetskøer Træer og hobe Repræsentation af hobe Algoritmer på hobe Hobkonstruktion Hobsortering Philip Bille Prioritetskøer Prioritetskøer Træer og hobe Repræsentation af hobe Algoritmer

Læs mere

Rekonstruktion af evolutionære træer vha. eksperimenter

Rekonstruktion af evolutionære træer vha. eksperimenter Rekonstruktion af evolutionære træer vha. eksperimenter Casper Lund Thomsen 19993647 Mads Laursen 19993727 Vejleder: Christian Nørgaard Storm Pedersen Datalogisk

Læs mere

Sammenhængskomponenter i grafer

Sammenhængskomponenter i grafer Sammenhængskomponenter i grafer Ækvivalensrelationer Repetition: En relation R på en mængde S er en delmængde af S S. Når (x, y) R siges x at stå i relation til y. Ofte skrives x y, og relationen selv

Læs mere

Binære søgetræer. Binære søgetræer. Nærmeste naboer. Nærmeste nabo

Binære søgetræer. Binære søgetræer. Nærmeste naboer. Nærmeste nabo Philip Bille Nærmeste naboer. Vedligehold en dynamisk mængde S af elementer. Hvert element har en nøgle key[] og satellitdata data[]. operationer. PREDECESSOR(k): returner element med største nøgle k.

Læs mere

Grådige algoritmer. Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Grådige algoritmer. Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Grådige algoritmer Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2013 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 5. marts, 2013 Dette projekt udleveres i to dele. Hver del har sin deadline, således

Læs mere

Prioritetskøer. Prioritetskøer. Prioritetskøer. Prioritetskøer

Prioritetskøer. Prioritetskøer. Prioritetskøer. Prioritetskøer Philip Bille. Vedligehold en dynamisk mængde S af elementer. Hver element x er tilknyttet en nøgle x.key og satellitdata x.data. MAX(): returner element med største nøgle. EXTRACTMAX(): returner og fjern

Læs mere

Binære søgetræer. Nærmeste naboer Binære søgetræer Indsættelse Predecessor og successor Sletning Trægennemløb. Philip Bille

Binære søgetræer. Nærmeste naboer Binære søgetræer Indsættelse Predecessor og successor Sletning Trægennemløb. Philip Bille Binære søgetræer Nærmeste naboer Binære søgetræer Indsættelse Predecessor og successor Sletning Trægennemløb Philip Bille Binære søgetræer Nærmeste naboer Binære søgetræer Indsættelse Predecessor og successor

Læs mere

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi DATALOGISK INSTITUT, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 1 (tretten) Eksamensdag: Tirsdag den 8. april 2008,

Læs mere

Orienterede grafer. Orienterede grafer. Orienterede grafer. Vejnetværk

Orienterede grafer. Orienterede grafer. Orienterede grafer. Vejnetværk Philip Bille Orienteret graf (directed graph). Mængde af knuder forbundet parvis med orienterede kanter. Vejnetværk Knude = vejkryds, kant = ensrettet vej. deg + (6) =, deg - (6) = sti fra til 6 8 7 9

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet ksamen 06, side af sider anmarks Tekniske Universitet Skriftlig prøve, den 6. maj 0. ursusnavn: lgoritmer og datastrukturer ursus nr. 06. Tilladte hjælpemidler: Skriftlige hjælpemidler. Varighed: timer

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2010 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 24. april, 2010 (let justeret 10. maj og 21. maj 2010) Dette projekt udleveres i tre

Læs mere

Korteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti.

Korteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti. Korteste veje Korteste veje i vægtede grafer Længde af sti = sum af vægte af kanter på sti. Korteste veje i vægtede grafer Længde af sti = sum af vægte af kanter på sti. δ(u, v) = længden af en korteste

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 3. maj 0. Kursusnavn: Algoritmer og datastrukturer I Kursus nr. 005. Varighed: timer Tilladte hjælpemidler: Alle skriftlige hjælpemidler.

Læs mere

Algoritmeanalyse. Øvre grænse for algoritme. Øvre grænse for problem. Nedre grænse for problem. Identificer essentiel(le) operation(er)

Algoritmeanalyse. Øvre grænse for algoritme. Øvre grænse for problem. Nedre grænse for problem. Identificer essentiel(le) operation(er) Algoritmeanalyse Identificer essentiel(le) operation(er) Øvre grænse for algoritme Find øvre grænse for antallet af gange de(n) essentielle operation(er) udføres. Øvre grænse for problem Brug øvre grænse

Læs mere

Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Ideen er simpel:

Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Ideen er simpel: Grådige algoritmer Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Ideen er simpel: Opbyg løsningen skridt for skridt ved hele tiden af vælge lige

Læs mere

1. Redegør for Lister, stakke og køer mht struktur og komplexitet af de relevante operationer

1. Redegør for Lister, stakke og køer mht struktur og komplexitet af de relevante operationer 1. Redegør for Lister, stakke og køer mht struktur og komplexitet af de relevante operationer på disse. Typer af lister: Array Enkelt linket liste Dobbelt linket Cirkulære lister Typer af køer: FILO FIFO

Læs mere

Skriftlig eksamen i Datalogi

Skriftlig eksamen i Datalogi Roskilde Universitetscenter Skriftlig eksamen i Datalogi Modul 1 Vinter 1998/99 Opgavesættet består af 5 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 16% Opgave 2 12% Opgave 3 10% Opgave

Læs mere

Skriftlig eksamen i Datalogi

Skriftlig eksamen i Datalogi Roskilde Universitetscenter side 1 af 11 sider Skriftlig eksamen i Datalogi Modul 1 Sommer 2000 Opgavesættet består af 6 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 10% Opgave 2 10%

Læs mere

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer Skriftlig Eksamen DM507 Algoritmer og Datastrukturer Institut for Matematik og Datalogi Syddansk Universitet, Odense Mandag den 6. juni 2016, kl. 15:00 19:00 Besvarelsen skal afleveres elektronisk. Se

Læs mere

Grafer og graf-gennemløb

Grafer og graf-gennemløb Grafer og graf-gennemløb Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges). Dvs. ordnede par af knuder. Figur: Terminologi: n = V, m = E (eller V og E (mis)bruges som V og E ).

Læs mere

Opgave: BOW Bowling. Rules of Bowling. danish. BOI 2015, dag 1. Tilgængelig hukommelse: 256 MB. 30.04.2015

Opgave: BOW Bowling. Rules of Bowling. danish. BOI 2015, dag 1. Tilgængelig hukommelse: 256 MB. 30.04.2015 Opgave: BOW Bowling danish BOI 0, dag. Tilgængelig hukommelse: 6 MB. 30.04.0 Byteasar er fan af både bowling og statistik. Han har nedskrevet resultaterne af et par tidligere bowling spil. Desværre er

Læs mere

3. Om skalamønstrene og den indfoldede orden

3. Om skalamønstrene og den indfoldede orden Dette er den tredje af fem artikler under den fælles overskrift Studier på grundlag af programmet SKALAGENERATOREN (forfatter: Jørgen Erichsen) 3. Om skalamønstrene og den indfoldede orden Lad os begynde

Læs mere

Forén og find. Introduktion Hurtig find Hurtig forening Vægtet forening Stikompression Dynamiske sammenhængskomponenter.

Forén og find. Introduktion Hurtig find Hurtig forening Vægtet forening Stikompression Dynamiske sammenhængskomponenter. Forén og find Introduktion Hurtig find Hurtig forening Vægtet forening Stikompression Dynamiske sammenhængskomponenter Philip Bille Forén og find Introduktion Hurtig find Hurtig forening Vægtet forening

Læs mere

Dynamisk programmering. Flere eksempler

Dynamisk programmering. Flere eksempler Dynamisk programmering Flere eksempler Eksempel 1: Længste fælles delstreng Alfabet = mængde af tegn: {a,b,c,...,z}, {A,C,G,T}, {,1} Eksempel 1: Længste fælles delstreng Alfabet = mængde af tegn: {a,b,c,...,z},

Læs mere

Korteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti.

Korteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti. Korteste veje Korteste veje i vægtede grafer Længde af sti = sum af vægte af kanter på sti. Korteste veje i vægtede grafer Længde af sti = sum af vægte af kanter på sti. δ(u, v) = længden af en korteste

Læs mere

LUP Fødende læsevejledning til afdelingsrapporter

LUP Fødende læsevejledning til afdelingsrapporter Indhold Hvordan du bruger læsevejledningen... 1 Oversigtsfigur... 2 Temafigur... 3 Spørgsmålstabel... 4 Respondenter og repræsentativitet... 6 Uddybende forklaring af elementer i figurer og tabeller...

Læs mere

DM536. Rapport og debug

DM536. Rapport og debug DM536 Rapport og debug Kilder Vigtig.it (Felix Palludan Hargreaves) http://vigtig.it/dm502/howto_report.pdf http://vigtig.it/blog/teaching/#toc-relevant-tips Peter Schneider-Kamp http://imada.sdu.dk/~petersk/dm536/project2.pdf

Læs mere

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer Skriftlig Eksamen DM507 Algoritmer og Datastrukturer Institut for Matematik og Datalogi Syddansk Universitet, Odense Tirsdag den 24. juni 2014, kl. 10:00 14:00 Besvarelsen skal afleveres elektronisk. Se

Læs mere

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 23n log n. 4 n (log n) log n

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 23n log n. 4 n (log n) log n Eksamen. kvarter 00 Algoritmer og Datastrukturer (00-ordning) Side af sider Opgave (%) Ja Nej n er O(n )? n er O(n )? n er O(n + 0 n)? n + n er O(n )? n log n er Ω(n )? Opgave (%) Opskriv følgende funktioner

Læs mere

Dynamisk programmering. Flere eksempler

Dynamisk programmering. Flere eksempler Dynamisk programmering Flere eksempler Eksempel 1: Længste fælles delstreng Alfabet = mængde af tegn: {a,b,c,...,z}, {A,C,G,T}, {,1} Streng = sekvens x 1 x 2 x 3... x n af tegn fra et alfabet: helloworld

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet Eksamen 005, F side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 0. Kursusnavn: Algoritmer og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Skriftlige hjælpemidler. Varighed:

Læs mere

Forén og find. Introduktion Hurtig find Hurtig forening Vægtet forening Stikompression Dynamiske sammenhængskomponenter.

Forén og find. Introduktion Hurtig find Hurtig forening Vægtet forening Stikompression Dynamiske sammenhængskomponenter. Forén og find Introduktion Hurtig find Hurtig forening Vægtet forening Stikompression Dynamiske sammenhængskomponenter Philip Bille Forén og find Introduktion Hurtig find Hurtig forening Vægtet forening

Læs mere

Mindste udspændende træ

Mindste udspændende træ Mindste udspændende træ Introduktion Repræsentation af vægtede grafer Egenskaber for mindste udspændende træer Prims algoritme Kruskals algoritme Philip Bille Mindste udspændende træ Introduktion Repræsentation

Læs mere

Mindste udspændende træ. Mindste udspændende træ. Introduktion. Introduktion

Mindste udspændende træ. Mindste udspændende træ. Introduktion. Introduktion Philip Bille Introduktion (MST). Udspændende træ af minimal samlet vægt. Introduktion (MST). Udspændende træ af minimal samlet vægt. 0 0 Graf G Ikke sammenhængende Introduktion (MST). Udspændende træ af

Læs mere

Sortering i lineær tid

Sortering i lineær tid Sortering i lineær tid Nedre grænse for sammenligningsbaseret sortering Nedre grænser kræver en præcis beregningsmodel. Nedre grænse for sammenligningsbaseret sortering Nedre grænser kræver en præcis beregningsmodel.

Læs mere

It-sikkerhedstekst ST9

It-sikkerhedstekst ST9 It-sikkerhedstekst ST9 Single Sign-On og log-ud Denne tekst må kopieres i sin helhed med kildeangivelse. Dokumentnavn: ST9 Version 1 Juli 2015 Single Sign-On og log-ud Betegnelsen Single Sign-On (SSO)

Læs mere

Mindste udspændende træ. Mindste udspændende træ. Introduktion. Introduktion

Mindste udspændende træ. Mindste udspændende træ. Introduktion. Introduktion Philip Bille Introduktion (MST). Udspændende træ af minimal samlet vægt. Introduktion (MST). Udspændende træ af minimal samlet vægt. 0 0 Graf G Ikke sammenhængende Introduktion (MST). Udspændende træ af

Læs mere

Regulære udtryk og endelige automater

Regulære udtryk og endelige automater Regulære udtryk og endelige automater Regulære udtryk: deklarative dvs. ofte velegnede til at specificere regulære sprog Endelige automater: operationelle dvs. bedre egnet til at afgøre om en given streng

Læs mere

Skruedyrenes evolution

Skruedyrenes evolution Skruedyrenes evolution Materialer: 8 forskellige søm og skruer per hold. Formål: At tegne et slægtskabstræ udfra morfologiske karaktertræk Når arterne er blevet indsamlet og identificeret, skal de systematiseres.

Læs mere

Anvendelse af dobbelthistorik i GD2

Anvendelse af dobbelthistorik i GD2 Grunddataprogrammet under den Fællesoffentlige Digitaliseringsstrategi GD2 - Adresseprogrammet Anvendelse af dobbelthistorik i GD2 Implementerings regler og eksempler på dobbelthistorik MBBL- REF: Version:

Læs mere

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Datalogisk Institut Aarhus Universitet Onsdag den. august 200, kl. 9.00.00 Opgave (25%) Lad A = A[] A[n] være et array af heltal. Længden af det længste

Læs mere

Skriftlig Eksamen Algoritmer og Datastrukturer 1. Datalogisk Institut Aarhus Universitet

Skriftlig Eksamen Algoritmer og Datastrukturer 1. Datalogisk Institut Aarhus Universitet Side af 1 sider Skriftlig Eksamen Algoritmer og Datastrukturer 1 Datalogisk Institut Aarhus Universitet Dette eksamenssæt består af en kombination af små skriftlige opgaver og multiplechoice-opgaver. Opgaverne

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet Eksamen 02105, F14 side 1 af 14 Danmarks Tekniske Universitet Skriftlig prøve, den 22. maj 2014. Kursusnavn: Algoritmer og datastrukturer 1 Kursusnummer: 02105 Hjælpemidler: Skriftlige hjælpemidler. Det

Læs mere

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 4 n n 3n n 2 /logn 5 n n (logn) 3n n 2 /logn 4 n n 5 n

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 4 n n 3n n 2 /logn 5 n n (logn) 3n n 2 /logn 4 n n 5 n Side af 0 sider Opgave (%) Ja Nej n er O(0n logn)? n er O(n )? n +n er O(n )? n logn er O(n )? n logn er O(n)? Opgave (%) Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n

Læs mere

Opgave 1 (10%) I det følgende angiver log n 2-tals-logaritmen af n. Ja Nej. n+3n er O(2n)? n 6 er O(n 5 )? nlogn er O(n 2 /logn)? 4n 3 er O(3n 4 )?

Opgave 1 (10%) I det følgende angiver log n 2-tals-logaritmen af n. Ja Nej. n+3n er O(2n)? n 6 er O(n 5 )? nlogn er O(n 2 /logn)? 4n 3 er O(3n 4 )? Eksamen juni Algoritmer og Datastrukturer (-ordning) Side af sider Opgave (%) I det følgende angiver log n -tals-logaritmen af n. n+n er O(n)? n 6 er O(n )? nlogn er O(n /logn)? n er O(n )? n er O(n )?

Læs mere

3 Algebraisk Specifikation af Abstrakte Datatyper.

3 Algebraisk Specifikation af Abstrakte Datatyper. 3 Algebraisk Specifikation af Abstrakte Datatyper. Specifikation kontra program. Bestanddele af en algebraisk specifikation. Klassificering af funktioner i en ADT. Systematisk definition af ligninger.

Læs mere

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n 2 n (log n) 2. 3 n /n 2 n + (log n) 4

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n 2 n (log n) 2. 3 n /n 2 n + (log n) 4 Eksamen. kvarter 00 Side 1 af sider Opgave 1 ( %) Ja Nej n log n er O(n / )? n 1/ er O(log n)? n + n er O(n )? n( n + log n) er O(n / )? n er Ω(n )? Opgave ( %) Opskriv følgende funktioner efter stigende

Læs mere

Spilstrategier. 1 Vindermængde og tabermængde

Spilstrategier. 1 Vindermængde og tabermængde Spilstrategier De spiltyper vi skal se på her, er primært spil af følgende type: Spil der spilles af to spillere A og B som skiftes til at trække, A starter, og hvis man ikke kan trække har man tabt. Der

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af 3 sider anmarks Tekniske Universitet Skriftlig prøve, den 29. maj 203. ursusnavn: lgoritmer og datastrukturer ursus nr. 02326. jælpemidler: Skriftlige hjælpemidler. et er ikke tilladt at medbringe

Læs mere

Skriftlig Eksamen Algoritmer og Datastrukturer 2 (2003-ordning)

Skriftlig Eksamen Algoritmer og Datastrukturer 2 (2003-ordning) Skriftlig Eksamen Algoritmer og Datastrukturer 2 (2003-ordning) Datalogisk Institut Aarhus Universitet Fredag den 28. maj 2004, kl. 9.00 13.00 Opgave 1 (20%) En (r, k) kryds-graf er en orienteret graf

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2015 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 3. marts, 2015 Dette projekt udleveres i to dele. Hver del har sin deadline, således

Læs mere