implementation de obilowmask

This commit is contained in:
Eric Coissac
2025-10-20 17:43:25 +02:00
parent 07cdd6f758
commit 4603d7973e
13 changed files with 12636 additions and 2 deletions

23
pkg/obiseq/kmers.go Normal file
View File

@@ -0,0 +1,23 @@
package obiseq
import "iter"
func (seq *BioSequence) Kmers(k int) iter.Seq[[]byte] {
return func(yield func([]byte) bool) {
// Gérer les cas où k est invalide ou la séquence trop courte
if k <= 0 || k > len(seq.sequence) {
return
}
// Itérer sur tous les k-mers possibles
for i := 0; i <= len(seq.sequence)-k; i++ {
// Extraire le k-mer actuel
kmer := seq.sequence[i : i+k]
// Passer au consommateur et arrêter si demandé
if !yield(kmer) {
return
}
}
}
}