-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathCHANGELOG.txt
114 lines (99 loc) · 5.1 KB
/
CHANGELOG.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
v0.5.1
- Fixed #31: v0.5.0 databases are incompatible with latest EPIK (v0.2.0)
- Fixed #30: setting a working directory as '.' throws a boost error
- Fixed #9: Missing <stdexcept> include
v0.5.0
- 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 I2L, changed namespaces
- Added reference tree indexing to speed up phylogenetic placement
- Changes in the serialization protocol
- Added a progress bar, improved logging
- Added docs: phylo-k-mers.readthedocs.io
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 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.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
v0.1.5
- seq_traits_impl<dna>::char_type is now unsigned char
- seq_traits_impl<dna>::max_kmer_length is now 12 (due to static memory accesses of size ~4**k)
- Added phylo_kmer_db::hash_function
- phylo_kmer_db::branch_type is now uint32_t
v0.1.4
- Added phylo_kmer_db::omega (score threshold parameter)
- Updated serialization
- Updated examples
- Updated tests
v0.1.3
- seq_traits<dna>::key_type now is uint32_t
- phylo_kmer_db now does not check the values pass to insert in the db. The old put() method replaced by insert()
- Now rappas::core can be compiled against different hash map implementations (see CMakeLists files)
- Now phylo_kmer_db contains a newick-formatted original tree. Added the tree() method
- Added phylo_tree.h (moved from rappas-build)
- Added newick.h (load_newick, parse_newick, to_newick in rappas::io)
- Reimplemented core::phylo_tree. Now it also contains pre-/post-order node ids and fast search by node id (get_by_preorder_id, get_by_postorder_id)
- Added utils/ (part of rappas::io namespace)
- A lot of other small changes
- Updated examples
- Updated tests
v0.1.2
- core::encode_kmers and core::to_kmers now support gaps and N's
- core::phylo_kmer_db now has kmer_size()
- Updated examples
- Added tests
- Added changelog
v0.1.1
- Added core::to_kmers (k-mer iteration and rolling codes calculation)
- Updated examples
v0.1.0
- First released version