Skip to content

Releases: iqtree/piqtree

Tagging for pIQ-TREE manuscript

11 Jul 05:14
Compare
Choose a tag to compare
v0.6.0-ms

DOC: Fix docstring spacing and mood

v0.6.0

11 Jul 01:37
Compare
Choose a tag to compare

Contributors

  • @rmcar17 and @thomaskf enabled windows support for piqtree!
  • @rmcar17 ensured nj_tree raises an appropriate error on NaN input.
  • @rmcar17 reworked random_trees and the related app to become random_tree, returning a single tree.
  • @rmcar17 and @thomaskf integrated IQ-TREE 3 into piqtree.
  • @rmcar17 added support for Lie Markov Model prefixes.
  • @rmcar17 added the STRSYM and UNREST models.
  • @rmcar17 added source tracking for the inputs of apps.
  • @rmcar17 and @thomaskf integrated consensus tree construction into piqtree.
  • @rmcar17 added support for the parameterisation of currently supported models, base frequencies, and rate heterogeneity.
  • @GavinHuttley improved the docs and performed some deprecation maintanence for a dependency.

ENH

  • Added windows support!
  • Add random_tree and piqtree_random_tree. The function and app have the same parameters as the random_trees and piqtree_random_trees versions, except the num_trees argument has been removed.
  • piqtree now uses IQ-TREE 3 for its internal library.
  • Add support for Lie Markov Model prefixes.
  • Add the STRSYM and UNREST models.
  • piqtree apps now track the sources of their inputs.
  • Add a method for building consensus trees with specifiable support parameters.
  • Add a consensus tree app.
  • Substitution models, base frequencies, and models for rateheterogeneity can now be parameterised.

BUG

  • An error is now raised when calling nj_tree with NaN distances instead of failing silently.

API

  • Split Lie Markov Models out of the standard dna enum.
  • Remove unused rand_seed from fit_tree.
  • All apps have been renamed to take the form piq_<func_name>.
  • random_trees and piqtree_random_trees have been removed in favour of random_tree and piq_random_tree. Looping can be used if multiple trees are needed.

