- 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
obialign Package: Sequence Alignment Utilities
The obialign package provides core functions for pairwise biological sequence alignment in Go, designed to work with obiseq.BioSequence objects.
-
Core Alignment Construction:
_BuildAlignment()andBuildAlignment()reconstruct aligned sequences from a precomputed alignment path (e.g., output by dynamic programming). It supports gap characters and reuses buffers for efficiency. -
Quality-Aware Consensus Building:
BuildQualityConsensus()generates a consensus sequence from an alignment and per-base quality scores:- At mismatches, it retains the higher-quality base.
- When qualities are equal and bases differ, an IUPAC ambiguity code is used (via
_FourBitsBaseCode/_Decode). - Quality values are combined and adjusted for mismatches using a Phred-like error probability model.
- Optionally records mismatch statistics in sequence attributes.
-
Performance & Memory Efficiency: Uses preallocated buffers (via
PEAlignArena) or fallback allocation, with slice recycling to minimize GC pressure. -
Metadata Handling: Preserves sequence IDs and definitions in output; supports optional mismatch reporting for downstream analysis.
-
Alignment Path Format: The path is a sequence of signed integers encoding:
- Negative steps → deletions in seqB (insertion in A),
- Positive steps → insertions in B,
- Consecutive pairs encode match/mismatch runs.
This package is part of the OBITools4 ecosystem, targeting high-throughput amplicon or metagenomic data processing.