The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

tracerer versus Tracer demo

Richèl J.C. Bilderbeek

2023-09-25

tracerer: ‘Tracer for R’ is an R package that does the same as Tracer does, from within R.

To use tracerer, it needs to be loaded:

library(tracerer)

When loading beast2_example_output.log in Tracer, the following is displayed:

Tracer output
Tracer output

Most prominently, at the left, the effective sample sizes (ESSes) are shown.

The show the ESSes using tracerer:

estimates <- parse_beast_tracelog_file(
  get_tracerer_path("beast2_example_output.log")
)
estimates <- remove_burn_ins(estimates, burn_in_fraction = 0.1)
esses <- calc_esses(estimates, sample_interval = 1000)
table <- t(esses)
colnames(table) <- c("ESS")
knitr::kable(table)
ESS
posterior 10
likelihood 10
prior 10
treeLikelihood 10
TreeHeight 7
BirthDeath 10
birthRate2 9
relativeDeathRate2 6

At the top-right, some measures of the variable posterior is shown. To reproduce these measures in tracerer:

sum_stats <- calc_summary_stats(
  estimates$posterior,
  sample_interval = 1000
)
table <- t(sum_stats)
colnames(table) <- c("sum_stat")
knitr::kable(table)
sum_stat
mean -70.58394
stderr_mean 0.5044887
stdev 1.681629
variance 2.827876
median -69.87976
mode n/a
geom_mean n/a
hpd_interval_low -74.15268
hpd_interval_high -68.68523
act 1000
ess 10

Unlike Tracer, in tracerer all summary statistics can be obtained at once:

sum_stats <- calc_summary_stats(
  estimates,
  sample_interval = 1000
)
knitr::kable(sum_stats)
mean stderr_mean stdev variance median mode geom_mean hpd_interval_low hpd_interval_high act ess
posterior -70.5839432 0.5044887 1.6816291 2.8278764 -69.8797613 n/a n/a -74.1526820 -68.6852294 1000.000 10.000000
likelihood -60.1725009 0.3964208 1.3214025 1.7461047 -60.0504225 n/a n/a -62.4090389 -58.7371284 1000.000 10.000000
prior -10.4114423 0.5424505 1.8081684 3.2694729 -10.5950270 n/a n/a -14.1703653 -7.2820933 1000.000 10.000000
treeLikelihood -60.1725009 0.3964208 1.3214025 1.7461047 -60.0504225 n/a n/a -62.4090389 -58.7371284 1000.000 10.000000
TreeHeight 0.9744748 0.1439937 0.3916244 0.1533697 0.8755907 n/a 0.91041547166058 0.4529637 1.8159958 1502.121 6.657254
BirthDeath -3.5036870 0.5424505 1.8081684 3.2694729 -3.6872718 n/a n/a -7.2626100 -0.3743380 1000.000 10.000000
birthRate2 1.4470488 0.2134411 0.6713951 0.4507714 1.4118781 n/a 1.28823302868404 0.3909076 2.8041208 1122.942 8.905181
relativeDeathRate2 0.4937568 0.0650235 0.1709096 0.0292101 0.4480670 n/a 0.466468860930895 0.2496224 0.7107459 1608.296 6.217762

At the bottom-right, a histogram of the posterior estimates is shown. To reproduce these measures in tracerer:

ggplot2::ggplot(
  data = remove_burn_ins(estimates, burn_in_fraction = 0.1),
  ggplot2::aes(posterior)
) + ggplot2::geom_histogram(binwidth = 0.21) +
  ggplot2::scale_x_continuous(breaks = seq(-75, -68))

Tracer can also show the trace of each estimated variable:

Tracer shows the trace of the posterior likelihood
Tracer shows the trace of the posterior likelihood

Same can be done with tracerer:

ggplot2::ggplot(
  data = remove_burn_ins(estimates, burn_in_fraction = 0.1),
  ggplot2::aes(x = Sample)
) + ggplot2::geom_line(ggplot2::aes(y = posterior))

tracerer can also use part of DensiTree’s functionality. Here is beast2_example_output.trees displayed by DensiTree:

DensiTree output
DensiTree output

The same is achieved in tracerer with:

trees <- parse_beast_trees(
  get_tracerer_path("beast2_example_output.trees")
)
phangorn::densiTree(trees, width = 2)

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.