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 Extended Fragment Geometry Description Language.

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.

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.

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