What's Changed

  • Bump ruff from 0.11.8 to 0.11.9 by @dependabot[bot] in #205
  • Bump ruff from 0.11.9 to 0.11.10 by @dependabot[bot] in #210
  • ENH: Add windows support by @rmcar17 in #184
  • Bump iqtree2 from 1320c4c to c401ac4 by @dependabot[bot] in #198
  • ENH: Handle when distance matrix contains NaN values (raise exception) by @rmcar17 in #213
  • TST: only check for piqtree provenance on quick tree hook when piqtree explicitly selected by @rmcar17 in #214
  • Bump MarkusJx/install-boost from 2.4.5 to 2.5.0 in /.github/actions/build-iqtree by @dependabot[bot] in #217
  • Bump MarkusJx/install-boost from 2.4.5 to 2.5.0 by @dependabot[bot] in #216
  • Bump ruff from 0.11.10 to 0.11.11 by @dependabot[bot] in #215
  • DEV: Add action to upload full sdist (including submodules) to releases by @rmcar17 in #218
  • ENH: Build docs filters by workflow to avoid runs getting buried. Also ensures actual latest is used by @rmcar17 in #219
  • MAINT: Reduce readthedocs polling interval by @rmcar17 in #220
  • MAINT: Standarise actions and prepare for IQ-TREE 3 by @rmcar17 in #221
  • DEV: specify minimum permissions for github actions to work by @rmcar17 in #222
  • ENH: Add SHA256 Checksum to Release by @rmcar17 in #223
  • DEV: Cancel old CI runs when new run on same target starts by @rmcar17 in #225
  • MAINT: Remove references to IQ-TREE 2 in favour of simply IQ-TREE by @rmcar17 in #226
  • DOC: Modernise Examples in README, and Ruff Badge by @rmcar17 in #228
  • Bump mypy from 1.15.0 to 1.16.0 by @dependabot[bot] in #230
  • Bump ruff from 0.11.11 to 0.11.12 by @dependabot[bot] in #229
  • Bump ruff from 0.11.12 to 0.11.13 by @dependabot[bot] in #231
  • DEV: update cogent3 by @rmcar17 in #233
  • API: Discontinue random_trees and related app in favour of random_tree by @rmcar17 in #232
  • Bump softprops/action-gh-release from 2.2.2 to 2.3.2 by @dependabot[bot] in #234
  • Bump pypa/cibuildwheel from 2.23.3 to 3.0.0 by @dependabot[bot] in #235
  • DEV: Move to IQ-TREE 3 by @rmcar17 in #236
  • DEV: add scriv fragment for IQ-TREE 3 by @rmcar17 in #238
  • Bump iqtree3 from f7660f4 to 1357e36 by @dependabot[bot] in #239
  • MAINT: Split out Lie Markov Model Class by @rmcar17 in #240
  • ENH: add UNREST and STRSYM models by @rmcar17 in #241
  • ENH: Track sources of objects on apps by @rmcar17 in #242
  • MAINT: address cogent3 tree .traverse() deprecation by @GavinHuttley in #244
  • Bump iqtree3 from 1357e36 to d9bc0a6 by @dependabot[bot] in #246
  • ENH: Add consensus tree merger by @rmcar17 in #245
  • Bump iqtree3 from d9bc0a6 to ce5b6ce by @dependabot[bot] in #247
  • DOC: Modernise docs by @rmcar17 in #250
  • Bump mypy from 1.16.0 to 1.16.1 by @dependabot[bot] in #249
  • DEV: Use main repo for iqtree3 by @rmcar17 in #251
  • API: Remove rand_seed from fit_tree by @rmcar17 in #252
  • Bump ruff from 0.11.13 to 0.12.0 by @dependabot[bot] in #248
  • DEV: ignore dependabot push ci jobs (already triggered by pull_request) by @rmcar17 in #254
  • DEV: Improve testing speed by @rmcar17 in #255
  • Bump iqtree3 from ce5b6ce to 993275d by @dependabot[bot] in #253
  • DEV: Update license in toml to use SPDX license expression by @rmcar17 in #256
  • ENH: Add consensus tree app by @rmcar17 in #257
  • MAINT: Ensure testing compatability with new cogent3 version (new get_distances) by @rmcar17 in #258
  • Mods to documentation structure and assorted tweaks by @GavinHuttley in #259
  • DEV: Downgrade cibuildwheel as broken with Python 3.13.4 (numba) by @rmcar17 in #260
  • MAINT: Reduce size of wheels (>90% reduction on linux) by @rmcar17 in #261
  • DOC: Test .py files in docs by @rmcar17 in #262
  • MAINT: exclude scripts folder from docs building by @rmcar17 in #263
  • DEV: Fix IQ-TREE building on CI by @rmcar17 in #268
  • Bump ruff from 0.12.0 to 0.12.1 by @dependabot[bot] in #267
  • Bump iqtree3 from 993275d to 7cded0c by @dependabot[bot] in #264
  • API: Rename apps by @rmcar17 in #271
  • ENH: Parameterise models by @rmcar17 in #275
  • DEV: Upgrade cibuildwheel dependency by @rmcar17 in #277
  • Bump ruff from 0.12.1 to 0.12.2 by @dependabot[bot] in #272
  • DEV: Update cogent3 by @rmcar17 in #278
  • DEV: Prepare for 0.6.0 release by @rmcar17 in #279

Full Changelog: v0.5.0...v0.6.0

v0.5.0

09 May 08:13
Compare
Choose a tag to compare

Contributors

  • @GavinHuttley added nj_tree as a hook for cogent3.Alignment.quick_tree.
  • @YapengLang handled negative branch lengths from the rapidNJ tree.
  • @rmcar17, @thomaskf general maintanence on the piqtree/IQ-TREE sides including work on windows behind the scenes.

