feat: integrate obikseq to configure global k-mer and minimizer sizes

This change adds the `obikseq` crate as a local dependency and inserts `set_k` and `set_m` calls across index creation and command modules. By synchronizing the runtime's global k-mer and minimizer dimensions with the loaded index parameters, downstream sequence processing and partitioning operations now consistently use the correct structural constraints.
This commit is contained in:
Eric Coissac
2026-06-03 11:55:11 +02:00
parent 173ac9fb42
commit bfe0cb4b82
10 changed files with 9 additions and 20 deletions
+1
View File
@@ -4,6 +4,7 @@ version = "0.1.0"
edition = "2024"
[dependencies]
obikseq = { path = "../obikseq" }
obikpartitionner = { path = "../obikpartitionner" }
obiskio = { path = "../obiskio" }
obisys = { path = "../obisys" }
+6
View File
@@ -11,6 +11,8 @@ use obisys::{Reporter, Stage};
use rayon::prelude::*;
use tracing::info;
use obikseq::{set_k, set_m};
use crate::error::{OKIError, OKIResult};
use crate::meta::{GenomeInfo, IndexConfig, IndexMeta};
use crate::state::{IndexState, SENTINEL_COUNTED, SENTINEL_INDEXED, SENTINEL_SCATTERED};
@@ -40,6 +42,8 @@ impl KmerIndex {
config.minimizer_size,
force,
)?;
set_k(config.kmer_size);
set_m(config.minimizer_size);
let mut meta = IndexMeta::new(config);
if let Some(info) = genome_info {
meta.genomes.push(info);
@@ -51,6 +55,8 @@ impl KmerIndex {
pub fn open<P: AsRef<Path>>(path: P) -> OKIResult<Self> {
let root_path = path.as_ref().to_owned();
let meta = IndexMeta::read(&root_path).map_err(OKIError::Io)?;
set_k(meta.config.kmer_size);
set_m(meta.config.minimizer_size);
let partition = KmerPartition::open_with_config(
&root_path,
meta.config.kmer_size,