beastier demo

Richèl J.C. Bilderbeek

2020-10-30

Introduction

This vignette demonstrates how to use beastier.

First, load the library:

library(beastier)

Also, we’ll load the testthat library, to verify the statements in this vignette:

library(testthat)

To run BEAST2, we need to create a BEAST2 options structure`. We will use a supplied BEAST2 XML file. For the rest, we’ll use the default options:

beast2_options <- create_beast2_options(
  input_filename = get_beastier_path("2_4.xml")
)
names(beast2_options)
#> [1] "input_filename"        "output_state_filename" "rng_seed"             
#> [4] "n_threads"             "use_beagle"            "overwrite"            
#> [7] "beast2_path"           "verbose"

Before running BEAST2, the BEAST2 input file must exist, and we expect no output file to be created just yet:

expect_true(file.exists(beast2_options$input_filename))
expect_false(file.exists(beast2_options$output_state_filename))

We can run beastier now, if BEAST2 is installed. Because BEAST2 needs to be installed by the user, this vignette checks if it is installed:

if (is_beast2_installed()) {
  output <- run_beast2_from_options(beast2_options)
}

If beastier has run BEAST2, the MCMC’s final state will be saved to a file:

if (is_beast2_installed()) {
  expect_true(file.exists(beast2_options$output_state_filename))
}

If beastier has run BEAST2, the BEAST2 output can be shown:

if (is_beast2_installed()) {
  print(output)
}
#>   [1] ""                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
#>   [2] "                        BEAST v2.6.3, 2002-2020"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
#>   [3] "             Bayesian Evolutionary Analysis Sampling Trees"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
#>   [4] "                       Designed and developed by"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
#>   [5] " Remco Bouckaert, Alexei J. Drummond, Andrew Rambaut & Marc A. Suchard"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
#>   [6] "                                    "                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
#>   [7] "                   Centre for Computational Evolution"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
#>   [8] "                         University of Auckland"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
#>   [9] "                       r.bouckaert@auckland.ac.nz"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
#>  [10] "                        alexei@cs.auckland.ac.nz"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
#>  [11] "                                    "                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
#>  [12] "                   Institute of Evolutionary Biology"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
#>  [13] "                        University of Edinburgh"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
#>  [14] "                           a.rambaut@ed.ac.uk"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
#>  [15] "                                    "                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
#>  [16] "                    David Geffen School of Medicine"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
#>  [17] "                 University of California, Los Angeles"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
#>  [18] "                           msuchard@ucla.edu"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      
#>  [19] "                                    "                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
#>  [20] "                      Downloads, Help & Resources:"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
#>  [21] "                           http://beast2.org/"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
#>  [22] "                                    "                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
#>  [23] "  Source code distributed under the GNU Lesser General Public License:"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
#>  [24] "                   http://github.com/CompEvol/beast2"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
#>  [25] "                                    "                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
#>  [26] "                           BEAST developers:"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      
#>  [27] "   Alex Alekseyenko, Trevor Bedford, Erik Bloomquist, Joseph Heled, "                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
#>  [28] " Sebastian Hoehna, Denise Kuehnert, Philippe Lemey, Wai Lok Sibon Li, "                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
#>  [29] "Gerton Lunter, Sidney Markowitz, Vladimir Minin, Michael Defoin Platel, "                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
#>  [30] "          Oliver Pybus, Tim Vaughan, Chieh-Hsi Wu, Walter Xie"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
#>  [31] "                                    "                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
#>  [32] "                               Thanks to:"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
#>  [33] "          Roald Forsberg, Beth Shapiro and Korbinian Strimmer"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
#>  [34] ""                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
#>  [35] "Writing state to file /home/richel/.cache/beast2_33f0b3ddfa45a.xml.state"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
#>  [36] "Random number seed: 1604064550103"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
#>  [37] ""                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
#>  [38] "File: 2_4.xml seed: 1604064550103 threads: 1"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      
#>  [39] "Loading package bacter v2.2.3"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
#>  [40] "Loading package BASTA v3.0.1"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      
#>  [41] "Loading package NS v1.1.0"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
#>  [42] "Loading package BADTRIP v1.0.0"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
#>  [43] "Loading package MASTER v6.1.2"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
#>  [44] "Loading package BEAST_CLASSIC v1.5.0"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
#>  [45] "Loading package BDSKY v1.4.6"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      
#>  [46] "Loading package BEAST v2.6.3"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      
#>  [47] "Loading package BEASTLabs v1.9.4"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
#>  [48] "Loading package MODEL_SELECTION v1.5.3"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
#>  [49] "Loading package BDMM v1.0"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
#>  [50] "Loading package Babel v0.3.1"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      
#>  [51] "Loading package MultiTypeTree v7.0.2"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
#>  [52] "Loading package BEAST v2.6.3"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      
#>  [53] "t1: 20 4"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
#>  [54] "t2: 20 4"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
#>  [55] "t3: 20 4"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
#>  [56] "t4: 20 4"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
#>  [57] "t5: 20 4"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
#>  [58] "Alignment(test_output_0)"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
#>  [59] "  5 taxa"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
#>  [60] "  20 sites"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
#>  [61] "  16 patterns"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
#>  [62] ""                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
#>  [63] "Failed to load BEAGLE library: no hmsbeagle-jni in java.library.path: [/usr/lib/jvm/java-11-openjdk-amd64/lib/server, /usr/lib/jvm/java-11-openjdk-amd64/lib, /usr/lib/jvm/java-11-openjdk-amd64/../lib, /usr/lib/R/lib, /usr/lib/x86_64-linux-gnu, /usr/lib/jvm/default-java/lib/server, /usr/lib/R/lib, /usr/lib/x86_64-linux-gnu, /usr/lib/jvm/default-java/lib/server, /usr/lib/R/lib, /usr/lib/x86_64-linux-gnu, /usr/lib/jvm/default-java/lib/server, /usr/java/packages/lib, /usr/lib/x86_64-linux-gnu/jni, /lib/x86_64-linux-gnu, /usr/lib/x86_64-linux-gnu, /usr/lib/jni, /lib, /usr/lib]"
#>  [64] "TreeLikelihood(treeLikelihood.test_output_00) uses BeerLikelihoodCore4"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
#>  [65] "  Alignment(test_output_0): [taxa, patterns, sites] = [5, 16, 20]"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
#>  [66] "==============================================================================="                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
#>  [67] "Citations for this model:"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
#>  [68] ""                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
#>  [69] "Bouckaert, Remco, Timothy G. Vaughan, Joëlle Barido-Sottani, Sebastián Duchêne, Mathieu Fourment, "                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
#>  [70] "Alexandra Gavryushkina, Joseph Heled, Graham Jones, Denise Kühnert, Nicola De Maio, Michael Matschiner, "                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
#>  [71] "Fábio K. Mendes, Nicola F. Müller, Huw A. Ogilvie, Louis du Plessis, Alex Popinga, Andrew Rambaut, "                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
#>  [72] "David Rasmussen, Igor Siveroni, Marc A. Suchard, Chieh-Hsi Wu, Dong Xie, Chi Zhang, Tanja Stadler, "                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
#>  [73] "Alexei J. Drummond "                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
#>  [74] "  BEAST 2.5: An advanced software platform for Bayesian evolutionary analysis. "                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
#>  [75] "  PLoS computational biology 15, no. 4 (2019): e1006650."                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
#>  [76] ""                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
#>  [77] "==============================================================================="                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
#>  [78] "Start likelihood: -122.7229302051196 "                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
#>  [79] "Writing file test_output_0.log"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
#>  [80] "Writing file test_output_0.trees"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
#>  [81] "         Sample      posterior ESS(posterior)     likelihood          prior"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
#>  [82] "              0      -122.7229              N      -119.3249        -3.3979 --"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
#>  [83] "           1000       -86.8565         2.0          -84.2612        -2.5952 --"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
#>  [84] ""                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
#>  [85] "Operator                                                   Tuning    #accept    #reject      Pr(m)  Pr(acc|m)"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
#>  [86] "ScaleOperator(YuleBirthRateScaler.t:test_output_0)        0.75000         32          5    0.04000    0.86486 Try setting scaleFactor to about 0.562"                                                                                                                                                                                                                                                                                                                                                                                                                                              
#>  [87] "ScaleOperator(YuleModelTreeScaler.t:test_output_0)        0.50000         18         17    0.04000    0.51429 Try setting scaleFactor to about 0.25"                                                                                                                                                                                                                                                                                                                                                                                                                                               
#>  [88] "ScaleOperator(YuleModelTreeRootScaler.t:test_output_0)    0.50000         14         31    0.04000    0.31111 "                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
#>  [89] "Uniform(YuleModelUniformOperator.t:test_output_0)               -        165        199    0.40000    0.45330 "                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
#>  [90] "SubtreeSlide(YuleModelSubtreeSlide.t:test_output_0)       1.00000         26        203    0.20000    0.11354 "                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
#>  [91] "Exchange(YuleModelNarrow.t:test_output_0)                       -         34        162    0.20000    0.17347 "                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
#>  [92] "Exchange(YuleModelWide.t:test_output_0)                         -          0         44    0.04000    0.00000 "                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
#>  [93] "WilsonBalding(YuleModelWilsonBalding.t:test_output_0)           -          0         51    0.04000    0.00000 "                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
#>  [94] ""                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
#>  [95] "     Tuning: The value of the operator's tuning parameter, or '-' if the operator can't be optimized."                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
#>  [96] "    #accept: The total number of times a proposal by this operator has been accepted."                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
#>  [97] "    #reject: The total number of times a proposal by this operator has been rejected."                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
#>  [98] "      Pr(m): The probability this operator is chosen in a step of the MCMC (i.e. the normalized weight)."                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
#>  [99] "  Pr(acc|m): The acceptance probability (#accept as a fraction of the total proposals for this operator)."                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
#> [100] ""                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
#> [101] ""                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
#> [102] "Total calculation time: 0.431 seconds"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
#> [103] "End likelihood: -86.85652822060727"