Applying Advanced Language Constructs to Open-Source Phylogenetic Search" (2007)
Total Page:16
File Type:pdf, Size:1020Kb
Brigham Young University BYU ScholarsArchive Faculty Publications 2007-10-01 PsodaScript: Applying Advanced Language Constructs to Open- source Phylogenetic Search Hyrum Carroll [email protected] Mark J. Clement [email protected] Jonathan Krein Quinn O. Snell [email protected] Adam R. Teichert Follow this and additional works at: https://scholarsarchive.byu.edu/facpub Part of the Computer Sciences Commons BYU ScholarsArchive Citation Carroll, Hyrum; Clement, Mark J.; Krein, Jonathan; Snell, Quinn O.; and Teichert, Adam R., "PsodaScript: Applying Advanced Language Constructs to Open-source Phylogenetic Search" (2007). Faculty Publications. 229. https://scholarsarchive.byu.edu/facpub/229 This Peer-Reviewed Article is brought to you for free and open access by BYU ScholarsArchive. It has been accepted for inclusion in Faculty Publications by an authorized administrator of BYU ScholarsArchive. For more information, please contact [email protected], [email protected]. PsodaScript: Applying Advanced Language Constructs to Open-source Phylogenetic Search Jonathan L. Krein1, Adam R. Teichert1, Hyrum D. Carroll, Mark J. Clement and Quinn O. Snell Computer Science Department Brigham Young University Provo, UT 84602 Abstract—Due to the immensity of phylogenetic tree space for Researchers have developed a number of heuristic algo- large data sets, researches must rely on heuristic searches to rithms that perform reasonably well on large data sets; nev- infer reasonable phylogenies. By designing meta-searches which ertheless, local optima in a search space often prevent these appropriately combine a variety of heuristics and parameter settings, researchers can significantly improve the performance algorithms from finding the globally optimal solution. This of heuristic searches. Advanced language constructs in the problem is exacerbated by the inability of researchers—due open-source PSODA project—including variables, mathematical to the vastness of the search space—to confidently distinguish and logical expressions, conditional statements, and user-defined between local and global optima. commands—give researchers a better framework for the explo- ration and exploitation of phylogenetic meta-search algorithms. PSODA’s approach to scripting meta-search algorithms is unique One answer to the local optimum problem is meta- among open-source packages and addresses several limitations of searching, which combines various heuristic searches together other phylogenetic applications. into a single search algorithm [8]. In phylogenetic inference Index Terms—meta-searching, phylogenetic analysis, scripting software packages, meta-searches may be constructed from languages existing algorithms either via an internal scripting language or an external wrapper. Unfortunately, wrapper applications I. INTRODUCTION tend to be cumbersome, often requiring considerable effort to orchestrate the interaction among heuristic searches. Further- Phylogenetic trees model the evolutionary relationships more, having to code meta-search algorithms in a wrapper- among species, enabling researchers to both analyze species script increases complexity and reduces clarity. In an effort differences [1] and to better understand the processes by which to build upon predecessor applications and provide a solid, those differences arise [2]. Phylogenetic trees represent an usable framework for developing meta-search algorithms, Phy- important research tool in many scientific areas. In AIDS logenetic Search Open-source Data Analysis (PSODA) [9] research, for example, scientists are using phylogenies to better implements a scripting language—PsodaScript—with syntax understand how the Human Immunodeficiency Virus (HIV) and constructs for clearly and concisely defining phylogenetic mutates in response to the human immune system. Because searches. HIV evolves faster than most known organisms, understanding its evolution will hopefully lead to improved vaccines [3]. PSODA is an open-source phylogeny reconstruction appli- Phylogenetic research is also contributing to many other areas cation. It provides basic and advanced phylogeny searching of study, including nucleic acids research [4] and endangered capabilities and a progressive multiple sequence alignment species conservation [5]. method. It can perform phylogenetic analysis with Maximum A major task related to phylogenetic research is that of effi- Parsimony and Maximum Likelihood. Additionally, it comes ciently inferring, from molecular data, the correct phylogenetic with a graphical user interface (GUI) that allows for visualiz- tree for a set of organisms. One approach to the problem is to ing individual phylogenies as well as the progress of a search. arrange a data set into all possible phylogenies, scoring each PSODA’s performance is comparable to existing phylogenetic tree to find the one that most likely represents the actual evo- programs (see Figure 1). PSODA can be obtained for free from lutionary relationships among the organisms. Unfortunately, http://csl.cs.byu.edu/psoda. because phylogenetic inference is an NP-complete problem [6], such an exhaustive approach is typically unreasonable. This paper seeks to familiarize researchers with PsodaScript Therefore, to infer trees from data sets with more than 15- as a powerful tool in the utilization and exploration of phy- 25 taxa, phylogenetic inference software must rely heavily logenetic meta search algorithms. We first provide a context on heuristic algorithms [7]. This is significant because most for PsodaScript by reviewing related work in phylogenetic realistic biological studies require data sets with at least 20 inference software and meta-searching. Next, we present a taxa [6], if not hundreds or thousands. brief overview of the PsodaScript language. Finally, we discuss two specific meta search applications that can be implemented 1Equally contributing authors in PsodaScript. Quinn Snell, Mark Clement, Mark Ebbert, Adam Teichert, Jonathan Krein Brigham Young University Abstract PSODA is an open-source phylogenetic search application that implements many traditional parsimony and likelihood search techniques as well as advanced search algorithms. PSODA is compatible with PAUP* and the search algorithms are competitive with those in PAUP*. PSODA also adds a basic scripting language to the PAUP block, making it possible to easily create advanced meta-searches. Because PSODA is open-source, we have also been able to easily add in advanced search techniques and character- ize the benefits of various optimizations. PSODA is available for Macintosh OS X, Windows, and Linux. Advantages of PSODA • High Performance • Open Source (-: FREE :-) • Modular Design (easy algorithm development) • Advanced Scripting Language • makes advanced meta-searches simple • Reads and Executes PAUP nexus files • PSODA is competive with PAUP* 16450 PAUP* PSODA TABLE I: Meta-search Capabilities Advanced ScriptingWrappable Internal Commands Internal Scripting 16400 • Added functionality to PAUP blocks. PHYLIP• Decision Statements! & Loops • Advanced Functions & User-defined Functions POY !! • Easily Extensible 16350 PAUP* • Easy scripting of!! advanced meta-sarches such as: BioPerl• Ratchet (Parsimony!!! and Likelihood) TNT 16300 • DCM and more.!!! Parsimony Score PSODA !!! 1 minute PAUP* Ratchet PSODA Likelihood Ratchet BEGIN PAUP; set criterion=parsimony ; BEGIN PAUP; set maxtrees=1 16250 increase = no; hsearch start=stepwise swap=TBR ; weights 2 : 7 14 17 26 27 31 34 45 50 52 54 57 60 63 64 65 73 77 86 91 92 102 103 107 115 117 121 begin randomReweight 122 124 127 131 133 134 140 142 155 156 163 173 176 183TABLE 185 187 195 197 198 202 204 II: 209 219 Accessibility 221 222 225 226 230 237 238 240 241 244 248 252 254 255 258 269 276 279 283 284 291 294 295 297 309 310 315 319 321 323 325 326 342 346 349 350 351 353 354 355 359 360 363 366 370 377 378 390 393 394 398 408 numChars = getWeightsLength(); 412 413 418 419 423 425 426 428 429 432 450 456 467 475 479 482 484 489 492 493 497 498 500; hsearch start=current swap=TBR numWeights = numChars / percent; ; set maxtrees=1; License Fee Open-source weights 1:all; 16200 hsearch start=current swap=TBR ; j = 0; 1 10 100 1000 1000 weights 2 : 1 17 20 21 29 33 35 39 42 50 57 59 69 70 71 73 80 86 93 96 97 99 100 102 111 121 125 126 141 142 148 149 155 157 163 168 174 179 180 184 187 188 194 203 208 212 216 219 220 225 226 231 242 while (j < numweights) Time (in seconds) 243 251 253 254 256 257 260 265 269 272 274PHYLIP 277 282 286 287 288 291 293 296 297 305 306 309 315 316 318 324 326 327 329 334 340 346 351 352 356 360 366 370 372 373 379 380 384 390 396 399 401 408 412 ! 414 421 423 426 428 429 441 442 444 448 455 459 460 462 472 473 475 477 478 487 489 493; weight = random(max = range); hsearch start=current swap=TBR ; POY col = random(max = numChars) + 1; PSODA Features weights 1:all; ! hsearch start=current swap=TBR ; weights weight:col; • Parsimony and Likelihood (F84) search weights 2 : 2 9 11 14 16 18 20 24 28 36 40PAUP* 43 45 47 59 60 62 64 65 70 72 84 90 92 105 107 111 112 118 122 129 130 135 138 146 148 152 153 156 161 162 167 172 173 177 190 197 200 207! 209 213 215 217 j++; Fig. 1: Performance results, in terms of best parsimony score 218 226 234 245 249 250 251 253 254 255 257 266 275 276 281 284 288 293 303 305 315 319 322 324 329 336 347 349 351 352 355 356 358 360 365 367 368 371 376 377 378 381 382 407 409 410 411 412 413 418 endwhile; • Advanced Likelihood models and Bayesian methods coming soon. 421 424 425 426 437 442 444 447 448 452 459 461 462 466 474 475 477 478 480 484 488 491; hsearch start=current swap=TBR BioPerl found over time, for a parsimony search using PSODA and ; end; ! • Consensus (strict and majority rules) weights 1:all; hsearch start=current swap=TBR ; TNT weights 2 : 1 5 17 22 26 31 34 39 44 46 58 65 71 73 79 80 85 92 93 95 98 100 101 107! 114 119 127 131 PAUP*• Search on theVisualization 500 taxon seed plant rbcL data set [10].