- @rmcar17 - Python
simulate_alignmentimplementation, documentation, project maintanence and Python processing of additional cli options. - @thomaskf - IQ-TREE library interface maintanence and enhancements (including processing additional cli options!).
- @trongnhanuit & @The-CodeBreakeR - AliSim implementation.
- @YapengLang - processing UNREST model parameters and storing additional values on returned tree objects.
- AliSim can now be used through
simulate_alignment. - Additional command line options can now be sent to
build_tree,fit_treeandmodel_finderwith theother_optionsparameter. - UNREST model parameters are now populated on generated trees.
- More specific type information is now used across a suite of functions.
- The used model name is now stored on trees generated by
build_tree.
- A seed of 0 is now deterministic across all IQ-TREE functions.
Nonemust be used (the default) for non-determinism.
- Various enhancements to grammar/spelling.
- Add sections for
simulate_alignment.
- @rmcar17, fixed a jupyter bug on windows and unwanted behaviour when taxon names contained underscores.
- @thomaskf and @rmcar17 implemented the ability to fix certain branch lengths when using
fit_tree.
- Add an option to fix branch lengths when using
fit_treecalledbl_fixed.
piqtreenow works in jupyter notebooks on windows platforms, like it already does for the others.- Fix unexpected behaviour when taxon names contain underscores when using
fit_tree.
- @GavinHuttley docs
- @rmcar17 dependencies
- Pin build dependencies for reproducible builds and use new delvewheel
get_all_neededAPI.
- Update examples to the latest Cogent3 API.
-
@rmcar17 and @thomaskf enabled windows support for piqtree!
-
@rmcar17 ensured
nj_treeraises an appropriate error on NaN input. -
@rmcar17 reworked
random_treesand 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 contruction into
piqtree. -
@rmcar17 added support for the parameterisation of currently supported models, base frequencies, and rate heterogeneity.
-
Added windows support!
-
Add
random_treeandpiqtree_random_tree. The function and app have the same parameters as therandom_treesandpiqtree_random_treesversions, except thenum_treesargument has been removed. -
piqtreenow uses IQ-TREE 3 for its internal library. -
Add support for Lie Markov Model prefixes.
-
Add the STRSYM and UNREST models.
-
piqtreeapps 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.
- An error is now raised when calling
nj_treewith NaN distances instead of failing silently.
-
Split Lie Markov Models out of the standard dna enum.
-
Remove unused
rand_seedfromfit_tree. -
All apps have been renamed to take the form
piq_<func_name>. -
random_treesandpiqtree_random_treeshave been removed in favour ofrandom_treeandpiq_random_tree. Looping can be used if multiple trees are needed.
- @GavinHuttley added
nj_treeas 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.
- Add support for Python 3.13, remove support for 3.10
- IQ-TREE's rapidNJ implementation can be used as a hook for
quick_treeoncogent3alignment objects. TryAlignment.quick_tree(use_hook="piqtree"). nj_treenow by default does not allow negative branch lengths. Setallow_negative=Trueif this behaviour is desired.- Allow
strto be used formodelinbuild_treeandfit_tree. The value is automatically coerced into theModelclass.
- Simplify API for
piqtree_phyloandpiqtree_fitapps. Both now take a single parameter for the model, matching the parameter formodelinbuild_treeandfit_tree.
- @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
cogent3apps. - @YapengLang worked on bootstrapping support and extracting model parameters
- @KatherineCaley worked on processing the ModelFinder results.
- piqtree2 renamed piqtree to support future major releases of IQ-TREE.
- piqtree now supports multithreading!
- New function
nj_treeconstructs a rapid neighbour-joining tree from a pairwise distance matrix. - New function
model_finderfinds the best model for a given alignment. - New function
jc_distancesconstructs a pairwise JC distance matrix from an alignment. - New function
make_modelallows converting an IQ-TREE string representation of a model to aModelclass. - API for
random_treeshas changed - new order (num_trees,num_taxa,tree_mode, thenrand_seed). - API for
robinson_fouldshas changed - now accepts a Sequence of trees. - Model parameters are now extracted from IQ-TREE where for now possible.
build_treenow supports ultrafast bootstrapping.Modelcreation 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!
- Documentation is now on readthedocs!
- Add support for Lie Markov Models.
- Base frequencies default to None (specified by model).
piqtree2apps are now pickleable (they can now be run withparallel=Truein the cogent3 app infrastructure)
- @rmcar17 Added new classes to enhance model specification when calling
build_treeandfit_tree. - @thomaskf fixed a bug in IQ-TREE resulting in segmentation faults on some invalid arguments.
build_treeandfit_treenow allow specifying base frequencies, invariable sites and rate heterogeneity options.
- Fixed a segmentation fault on repetitive calls to IQ-TREE with particular arguments.
- Richard Morris
- Robert McArthur
build_treeandfit_treenow use enums for the substitution model.
- Fixed an issue where calling
build_treeorfit_treetwice, then another function with invalid input resulted in a segmentation fault.
- Implement scriv as a tool to manage collection of changes, and automated collation into the changelog