Indexed predictor terms now require one column each. The
previously working trait_data[, 1:2] ~ trait_data[, 3:4]
shorthand is rejected. Use
trait_data[, 1:2] ~ trait_data[, 3] + trait_data[, 4], or
preferably named columns: cbind(y1, y2) ~ x1 + x2. Multiple
predictors remain supported.
Increased the minimum supported R version from 4.1 to 4.2.
Search defaults are now min_descendant_tips = 10 and
shift_acceptance_threshold = 20, matching the focal
settings of Berv et al. (2026). These defaults can change search results
when arguments are omitted.
Searches with IC = "BIC" now default to
method = "LL". An explicitly supplied method takes
precedence; GIC searches retain the mvgls()
default.
Removed plot_ic_acceptance_matrix(). For a
bifrost_search or compatible search-result list, use
plot(icTrajectory(x)). Legacy callers using a raw
two-column matrix_data object can migrate with:
legacy <- list(
baseline_ic = baseline_ic,
IC_used = "GIC",
model_fit_history = list(ic_acceptance_matrix = matrix_data)
)
plot(icTrajectory(legacy))Plotting arguments map from plot_title to
main, plot_rate_of_improvement to
show_delta, and rate_limits to
delta_limits. Supply baseline_ic to
icTrajectory().
Vignettes and empirical datasets are now distributed through the
package website rather than the CRAN package. Replace former
system.file("extdata", ...) paths with
bifrost_example_file(). The first uncached request
downloads the checksum-verified artifact tracked on GitHub
main; subsequent calls use the verified cache unless
refresh = TRUE. Installation, attachment, and package
examples do not require these downloads.
runSearchTuningGrid() now pairs simulated datasets
across settings in both serial and parallel runs. Separate GIC and BIC
calls with matching simulation inputs and seeds are also paired.
Previously seeded grid results will change; existing cached results are
not replaced. Returned objects record paired_settings and
study_seeds.
0 + or - 1.
Searches now preserve the requested intercept setting for numeric and
factor predictors.icTrajectory() and its plot method for inspecting
search histories. Results now record candidate nodes, resolved progress
settings, and detailed proposal histories, including accepted, rejected,
and errored fits.progress = FALSE to disable them independently of
verbose output."0" and the fitted global BM covariance in
VCVs[["0"]]. Covariance summaries no longer issue the
proportional multi-regime warning for this single covariance.rateMap() and supporting methods for inspecting
branch-rate patterns. Legends respect uneven category breaks.
generateViridisColorScale() requires numeric input and uses
sorted rank rather than numeric distance.lineage_rates() and tools for summarizing shift
nodes, transitions, waiting times, and magnitudes; fitting and
bootstrapping rate distributions; and comparing shift magnitudes.fit_regime_covariances(),
fit_regime_covariance_runs(), module diagnostics,
correlation-matrix PCA, integration summaries, and
regime_integration_pgls() for post-hoc analyses of fitted
regimes.simulation_generator = "original" to reproduce
the published operations; the full-covariance Wishart/spectral generator
is available with "empirical".selectTunedSearchParameters() to filter settings
using false-positive and evaluability safeguards and rank feasible
settings by fuzzy balanced accuracy by default.method and
error settings inherited from the simulation template.
Explicit search overrides remain authoritative; simulation fits, scores,
and the selection rule are unchanged.NULL shift-node vector. Zero-shift results now contribute
missed shifts to strict, fuzzy, and weighted summaries. Saved results
can be reassessed without refitting; failed or incomplete records remain
excluded.NA when
recovery is zero. Undefined cases retain NA. Corrected the
supplementary replicate metrics and their export pipeline; pooled
vignette summaries and selected settings are unchanged.\donttest{} blocks exercised in CI.future (>= 1.49.0)
and phytools (>= 2.0-3), added plotrix,
corrected dependency declarations, and moved website-only dependencies
to Config/Needs/website.searchOptimalConfiguration() documentation
around acceptable tree inputs, recommended mvgls() methods
("H&L" vs "LL"), and the role of
error = TRUE.citation("bifrost") for the live bioRxiv
preprint and the application paper.mvMORPH citations to the package
citation metadata.@return /
\value{}) for the exported
print.bifrost_search() method, clarifying that the function
returns the input object invisibly and is called for its printing side
effects.plot_ic_acceptance_matrix() gains an optional
baseline_ic argument to plot and compute
diff(IC) relative to the true no-shift baseline (useful
when matrix_data begins at the first evaluated shift model
rather than the true baseline).plot_ic_acceptance_matrix() now saves and restores the
user’s graphical parameters via an immediate on.exit()
(prevents leaking par() settings across calls).rate_limits argument to
plot_ic_acceptance_matrix() (default
c(-400, 150)) to control the secondary y-axis limits for
the rate-of-improvement overlay (validated numeric length-2,
finite).bifrost_search S3 class and
print.bifrost_search() method for
searchOptimalConfiguration() results (compact console
summary; optional ASCII IC-history plot via txtplot when
store_model_fit_history = TRUE; prints IC weights when
present).citation("bifrost")); package citation metadata updated in
inst/CITATION.ic_weights output across serial and
parallel uncertainty-weight modes; always returns a
data.frame with consistent columns, and returns an empty
data.frame with the same schema when no shifts are
detected.model_no_uncertainty now
returns the baseline mvgls model (instead of
NULL).ic_weights
to avoid RStudio paged/Unicode rendering issues.Config/testthat/parallel: false).T/F with
TRUE/FALSE.message()/warning() and controlled by a
verbose flag.tempdir() to comply with CRAN file system policies and
avoid writing to the user’s working directory.on.exit() calls.future with
multicore on Unix outside RStudio and
multisession otherwise.num_cores = 1.