Read Applied Biosystems ABIF files: Sanger traces (.ab1), fragment-analysis runs (.fsa) and 3500 HID runs (.hid); every element type, raw and analysed traces, dyes, base calls, qualities, peak locations and run metadata
abifab1fsasangercapillary-electrophoresis
[decks]
"@deckyard/abif" = "^0.1.0"| Version | Status | Kind | Pin | Requires | Engines | Capabilities |
|---|---|---|---|---|---|---|
| 0.1.0 | live | git | 4fffec17489f | - | jennifer >=0.26.0 | - |
LGPL-3.0-only
0.1.0Read Applied Biosystems ABIF files in a Jennifer program: Sanger traces (.ab1), fragment-analysis runs (.fsa) and 3500 HID runs (.hid). Every element type, raw and analysed traces per dye, dyes, base calls with qualities and peak locations, and the sample and run metadata. The directory is checked against the file before anything is read.
jvc add @deckyard/abifThis vendors the deck to vendor/<scope>/abif/. Without jvc, unpack the src/ subtree of a release archive (<scope>-abif-<version>.tar.gz) there.
import "@deckyard/abif/" as abif;
def f as abif.File init abif.open("sample.ab1");
def i as abif.Info init abif.info($f);
def c as abif.Calls init abif.calls($f);
io.printf("%s (%s): %d bases\n", $i.sample, $i.well, len($c.bases));Jennifer 0.26.0 or newer. No capabilities.
The traces, peak tables and most dye names of a 3500 HID file are encrypted; the deck reads that file's metadata, not its signal.
tools/check-all.sh # the full gate, as CI runs it
jennifer test src/abif_test.j # the test overlay
tools/check-docs.sh # docs against the code
tools/pack.sh dist # build the release archiveLGPL-3.0-only, see LICENSE. Copyright (C) 2026 mplx <[email protected]>.
tools/check-headers.sh checks every source file's SPDX header against deck.toml. The sample files in testdata/ have their own licences; see testdata/README.md.