@shandley/abif-ts
v0.1.0
Published
TypeScript parser for Applied Biosystems ABIF (.ab1) Sanger sequencing files. Extracts sequence, quality scores, trace data, and metadata.
Maintainers
Readme
abif-ts
TypeScript parser for Applied Biosystems ABIF (.ab1) Sanger sequencing files.
Extracts called sequence, Phred quality scores, raw fluorescence trace data, peak positions, and run metadata. Works in the browser (ArrayBuffer) and Node.js (Buffer). Zero dependencies.
Installation
npm install @shandley/abif-ts
# or
pnpm add @shandley/abif-tsQuick start
import { parseAbif } from "@shandley/abif-ts";
// Browser: read a File from <input type="file">
const buffer = await file.arrayBuffer();
const read = parseAbif(buffer);
console.log(read.sequence); // "ATGCAAGTCCG..."
console.log(read.qualityScores); // [28, 40, 38, ...] (Phred scores)
console.log(read.sampleName); // "sample_F"
console.log(read.traces.A); // Int16Array of fluorescence values
console.log(read.peakPositions); // [45, 92, 138, ...]API
parseAbif(buffer: ArrayBuffer): AbifRead
Parse an ABIF file from an ArrayBuffer. Throws if the file is not valid ABIF.
parseAbifFromBase64(base64: string): AbifRead
Parse an ABIF file encoded as a Base64 string.
AbifRead
| Field | Type | Description |
|---|---|---|
| sequence | string | Called bases (5′→3′) |
| qualityScores | number[] | Phred quality scores per base (0–60) |
| peakPositions | number[] | Index into trace arrays for each called base |
| traces.A/C/G/T | Int16Array | Processed fluorescence traces per channel |
| traceLength | number | Number of data points per trace channel |
| channelOrder | string | Channel→base mapping (e.g. "ACGT") |
| sampleName | string | Sample name from run setup |
| dyeSet | string | Dye set / chemistry name |
| instrument | string | Instrument model |
| runName | string | Run name |
| comment | string | Comment field |
| directory | DirectoryEntry[] | All raw directory entries for custom access |
Accessing custom tags
import { parseAbif, getTag } from "@shandley/abif-ts";
const read = parseAbif(buffer);
const entry = getTag(read, "TUBE", 1); // lane/tube labelFormat reference
ABIF is Applied Biosystems' binary format for Sanger sequencing chromatograms, documented in Applied Biosystems Genetic Analysis Data File Format (2006).
Key tags extracted:
PBAS 2— called basesPCON 2— Phred quality scoresDATA 9-12— processed fluorescence channels (A/C/G/T)PLOC 2— peak positionsFWO_ 1— channel→base order
License
MIT
