- Update obioptions.Version from "Release 4.4.29" to "/v/ Release v5" - Update version.txt from 4.29 → .30 (automated by Makefile)
1.5 KiB
Semantic Description of obiseq Package Functionality
The obiseq package provides core bioinformatics utilities for nucleic acid sequence manipulation in Go. It centers around two key operations:
-
Nucleotide Complementation (
nucComplement)
Implements standard Watson-Crick base pairing rules:A↔T,C↔G. It also handles ambiguous or symbolic characters (e.g.,'n' → 'n','[ ↔ ]'), preserving non-standard symbols like gaps ('-') and missing data ('.'). This function serves as the atomic building block for reverse-complement logic. -
Reverse Complementation (
BioSequence.ReverseComplement)
A method on theBioSequencetype that returns a new (or in-place modified) sequence representing:- The reverse of the original nucleotide string, followed by
- Each base replaced with its complement (via
nucComplement).
The method supports two modes:
- Non-destructive (
inplace=false): Returns a newBioSequence, leaving the original unchanged. - In-place (
inplace=true): Modifies and returns the same object for memory efficiency.
Crucially, it preserves associated quality scores (e.g., Phred-scaled sequencing qualities), reversing their order to match the reversed sequence—ensuring correctness in downstream analyses like alignment or variant calling.
Tests validate both functions across edge cases: degenerate bases, ambiguous symbols, and quality-aware sequences—confirming robustness for typical NGS (Next-Generation Sequencing) workflows.