mirror of
https://github.com/metabarcoding/obitools4.git
synced 2025-12-08 08:40:26 +00:00
Fisrt step in the obitax rewriting
This commit is contained in:
@@ -1,21 +1,22 @@
|
||||
package obitax
|
||||
|
||||
func (taxon *TaxNode) IsSubCladeOf(parent *TaxNode) bool {
|
||||
import "log"
|
||||
|
||||
for taxon.taxid != parent.taxid && taxon.parent != taxon.taxid {
|
||||
taxon = taxon.pparent
|
||||
func (taxon *Taxon) IsSubCladeOf(parent *Taxon) bool {
|
||||
|
||||
if taxon.Taxonomy != parent.Taxonomy {
|
||||
log.Fatalf(
|
||||
"Both taxa %s and %s must belong to the same taxonomy",
|
||||
taxon.String(),
|
||||
parent.String(),
|
||||
)
|
||||
}
|
||||
|
||||
return taxon.taxid == parent.taxid
|
||||
}
|
||||
|
||||
func (taxon *TaxNode) IsBelongingSubclades(clades *TaxonSet) bool {
|
||||
_, ok := (*clades)[taxon.taxid]
|
||||
|
||||
for !ok && taxon.parent != taxon.taxid {
|
||||
taxon = taxon.pparent
|
||||
_, ok = (*clades)[taxon.taxid]
|
||||
for t := range taxon.IPath() {
|
||||
if t.Node.Id() == parent.Node.Id() {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
return ok
|
||||
return false
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user