#' Read a pair of `optim` tables and join them together
#'
#' For a given combination of `sim` and `para`, this function will fetch the
#' two corresponding optimisation results tables; filter out the metadata
#' and bind them together. Also computes the log likelihood ratio along the way.
#'
#' @inheritParams params_doc
#' @author Théo Pannetier
#' @export
join_optim_tbls <- function(sim,
para,
init_k = get_init_k()[which(names(get_init_k()) == para)]
) {
assert_DDvTD_wd()
assert_sim(sim)
assert_para(para)
assert_init_k(init_k)
optim_ls <- purrr::map(
c("DD", "TD"),
function(optim) {
read_optim_results(
sim = sim, para = para, optim = optim, init_k = init_k
) %>%
dplyr::mutate(
# replace -Inf with NAs
"loglik" = ifelse(loglik == -Inf, NA, loglik)
) %>%
dplyr::select(mc, ntips, loglik, contains("init_"), contains("_ML")) %>%
dplyr::rename_with(tolower)
})
optim_tbl <- dplyr::full_join(
optim_ls[[1]], optim_ls[[2]],
by = c("mc", "ntips"),
suffix = c("_dd", "_td")
) %>%
dplyr::mutate("log_lr" = loglik_dd - loglik_td) %>%
dplyr::relocate(loglik_td, log_lr, .after = loglik_dd)
nb_NAs <- sum(is.na(optim_tbl$log_lr))
if (nb_NAs > 0) {
warning("For sim", sim, "_", para,": logLR could not be computed for ", nb_NAs, " trees.")
}
return(optim_tbl)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.