beastier demo

Richèl J.C. Bilderbeek

2020-08-06

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.2, 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_347cd050b35.xml.state"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
#> [36] "Random number seed: 1596694955653"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
#> [37] ""                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
#> [38] "File: 2_4.xml seed: 1596694955653 threads: 1"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      
#> [39] "Loading package NS v1.1.0"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
#> [40] "Loading package BEAST v2.6.2"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      
#> [41] "Loading package BEASTLabs v1.9.4"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
#> [42] "Loading package MODEL_SELECTION v1.5.3"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
#> [43] "Loading package BEAST v2.6.2"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      
#> [44] "t1: 20 4"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
#> [45] "t2: 20 4"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
#> [46] "t3: 20 4"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
#> [47] "t4: 20 4"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
#> [48] "t5: 20 4"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
#> [49] "Alignment(test_output_0)"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
#> [50] "  5 taxa"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
#> [51] "  20 sites"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
#> [52] "  16 patterns"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
#> [53] ""                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
#> [54] "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]"
#> [55] "TreeLikelihood(treeLikelihood.test_output_00) uses BeerLikelihoodCore4"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
#> [56] "  Alignment(test_output_0): [taxa, patterns, sites] = [5, 16, 20]"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
#> [57] "==============================================================================="                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
#> [58] "Citations for this model:"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
#> [59] ""                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
#> [60] "Bouckaert, Remco, Timothy G. Vaughan, Joëlle Barido-Sottani, Sebastián Duchêne, "                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
#> [61] "  Mathieu Fourment, Alexandra Gavryushkina, Joseph Heled et al. "                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
#> [62] "  BEAST 2.5: An advanced software platform for Bayesian evolutionary analysis. "                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
#> [63] "  PLoS computational biology 15, no. 4 (2019): e1006650."                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
#> [64] ""                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
#> [65] "==============================================================================="                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
#> [66] "Start likelihood: -154.76752978400575 "                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
#> [67] "Writing file test_output_0.log"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
#> [68] "Writing file test_output_0.trees"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
#> [69] "         Sample      posterior ESS(posterior)     likelihood          prior"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
#> [70] "              0      -154.6212              N      -149.1149        -5.5063 --"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
#> [71] "           1000       -87.6887         2.0          -84.5084        -3.1803 --"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
#> [72] ""                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
#> [73] "Operator                                                   Tuning    #accept    #reject      Pr(m)  Pr(acc|m)"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
#> [74] "ScaleOperator(YuleBirthRateScaler.t:test_output_0)        0.75000         33          3    0.04000    0.91667 Try setting scaleFactor to about 0.562"                                                                                                                                                                                                                                                                                                                                                                                                                                              
#> [75] "ScaleOperator(YuleModelTreeScaler.t:test_output_0)        0.50000         19         20    0.04000    0.48718 Try setting scaleFactor to about 0.25"                                                                                                                                                                                                                                                                                                                                                                                                                                               
#> [76] "ScaleOperator(YuleModelTreeRootScaler.t:test_output_0)    0.50000         35         14    0.04000    0.71429 Try setting scaleFactor to about 0.25"                                                                                                                                                                                                                                                                                                                                                                                                                                               
#> [77] "Uniform(YuleModelUniformOperator.t:test_output_0)               -        198        192    0.40000    0.50769 "                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
#> [78] "SubtreeSlide(YuleModelSubtreeSlide.t:test_output_0)       1.00000         37        166    0.20000    0.18227 "                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
#> [79] "Exchange(YuleModelNarrow.t:test_output_0)                       -         42        162    0.20000    0.20588 "                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
#> [80] "Exchange(YuleModelWide.t:test_output_0)                         -          0         38    0.04000    0.00000 "                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
#> [81] "WilsonBalding(YuleModelWilsonBalding.t:test_output_0)           -          1         41    0.04000    0.02381 "                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
#> [82] ""                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
#> [83] "     Tuning: The value of the operator's tuning parameter, or '-' if the operator can't be optimized."                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
#> [84] "    #accept: The total number of times a proposal by this operator has been accepted."                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
#> [85] "    #reject: The total number of times a proposal by this operator has been rejected."                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
#> [86] "      Pr(m): The probability this operator is chosen in a step of the MCMC (i.e. the normalized weight)."                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
#> [87] "  Pr(acc|m): The acceptance probability (#accept as a fraction of the total proposals for this operator)."                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
#> [88] ""                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
#> [89] ""                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
#> [90] "Total calculation time: 0.267 seconds"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
#> [91] "End likelihood: -87.68874221956862"