mirror of
https://github.com/metabarcoding/obitools4.git
synced 2025-06-29 16:20:46 +00:00
65 lines
1.4 KiB
Go
65 lines
1.4 KiB
Go
package obiseq
|
|
|
|
import (
|
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitax"
|
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
|
|
log "github.com/sirupsen/logrus"
|
|
)
|
|
|
|
func MakeSetTaxonAtRankWorker(taxonomy *obitax.Taxonomy, rank string) SeqWorker {
|
|
|
|
if !obiutils.Contains(taxonomy.RankList(), rank) {
|
|
log.Fatalf("%s is not a valid rank (allowed ranks are %v)",
|
|
rank,
|
|
taxonomy.RankList())
|
|
}
|
|
|
|
w := func(sequence *BioSequence) (BioSequenceSlice, error) {
|
|
sequence.SetTaxonAtRank(taxonomy, rank)
|
|
return BioSequenceSlice{sequence}, nil
|
|
}
|
|
|
|
return w
|
|
}
|
|
|
|
func MakeSetSpeciesWorker(taxonomy *obitax.Taxonomy) SeqWorker {
|
|
|
|
w := func(sequence *BioSequence) (BioSequenceSlice, error) {
|
|
sequence.SetSpecies(taxonomy)
|
|
return BioSequenceSlice{sequence}, nil
|
|
}
|
|
|
|
return w
|
|
}
|
|
|
|
func MakeSetGenusWorker(taxonomy *obitax.Taxonomy) SeqWorker {
|
|
|
|
w := func(sequence *BioSequence) (BioSequenceSlice, error) {
|
|
sequence.SetGenus(taxonomy)
|
|
return BioSequenceSlice{sequence}, nil
|
|
}
|
|
|
|
return w
|
|
}
|
|
|
|
func MakeSetFamilyWorker(taxonomy *obitax.Taxonomy) SeqWorker {
|
|
|
|
w := func(sequence *BioSequence) (BioSequenceSlice, error) {
|
|
sequence.SetFamily(taxonomy)
|
|
return BioSequenceSlice{sequence}, nil
|
|
}
|
|
|
|
return w
|
|
}
|
|
|
|
func MakeSetPathWorker(taxonomy *obitax.Taxonomy) SeqWorker {
|
|
|
|
w := func(sequence *BioSequence) (BioSequenceSlice, error) {
|
|
sequence.SetPath(taxonomy)
|
|
return BioSequenceSlice{sequence}, nil
|
|
}
|
|
|
|
return w
|
|
|
|
}
|