Refactor sequence processing for parallel loading and memory management

This commit introduces significant changes to the sequence processing pipeline, implementing parallel loading, k-mer budget control, explicit memory management, and refined logic for pair evaluation and resolution.
This commit is contained in:
Eric Coissac committed 2026-11-03 22:53:54 +11:00
1 parent d6dd39f878
commit 8cc02aa9c1
28 files changed
+1673 -382

No files matched your search

+1 -4
View File
@@ -3,8 +3,6 @@ package obiprimer
import (
"math/bits"
"slices"
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiseq"
)
// seedIndex maps the value of one half of a window to the patterns that are
@@ -136,8 +134,7 @@ func MatchWords(c *Corpus, words []uint64, p MatchParams) ([]WordMatches, error)
maxErr := p.MaxErrors
mk := func() scanFunc {
return func(seq *obiseq.BioSequence, emit func(word, pos, errors int, reverse bool)) {
raw := seq.Sequence()
return func(raw []byte, emit func(word, pos, errors int, reverse bool)) {
n := len(raw)
if n < k {
return