Files
obitools4/autodoc/docmd/pkg/obiseq/taxonomy_predicate.md
T

21 lines
1.4 KiB
Markdown
Raw Normal View History

2026-04-07 08:36:50 +02:00
# Semantic Description of `obiseq` Package Functionalities
This Go package provides **sequence filtering predicates** for biological sequences, integrated with taxonomic validation and hierarchy analysis.
- `IsAValidTaxon(taxonomy, ...bool) SequencePredicate`:
Returns a predicate that checks whether a sequence has an associated valid taxon in the given taxonomy.
Optionally supports *auto-correction* of outdated/incorrect `taxid` values to match the current taxonomy node.
- `IsSubCladeOf(taxonomy, parent) SequencePredicate`:
Filters sequences whose taxonomic assignment is a descendant (sub-clade) of the specified `parent` taxon.
- `IsSubCladeOfSlot(taxonomy, key) SequencePredicate`:
Enables filtering based on a *sequence attribute* (e.g., `"taxon"` or `"classification"`) that holds a taxonomic label.
Validates the label against the taxonomy, then checks if the sequences assigned taxon falls under it.
- `HasRequiredRank(taxonomy, rank) SequencePredicate`:
Ensures the sequences taxon is assigned at or below a specified rank (e.g., `"species"`, `"genus"`).
Validates the requested `rank` against taxonomys rank list; exits on invalid input.
All predicates follow a functional, composable design pattern (`SequencePredicate = func(*BioSequence) bool`), enabling flexible pipeline construction (e.g., filtering, classification validation).