Changelog#
Version History#
Version 0.2.1#
Added#
Split decomposition ([Bandelt and Dress, 1992]) for distance matrices:
isolation_index()— computes the isolation index of a bipartition with respect to a distance matrix.split_decomposition()— canonical decompositiond = d^0 + Σ α_S δ_S, returning aWeightedSplitSystemof all d-splits and the split-prime residual as aDistanceMatrix.Both functions are re-exported from
phylozoo.core.distance.
New classification functions in
phylozoo.core.distance.classifications:is_tree_metric()— four-point condition check (Numba-accelerated, \(O(n^4)\)).is_totally_decomposable()— checks whether the split-prime residual is zero.
distances_from_splitsystem()↔split_decomposition()round-trip tests andtree_from_splitsystem()↔induced_splits()round-trip tests.Documentation: new Split Decomposition section in the distance manual; updated Algorithms section in the split-system manual; new
api/core/distanceentry for the decomposition module. BibTeX entryBandelt1992added tobibliography.bib.
Changed#
_check_kalmanson_conditionsmoved from a nested closure insideis_kalmanson()to a module-level@njitfunction, consistent with the other Numba helpers in the module.
Version 0.2.0#
Added#
New
phylozoo.core.tripletmodule providingTriplet,TripletProfile, andTripletProfileSetfor working with rooted three-taxon trees (characterised by a trivial 1|2 splita|bcor by an unresolved 3-taxon star). All three classes are re-exported from the top-levelphylozoonamespace.New
displayed_triplets()derivation onDirectedPhyNetwork, returning aTripletProfileSetaggregated over the displayed trees.Manual chapter
Triplets(overview + per-class pages) and anapi/core/tripletsAPI page.Manual page
Parallel Executionandapi/utils/parallelAPI page documentingphylozoo.utils.parallelas the standard interface for parallel execution in PhyloZoo. No functions currently expose aparallelparameter; the module is the intended way to introduce parallelization in future implementations.New
CIGitHub Actions workflow (.github/workflows/ci.yml) runningpytest(Python 3.10 and 3.11),ruff,black --check, andmypyon every push tomasterand every pull request. See the Testing Guide for details. A CI badge has been added to the project README.
Changed#
ParallelBackendclass docstring restructured to plain prose (the enum members are now described inline rather than in a NumPy-styleAttributessection) to avoid duplicate Sphinx object descriptions.Black, Ruff, and Mypy fixes have been made thoughout the codebase.
Removed#
phylozoo.core.distance.operations(and the entireoperations.pyfile). The Traveling Salesman Problem solvers (optimal_tsp_tour,approximate_tsp_tour) have been removed, together with the corresponding manual section and API entry. Their implementation is now part of the dependent packagephysquirrel.phylozoo.core.quartet.qdistance.quartet_distance_with_partitionand its documentation in the Quartet Profile Sets manual page.
Version 0.1.2#
Fixed newick parsing branch length order: it must be after the hybrid marker, not before.
Version 0.1.1#
Fixed docs build: added matplotlib to docs dependencies
Version 0.1.0#
Initial public release