(feat) Add entropy-based filtering and rolling statistics for k-mers

- Introduce lazy_static dependency
- Refactor encoding: rename encode_base →encode_nuc and make it pub(crate)
- Add from_raw_right/raw Right methods to Kmer for right-aligned handling
- Improve error message formatting and code readability in kmod.rs tests  
- Replace inline entropy computation with precomputed tables (entropy_table module)—using LazyLock for static lookup arrays
- Simplify EntropyFilter by removing redundant tables and delegating to new entropy_table API  
- Add RollingStat module for real-time kmer statistics and minimizer tracking
- Reorganize modules: move iter, encoding to pub(crate), add entropy_table and rolling_stat
- Update imports across obiskbuilder crate accordingly
This commit is contained in:
Eric Coissac
2026-04-20 15:34:56 +02:00
parent 097f7f0695
commit ae5e1152b9
11 changed files with 499 additions and 121 deletions
+7
View File
@@ -497,6 +497,12 @@ dependencies = [
"libc",
]
[[package]]
name = "lazy_static"
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
[[package]]
name = "libc"
version = "0.2.185"
@@ -624,6 +630,7 @@ dependencies = [
name = "obiskbuilder"
version = "0.1.0"
dependencies = [
"lazy_static",
"obikrope",
"obikseq",
]