mirror of
https://github.com/metabarcoding/obitools4.git
synced 2025-06-29 16:20:46 +00:00
32 lines
608 B
Go
32 lines
608 B
Go
package obiseq
|
|
|
|
type SeqAnnotator func(*BioSequence)
|
|
|
|
type SeqWorker func(*BioSequence) *BioSequence
|
|
type SeqSliceWorker func(BioSequenceSlice) BioSequenceSlice
|
|
|
|
func AnnotatorToSeqWorker(function SeqAnnotator) SeqWorker {
|
|
f := func(seq *BioSequence) *BioSequence {
|
|
function(seq)
|
|
return seq
|
|
}
|
|
return f
|
|
}
|
|
|
|
func SeqToSliceWorker(worker SeqWorker, inplace bool) SeqSliceWorker {
|
|
f := func(input BioSequenceSlice) BioSequenceSlice {
|
|
output := input
|
|
if (! inplace) {
|
|
output = MakeBioSequenceSlice()
|
|
}
|
|
for i,s := range(input) {
|
|
output[i] = worker(s)
|
|
}
|
|
|
|
return output
|
|
}
|
|
|
|
return f
|
|
}
|
|
|