Releases: phylo42/IPK
Releases · phylo42/IPK
v0.5.1
v0.5.0
This is the first version intended to use with EPIK v0.2.0, in which phylo-k-mer filtering happens on the side of EPIK while loading the database.
- Changed the serialization protocol to sort databases by MI
- The functionality for the option --mu moved to EPIK
- Implemented a second database build algorithm: --on-disk for external merge and filtering
- AR parsers are now on-demand and memory-frugal
v0.4.0
- The project has been renamed to IPK
- Serialization and main data structures moved to a separate repository (I2L), changed namespaces
- Added reference tree indexing to speed up phylogenetic placement
- Changes in the serialization protocol
- Added a progress bar, improved logging
- Added documentation
v0.3.1
- Fixed a bug that sometimes lead to scores of phylo-k-mers to be lower than expected
- Added
--uncompressed
flag (disables ZLIB compression of databases) - Relaxed restrictions on the value of k (now 31 for DNA and 13 for proteins)
--ar-dir
now supports the results of RAxML-ng- Fixed a crash happened for extremely high values of omega
- Minor changes of the python wrapper
v0.3.0
XPAS BUILD:
- Database construction code moved to xpas.
- Implemented missing parts of RAPPAS: tree extension and ancestral reconstruction
- Implemented batched filtering (external merge) with a constant number of batches.
- Implemented MIF0 and MIF1 phylo k-mer filtering.
- Refactored k-mer filtering code for more congruency
- Implemented the chaining window optimization for the divide-and-conquer algorithm
XPAS LIBRARY:
- xpas::phylo_node reworked, some methods are public now.
- xpas_utils has gone and now is a part of xpas. All <utils/io/X.h> are now <xpas/X.h>
- Added a preorder iterator for xpas::phylo_node. visit_subtree now has a template argument Iterator,
which can be either post- or preorder_tree_iterator. It is now const post-order iteration by default. - Changed the serialization protocol. It now uses zlib compression by default. Deserialization tries to
decompress the file first, and tries to load the DB uncompressed in the case of error.
v0.2.0
- Supported proteins. xpas has to be compiled separately for DNA and proteins. It now has three main targets:
xpas_dna (for DNA), xpas_aa (for proteins), and xpas_aa_pos (phylo k-mers for proteins, where every k-mer
stores its position in the reference alignment). - Reworked the serialization protocol. Now there are three versions for databases built by different versions of xpas.
Backward compatibility preserved (0.2.0 can load databases created by older versions) - Improved Github Actions, added MacOS builds
- Added xpas::is_gap, xpas::is_ambiguous
- Improved compatibility with old CMake
- Fixed issues prevented xpas being compilable on MacOS.
v0.1.8c
v0.1.8c
v0.1.8
- Renamed the library and the namespace to xpas
- Changing submodule remotes to https for public releases
- Added an alpha version of the python binding, pyxpas (not ready for production use)
- xpas::io::read_fasta is now batched
- xpas::phylo_tree and the newick parser are reworked. Added xpas::visit_subtree for iteration over a phylogenetic subtree
- Added Github Actions integration
- Update examples and tests
v0.1.7
- Fixed a bug in core::to_kmers<one_ambiguity_policy> which lead to encoding ambiguous k-mer incorrectly
- Updated examples
v0.1.6
- core::to_kmers and core::encode now have ambiguity policy. The old behaviour implemented in the core::no_ambiguity_policy
- Implemented core::one_ambiguity_policy which allows one ambiguous base pair per k-mer
- With the core::one_ambiguity policy enabled, core::to_kmers now returns another type
- Added rappas::io::clean_sequence to filter gaps in the sequence (requires copying of the input string)
- core::score_threshold is not log10 anymore
- Updated examples