mirror of
https://github.com/metabarcoding/obitools4.git
synced 2026-04-30 03:50:39 +00:00
⬆️ 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:
@@ -0,0 +1,18 @@
|
||||
# Semantic Description of `obiseq` Package Functionalities
|
||||
|
||||
The `obiseq` package provides composable, higher-order worker functions for processing biological sequence data in Go. It defines three core functional types:
|
||||
|
||||
- `SeqAnnotator`: In-place annotation of a single sequence (e.g., adding metadata).
|
||||
- `SeqWorker`: Processes one sequence and returns zero or more output sequences (1→N transformation).
|
||||
- `SeqSliceWorker`: Processes a slice of sequences and returns another slice (bulk pipeline stage).
|
||||
|
||||
Key utilities include:
|
||||
|
||||
- **`NilSeqWorker`**: Identity worker—returns the input sequence unchanged.
|
||||
- **`AnnotatorToSeqWorker`**: Converts an in-place annotator into a `SeqWorker`, preserving compatibility with pipeline interfaces.
|
||||
- **`SeqToSliceWorker`**: Lifts a `SeqWorker` to operate on slices, with configurable error handling (`breakOnError`). Supports dynamic slice growth and logging via `obilog`.
|
||||
- **`SeqToSliceFilterOnWorker`**: Filters sequences in a slice using a `SequencePredicate`, preserving order and avoiding unnecessary allocations.
|
||||
- **`SeqToSliceConditionalWorker`**: Applies a `SeqWorker` only to sequences satisfying a predicate; others pass through unchanged.
|
||||
- **`.ChainWorkers()`**: Method on `SeqWorker` to compose two workers sequentially (pipeline chaining), enabling modular, reusable workflows.
|
||||
|
||||
All functions emphasize safety: errors are either propagated (`breakOnError = true`) or logged with warnings, ensuring robustness in large-scale sequence processing pipelines.
|
||||
Reference in New Issue
Block a user