mirror of
https://github.com/metabarcoding/obitools4.git
synced 2025-06-29 16:20:46 +00:00
patch bug in worker
Former-commit-id: f83cc62fc7a85f732e871f8866f80f738f494f9e
This commit is contained in:
@ -427,14 +427,20 @@ func (iterator IBioSequence) Rebatch(size int) IBioSequence {
|
|||||||
|
|
||||||
for iterator.Next() {
|
for iterator.Next() {
|
||||||
seqs := iterator.Get()
|
seqs := iterator.Get()
|
||||||
// log.Println("Got seq #", len(seqs.Slice()))
|
lc := seqs.Len()
|
||||||
for _, s := range seqs.slice {
|
remains := lc
|
||||||
buffer = append(buffer, s)
|
i := 0
|
||||||
|
for remains > 0 {
|
||||||
|
space := size - len(buffer)
|
||||||
|
to_push := min(lc-i, space)
|
||||||
|
remains = lc - to_push - i
|
||||||
|
buffer = append(buffer, seqs.Slice()[i:(i+to_push)]...)
|
||||||
if len(buffer) == size {
|
if len(buffer) == size {
|
||||||
newIter.Push(MakeBioSequenceBatch(order, buffer))
|
newIter.Push(MakeBioSequenceBatch(order, buffer))
|
||||||
order++
|
order++
|
||||||
buffer = obiseq.MakeBioSequenceSlice()
|
buffer = obiseq.MakeBioSequenceSlice()
|
||||||
}
|
}
|
||||||
|
i += to_push
|
||||||
}
|
}
|
||||||
seqs.Recycle(false)
|
seqs.Recycle(false)
|
||||||
}
|
}
|
||||||
|
@ -140,11 +140,7 @@ func (iterator IBioSequence) MakeISliceWorker(worker obiseq.SeqSliceWorker, size
|
|||||||
for iterator.Next() {
|
for iterator.Next() {
|
||||||
batch := iterator.Get()
|
batch := iterator.Get()
|
||||||
batch.slice = worker(batch.slice)
|
batch.slice = worker(batch.slice)
|
||||||
if batch.slice.Len() > 0 {
|
newIter.Push(batch)
|
||||||
newIter.Push(batch)
|
|
||||||
} else {
|
|
||||||
batch.Recycle(false)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
newIter.Done()
|
newIter.Done()
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user