mirror of
https://github.com/metabarcoding/obitools4.git
synced 2026-04-30 12:00:39 +00:00
8c7017a99d
- Update obioptions.Version from "Release 4.4.29" to "/v/ Release v5" - Update version.txt from 4.29 → .30 (automated by Makefile)
1.4 KiB
1.4 KiB
obiseq Package: Subsequence Extraction Functionality
The Subsequence() method enables extraction of a contiguous segment from biological sequence data (BioSequence). It supports both linear and circular (wrapped) slicing.
-
Input Parameters:
from,to: 0-based inclusive indices defining the slice range.circular: boolean flag enabling wrap-around whenfrom > to.
-
Behavior:
- For linear (
circular = false),from ≤ to, and indices within bounds[0, len(seq)). - For circular (
circular = true), allows wrap-around (e.g.,from=3, to=2on a 4-mer yields indices[3,0,1]). - Validates inputs: returns descriptive errors for:
from > to(non-circular),- out-of-bounds indices (
< 0or≥ length), - invalid ranges.
- For linear (
-
Quality Support:
- When sequence includes base quality scores (
BioSequenceWithQualities), the method preserves corresponding sub-slice ofQuality[].
- When sequence includes base quality scores (
-
Return Value:
- Returns a new
BioSequence(or subclass) instance containing the extracted subsequence and its optional qualities.
- Returns a new
-
Use Case:
- Ideal for region-of-interest extraction (e.g., primer binding sites, domain segments), especially in circular genomes or plasmids.
-
Testing:
- Unit tests (
TestSubsequence) cover valid/invalid inputs, circular/non-circular modes, and quality consistency.
- Unit tests (
This functionality provides robust, semantics-aware slicing for biosequence manipulation in Go.