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
@@ -1,7 +1,5 @@
package obiprimer
import "git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiseq"
// baseCode maps a nucleotide to 0..3 (A,C,G,T; U is T) and everything else to 4,
// which never equals a word base.
var baseCode = func() (t [256]byte) {
@@ -39,8 +37,7 @@ func matchNaive(c *Corpus, words []uint64, p MatchParams) ([]WordMatches, error)
mk := func() scanFunc {
var codes []byte
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 < p.K {
return