Contributors
- First time contributions from c-jonesy, Yixuan567, Qinzi27
and je634 πππ
- GavinHuttley bug fixes and maintenance
ENH
- The cogent3.core.annotation.Feature class now gets an xattr property.
This allows developers to pack additional data into the Feature object
without compromising the core API.
- cogent3 now supports hook-style pluginsπ. The first hook is for computing
quick_tree() trees. This method is on our alignment class and on our distance
matrix class. It currently defaults to the cogent3 quick_tree() app, which
applies the NJ algorithm. For developers, you can see what hooks are supported
by looking in cogent3._plugin at functions named `get_<something>_hook()`. All
third-party hooks must adhere to the cogent3 app interface.
Developers, register your hook by adding a section `[project.entry-points."cogent3.hook"]`
section to your `pyproject.toml` file. Assign to the hook name (e.g. `quick_tree`) the string
reference to the app supporting the hook. For example,
`quick_tree = "my_package.my_module.my_quick_tree_app"`.
Users, specify which package you want to use by setting `<obj>.quick_tree(use_hook="<package name>")`.
For example, `use_hook="my_package"` would invoke the one defined above. Set `use_hook="cogent3"`
to force using the cogent3 default.
- IndelMap.merge_maps(other: "IndelMap", alignd_indices: bool) handles case where
`other.gap_pos` are in alignment coordinates. This is essential for the case
of progressive alignments where the alignment coordinates are sequentially
adjusted as more profiles are aligned. This is the key change that fixes the
bug in the progressive aligner.
BUG
- Dotplot on new_type Alignments now show the alignment path π
- Fixed a MAJOR bug affecting the cogent3 progressive aligner. Gaps
were being incorrectly merged during the progressive steps. Users
are advised to re-run any analyses that used the progressive aligner.
This DOES NOT affect creating alignment objects from existing data,
e.g. alignments produced by other algorithms.
Discontinued
- new_alignment.Alignment.quick_tree() no longer supports doing bootstraps.
This is because bootstrapping is not quick! If you want this, post a feature
request and we will implement a separate app for this.
<a id='changelog-2024.12.19a2'></a>