feat: Implement query subcommand for sequence-to-genome mapping

This change introduces the `query` CLI command and its supporting infrastructure for sequence-to-genome mapping and k-mer matching. It adds a `QueryLayer` abstraction backed by MPHF and persistent matrices, exposes the index partition for direct querying, and implements `Hash`/`Eq` for `RoutableSuperKmer`. The command ingests sequence batches, deduplicates superkmers, routes them to index partitions for parallel exact or 1-mismatch matching, and outputs results as FASTA records annotated with JSON metadata. Includes `serde_json` dependency addition, module exports, and documentation updates.
This commit is contained in:
Eric Coissac
2026-05-21 13:23:05 +02:00
parent c8e591fc78
commit 13599dd444
13 changed files with 762 additions and 19 deletions
+14
View File
@@ -71,6 +71,20 @@ impl RoutableSuperKmer {
}
}
impl PartialEq for RoutableSuperKmer {
fn eq(&self, other: &Self) -> bool {
self.superkmer == other.superkmer
}
}
impl Eq for RoutableSuperKmer {}
impl std::hash::Hash for RoutableSuperKmer {
fn hash<H: std::hash::Hasher>(&self, state: &mut H) {
self.superkmer.hash(state);
}
}
impl Sequence for RoutableSuperKmer {
type Canonical = RoutableSuperKmer;