This vignette demonstrates how to use beastier
.
First, load the library:
Also, we’ll load the testthat
library, to verify the statements in this vignette:
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 beastier
has run BEAST2, the MCMC’s final state will be saved to a file:
If beastier
has run BEAST2, the BEAST2 output can be shown:
if (is_beast2_installed()) {
print(output)
}
#> [1] ""
#> [2] " BEAST v2.6.0, 2002-2019"
#> [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_6384b3f7fc2.xml.state"
#> [36] "Random number seed: 1575288731629"
#> [37] ""
#> [38] "File: 2_4.xml seed: 1575288731629 threads: 1"
#> [39] "Loading package MM v1.1.1"
#> [40] "Loading package SA v2.0.2"
#> [41] "Loading package BEAST v2.6.0"
#> [42] "Loading package NS v1.1.0"
#> [43] "Loading package BEASTLabs v1.9.0"
#> [44] "Loading package MODEL_SELECTION v1.5.2"
#> [45] "Loading package starbeast2 v0.15.5"
#> [46] "Loading package BEAST v2.6.0"
#> [47] "t1: 20 4"
#> [48] "t2: 20 4"
#> [49] "t3: 20 4"
#> [50] "t4: 20 4"
#> [51] "t5: 20 4"
#> [52] "Alignment(test_output_0)"
#> [53] " 5 taxa"
#> [54] " 20 sites"
#> [55] " 16 patterns"
#> [56] ""
#> [57] "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]"
#> [58] "TreeLikelihood(treeLikelihood.test_output_00) uses BeerLikelihoodCore4"
#> [59] " Alignment(test_output_0): [taxa, patterns, sites] = [5, 16, 20]"
#> [60] "==============================================================================="
#> [61] "Citations for this model:"
#> [62] ""
#> [63] "Bouckaert, Remco, Timothy G. Vaughan, Joëlle Barido-Sottani, Sebastián Duchêne, "
#> [64] " Mathieu Fourment, Alexandra Gavryushkina, Joseph Heled et al. "
#> [65] " BEAST 2.5: An advanced software platform for Bayesian evolutionary analysis. "
#> [66] " PLoS computational biology 15, no. 4 (2019): e1006650."
#> [67] ""
#> [68] "==============================================================================="
#> [69] "Start likelihood: -109.14244344018199 "
#> [70] "Warning: Overwriting file test_output_0.log"
#> [71] "Warning: Overwriting file test_output_0.trees"
#> [72] " Sample posterior ESS(posterior) likelihood prior"
#> [73] " 0 -109.2166 N -105.6603 -3.5563 --"
#> [74] " 1000 -86.9150 2.0 -84.6437 -2.2712 --"
#> [75] ""
#> [76] "Operator Tuning #accept #reject Pr(m) Pr(acc|m)"
#> [77] "ScaleOperator(YuleBirthRateScaler.t:test_output_0) 0.75000 33 8 0.04000 0.80488 Try setting scaleFactor to about 0.562"
#> [78] "ScaleOperator(YuleModelTreeScaler.t:test_output_0) 0.50000 22 14 0.04000 0.61111 Try setting scaleFactor to about 0.25"
#> [79] "ScaleOperator(YuleModelTreeRootScaler.t:test_output_0) 0.50000 21 22 0.04000 0.48837 Try setting scaleFactor to about 0.25"
#> [80] "Uniform(YuleModelUniformOperator.t:test_output_0) - 157 246 0.40000 0.38958 "
#> [81] "SubtreeSlide(YuleModelSubtreeSlide.t:test_output_0) 1.00000 20 177 0.20000 0.10152 "
#> [82] "Exchange(YuleModelNarrow.t:test_output_0) - 32 157 0.20000 0.16931 "
#> [83] "Exchange(YuleModelWide.t:test_output_0) - 1 43 0.04000 0.02273 "
#> [84] "WilsonBalding(YuleModelWilsonBalding.t:test_output_0) - 1 47 0.04000 0.02083 "
#> [85] ""
#> [86] " Tuning: The value of the operator's tuning parameter, or '-' if the operator can't be optimized."
#> [87] " #accept: The total number of times a proposal by this operator has been accepted."
#> [88] " #reject: The total number of times a proposal by this operator has been rejected."
#> [89] " Pr(m): The probability this operator is chosen in a step of the MCMC (i.e. the normalized weight)."
#> [90] " Pr(acc|m): The acceptance probability (#accept as a fraction of the total proposals for this operator)."
#> [91] ""
#> [92] ""
#> [93] "Total calculation time: 0.72 seconds"
#> [94] "End likelihood: -86.91504471030596"