Skip to content

seqproc

Describe a sequencing protocol once. Compile it into a fast, reproducible FASTQ transformation pipeline.

Protocol logic as data

Express barcodes, UMIs, anchors, biological reads, filters, and output transformations in the versioned Extended Fragment Geometry Description Language, including fixed output sequence and FASTQ-name templates.

Built for large FASTQs

A Rust execution backend combines bounded parallelism, compressed I/O, ordered-output support, and specialized matching paths.

Auditable runs

Validate and explain a geometry before processing, then optionally emit a versioned JSON report with counts, rejection reasons, and match statistics.

header {
efgdl = 2,
name = "10x Chromium v2",
}
bc = b[16]
umi = u[10]
bio = r:
1{<bc><umi>}
2{<bio>}
-> 1{<bc><umi>} 2{<bio>}

This 10x Chromium v2 example says that read 1 contains a 16-base cell barcode and a 10-base UMI, while read 2 contains the biological read. The arrow gives the output arrangement explicitly, and the header gives the file an explicit EFGDL 2 language contract.

Terminal window
seqproc validate 10x-v2.geom
seqproc explain 10x-v2.geom
seqproc run --geom 10x-v2.geom \
--file1 reads_R1.fastq.gz --file2 reads_R2.fastq.gz \
--out1 processed_R1.fastq.gz --out2 processed_R2.fastq.gz \
--threads 8