⬆️ 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)
This commit is contained in:
Eric Coissac
2026-04-07 08:36:50 +02:00
parent 670edc1958
commit 8c7017a99d
392 changed files with 18875 additions and 141 deletions
+34
View File
@@ -0,0 +1,34 @@
# `obilua` Package: Biosequence Lua Bindings
The `obilua` Go package provides **Lua bindings** for biological sequence objects (`obiseq.BioSequence`) used in the OBITools4 ecosystem. It enables scripting and automation of sequence analysis directly from Lua.
## Core Functionality
- **Type Registration**: Registers a new userdata type `BioSequence` in the Lua state, exposing methods and constructors.
- **Constructor**:
```lua
BioSequence.new(id, sequence[, definition]) →BioSequence```
- **Accessors & Mutators**:
- `id()`, `sequence()`, `definition()` get/set identifiers and sequence data.
- `qualities([table])` handle PHRED-quality scores (as Lua table or string).
- `count()`, `taxid()` numeric abundance and taxonomic ID.
- **Taxonomy Integration**:
- `taxon([Taxon])` get/set taxonomic assignment via integrated taxonomy engine.
- **Attributes**:
- `attribute(name[, value])` arbitrary metadata storage (supports tables, strings, numbers).
- **Sequence Operations**:
- `len()` length of the sequence.
- `has_sequence()`, `has_qualities()` boolean checks for presence of data.
- **Computation & Transformation**:
- `subsequence(start, end)` extract a region.
- `reverse_complement()` → BioSequence.
- `md5()`, `md5_string()` compute sequence checksums (raw bytes or hex string).
- **Serialization**:
- `fasta([format])`, `fastq([format])` output in FASTA/FASTQ, supporting `"json"` or `"obi"` header formats.
- `string([format])` smart formatting: FASTQ if qualities present, else FASTA.
## Implementation Notes
- Uses `gopher-lua` for interpreter integration.
- UserData wrapping ensures type safety and GC management of Go-backed objects.
- Error handling via Lua `ArgError` or `RaiseError`.