obimultiplex saves unassigned sequence

This commit is contained in:
2022-02-01 23:25:19 +01:00
parent e9cdfd7e03
commit 98a4363d22
6 changed files with 189 additions and 0 deletions

View File

@ -1,5 +1,11 @@
package obitax
import (
"log"
"git.metabarcoding.org/lecasofts/go/obitools/pkg/obiseq"
)
func (taxon *TaxNode) IsSubCladeOf(parent *TaxNode) bool {
for taxon.taxid != parent.taxid && taxon.parent != taxon.taxid {
@ -19,3 +25,18 @@ func (taxon *TaxNode) IsBelongingSubclades(clades *TaxonSet) bool {
return ok
}
func IsSubCladeOf(taxonomy Taxonomy, taxid int) obiseq.SequencePredicate {
parent, err := taxonomy.Taxon(taxid)
if err != nil {
log.Fatalf("Cannot find taxon : %d (%v)", taxid, err)
}
f := func(sequence obiseq.BioSequence) bool {
taxon, err := taxonomy.Taxon(sequence.Taxid())
return err == nil && taxon.IsSubCladeOf(parent)
}
return f
}