bfa436ad15
Added implementation specifications for the `merge` operation, detailing parallel partition processing, I/O paths, and kmer matrix aggregation across multiple indexes. Integrated an `indicatif` progress bar into the `rayon` parallel loop to monitor processing position, throughput, ETA, and recent partition duration.
43 lines
3.0 KiB
Markdown
43 lines
3.0 KiB
Markdown
## Chose à vérifier suite à la commande index
|
|
|
|
- il faudrait lister les fichier qui vont être indexés
|
|
- partition.meta ne devrait plus exister
|
|
- les spectrums globaux devrait etre identifier par génome
|
|
- regrouper dans un sous-dossier spectrums à la racine de l'index avec un nom basé sur le génome
|
|
- les spectrum patiels ont-ils vocation à être conserver ?
|
|
- l'étape de déreplication dure quasiment autant de temps que le comptage mais ne laisse aucune trace de progression à l'utilisateur
|
|
|
|
## 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
|
|
|
|
- aggregate : aggrege toutes les colonnes d'une matrice d'index en une seule colonne.
|
|
|
|
- query : scan un fichier de sequences et retourne pour chaque sequence quels kmer sont présents dans l'index et dans quel genomes
|
|
|
|
- distance : calcule la matrice de distance entre les genomes
|
|
- proposer une option pour chaque distance à calculer
|
|
- un possibité de récuperer la matrice des kmer communs
|
|
- un possibité de calculer l'arbre nj
|
|
- les matrices sont sauvegardées en CSV
|
|
- les arbres NJ sont sauvegardés en Newick avec les longeurs de branche
|
|
|
|
- dump : une table csv de l'index avec les kmer et les genomes associés en mode count ou presence/absence avec une option pour forcer le mode presence/absence meme si l'index est en mode count. Par defaut, le mode count est utilisé pour les index en mode count et le mode presence/absence pour les index en mode presence/absence.
|
|
|
|
- status : affiche le statut de l'index
|