Ghent University Faculty of Sciences Department of Applied Mathematics, Computer Science and Statistics ALFALFA Fast and Accurate Mapping of Long Next Generation Sequencing Reads Dissertationsubmittedinpartialfulfillmentoftherequirementsfor thedegreeofDoctorofComputerScience Micha¨el Vyverman September 2014 Supervisors: prof. dr. Peter Dawyndt prof. dr. Bernard De Baets prof. dr. Veerle Fack Voor mijn ouders Dankwoord Dezethesisvormthetverslagvanmijnreisdoorheenhetwetenschappelijkonder- zoek die iets meer dan vier jaar geleden is gestart. Aan een doctoraat vertrek je opbrede,vertrouwdeenveelgebruiktewegen,maaralsnelontdekjenieuweoor- den. Ik ben het gebied van de bioinformatica binnengetrokken en heb exotische plaatsenverkendzoalssequeneringstechnologie,indexstructurenenread mapping algoritmen. Doorheen de tocht heb ik steeds smallere wegen moeten navigeren, waarbij ik de hulp kreeg van voorgaande verslagen en lokale gidsen. Zelf heb ik ook nieuwe gebieden in kaart gebracht die nu in dit werk staan beschreven, en in de toekomst misschien andere reizigers naar nieuwe oorden leiden. Devoorbijejarenvormdeneenfascinerendereiswaarinikveleinteressanteen boeiende ervaringen heb opgedaan. Toch zou dit verslag niet tot stand gekomen zijn zonder de steun en hulp van vele medereizigers, ervaren gidsen, en mijn familie en vrienden thuis. Eerst en vooral wil ik mijn promotoren, Peter, Bernard en Veerle bedanken. Dankzij hen heb ik deze reis kunnen aanvangen en ben ik niet onderweg ver- dwaald. Ik wil Peter vooral bedanken voor alle hulp, zowel bij het onderzoek als bij het schrijven, en om mij te laten inzien dat je soms uitdagingen moet durven aangaan. Veerle wil ik vooral bedanken voor de wekelijkse afspraken die we hadden, waarbij ik alles eens op een rijtje kon zetten. Alhoewel we minder persoonlijkcontacthebbengehad,zorgdeBernardaltijdvooreennieuwe,heldere en kritische blik. Dit reisverslag werd grondig nagelezen door de leden van mijn jury. Ik wil ze bedankenvoorhunsuggestiesenopmerkingendiehebbengeholpenomdeinhoud van dit werk nog te verbeteren. Ik draag deze thesis op aan mijn ouders. Zij hebben me altijd gesteund en gemotiveerd. Ook tijdens deze reis hebben ze me op alle mogelijke manieren geholpen. Zo heeft mijn vader bijvoorbeeld grafische ondersteuning verleend aan i ii Dankwoord enkele afbeeldingen die dit werk sieren. Ikwileveneensmijnfamilieenvriendenbedanken. Zehebbensteedsmetveel interesse geluisterd naar mijn verhalen en nieuwe ontdekkingen, maar evenzeer naar mijn frustraties als er obstakels op de weg lagen. Tijdens mijn expedities naar conferenties en buitenlandse verblijven heb ik heel wat mensen leren kennen waarmee ik boeiende gesprekken met heb gehad. In particular, I would like to thank Veli M¨akinen and the members of his group for the very nice and interesting stay I had at the University of Helsinki. Aangezien het doorkruisen van bioinformatica-gebied vele uiteenlopende ex- pertises vergt, ben ik blij dat ik deel uitmaakte van het multidisciplinaire on- derzoeksplatform Nucleotides to Networks (N2N). Binnen dit kader wil ik vooral Yao-Chen Lin en Lieven Sterck bedanken voor hun expertise en hun feedback. VerderkonikaltijdrekenenopdeervarenreizigersbinnendevakgroepToege- pasteWiskunde,InformaticaenStatistiek(TWIST).Inhetbijzonderwilikmijn bureaugenoten Glad en Nico bedanken, die me niet alleen met hun ervaringen geholpen hebben, maar ook graag hun technische kennis met mij deelden, zodat ik nooit lang met pech onderweg bleef stilstaan. Gelukkig was er tijd om onderweg regelmatig even te stoppen voor ont- spanning en andere activiteiten. Zo waren er de lunches met de leden van deonderzoeksgroepCombinatorischeAlgoritmenenAlgoritmischeGrafentheorie (CAAGT), waar ik elke week naar uitkeek. Ook de regelmatige gesprekken met Jan zal ik zeker missen. Met mijn medereizigers binnen de vakgroep TWIST heb ik heel wat leuke momentenbeleefd,waaronderspelletjes-enfilmavonden,enzelfseenavondrond het kampvuur op ´e´en van de TWI(ST)kends. Zelfs letterlijk onderweg, namelijk op de trein, heb ik nieuwe mensen leren kennen. Zij hebben ervoor gezorgd dat de lange treinrit Gent-Ressegem net iets korter leek. Ben en Jeroen, ik hoop dat we elkaar nu niet uit het oog verliezen, en we nog vele leuke spelletjesavonden beleven. De nodige brandstof voor mijn reis werd voorzien door het agentschap voor Innovatie door Wetenschap en Technologie (IWT). Ik wil hen dan ook bedanken voor deze kans die zij mij geboden hebben. Een andere soort brandstof voor mijn reis werd geleverd in de vorm van computationele kracht van de STEVIN supercomputer van de Universiteit Gent en de goede technische ondersteuning geleverd door het HPC-team. Aan allen veel dank! Micha¨el Vyverman, december 2014 Contents Summary vii 1 Introduction 1 1.1 Notations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1.1 Basic notations . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1.2 Common substrings . . . . . . . . . . . . . . . . . . . . . . 2 1.1.3 Biological sequences . . . . . . . . . . . . . . . . . . . . . . 6 1.2 Sequencing technology . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.2.1 Historical overview . . . . . . . . . . . . . . . . . . . . . . . 8 1.2.2 Sequencing reads . . . . . . . . . . . . . . . . . . . . . . . . 10 1.2.3 Sequencing technology comparison . . . . . . . . . . . . . . 14 1.3 Alignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.3.1 Sequence alignment . . . . . . . . . . . . . . . . . . . . . . 16 1.3.2 Read mapping . . . . . . . . . . . . . . . . . . . . . . . . . 20 1.3.3 Read mappers . . . . . . . . . . . . . . . . . . . . . . . . . 23 1.4 Dynamic programming . . . . . . . . . . . . . . . . . . . . . . . . . 29 1.4.1 Variants for different alignment methods . . . . . . . . . . . 30 1.4.2 Optimizations. . . . . . . . . . . . . . . . . . . . . . . . . . 34 1.5 Evaluation and Testing. . . . . . . . . . . . . . . . . . . . . . . . . 41 1.5.1 Theoretical complexity . . . . . . . . . . . . . . . . . . . . . 41 1.5.2 Memory model . . . . . . . . . . . . . . . . . . . . . . . . . 42 2 Full-text Index Structures 43 2.1 Popular Index Structures . . . . . . . . . . . . . . . . . . . . . . . 46 2.1.1 Suffix trees . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 iii iv Contents 2.1.2 Suffix arrays . . . . . . . . . . . . . . . . . . . . . . . . . . 50 2.1.3 Enhanced suffix arrays . . . . . . . . . . . . . . . . . . . . . 51 2.1.4 Compressed suffix arrays . . . . . . . . . . . . . . . . . . . 55 2.1.5 The Burrows-Wheeler transform . . . . . . . . . . . . . . . 55 2.1.6 FM-indexes . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 2.2 Time-memory trade-offs . . . . . . . . . . . . . . . . . . . . . . . . 61 2.2.1 Uncompressed index structures . . . . . . . . . . . . . . . . 62 2.2.2 Sparse indexes . . . . . . . . . . . . . . . . . . . . . . . . . 64 2.2.3 Compressed index structures . . . . . . . . . . . . . . . . . 65 2.3 Index structures in external memory . . . . . . . . . . . . . . . . . 74 2.3.1 Suffix arrays . . . . . . . . . . . . . . . . . . . . . . . . . . 75 2.3.2 Suffix trees . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 2.3.3 Compressed index structures . . . . . . . . . . . . . . . . . 78 2.4 Construction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 2.4.1 Suffix trees . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 2.4.2 Suffix arrays . . . . . . . . . . . . . . . . . . . . . . . . . . 80 2.4.3 Compressed index structures . . . . . . . . . . . . . . . . . 81 2.4.4 External memory suffix tree construction . . . . . . . . . . 82 2.5 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 2.5.1 Prospects . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 2.5.2 Related work . . . . . . . . . . . . . . . . . . . . . . . . . . 84 3 essaMEM 89 3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 3.2 Enhanced sparse suffix arrays . . . . . . . . . . . . . . . . . . . . . 91 3.2.1 Data structure . . . . . . . . . . . . . . . . . . . . . . . . . 91 3.2.2 String matching . . . . . . . . . . . . . . . . . . . . . . . . 93 3.2.3 Construction . . . . . . . . . . . . . . . . . . . . . . . . . . 94 3.3 MEM-finding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 3.3.1 Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 3.3.2 Sparse suffix arrays . . . . . . . . . . . . . . . . . . . . . . . 97 3.3.3 Sparse child arrays . . . . . . . . . . . . . . . . . . . . . . . 99 3.3.4 Sparse suffix links . . . . . . . . . . . . . . . . . . . . . . . 99 3.3.5 Pattern suffix sampling . . . . . . . . . . . . . . . . . . . . 100 3.3.6 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . 101 3.4 Results. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 3.4.1 Test Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Contents v 3.4.2 Memory requirements . . . . . . . . . . . . . . . . . . . . . 105 3.4.3 Time-memory trade-offs . . . . . . . . . . . . . . . . . . . . 106 3.4.4 Impact of optimizations . . . . . . . . . . . . . . . . . . . . 111 3.5 Related work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 4 ALFALFA 117 4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 4.2 Algorithms & heuristics . . . . . . . . . . . . . . . . . . . . . . . . 119 4.2.1 Seed-finding . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 4.2.2 Candidate regions . . . . . . . . . . . . . . . . . . . . . . . 133 4.2.3 Candidate region extension . . . . . . . . . . . . . . . . . . 140 4.2.4 Alignment post-processing . . . . . . . . . . . . . . . . . . . 147 4.2.5 Paired-end read mapping . . . . . . . . . . . . . . . . . . . 148 4.3 Results. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 4.3.1 Memory footprint . . . . . . . . . . . . . . . . . . . . . . . 153 4.3.2 Performance and accuracy on simulated data . . . . . . . . 154 4.3.3 Mapping quality . . . . . . . . . . . . . . . . . . . . . . . . 164 4.3.4 Performance and accuracy on real data . . . . . . . . . . . 164 5 Mesalina 169 5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 5.2 Spliced alignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 5.2.1 Candidate regions . . . . . . . . . . . . . . . . . . . . . . . 175 5.2.2 Candidate region extension . . . . . . . . . . . . . . . . . . 176 5.2.3 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . 179 5.3 Results. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 5.3.1 Memory footprint . . . . . . . . . . . . . . . . . . . . . . . 180 5.3.2 Performance and accuracy trade-offs . . . . . . . . . . . . . 180 5.3.3 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 Concluding remarks 185 A List of abbreviations 191 B Sequence alignment and mapping format 195 B.1 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 vi Contents C Details of the essaMEM experimental results 205 C.1 Testing environment and experimental measurements . . . . . . . . 205 C.2 Additional tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 D Details of the ALFALFA experimental results 215 D.1 Testing environment and experimental measurements . . . . . . . . 215 D.1.1 Data sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 D.1.2 Performance and accuracy measurements . . . . . . . . . . 219 D.1.3 Read mappers . . . . . . . . . . . . . . . . . . . . . . . . . 220 D.2 Additional tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 E ALFALFA command line structure 237 E.1 Indexing a reference genome . . . . . . . . . . . . . . . . . . . . . . 239 E.1.1 Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 E.2 Mapping and aligning a read set . . . . . . . . . . . . . . . . . . . 240 E.2.1 I/O options . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 E.2.2 Alignment options . . . . . . . . . . . . . . . . . . . . . . . 241 E.2.3 Seed options . . . . . . . . . . . . . . . . . . . . . . . . . . 241 E.2.4 Extend options . . . . . . . . . . . . . . . . . . . . . . . . . 242 E.2.5 Paired-end mapping options . . . . . . . . . . . . . . . . . . 244 E.2.6 Miscellaneous options . . . . . . . . . . . . . . . . . . . . . 244 E.3 Evaluating mapping accuracy . . . . . . . . . . . . . . . . . . . . . 245 E.3.1 Options shared by all subcommands . . . . . . . . . . . . . 245 E.3.2 Summary subcommand options . . . . . . . . . . . . . . . . 246 E.3.3 Sam subcommand options . . . . . . . . . . . . . . . . . . . 246 E.3.4 Wgsim subcommand options . . . . . . . . . . . . . . . . . 247 Bibliography 249 Nederlandstalige samenvatting 273 List of Figures 277 List of Tables 281 Index 284
Description: