Files
obitools4/autodoc/docmd/pkg/obialign/alignment.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

23 lines
1.5 KiB
Markdown

# `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()` and `BuildAlignment()` 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.