phypanda#

phypanda is the Python library for PaNDAefficient optimization of phylogenetic diversity in phylogenetic networks. It works on directed phylogenetic networks represented in phylozoo, and uses scanwidth (scanwidth) to obtain tree extensions and run fixed-parameter tractable dynamic programs for several budgeted problems.

What you can do here#

  • Score a chosen set of taxa under different PD notions (all-paths / MAPPD, max-tree, min-tree, and stubs for tree-only, network, and average-tree measures).

  • Optimize under an integer budget with taxon costs (notably MAPPD via node-scanwidth FPT, max-tree PD, and greedy / generic wrappers).

  • Provide a precomputed tree extension (e.g. from NSW / XP ordering) so repeated solves on the same network avoid rescanning.

The algorithms and objective definitions are those in the PaNDA paper; this site focuses on how to run the code. For definitions and proofs, see the reference below.

Paper and citation#

If you use this software, please cite:

PaNDA: Efficient Optimization of Phylogenetic Diversity in Networks. Niels Holtgrefe, Leo van Iersel, Ruben Meuwese, Yukihiro Murakami, Jannik Schestag. bioRxiv, 2025. https://doi.org/10.1101/2025.11.14.688467

The repository README links the GUI, experiment scripts (under experiments/), and supplementary datasets for the first MAPPD study (experiments/MAPPD/) and budgeted benchmarks (experiments/budgeted_PD/).