Changelog#

0.1.1#

  • maffe is an optional extra: pip install "forestpd[maffe]" installs it from PyPI (Python 3.11 to 3.14, Linux and Windows on x86_64). On other platforms it is built from source, from maffe’s release v0.1.1. The error raised without maffe gives this command.

0.1.0#

First release.

  • Exact solver for MaxMPD: the weighted PD summed over many trees on the same taxa, with integer taxon costs and a budget, and optional survival probabilities (expected PD of the survivors).

  • Rooted and unrooted PD.

  • Optimal values and optimal taxon sets for many budgets from one solve (optimize_many()).

  • Cluster reduction, and agreement forests from a built-in heuristic (HeuristicMAF) or, with the optional maffe package, minimum agreement forests (MaffeRMAF, MaffeUMAF, TieredMAF).

  • Newick input from files or strings; export as Newick and as a weighted split system in NEXUS format for PDA; conversion to and from PhyloZoo trees (optional).

  • Pruning trees to a common taxon set (forestpd.utils.prune()).