feat: implement partition-based merge command for k-mer indices
Implements a new `merge` command that aggregates k-mer counts and presence/absence matrices from multiple source indices using a parallelized, partition-based algorithm. Adds CLI progress bars and execution timing across the bootstrap, spectrum rebuild, and merge phases. Updates logging to report the aggregate genome count and introduces a bounds check in the perfect hash layer to safely return `None` for unknown k-mers, preventing out-of-bounds access in downstream operations.
This commit is contained in:
@@ -9,20 +9,6 @@
|
||||
|
||||
## commandes à ajouter
|
||||
|
||||
- merge : pour construire un index à partir d'index existants
|
||||
- deux modes : count et presence/absence. count exige que tous les index mergés soient déjà en mode count. mode presence/absence par defaut. Si passage de mode count à mode presence/absence, par defaut presence = count >= 1. Possibilité de spécifier un seuil personnalisé.
|
||||
- le merge doit se faire en parallèle sur chaque partition
|
||||
- en entrée : une liste de chemins vers les index à fusionner
|
||||
- en sortie : un nouvel index fusionné (option -o <output_index>)
|
||||
- j'imagine comme algo:
|
||||
- on copie le premier index dans le nouvel index
|
||||
- on ajoute a chaque partition une matrice de count ou de presence s'il n'y en avait pas déjà.
|
||||
- si besoin, on cree la colone 0 de la matrice de count ou de presence pour le genome courant
|
||||
- on parcourt les partitions et les index à fusionner en parallèle
|
||||
- pour chaque partition, on ajoute les kmer présents dans les index à fusionner au nouvel index
|
||||
- si le kmer est déjà présent dans le nouvel index on ajoute le compte ou la presence du kmer dans la matrice de count ou de presence
|
||||
- sinon, on ajoute le kmer dans une nouvelle layer
|
||||
|
||||
- filter : produit un nouvel index filtré à partir d'un index existant en verifiant que les kmer présents dans le nouvel index respectent les critères de filtrage spécifiés
|
||||
- quorum de presence en fraction-(min/max) du nombre de génomes, en nombre-(min/max) de génomes, si mode count la présence peut être défini par un seuil personnalisé minimum et maximum
|
||||
|
||||
|
||||
Reference in New Issue
Block a user