Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

deck-ngs - @jennifer/ngs

test Documentation release

Streaming file formats, read QC, interval arithmetic and pipeline orchestration for next-generation sequencing data, in Jennifer.

Read the documentation →

What it is

The glue and light-I/O layer of a sequencing pipeline, not the engine. Everything streams, so a 50 GB input costs the same memory as a 50 MB one, and the heavy compute stays in the native tools.

In scope: streaming format I/O (FASTQ, SAM, VCF, BED, GFF3/GTF), QC and preprocessing, interval arithmetic, pipeline orchestration.

Out of scope: read alignment, assembly, variant calling and BAM/CRAM. Drive those through the pipeline module and parse their text output here - why →.

Install

# deck.yaml
decks:
  "@jennifer/ngs": "^0.1.0"
import "@jennifer/ngs/" as ngs;            # the entry module
import "@jennifer/ngs/fastq.j" as fastq;   # the working surface

Needs Jennifer 0.25.0 or newer. Streaming gzip and pipeline orchestration shell out, so they want the default jennifer binary rather than jennifer-tiny, plus gzip and mkfifo on PATH; parsing, interval arithmetic and formatting run on both. Vendoring by hand, and the startup capability check →

A first look

# Streams, gzip and all - memory stays flat regardless of file size.
def report as qc.Report init qc.analyze("sample.fastq.gz", qc.options());
io.printf("%s", qc.summary($report));

Modules

source · fastq · bed · gff · sam · vcf · intervals · qc · trim · pipeline · core · ngs

What each one does → - and every exported name, with its signature, is in the cheatsheet.

Documentation

The manual lives in docs/ and is published to GitHub Pages by CI. Start with coordinate systems before writing interval code, and recipes for worked end-to-end tasks.

Changing the deck - the gates, the docs build, CI and the release process - is Working on the deck.

Licence

LGPL-3.0-only, matching the Jennifer interpreter. The full text is in LICENSE; every source file carries an SPDX header.

Releases

Contributors

Languages