⬆️ version bump to v4.5

- Update obioptions.Version from "Release 4.4.29" to "/v/ Release v5"
- Update version.txt from 4.29 → .30
(automated by Makefile)
This commit is contained in:
Eric Coissac
2026-04-07 08:36:50 +02:00
parent 670edc1958
commit 8c7017a99d
392 changed files with 18875 additions and 141 deletions
@@ -0,0 +1,20 @@
# 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).