Releases: iqtree/piqtree
Releases · iqtree/piqtree
Tagging for pIQ-TREE manuscript
v0.6.0
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 becomerandom_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
andpiqtree_random_tree
. The function and app have the same parameters as therandom_trees
andpiqtree_random_trees
versions, except thenum_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
fromfit_tree
. - All apps have been renamed to take the form
piq_<func_name>
. random_trees
andpiqtree_random_trees
have been removed in favour ofrandom_tree
andpiq_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
toc401ac4
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 ofrandom_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
to1357e36
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
tod9bc0a6
by @dependabot[bot] in #246 - ENH: Add consensus tree merger by @rmcar17 in #245
- Bump iqtree3 from
d9bc0a6
toce5b6ce
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
fromfit_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
to993275d
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
to7cded0c
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
Contributors
- @GavinHuttley added
nj_tree
as a hook forcogent3.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
oncogent3
alignment objects. TryAlignment.quick_tree(use_hook="piqtree")
. nj_tree
now by default does not allow negative branch lengths. Setallow_negative=True
if this behaviour is desired.- Allow
str
to be used formodel
inbuild_tree
andfit_tree
. The value is automatically coerced into theModel
class.
API
- Simplify API for
piqtree_phylo
andpiqtree_fit
apps. Both now take a single parameter for the model, matching the parameter formodel
inbuild_tree
andfit_tree
.
What's Changed
- Bump ruff from 0.8.2 to 0.8.3 by @dependabot in #140
- Bump mypy from 1.13.0 to 1.14.1 by @dependabot in #149
- Bump ruff from 0.8.3 to 0.9.1 by @dependabot in #150
- DOC: add documentation for developers by @rmcar17 in #151
- ENH: RtD Error Handling + Backup Token Name by @rmcar17 in #152
- ENH: use get for when status isn't in GitHub API return by @rmcar17 in #153
- DOC: add contributing guide to README by @rmcar17 in #154
- ENH: Create CODE_OF_CONDUCT.md by @rmcar17 in #155
- Bump ruff from 0.9.1 to 0.9.2 by @dependabot in #156
- Bump ruff from 0.9.2 to 0.9.3 by @dependabot in #157
- Bump ruff from 0.9.3 to 0.9.4 by @dependabot in #158
- Bump ruff from 0.9.4 to 0.9.7 by @dependabot in #162
- Bump mypy from 1.14.1 to 1.15.0 by @dependabot in #159
- Bump pypa/cibuildwheel from 2.22.0 to 2.23.0 by @dependabot in #164
- Bump ruff from 0.9.7 to 0.9.10 by @dependabot in #166
- Bump iqtree2 from
ccf68f4
to39c2ea4
by @dependabot in #167 - Bump iqtree2 from
39c2ea4
to92725d3
by @dependabot in #169 - ENH: add piqtree_nj as a cogent3 quick_tree hook by @GavinHuttley in #170
- Bump ruff from 0.9.10 to 0.11.0 by @dependabot in #172
- Bump iqtree2 from
92725d3
to4da7093
by @dependabot in #174 - Bump iqtree2 from
4da7093
to1320c4c
by @dependabot in #175 - MAINT: Add support for Python 3.13, drop for 3.10 by @rmcar17 in #180
- Bump pypa/cibuildwheel from 2.23.0 to 2.23.1 by @dependabot in #173
- ENH: provide piqtree_nj and nj_tree option for positive branch lengths by @YapengLang in #165
- DEV: Update minimum
cogent3
version by @rmcar17 in #186 - Bump ruff from 0.11.0 to 0.11.5 by @dependabot in #193
- Bump pypa/cibuildwheel from 2.23.1 to 2.23.2 by @dependabot in #191
- Bump ruff from 0.11.5 to 0.11.8 by @dependabot in #199
- Bump pypa/cibuildwheel from 2.23.2 to 2.23.3 by @dependabot in #196
- MAINT/API: Fix Table references in latest version of
cogent3
, simplify API of model for build and fit tree apps by @rmcar17 in #201 - REL: Prepare for 0.5.0 release by @rmcar17 in #202
- DEV: update trove classifiers for supported python versions by @rmcar17 in #203
- DEV: add minimum cmake version by @rmcar17 in #204
Full Changelog: v0.4.0...v0.5.0
v0.4.0
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 aModel
class. - API for
random_trees
has changed - new order (num_trees
,num_taxa
,tree_mode
, thenrand_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
- Documentation is now on readthedocs!
What's Changed
- DEV: remove ssh mounts (use ssh-agent instead) by @rmcar17 in #64
- Bump iqtree2 from
9ee7f6c
tocf47d36
by @dependabot in #63 - DEV: remove ssh mount (use ssh-agent instead) by @rmcar17 in #65
- Bump iqtree2 from
cf47d36
to07aa4b3
by @dependabot in #70 - ENH: attached rate and motif parameters to cogent3 tree object by @YapengLang in #49
- Bump pypa/cibuildwheel from 2.20.0 to 2.21.1 by @dependabot in #71
- Bump iqtree2 from
07aa4b3
to70152d2
by @dependabot in #74 - ENH: add support for nj tree, jc distances, and raw results of model finder by @rmcar17 in #79
- Bump pypa/cibuildwheel from 2.21.1 to 2.21.3 by @dependabot in #80
- TST: added tests for branch lengths by @YapengLang in #82
- Bump iqtree2 from
70152d2
tof04b6f2
by @dependabot in #81 - ENH: parse parameters in Lie Markov model and rate model by @YapengLang in #88
- DEV: Drop support for Python 3.9 by @rmcar17 in #86
- MAINT: ensure unix line endings (artefact from initial windows development) by @rmcar17 in #89
- ENH: modifications in prep for the documentation by @GavinHuttley in #85
- ENH: add bootstrapping parameter in build_tree, and update _process_tree_yaml to handle inconsistent newick by @YapengLang in #91
- ENH: Add JC Distance App by @rmcar17 in #92
- ENH: Model can be imported from top level by @rmcar17 in #93
- DOC: Use new Model API in README by @rmcar17 in #94
- DEV: Add Type Checking With mypy by @rmcar17 in #95
- MAINT: fix piqtree_fit app help by @rmcar17 in #100
- Misc changes by @GavinHuttley in #101
- API and DOC by @GavinHuttley in #103
- DEV: add ruff linting to CI by @rmcar17 in #104
- Prepping for rtd by @GavinHuttley in #105
- Support serialisation of ModelFinderResult by @GavinHuttley in #106
- DEV: git submodule update by @GavinHuttley in #107
- DEV: bump version to trigger doc build by @GavinHuttley in #108
- Bump pypa/cibuildwheel from 2.21.3 to 2.22.0 by @dependabot in #109
- MAINT: Fix linting, pin ruff by @rmcar17 in #110
- DEV: added scripts for building and uploading docs by @GavinHuttley in #111
- DEV: Simplify Workflows by @rmcar17 in #112
- Bump iqtree2 from
f04b6f2
to18fa5a3
by @dependabot in #113 - Bump iqtree2 from
18fa5a3
toea7a080
by @dependabot in #114 - DOC: infrastructure by @GavinHuttley in #115
- DOC: case matters by @GavinHuttley in #117
- DOC: fixes to docs by @GavinHuttley in #118
- DEV: added link to documentation to pyproject.toml by @GavinHuttley in #119
- Bump iqtree2 from
ea7a080
toda38244
by @dependabot in #120 - Bump ruff from 0.8.0 to 0.8.1 by @dependabot in #122
- DOC: point README to documentation website by @rmcar17 in #121
- Bump iqtree2 from
da38244
to839f3f1
by @dependabot in #123 - DEV: Support building all mac/linux wheels by @rmcar17 in #124
- ENH: refactor ModelFinderResult to use new ModelResultValue class, fixes #102 by @KatherineCaley in #125
- Bump ruff from 0.8.1 to 0.8.2 by @dependabot in #126
- Bump iqtree2 from
839f3f1
toccf68f4
by @dependabot in #127 - ENH: export iqtree version to piqtree2 module by @rmcar17 in #128
- DEV: fix typo in linting ci job by @rmcar17 in #129
- DOC: add quickstart and API reference by @rmcar17 in #130
- DEV: make dockerfile setup dev environment by @rmcar17 in #131
- DEV: push to iqtree ghcr by @rmcar17 in #132
- DEV: fix build for dockerfile by @rmcar17 in #133
- DEV: revert docker editting by @rmcar17 in #134
- MAINT: rename piqtree2 to piqtree by @rmcar17 in #135
- DEV: store devcontainer in iqtree org, include btop and rename env to piq-dev by @rmcar17 in #136
- ENH: add
make_model
by @rmcar17 in #137 - DOC: Add documentation for model_finder by @rmcar17 in #138
- REL: release 0.4.0 by @rmcar17 in #139
New Contributors
- @YapengLang made their first contribution in #49
- @KatherineCaley made their first contribution in #125
Full Changelog: v0.3.1...v0.4.0
v0.3.1
v0.3.0
Contributors
- @rmcar17 Added new classes to enhance model specification when calling
build_tree
andfit_tree
. - @thomaskf fixed a bug in IQ-TREE resulting in segmentation faults on some invalid arguments.
ENH
build_tree
andfit_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
- Bump iqtree2 from
b73ea6c
to5725858
by @dependabot in #38 - ENH: add freq rate type including rate het by @rmcar17 in #39
Full Changelog: 0.2.0...v0.3.0
0.2.0
Contributors
-
Richard Morris
-
Robert McArthur
ENH
build_tree
andfit_tree
now use enums for the substitution model.
BUG
- Fixed an issue where calling
build_tree
orfit_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
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
- Build container workflow by @khiron in #8
- disable container build for now by @khiron in #9
- Python API for piqtree2 by @khiron in #10
- ENH: define cogent3 apps and add test stub by @GavinHuttley in #15
- ENH: added available_models() convenience function by @GavinHuttley in #18
- Bump actions/checkout from 2 to 4 by @dependabot in #20
- Bump pypa/cibuildwheel from 2.19.1 to 2.19.2 by @dependabot in #19
New Contributors
- @khiron made their first contribution in #8
- @GavinHuttley made their first contribution in #15
- @dependabot made their first contribution in #20
Full Changelog: https://github.com/iqtree/piqtree2/commits/v0.1.0