bifrost

Branch-level Inference Framework for Recognizing Optimal Shifts in Traits

bifrost is an R package for branch-level inference of multi-regime, multivariate trait evolution on phylogenies. It uses penalized-likelihood multivariate GLS to detect where, when, and how evolutionary rate regimes shift across a tree—operating directly in trait space (no PCA required) and scaling to high-dimensional datasets and large phylogenies. A pre-print describing this package is forthcoming (Berv et al.).


Highlights: multi-rate Brownian Motion with proportional VCV scaling; greedy, step-wise search with GIC/BIC; parallel candidate scoring; SIMMAP-compatible outputs.

janus

Detecting molecular model shifts on phylogenies

janus logo

janus is a program for detecting shifts in molecular substitution models or base composition across phylogenies. It analyzes sequence data with a fixed tree to pinpoint where compositional changes occur and outputs annotated trees for visualization in tools like FigTree. The method was first introduced in Smith et al. 2023, New Phytologist, revealing compositional shifts linked to major evolutionary transitions in plants, and I contributed large-scale simulation workflows used in Berv et al. 2024 (Science Advances), where we applied janus to study molecular evolution in avian genomes.


Highlights: Command-line workflow written in Go; integrates with NLopt for optimization; identifies shifts in substitution models and base composition; supports uncertainty analyses and outputs trees annotated by model. A complementary implementation written in C is available as part of the hringhorni package, optimized for speed and large-scale analyses.