Files
obitools4/autodoc/docmd/pkg/obiiter/pipe.md
T
Eric Coissac 8c7017a99d ⬆️ 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)
2026-04-13 13:34:53 +02:00

18 lines
1.3 KiB
Markdown

# Semantic Description of `obiiter` Package Features
This Go package provides functional-style utilities for processing biological sequence data (e.g., FASTQ/FASTA), modeled via the `IBioSequence` interface.
- **`Pipeable`**: A function type representing a unary transformation on an `IBioSequence`.
- **`Pipeline(start, parts...)`**: Composes a sequence of `Pipeable` operations into a single executable pipeline. It applies transformations sequentially: input → start → part₁ → … → output.
- **`(IBioSequence).Pipe(start, parts...)`**: A convenience method enabling fluent chaining of transformations directly on a sequence object.
- **`Teeable`**: A function type for operations that split input into two independent output streams (e.g., filtering + logging).
- **`(IBioSequence).CopyTee()`**: A high-level tee operation that duplicates the input stream into two identical, concurrently readable `IBioSequence` instances.
- Uses goroutines to ensure non-blocking parallel consumption.
- Ensures proper lifecycle management: closing the second stream when the first is closed.
- Preserves paired-end status (`MarkAsPaired`) if applicable.
Together, these features support modular, composable, and concurrent biosequence processing pipelines—ideal for scalable NGS data workflows.