- Update obioptions.Version from "Release 4.4.29" to "/v/ Release v5" - Update version.txt from 4.29 → .30 (automated by Makefile)
1.7 KiB
Semantic Description of obiiter Package Functionalities
This Go package (obiiter) provides utilities for applying functional transformations to biological sequence iterators, supporting parallel execution and modular piping.
-
MakeIWorker(worker, breakOnError bool, sizes ...int):
Applies aSeqWorker(sequence-to-sequence transformation) to each sequence in the iterator. Supports configurable parallelism (nworkers) and optional channel buffering viasizes. Uses internal conversion to slice-based workers. -
MakeIConditionalWorker(predicate, worker, breakOnError bool, sizes ...int):
Applies aSeqWorkeronly to sequences satisfying a given booleanpredicate. Enables conditional, parallelized processing while preserving iterator semantics. -
MakeISliceWorker(worker, breakOnError bool, sizes ...int):
Core method applying aSeqSliceWorker(batch-level transformation) across slices of sequences. Implements multi-goroutine parallelism usingnworkers. Handles errors optionally via fatal logging (breakOnError). Preserves paired-end metadata. -
WorkerPipe(worker, breakOnError bool, sizes ...int):
Returns aPipeableclosure wrappingMakeIWorker, enabling composition in pipeline chains (e.g., for CLI or DSL-style workflows). -
SliceWorkerPipe(worker, breakOnError bool, sizes ...int):
Similar toWorkerPipe, but for slice-level workers (SeqSliceWorker). Facilitates modular, reusable pipeline stages.
All methods support optional size arguments to override default parallelism (from obidefault). Internally, they rely on Go concurrency primitives (go, channels) and structured batch processing via IBioSequence interface.