ENH

  • Add support for Python 3.13, remove support for 3.10
  • IQ-TREE's rapidNJ implementation can be used as a hook for quick_tree on cogent3 alignment objects. Try Alignment.quick_tree(use_hook="piqtree").
  • nj_tree now by default does not allow negative branch lengths. Set allow_negative=True if this behaviour is desired.
  • Allow str to be used for model in build_tree and fit_tree. The value is automatically coerced into the Model class.

API

  • Simplify API for piqtree_phylo and piqtree_fit apps. Both now take a single parameter for the model, matching the parameter for model in build_tree and fit_tree.

What's Changed

Full Changelog: v0.4.0...v0.5.0

v0.4.0

13 Dec 06:42
Compare
Choose a tag to compare

Changes in release "0.4.0"

Contributors

  • @rmcar17 integrated new functions from IQ-TREE in Python, added multithreading support, and wrote the API refererence and quickstart.
  • @thomaskf exposed all new functions from IQ-TREE to be available from Python, and worked on multithreading support.
  • @GavinHuttley worked on setting up and writing the documentation and associated devtools, ModelFinder, and integration with cogent3 apps.
  • @YapengLang worked on bootstrapping support and extracting model parameters
  • @KatherineCaley worked on processing the ModelFinder results.

ENH

  • piqtree2 renamed piqtree to support future major releases of IQ-TREE.
  • piqtree now supports multithreading!
  • New function nj_tree constructs a rapid neighbour-joining tree from a pairwise distance matrix.
  • New function model_finder finds the best model for a given alignment.
  • New function jc_distances constructs a pairwise JC distance matrix from an alignment.
  • New function make_model allows converting an IQ-TREE string representation of a model to a Model class.
  • API for random_trees has changed - new order (num_trees, num_taxa, tree_mode, then rand_seed).
  • API for robinson_foulds has changed - now accepts a Sequence of trees.
  • Model parameters are now extracted from IQ-TREE where for now possible.
  • build_tree now supports ultrafast bootstrapping.
  • Model creation is now more robust.
  • Use piqtree.__iqtree_version__ to see what version of piqtree is being used.
  • See what can now be done in our new documentation!

DOC

What's Changed

New Contributors

Full Changelog: v0.3.1...v0.4.0

v0.3.1

29 Aug 09:14
Compare
Choose a tag to compare

Changes in release "0.3.1"

ENH

  • Add support for Lie Markov Models.
  • Base frequencies default to None (specified by model).

BUG

  • piqtree2 apps are now pickleable (they can now be run with parallel=True in the cogent3 app infrastructure)

v0.3.0

15 Aug 06:10
Compare
Choose a tag to compare

Contributors

  • @rmcar17 Added new classes to enhance model specification when calling build_tree and fit_tree.
  • @thomaskf fixed a bug in IQ-TREE resulting in segmentation faults on some invalid arguments.

ENH

  • build_tree and fit_tree now allow specifying base frequencies, invariable sites and rate heterogeneity options.

BUG

  • Fixed a segmentation fault on repetitive calls to IQ-TREE with particular arguments.

What's Changed

Full Changelog: 0.2.0...v0.3.0

0.2.0

06 Aug 08:36
Compare
Choose a tag to compare

Contributors

  • Richard Morris

  • Robert McArthur

ENH

  • build_tree and fit_tree now use enums for the substitution model.

BUG

  • Fixed an issue where calling build_tree or fit_tree twice, then another function with invalid input resulted in a segmentation fault.

DOC

  • Implement scriv as a tool to manage collection of changes, and automated collation into the changelog

v0.1.0

05 Jul 23:55
0c6aa84
Compare
Choose a tag to compare

The first official release of piqtree2!

piqtree2 allows you to use IQ-TREE for phylogenetic analysis directly from python.

Currently, we support phylogenetic reconstruction, fitting branch lengths to a fixed topology, generating random tress, and pairwise RF distance of trees.

piqtree2 is still in early pre-alpha development, please raise an issue if you encounter any problems or have any feature requests.

What's Changed

New Contributors

Full Changelog: https://github.com/iqtree/piqtree2/commits/v0.1.0