Files
obikmer/TODO.md
T
Eric Coissac 708b0abf9b refactor: aggregate query results at sequence level
Refactor the query pipeline to buffer partition outputs into a per-sequence `seq_results` vector, deferring final accumulation until all partitions complete. This ensures global position ordering before computing k-mer presence, counts, and coverage statistics. Additionally, removes a resolved TODO and documents a known BLAST false-positive issue where chloroplast and bacterial contaminants yield unrealistic high-confidence matches.
2026-05-30 07:18:54 +02:00

2.8 KiB

A finir dans le cadre de l'extension des index à une forme approximative

  • Il faut avoir un chemin explicite pour construire en mode exact avec des méthodes qui ont ce mot exact à l'intérieur.
    • pub fn find_exact (src/obilayeredmap/src/mphf_layer.rs)
    • pub fn build_exact_evidence (src/obilayeredmap/src/layer.rs)

Comme elles existent actuellement pour le mode approx.

Ensuite, il faudra définir des méthodes génériques

  • find()
  • build_evidence()

qui utilise la bonne version suivant le mode de l'index de manière complètement transparente. Avec ce système, tout le reste du code devrait être insensible au fait que l'on utilise un index exact ou approximatif.

Sauf qu'avec un index approximatif, les résultats seront approximatifs.

commandes à ajouter

  • 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 --detail et --mismatch à implementer

  • status : affiche le statut de l'index

Problème biologique sur l'identification des contaminants

Exemple de reads problématiques:

>LH00534:161:22WMGWLT4:4:1101:45301:1420 {"coverage":{"gbbct":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]},"kmer_count":117,"kmer_strict_matches":{"gbbct":117}}
GCCCCTACCGTACTCCAGCTTGGTAGTTTCCACCGCCTGTCCAGGGTTGAGCCCTGGGATTTGACGGCGGACTTAAAAAGCCACCTACAGACGCTTTACGCCCAATCATTCCGGATAACGCTTGCATCCTCTGTATTACCGCGGCTGCTGG

Par blast match une quantité invréssemblable de genomes chloroplastique avec un match de 100% (6554 hits pour Streptophyta)

mais aussi une quantité de sequences importantes à des OTU bactériennes (uncutured bacteria 115 hits) aussi avec 100% de similarité.

 Uncultured bacterium clone Otu01032 16S ribosomal RNA gene, partial sequence
Sequence ID: KX996137.1Length: 440Number of Matches: 1
Range 1: 153 to 303GenBankGraphics
Next Match
Previous Match
Alignment statistics for match #1 Score	Expect	Identities	Gaps	Strand
273 bits(302) 	2e-69 	151/151(100%) 	0/151(0%) 	Plus/Minus

Query  1    GCCCCTACCGTACTCCAGCTTGGTAGTTTCCACCGCCTGTCCAGGGTTGAGCCCTGGGAT  60
            ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Sbjct  303  GCCCCTACCGTACTCCAGCTTGGTAGTTTCCACCGCCTGTCCAGGGTTGAGCCCTGGGAT  244

Query  61   TTGACGGCGGACTTAAAAAGCCACCTACAGACGCTTTACGCCCAATCATTCCGGATAACG  120
            ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Sbjct  243  TTGACGGCGGACTTAAAAAGCCACCTACAGACGCTTTACGCCCAATCATTCCGGATAACG  184

Query  121  CTTGCATCCTCTGTATTACCGCGGCTGCTGG  151
            |||||||||||||||||||||||||||||||
Sbjct  183  CTTGCATCCTCTGTATTACCGCGGCTGCTGG  153