mirror of
https://github.com/metabarcoding/obitools4.git
synced 2025-12-08 16:50:27 +00:00
Big change iin the data model, and a first version of obiuniq
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
package obiseq
|
||||
|
||||
type SequencePredicate func(BioSequence) bool
|
||||
type SequencePredicate func(*BioSequence) bool
|
||||
|
||||
func (predicate1 SequencePredicate) And(predicate2 SequencePredicate) SequencePredicate {
|
||||
f := func(sequence BioSequence) bool {
|
||||
f := func(sequence *BioSequence) bool {
|
||||
return predicate1(sequence) && predicate2(sequence)
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ func (predicate1 SequencePredicate) And(predicate2 SequencePredicate) SequencePr
|
||||
}
|
||||
|
||||
func (predicate1 SequencePredicate) Or(predicate2 SequencePredicate) SequencePredicate {
|
||||
f := func(sequence BioSequence) bool {
|
||||
f := func(sequence *BioSequence) bool {
|
||||
return predicate1(sequence) || predicate2(sequence)
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ func (predicate1 SequencePredicate) Or(predicate2 SequencePredicate) SequencePre
|
||||
}
|
||||
|
||||
func (predicate1 SequencePredicate) Xor(predicate2 SequencePredicate) SequencePredicate {
|
||||
f := func(sequence BioSequence) bool {
|
||||
f := func(sequence *BioSequence) bool {
|
||||
p1 := predicate1(sequence)
|
||||
p2 := predicate2(sequence)
|
||||
return (p1 && !p2) || (p2 && !p1)
|
||||
@@ -29,7 +29,7 @@ func (predicate1 SequencePredicate) Xor(predicate2 SequencePredicate) SequencePr
|
||||
}
|
||||
|
||||
func (predicate1 SequencePredicate) Not() SequencePredicate {
|
||||
f := func(sequence BioSequence) bool {
|
||||
f := func(sequence *BioSequence) bool {
|
||||
return !predicate1(sequence)
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@ func (predicate1 SequencePredicate) Not() SequencePredicate {
|
||||
|
||||
func HasAttribute(name string) SequencePredicate {
|
||||
|
||||
f := func(sequence BioSequence) bool {
|
||||
f := func(sequence *BioSequence) bool {
|
||||
if sequence.HasAnnotation() {
|
||||
_, ok := (sequence.Annotations())[name]
|
||||
return ok
|
||||
@@ -51,7 +51,7 @@ func HasAttribute(name string) SequencePredicate {
|
||||
}
|
||||
|
||||
func MoreAbundantThan(count int) SequencePredicate {
|
||||
f := func(sequence BioSequence) bool {
|
||||
f := func(sequence *BioSequence) bool {
|
||||
return sequence.Count() > count
|
||||
}
|
||||
|
||||
@@ -59,7 +59,7 @@ func MoreAbundantThan(count int) SequencePredicate {
|
||||
}
|
||||
|
||||
func IsLongerOrEqualTo(length int) SequencePredicate {
|
||||
f := func(sequence BioSequence) bool {
|
||||
f := func(sequence *BioSequence) bool {
|
||||
return sequence.Length() >= length
|
||||
}
|
||||
|
||||
@@ -67,7 +67,7 @@ func IsLongerOrEqualTo(length int) SequencePredicate {
|
||||
}
|
||||
|
||||
func IsShorterOrEqualTo(length int) SequencePredicate {
|
||||
f := func(sequence BioSequence) bool {
|
||||
f := func(sequence *BioSequence) bool {
|
||||
return sequence.Length() <= length
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user