Skip to main content
PLOS Computational Biology logoLink to PLOS Computational Biology
. 2026 May 28;22(5):e1014181. doi: 10.1371/journal.pcbi.1014181

BINSEQ: A family of high-performance binary formats for nucleotide sequences

Noam Teyssier 1,*, Alexander Dobin 1
Editor: Stephan Schiffels2
PMCID: PMC13232939  PMID: 42207819

Abstract

Modern genomics produces billions of sequencing records per run, which are typically stored as gzip-compressed FASTQ files. While this format is widely used, it is not optimal for high-throughput processing due to its reliance on single-threaded decompression and sequential parsing of irregularly sized records. This limitation is particularly problematic for applications that would benefit from parallel processing, such as read mapping, variant calling, and de novo assembly. Here, we present BINSEQ, a family of simple binary formats that enable high-throughput parallel processing of sequencing data. The BINSEQ family consists of two complementary implementations: BQ, optimized for fixed-length reads using a two-bit or four-bit encoding scheme with true random record access capability, and VBQ, designed for variable-length sequences with optional quality scores and block-based compression. We demonstrate that BINSEQ files are up to 90x faster than compressed FASTQ for parallel processing and can reduce analysis time from hours to minutes for large-scale genome and transcriptome analyses, particularly for resource-intensive applications like alignment, mapping, and de novo assembly. To facilitate adoption we provide high-performance libraries for reading and writing BINSEQ formats, native parallelization strategies with convenient APIs, and a command-line tool for conversion to and from traditional formats.

Author summary

Modern sequencing technologies routinely generate billions of reads per experiment, yet the methods for storing and accessing these data have not kept pace. Sequencing reads remain predominantly stored in FASTQ, a text-based format designed for far smaller datasets. FASTQ’s sequential parsing requirements and practical need for compression create a fundamental mismatch with modern multi-core architectures, where data access rather than computation has become the primary bottleneck. We address this problem with BINSEQ, a family of binary formats engineered for random access and native parallelization. Systematic benchmarking across applications of varying computational complexity demonstrates that BINSEQ achieves 90-fold improvements in data access and maintains substantial advantages in compute-intensive tasks such as genome alignment, reducing runtimes from hours to minutes. We present two complementary implementations: BQ, optimized for simplicity and maximal throughput, and VBQ, designed for flexibility while maintaining high performance. By reconsidering the relationship between storage architecture and parallel processing capabilities, BINSEQ provides a practical solution to a critical infrastructure challenge in high-throughput genomics.

1 Introduction

Modern genomics routinely generates billions of sequencing records per experimental run, with data predominantly stored in gzip-compressed FASTQ [7]. While this format has remained the de facto standard for sequencing data storage due to its simplicity and widespread tool support, its fundamental design choices present significant operational constraints. The format’s minimal specification, while facilitating broad adoption, introduces implementation variability and edge cases that compromise both compatibility and performance. A central limitation stems from its variable-length record structure, which necessitates sequential parsing even when the underlying nucleotide sequences are of fixed length. This architectural constraint, coupled with the practical requirement for data compression, creates an inherent tension between storage efficiency and processing speed.

These limitations become particularly acute in computational workflows that would naturally benefit from parallel processing, such as alignment [8,16], pseudoalignment [5,20], and de novo assembly [2,14]. These are embarrassingly parallel operations, and the sequential nature of FASTQ parsing and decompression creates an unnecessary processing bottleneck that prevents effective utilization of modern multi-core architectures [13]. This inefficiency is most pronounced in, but not limited to, applications with low per-record computational complexity where I/O operations within decompression and parsing dominate the total execution time. The fundamental limitation of FASTQ, and other sequentially parsed formats, is that they are I/O-bound rather than CPU-bound. Consequently, application performance becomes bounded by storage medium throughput rather than available computational resources.

This misalignment between modern sequencing characteristics and legacy storage formats presents a clear opportunity for optimization. There is no standard for unaligned sequencing data and researchers have used many formats such as unaligned-SAM [17], BAM [17], and CRAM [6] – though the de facto standard is GZIP-compressed FASTQ [7]. There have also been many novel compression algorithms [1,3,18] and storage formats such as the Nucleotide Archive Format (NAF) [11] proposed as alternatives to general purpose compression algorithms. However, many of these approaches focus on efficient compression and decompression without specifically considering accession properties of the underlying data which remains the limiting factor to computational efficiency.

Here, we present the BINSEQ family of formats, specifically engineered to exploit the properties of contemporary sequencing data and built for high-throughput parallel access. We introduce two complementary implementations: BQ, optimized for fixed-length reads, and VBQ, designed for variable-length sequences while maintaining high-performance characteristics. Unlike FASTQ, both formats natively support single- and paired-end reads unambiguously, eliminating the need to keep multiple synchronized files.

BQ introduces two key innovations in sequence data storage. First, it enforces fixed-size records for all sequences, enabling deterministic random access to any record without sequential parsing. Second, it employs a two-bit or four-bit encoding scheme for nucleotide representation, achieving a four-fold or two-fold improvement in space efficiency compared to the ASCII-based representation used in plain-text formats. This combination provides inherent compression without requiring additional compression algorithms, while the fixed-size record structure enables true parallel processing. Furthermore, by eliminating the storage of quality scores and sequence identifiers – elements frequently ignored by modern bioinformatics tools – BQ achieves additional space and processing efficiencies.

VBQ extends these core principles to accommodate variable-length sequences and quality score information when needed. Rather than enforcing fixed-size records for the entire dataset, VBQ organizes data into fixed-length and independent record blocks. Within these record blocks, sequences can be variable length and optionally include quality scores. Each block is optionally ZSTD compressed, and the format supports indexing for parallel access to record blocks. Although VBQ sacrifices direct record random access, it maintains exceptionally high performance for parallel processing and offers greater flexibility at the record level than BQ.

In this paper, we present a comprehensive description of the BINSEQ family designs and implementations, accompanied by extensive performance evaluations across bioinformatics applications of varying complexities. Our results demonstrate significant improvements in both processing speed and storage efficiency, establishing BQ and VBQ as compelling alternatives to traditional sequence storage formats for modern genomics workflows.

2 Methods

2.1 File format specification

2.1.1 BQ.

BQ is implemented as a binary file format (.bq) specifically engineered for the efficient storage and retrieval of fixed-length DNA sequences (Fig 1a).

Fig 1. BINSEQ file format family.

Fig 1

(a) The BQ file format. The header provides sequence-level descriptors (S2 Table). Each record is fixed length and is composed of a flag section and a sequence section. Records are optionally paired sequences and sequence lengths are described in the header. (b) The VBQ file format. The header provides which optional features are present in the file (S3 Table). Each record can be variably sized, include quality scores, include sequence headers, and be paired.

The format employs a two-bit or four-bit nucleotide encoding scheme (S1 Table) and maintains a consistent record structure to enable direct random access. Each BQ file consists of two primary components: a fixed-size header (S2 Table) and a data section containing sequence records.

The data section follows immediately after the header and consists of fixed-size records arranged sequentially. Each record comprises a flag field and sequence data, with the record size determined by the sequence length. The flag field, implemented as a 64-bit unsigned integer, precedes the sequence data and can accommodate implementation-specific metadata, filtering criteria, or quality metrics.

Sequence data storage employs a dense two-bit or four-bit encoding scheme defined by a simple lookup table (S1 Table). Invalid nucleotides are controlled via a configurable policy, allowing users to skip sequences with invalid nucleotides, replace invalids with random nucleotides, or replace them with a predetermined nucleotide. However, N nucleotides can be encoded using the four-bit encoding scheme. All nucleotide encodings are represented using little-endian byte order, with subsequences packed into 64-bit integers. If a sequence length is not a multiple of 32 or 16, the final integer is padded with zeros to maintain alignment.

There are two variants of the sequence data storage: primary and extended. The primary sequence data is meant to represent the first read pair or single-end reads, while the extended sequence data is used for the second read pair in paired-end sequencing. The extended sequence is optional and can be omitted if not required (and is determined by the xlen field in the header).

For a sequence of length N, the total record size Sr is given by:

Sr=F+W(⌈NB⌉) (1)

For an extended sequence pair with lengths N and M, the total record size Sp is given by:

Sp=F+W(⌈NB⌉+⌈MB⌉) (2)

where:

  • F is the flag field size (0 or 8 bytes depending on whether the FLAG is set to true in the header)

  • N is the sequence length in nucleotides

  • W is the word size (8 bytes)

  • B is the bits per word (e.g., 16 for four-bit and 32 for two-bit encodings)

  • ⌈x⌉ denotes the ceiling function

The position P of any record i in the file can be calculated as:

Pi=H+S(i) (3)

where:

  • H is the header size (32 bytes)

  • i is the zero-based record index

  • S is a record size {Sr,Sp} calculated in Equation 1 or Equation 2

2.1.2 VBQ.

VBQ is implemented as a binary file format (.vbq) and is designed to increase flexibility in record storage, but still allow for high parallel processing capabilities (Fig 1b).

At its core, VBQ is an extension of BQ with two notable differences: variable length records and fixed-size record blocks. Each VBQ file consists of four primary components: a fixed-size header (S3 Table), block headers (S4 Table), records (S5 Table), and a block index.

Each block has the same virtual memory size, which is specified by the file header, and packs as many complete records as possible in the block. These blocks are then optionally ZSTD compressed, and the compressed size with the number of records in the block is stored in a preceding block header. This effectively keeps each block independent and able to be processed in parallel.

Because VBQ is optionally compressed, the block header locations cannot be known absolutely, but can be easily indexed after creation to allow for parallel decompression and access. The index is a simple ZSTD-compressed binary section that annotates the start and end locations of compressed blocks in the file as well as the cumulative number of records at that block start. It begins with an uncompressed header that designates the file format as well as a quick-check on the number of bytes in the associated VBQ file to quickly check if the files are accurately paired (S6 Table). The remaining bytes are compressed and are composed of repeating ranges (S7 Table) which describe each block in the file. It finishes with the total number of bytes in the index and with a magic number to verify the integrity of the index. This index is kept at the end of the file as it is defined after write, but is loaded first when reading to allow for parallel decompression and access.

2.2 Implementation

2.2.1 Nucleotide encoding.

BINSEQ employs a highly-efficient bit encoding library for nucleotide sequences. The library, bitnuc, provides a simple API for encoding and decoding nucleotide sequences represented as a vector of bytes, into a vector of 64-bit integers. The encoding scheme is based on a lookup table that efficiently maps nucleotide characters into two-bit or four-bit representations and packs them into 64-bit integers with efficient bitwise operations.

The implementation heavily makes use of SIMD instructions to accelerate encoding and decoding operations and is optimized for modern architectures. These instructions are available on x86 and ARM architectures and provide significant performance improvements over scalar implementations, which are provided as fallbacks for compatibility. The library is designed to be thread-safe and can be used in parallel processing environments without additional synchronization overhead.

2.2.2 File I/O.

BINSEQ provides a high-performance library for reading and writing BINSEQ files. This library is implemented in the Rust programming language and leverages the language’s safety guarantees and performance characteristics to provide a robust and efficient implementation. The library is designed to be thread-safe and can be used in parallel processing environments without additional synchronization overhead. We have also developed both C and C++ bindings to the Rust library for multi-language support. Notably, C/C++ bindings are available for memory-mapped file access and do not currently support streaming at the time of writing though they are planned for future releases.

The compact binary format and fixed-size record structure allows for either sequential or random access to records, providing multiple access patterns for different applications. Both formats allow for direct zero-copy memory mapping, enabling very efficient access patterns.

2.2.3 Parallel processing.

BINSEQ provides a simple hook-based interface for parallel processing (S8 Table). This interface follows a classic map-reduce pattern, allowing users to define custom map and reduce functions that operate on individual records and aggregate results on a regular batch size. This allows for efficient asynchronous processing of records in parallel during mapping but allows users to decide when best to synchronize threads for Reduce operations.

2.2.4 Command-line tool.

Alongside the core library, we have developed a command-line tool for converting between BINSEQ and FASTQ formats, bqtools. bqtools provides a simple interface for converting between formats, allowing users to integrate BINSEQ into existing workflows.

2.3 Performance evaluation

To evaluate the performance of BINSEQ, we developed 3 different benchmarking scenarios to assess the format’s efficiency across a range of bioinformatics applications. These scenarios are not meant to be exhaustive but rather to provide a representative sample of the performance improvements that BINSEQ can offer. The scenarios are as follows:

Sequence Access: This is the simplest possible scenario, where we measure the time taken to read all nucleotide sequences from a file. This is meant to replicate the raw parsing performance of the format and provide a baseline for comparison.

k-mer Counting: This is a common low-complexity bioinformatics task where we count the number of unique k-mers of incoming records. We select a low k to measure the performance of a low-complexity application.

Alignment: This is a more complex scenario where we align incoming records to a reference genome. This is meant to simulate a more computationally intensive operation on each record and provide a measure of the format’s performance in a high-complexity application. This scenario is more indicative of the performance improvements that BINSEQ can offer in applications like read mapping, variant calling, and de novo assembly.

Sequence access benchmarks were performed locally on a Macbook Pro M3. k-mer counting and alignment benchmarks were performed on a high-performance computing cluster using a Dual Intel(R) Xeon(R) Platinum 8468 CPU with NVMe solid-state drives for I/O.

2.3.1 Sequence access.

To evaluate sequence access performance, we measured the time taken to read and potentially decode all nucleotide sequences from a file. This scenario is meant to replicate the raw parsing performance of the format and provide a baseline for comparison. To encapsulate a fundamental trade-off of modern genomics we sought not only to evaluate the speed of the format but also its storage requirements.

To represent this trade-off quantitatively we developed a normalized composite metric, mi (Equation 4), that combines the normalized time taken to read the sequences, t¯i (Equation 5), and the normalized storage requirements, s¯i (Equation 6), for each format i.

mi=t¯i+s¯i2 (4)
t¯i=ti−min(T)max(T)−min(T) (5)
s¯i=si−min(S)max(S)−min(S) (6)

Each normalized metric {t¯,s¯} is a value bounded by [0, 1] where 0 represents the best performance and 1 represents the worst performance of that metric across all formats tested. The composite metric m is the arithmetic mean of the normalized time and storage requirements, providing a single value that represents the trade-off between the two metrics for each format. This treats both time and storage requirements as equally important factors in evaluating the performance of a format, but this metric could also be adjusted to reflect different priorities.

To attempt a fair comparison between formats we evaluated multiple formats and compression strategies (Table 1). For each format we evaluated the performance of both single-threaded and parallel parsing strategies where available.

Table 1. Sequence access formats, compressions, and processing strategies.
File Format Additional Compression Parallelism Base Encoding
FASTA [21] {None, Gzip, Zstd, Lz4} No None
FASTQ [7] {None, Gzip, Zstd, Lz4} No None
SAM [17] None {No, Yes} None
BAM [17] None {No, Yes} 4-bit
CRAM [6] None {No, Yes} 4-bit
NAF [11] None No 4-bit
BQ None {No, Yes} 2-bit, 4-bit
VBQ None {No, Yes} 2-bit, 4-bit

The FASTA and FASTQ parsers were implemented using the the Rust seq_io library [24], which offers zero-copy implementations. The SAM, BAM, and CRAM parsers were implemented using the Rust rust-htslib library [12], which offers FFI bindings to the C htslib library [4], with parallel parsing strategies. The BQ and VBQ parsers were implemented using the Rust binseq library, which offer zero-copy implementations with parallel parsing strategies. The Nucleotide Archive Format (NAF) parsers were implemented by wrapping the unnaf binary [11] and parsing sequences from stdout.

Where relevant, the Gzip, Zstd, and Lz4 decoding implementations were provided respectively by the Rust flate2, zstd, and lz4 libraries. All libraries used were the latest stable versions available at the time of writing, and selected in good faith to provide the best performance possible for each format and compression strategy.

For FASTA, FASTQ, and NAF, the parsing strategy was limited to a single-threaded implementation. We note that while the seq_io library does provide parallel processing of records, the underlying byte-stream parsing is inherently sequential.

The input format for this experiment was generated using nucgen, a Rust library for generating uniform random nucleotide sequences. The nucleotide sequences were generated with a uniform distribution of A, C, G, and T nucleotides. Quality scores were globally “?”, simplified to a single value for each sequence. This simplification will result in better performance for existing compression formats, but does not make assumptions about the distribution of quality scores. Each experiment was performed with 10 Million records. For single-end reads each record had 100 bp and for paired-end reads the primary sequence had 50 bp and the secondary had 150 bp.

2.3.2 Real data evaluation.

To complement our simulated data benchmarks, we evaluated BQ and VBQ in lossless mode (four-bit encoding with quality scores and sequence headers preserved via the --archive flag) on real sequencing data spanning three common data types.

For short-read single-cell RNA sequencing, we used a paired-end dataset from the combinatorial single-cell CRISPR screen study by Replogle et al. [23] (SRR11214033), sequenced on an Illumina NovaSeq 6000.

For short-read whole-genome sequencing, we used a paired-end human dataset (SRR36606595, BioProject PRJNA1394331) sequenced on an Illumina NovaSeq X Plus with 2x150bp reads.

For long-read sequencing, we used PacBio HiFi reads from a diploid genome assembly of the human H9 embryonic stem cell line (SRR37455459, BioProject PRJNA1431686).

For each dataset, the original gzip-compressed FASTQ files were converted to VBQ format using bqtools encode with the --archive flag to preserve quality scores, sequence headers, and four-bit nucleotide encoding. Where applicable (fixed-length datasets), BQ files were also generated using two-bit encoding.

We measured the resulting file sizes and record access times for both single-threaded and multi-threaded (32 threads) configurations using the same bsb parsing tool used in our synthetic benchmarks. For paired-end FASTQ datasets, file sizes reported are the sum of both read files. All measurements were performed on a Dual Intel(R) Xeon(R) Platinum 8468 CPU with NVMe solid-state drives, consistent with the k-mer counting and alignment benchmarks. Each benchmark was run 3 times with 2 warmup iterations, and mean runtimes are reported.

2.3.3 K-mer mapping.

The k-mer mapping scenario is accomplished with a naive parallel implementation of k-mer counting. Briefly, each thread manages a thread-specific k-mer count table, implemented as a hashmap, and at regular batch intervals a global k-mer count table is locked, updated by the local table, and the local table counts are cleared. The k-mers are counted by sliding a window of size k through the record sequence and updating the local thread table via an O(1) update.

The input data for this experiment was generated using wgsim [17], using the HGChr38 Chromosome 1 as reference and with increasing fixed length sequences of 100, 200, and 300 basepairs.

2.3.4 Alignment.

The alignment scenario is a more complex scenario where we align incoming records to a reference genome. To accomplish this, we adapted minimap2 [15], a flexible and high-performance read mapper, to accept BINSEQ as input.

We make use of the Rust library minimap2 which provides FFI bindings to the underlying C minimap2 library. We then created a simple command-line tool, mmr, that accepts BINSEQ or FASTQ as input, performs the alignment operation using minimap2, and outputs the resulting PAF file.

For our FASTQ parsing implementation, we use the paraseq library, which provides a minimal-copy parser for FASTQ files with a focus on parallel processing. We matched the default parameters of the standard minimap2 command-line tool and manage presets through the C interface.

It is important to note that the standard minimap2 command-line tool employs separate I/O threads for reading input and writing output, allowing decompression to proceed concurrently with alignment. Our mmr implementation similarly uses a dedicated reader thread that feeds records to the alignment worker pool. For the FASTQ path, mmr uses the paraseq library for parsing in the reader thread, while for BINSEQ inputs, record blocks are dispatched directly to workers for parallel processing. This design ensures that the comparison between formats reflects differences in data access efficiency rather than differences in I/O threading strategy.

We explored three different alignment scenarios, short-read whole-genome sequencing, long-read whole-genome sequencing, and long-read spliced sequencing. Notably, we excluded short-read spliced sequencing from this benchmark as minimap2 only recently announced support for this use-case and STAR is one of the most common short-read spliced aligners used in the field.

To simulate short-read sequences we used the wgsim [17] tool, using the HGChr38 Chromosome 1 as reference and with increasing fixed length sequences of 100, 200, and 300 basepairs. To simulate long-read sequences we used the pbsim3 [19] tool. For the whole-genome sequences we used the “wgs” strategy, the qshmm error model (QSHMM-RSII), GHChr38 Chromosome 1 as reference, and increased mean length sizes from 1000 to 9000 base pairs (sequence lengths are variable). For the spliced sequences we used the “trans” strategy, the qshmm error model (QSHMM-RSII), and the GHChr38 Chromosome 1 cDNA library as reference.

For the short-read sequence evaluation we evaluate FASTQ and BINSEQ. For the long-read sequence evaluations we evaluate FASTQ and VBQ, excluding BQ as the sequences are of variable length. For all evaluations, VBQ is compressed and including quality scores to capture the worst-case.

To evaluate the performance of short-read spliced sequences we modified the STAR aligner [8] to accept BQ as an input format via C-bindings. This implementation minimally modified the STAR aligner and as such it is not fully optimized to take advantage of the BQ format. However, it provides a proof of concept that BQ can be used as an input format for other non-rust-based bioinformatics tools.

For this task we realigned the short-read single-cell sequencing data from the Replogle et al. study [22] using either BINSEQ or gzip compressed FASTQ as input. Notably, each file was processed independently and does not make use of any file-level parallelism.

3 Results

Our comprehensive evaluation demonstrates that the BINSEQ family of formats delivers substantial performance improvements across all tested bioinformatics workflows. BQ and VBQ achieved up to 94x faster processing than compressed FASTQ while maintaining comparable or reduced storage requirements. These improvements were most pronounced in parallel processing scenarios, where BINSEQ formats continued to scale efficiently with increasing thread counts while traditional formats quickly reached performance plateaus.

3.1 Sequence access

BINSEQ formats significantly outperform traditional sequence formats in both processing speed and storage efficiency. As shown in Table 2, multi-threaded BQ demonstrates the fastest record throughput among all tested formats, while multi-threaded VBQ achieves the best combined score for processing speed and file size.

Table 2. Comparison of different compression methods and their performance metrics across various file formats (single-end records). Time is reported in seconds, size in megabytes. Score is a combined metric of normalized time and size (Equation 4). The “Bit Size” column indicates the number of bits used to represent each nucleotide in the format. The “Parallel” column indicates whether the method was performed in parallel (8 threads). The “Bandwidth” column indicates the Giga-bases per second (Gbp/s). The “Speedup” column indicates the runtime speedup over FASTQ.GZ.

Format Variant Bit Parallel Time Storage Score Bandwidth Speedup
Size (t = 8) (s) (MB) (Gbp/s)
BINSEQ vbq two parallel 0.0693 267.93 0.0131 14.439 35.10x
BINSEQ bq two parallel 0.0258 305.18 0.0170 38.696 94.07x
BINSEQ bq two serial 0.1162 305.18 0.0289 8.608 20.93x
BINSEQ vbq four parallel 0.1626 299.61 0.0337 6.148 14.95x
BINSEQ vbq two serial 0.4133 267.93 0.0584 2.419 5.88x
BINSEQ bq four parallel 0.0600 534.06 0.0800 16.674 40.53x
BINSEQ bq four serial 0.3163 534.06 0.1139 3.162 7.69x
BINSEQ vbq four serial 1.0501 299.61 0.1505 0.952 2.32x
FASTA lz4 eight serial 0.9603 588.39 0.2127 1.041 2.53x
HTSlib bam four parallel 1.5342 301.92 0.2153 0.652 1.58x
FASTA zstd eight serial 1.4970 349.43 0.2227 0.668 1.62x
HTSlib cram four parallel 1.7692 238.85 0.2296 0.565 1.37x
FASTQ naf eight serial 1.8621 242.47 0.2435 0.537 1.31x
FASTA naf eight serial 1.8697 242.44 0.2440 0.535 1.30x
FASTA uncompressed eight serial 0.2580 1086.13 0.2475 3.876 9.42x
FASTQ lz4 eight serial 1.4537 599.43 0.2815 0.688 1.67x
FASTA gzip eight serial 1.9924 324.81 0.2816 0.502 1.22x
FASTQ zstd eight serial 1.9909 367.83 0.2928 0.502 1.22x
FASTQ gzip eight serial 2.4311 347.43 0.3446 0.411 1.00x
HTSlib cram four serial 3.1586 238.85 0.4093 0.317 0.77x
HTSlib bam four serial 3.8162 301.92 0.5161 0.262 0.64x
FASTQ uncompressed eight serial 0.5499 2068.41 0.5369 1.819 4.42x
HTSlib sam eight parallel 1.2661 2192.39 0.6636 0.790 1.92x
HTSlib sam eight serial 3.4933 2192.39 0.9575 0.286 0.70x

When compared to the de facto standard gzip-compressed FASTQ, multi-threaded BQ achieves more than 94x higher throughput for both unpaired records (Fig 2). Multi-threaded VBQ similarly excels with greater than 35x faster throughput. This dramatic performance improvement derives from BQ’s fixed-size record structure and generally BINSEQ’s elimination of sequential decompression bottlenecks that limit traditional formats.

Fig 2. Speedup of file formats over FASTQ.

Fig 2

GZ for unpaired (a) and paired (b) records. The speedup is measured as the ratio of the total elapsed time to process the record set between the test and reference condition (fastq.gz). Parallel implementations are run using 8 threads.

Storage efficiency analysis reveals a competitive landscape among specialized formats. BQ (305.18 MB) maintains comparable file sizes to gzip-compressed FASTA (324.81 MB) and BAM (301.92 MB), while requiring less space than gzip-compressed FASTQ (347.43 MB). VBQ further reduces storage requirements (267.93 MB) to levels similar to CRAM (238.85 MB) and NAF (242.44 MB for FASTA, 242.47 MB for FASTQ). Notably, while CRAM and NAF achieve excellent compression efficiency, BQ and VBQ maintain superior decoding performance, especially in parallel processing paradigms.

The choice between two-bit and four-bit nucleotide encoding presents a clear performance-fidelity trade-off. Two-bit encoding provides maximum throughput and minimal storage, achieving the 94x speedups and 305.18 MB file sizes reported above for BQ. Four-bit encoding preserves ambiguous bases (N) at the cost of doubled storage (534.06 MB) and reduced throughput, though still maintaining substantial advantages over traditional formats - 40x faster than gzip-compressed FASTQ for parallel BQ (Table 2). For VBQ, four-bit encoding (299.61 MB) requires approximately 12% more storage than two-bit (267.93 MB) while maintaining greater than 14x speedup over FASTQ. The selection between encoding schemes should be guided by application requirements: two-bit encoding is optimal for high-quality fixed-length data where ambiguous bases are rare (e.g., Illumina single-cell RNA-seq), while four-bit encoding is appropriate when base ambiguity information must be preserved (e.g., low-coverage sequencing, variant analysis, or archival storage).

The performance gap between BINSEQ formats and traditional approaches becomes more pronounced in parallel processing scenarios. While traditional formats like FASTQ, BAM, and CRAM show modest throughput improvements with parallel processing, they quickly reach saturation, limiting their effective utilization of modern multi-core architectures. In contrast, both BQ and VBQ scale efficiently with increasing thread counts, maintaining near-linear throughput improvements.

Our composite score (Equation 4), which balances processing speed and storage efficiency, ranks VBQ and BQ as optimal formats with scores of 0.0131 and 0.0170 respectively, an order of magnitude better than other formats, with NAF (0.2440 for FASTA, 0.2435 for FASTQ) also showing competitive combined performance. While NAF excels in storage efficiency, BINSEQ formats maintain superior processing speed, particularly for parallel workloads.

Paired-end results mirror and amplify these trends (Table 3). Multi-threaded BQ achieves 121.71x speedup over FASTQ.GZ and multi-threaded VBQ achieves 43.50x, both substantially higher than their single-end counterparts. This is consistent with the expectation that processing two records per pair exposes more opportunity for parallelism while the FASTQ.GZ baseline scales poorly with record volume. Notably, for paired-end data BQ achieves the best composite score (0.0071), with VBQ close behind (0.0150), a reversal from the single-end rankings.

Table 3. Comparison of different compression methods and their performance metrics across various file formats (paired-end records). Time is reported in seconds, size in megabytes. Score is a combined metric of normalized time and size (Equation 4). The “Bit Size” column indicates the number of bits used to represent each nucleotide in the format. The “Parallel” column indicates whether the method was performed in parallel (8 threads). The “Bandwidth” column indicates the Giga-bases per second (Gbp/s). The “Speedup” column indicates the runtime speedup over FASTQ.GZ.

Format Variant Bit Parallel Time Storage Score Bandwidth Speedup
Size (t = 8) (s) (MB) (Gbp/s)
BINSEQ bq two parallel 0.0382 534.06 0.0071 26.211 121.71x
BINSEQ vbq two parallel 0.1068 563.27 0.0150 9.367 43.50x
BINSEQ bq two serial 0.1828 534.06 0.0161 5.472 25.41x
BINSEQ vbq four parallel 0.2954 603.07 0.0318 3.386 15.72x
BINSEQ vbq two serial 0.6509 563.27 0.0488 1.536 7.13x
BINSEQ bq four parallel 0.1125 1068.12 0.0795 8.890 41.28x
BINSEQ bq four serial 0.6053 1068.12 0.1101 1.652 7.67x
FASTQ naf eight serial 2.1731 484.95 0.1331 0.460 2.14x
FASTA naf eight serial 2.1827 484.89 0.1336 0.458 2.13x
BINSEQ vbq four serial 1.9815 603.07 0.1362 0.505 2.34x
FASTA lz4 eight serial 1.8236 1176.19 0.1993 0.548 2.55x
FASTA zstd eight serial 3.0730 696.92 0.2071 0.325 1.51x
HTSlib bam four parallel 3.3978 611.68 0.2219 0.294 1.37x
HTSlib cram four parallel 3.8526 477.98 0.2348 0.260 1.21x
FASTA uncompressed eight serial 0.4155 2172.26 0.2386 2.407 11.18x
FASTQ lz4 eight serial 2.7353 1198.29 0.2577 0.366 1.70x
FASTA gzip eight serial 3.8793 647.89 0.2600 0.258 1.20x
FASTQ zstd eight serial 3.9541 735.61 0.2736 0.253 1.17x
FASTQ gzip eight serial 4.6436 692.46 0.3124 0.215 1.00x
HTSlib cram four serial 6.4170 477.98 0.3969 0.156 0.72x
FASTQ uncompressed eight serial 0.8642 4136.83 0.5159 1.157 5.37x
HTSlib bam four serial 8.1194 611.68 0.5170 0.123 0.57x
HTSlib sam eight parallel 2.7068 4413.39 0.6657 0.369 1.72x
HTSlib sam eight serial 7.4673 4413.39 0.9606 0.134 0.62x

Additional analysis of compression algorithms indicates that zstd compression achieves similar compression ratios to gzip but with significantly faster decompression rates for both FASTA and FASTQ. This finding provides additional evidence supporting the replacement of gzip as the de facto compression algorithm in bioinformatics pipelines.

3.2 Real data evaluation

To validate our synthetic benchmarks on real sequencing data, we evaluated BQ and VBQ in lossless mode (four-bit encoding with quality scores and sequence headers) across three representative public datasets (Table 4). VBQ achieved consistent 40–47x speedups over gzip-compressed FASTQ at 32 threads across all three data types, while BQ achieved 168–221x speedups on the two fixed-length datasets. Single-threaded performance improvements were more modest (1.8–1.9x for VBQ, 16–17x for BQ), isolating the format-level efficiency gains from the parallelization advantages. Storage requirements for VBQ were 85–88% of the corresponding gzip-compressed FASTQ files, while BQ achieved 54–55% for fixed-length datasets.

Table 4. Real data file size and access speed comparison. VBQ files were encoded in lossless mode (four-bit encoding with quality scores and sequence headers). BQ files use two-bit encoding. Size ratio is relative to FASTQ.GZ. Speedup is the ratio of FASTQ.GZ access time to BINSEQ access time. Parallel benchmarks used 32 threads. All benchmarks were performed on a Dual Intel(R) Xeon(R) Platinum 8468 CPU with NVMe solid-state drives.

Dataset Format Size Size Time 1T Time 32T Speedup
(GB) Ratio (s) (s) (1T / 32T)
scRNA-seq FASTQ.GZ 13.44 1.00 108.4 — —
(SRR11214033) BQ 7.20 0.54 6.6 0.64 16.5x / 168.2x
VBQ 11.43 0.85 61.7 2.69 1.8x / 40.3x
Short-read WGS FASTQ.GZ 49.82 1.00 393.9 — —
(SRR36606595) BQ 27.41 0.55 22.6 1.79 17.5x / 220.6x
VBQ 43.82 0.88 208.3 8.44 1.9x / 46.7x
Long-read DNA FASTQ.GZ 31.73 1.00 246.4 — —
(SRR37455459) VBQ 28.08 0.88 131.3 5.21 1.9x / 47.3x

3.3 K-mer counting

The BINSEQ formats deliver substantial performance advantages for k-mer counting, a fundamental operation in many bioinformatics algorithms. As illustrated in Fig 3a, both BQ and VBQ maintain near-linear scaling of record throughput as thread count increases, continuing to improve even at 128 threads. In stark contrast, FASTQ reaches performance saturation at just 2–4 threads, depending on sequence length, gaining no additional throughput despite allocated computational resources.

Fig 3. Runtime characteristics of kmer-count as a function of the number of threads and format: FASTQ (fq), BQ (bq), VBQ (vbq).

Fig 3

(a) Record processing throughput as a function of the number of threads used. (b) Speedup (measured as the ratio of the record throughput per second) of BINSEQ over FASTQ as a function of number of threads.

This performance differential becomes more pronounced at higher thread counts. By 128 threads, BINSEQ formats achieve near 32x greater throughput per record compared to FASTQ (Fig 3b). This remarkable improvement demonstrates how BINSEQ’s architecture effectively overcomes the I/O bottlenecks that constrain traditional formats, allowing full utilization of modern parallel computing resources.

The impact of sequence length on performance scaling is particularly noteworthy. While all formats show some performance reduction with longer sequences, the BINSEQ family maintains its scaling advantage across all tested sequence lengths (100, 200, and 300 bp). This consistent behavior indicates that the performance benefits of BINSEQ formats are robust across varying data characteristics.

K-mer counting, while computationally straightforward, represents a common low-complexity task that forms the foundation of many bioinformatics tools, including de Bruijn graph assemblers, taxonomic classifiers, and sequence similarity analyzers. The demonstrated performance improvements suggest that BINSEQ formats would be particularly beneficial for these applications, especially in high-throughput environments where processing efficiency directly impacts analysis turnaround time.

The ability of BINSEQ formats to maintain scaling efficiency at high thread counts indicates that they effectively shift the performance bottleneck from I/O operations to computational resources, allowing bioinformatics applications to fully leverage available CPU cores. This characteristic is especially valuable in shared computing environments and cloud platforms where computational resources must be efficiently utilized.

3.4 Alignment

Sequence alignment represents a more computationally intensive operation than previous benchmarks, yet VBQ still demonstrates significant performance advantages over FASTQ at higher thread counts (Fig 4). This performance difference becomes more pronounced as parallelization increases, showing that BINSEQ formats maintain their advantages even in complex analytical workflows.

Fig 4. Runtime characteristics of mmr (a-c) and STAR (d) as a function of the number of threads, format (FASTQ or VBQ), and alignment task.

Fig 4

(a) Short read whole genome sequencing (preset = “sr”) (b) Long read whole genome sequencing (preset = “map-pb”) (c) Long read splicing (preset = “splice”) (d) Short read splicing (STAR) (e) Speedup of VBQ or BQ over FASTQ at each thread count for each of the alignment tasks.

Our analysis reveals that the performance divergence point between VBQ and FASTQ depends on both the specific alignment task and the average read length. For short-read whole-genome sequencing, FASTQ and VBQ show comparable performance up to 32 threads across all tested read lengths (Fig 4a), after which VBQ begins to pull ahead. In contrast, for long-read whole-genome sequencing, the performance separation occurs earlier, at approximately 16 threads for all tested read lengths (Fig 4b).

The most striking results appear in the long-read splicing alignment task, where separation points vary with sequence length (Fig 4c). For reads averaging 1000 bp, performance diverges at 16 threads, while for 9000 bp reads, the separation occurs as early as 4 threads. Counterintuitively, this complex spliced alignment task shows that VBQ’s advantage becomes more pronounced with longer read lengths, where one might expect computational demands to overshadow I/O limitations. This pattern suggests that VBQ’s performance advantage stems not merely from more efficient thread utilization but from fundamentally faster record loading to worker threads. Even in this computation-heavy task with 9000 bp reads, FASTQ fails to achieve thread saturation at 128 threads, indicating that the format itself, rather than computational resources, remains a limiting factor.

We also observe a significant divergence in performance between BQ and FASTQ formats for short-read spliced alignments using STAR, where BQ achieves greater than 2x speedup over FASTQ at 128 threads (Fig 4d). This is significant in the case of STAR where the core mapping algorithm was built around streaming records and remains fairly unchanged in this context, so even greater gains can be expected in the future.

The relative speedup of VBQ over FASTQ varies across alignment tasks (Fig 4e), with the most substantial improvements observed in short-read whole-genome and long-read whole-genome sequencing at higher thread counts. All tested scenarios show increasing performance advantages as thread count rises, with no observed plateau for VBQ even at 128 threads.

These results demonstrate that VBQ’s benefits extend beyond simple I/O-bound tasks to complex analytical workflows central to genomic research. The format’s ability to maintain scaling efficiency with increasing parallelization makes it particularly valuable for computationally intensive applications running on high-performance computing infrastructure.

4 Discussion

The development and evaluation of the BINSEQ family of formats demonstrates that significant performance improvements in sequence data processing can be achieved through careful consideration of modern genomics workflows and their computational requirements. By focusing on the core requirements of many bioinformatics applications—efficient access to nucleotide sequences—BQ and VBQ achieve substantial gains in both processing speed and storage efficiency.

The simplicity of BQ’s design is one of its key strengths. The format specification is concise and straightforward, consisting of a minimal header structure and a uniform record format that leverages established bit-encoding techniques. This simplicity not only makes the format easy to implement and validate but also contributes to its robust performance characteristics. The use of fixed-size records and two-bit or four-bit nucleotide encodings provide inherent advantages that manifest across various usage scenarios, from basic sequence access to complex analytical workflows. Its definition allows for truly random access and enables tools that were previously bound to a single thread to fully utilize modern multi-core processors.

VBQ, while more complex in implementation, balances flexibility with performance. Although its block-based approach sacrifices the true random access capability of BQ, it compensates by supporting variable-length sequences, quality scores, and optional compression, all while maintaining impressive parallel processing performance. Compared to the de facto standard of gzip-compressed FASTQ, VBQ shows significant improvements with minimal data loss, primarily omitting only sequence headers and invalid nucleotides.

Our performance evaluations demonstrate that both formats translate their design advantages into substantial practical benefits. They consistently outperform traditional approaches across different operational contexts, showing particular advantages in parallel processing scenarios. The ability to scale effectively to high thread counts - achieving up to 94x improvement over compressed FASTQ for sequence access and up to 32x improvement for k-mer based operations - represents a significant advancement for high-throughput genomics applications. This scalability is particularly relevant as the field continues to move toward larger datasets, more computationally intensive analyses, and increased computational availability.

The parallelization advantages of BINSEQ formats operate at the file format level and complement other common parallelization strategies. Large experiments distributed across multiple files can employ file-level parallelism (processing each file independently), while BINSEQ enables efficient within-file parallelism regardless of data organization. These approaches are composable: workflows can process multiple BINSEQ files in parallel while each file is internally multi-threaded, maximizing utilization of available computational resources across diverse computing environments.

It is worth noting, however, that the magnitude of within-file gains depends on the degree to which I/O is the limiting factor in a given workflow. When a large experiment is distributed across many independent compressed FASTQ files and each file is processed by a separate worker, a sufficiently large number of concurrent readers can collectively saturate the throughput of the underlying storage medium regardless of file format, reducing BINSEQ’s advantage relative to the single-file case. In practice, not all experiments are large enough to be split across many files, not all tools are designed to consume multiple files in parallel, and achieving full storage saturation with gzip-compressed FASTQ requires substantially more concurrent processes than with BINSEQ. We therefore expect that in common workflows, where computations are embarrassingly parallel but data are organized into a modest number of files, BINSEQ-enabled pipelines will deliver considerable speedups, while in workflows where storage I/O is already saturated, the gains will be more modest but BINSEQ still offers reduced CPU overhead and simpler parallelization at the library level.

We also note the existence of tools that parallelize gzip decompression itself, most notably pugz [9] and rapidgzip [10], which employ speculative or block-caching strategies to decompress gzip streams using multiple threads. Unlike standard multi-threaded compressors such as pigz, these tools support parallel decompression but at the cost of substantially increased CPU usage per byte decompressed. We did not include them in our benchmarks as they are not currently integrated into standard bioinformatics pipelines or sequence parsing libraries, and thus do not reflect the decompression performance that users encounter in practice. BINSEQ’s architecture avoids the need for speculative computation entirely, providing inherently parallel access through its block-based (VBQ) or fixed-record (BQ) structure with native random access that can be directly leveraged by downstream tools through the BINSEQ library API.

Importantly, we found that the performance advantages of BINSEQ formats extend beyond simple data retrieval tasks. Even in computationally intensive operations like sequence alignment, where the processing time per record is substantially higher, both formats demonstrated improved thread utilization and record throughput compared to traditional formats. This suggests that the bottleneck created by sequential parsing and decompression in FASTQ affects not just I/O-bound applications but also more complex analytical workflows.

The integration of BINSEQ formats with existing tools, demonstrated through our adaptation of minimap2, shows that the formats can be readily incorporated into established bioinformatics pipelines. The provided library and command-line tools offer a framework that simplifies both the adoption of BINSEQ formats in existing applications and the development of new tools that can take full advantage of their performance characteristics. The hook-based parallel processing interface, in particular, provides a flexible foundation for building high-performance genomic analysis tools.

For practitioners, the choice between BQ and VBQ presents a clear trade-off between performance and flexibility. BQ is optimized for maximum throughput and minimal storage with fixed-length sequencing data, making it ideal for platforms like Illumina that produce standardized reads. VBQ offers greater versatility for variable-length sequences and applications where quality scores remain important, such as long-read sequencing from PacBio or Oxford Nanopore technologies, with only a modest performance decrease compared to BQ but still substantial improvements over traditional formats.

The trade-offs inherent in the BINSEQ family’s design reflect a broader consideration in bioinformatics tool development: the balance between generality and optimization for common use cases. While FASTQ’s flexibility has contributed to its widespread adoption, our results suggest that there is significant value in optimizing for the specific requirements of modern high-throughput sequencing applications. One important consideration is the handling of ambiguous nucleotides (N bases), which we address through configurable policies (skip, random replacement, fixed replacement, or preservation via four-bit encoding) rather than prescribing a single approach. The optimal policy is application-dependent—ambiguous bases in single-cell barcodes may require different treatment than those in genomic reads for variant calling. This same consideration applies to quality scores, which can be optionally preserved or discarded depending on the specific needs of the application. While this consideration applies to all sequence formats, BINSEQ provides explicit policy choices at the format level while maintaining high performance regardless of policy selected. The performance improvements demonstrated by BQ and VBQ indicate that the bioinformatics community might benefit from reconsidering the one-size-fits-all approach to sequence data storage, particularly as dataset sizes continue to grow and computational efficiency becomes increasingly critical.

Looking forward, the BINSEQ architecture provides a foundation for further optimization and extension. The reserved space in both formats’ headers and the flexible flag fields offer clear paths for adding features while maintaining backward compatibility. Future development could explore additional compression schemes, integration with cloud-native storage, handling of higher-order segments per record, and structured data provenance, all while preserving the core performance benefits of the current implementation.

In conclusion, the BINSEQ family represents a significant step forward in sequence data storage and processing efficiency. Their combination of simplicity, performance, and practicality makes them valuable additions to the bioinformatics toolkit, particularly for applications where computational efficiency is paramount. While not complete replacements for existing formats in all scenarios, BQ and VBQ demonstrate that substantial improvements in processing efficiency are achievable through careful consideration of modern genomics workflows and their computational requirements.

Supporting information

S1 Table. Nucleotide encoding.

Standard nucleotides use two-bit encoding. In four-bit mode, these values are preserved in the least significant bits with leading zeros, while N requires the full four-bit representation.

(PDF)

pcbi.1014181.s001.pdf (50.1KB, pdf)
S2 Table. BQ header structure.

Complete specification of the 32-byte BQ header including field offsets, sizes, types, and descriptions for magic number, version, sequence lengths, bit encoding, flags, and reserved bytes.

(PDF)

pcbi.1014181.s002.pdf (50.3KB, pdf)
S3 Table. VBQ header structure.

Complete specification of the 32-byte VBQ header including format version, virtual block size, and boolean flags indicating presence of quality scores, compression, paired-end reads, sequence headers, and record flags.

(PDF)

pcbi.1014181.s003.pdf (50.4KB, pdf)
S4 Table. VBQ block header.

Specification of the 32-byte block header structure including magic number, true block size (accounting for compression), number of records in block, and reserved bytes for future extensions.

(PDF)

pcbi.1014181.s004.pdf (50.2KB, pdf)
S5 Table. VBQ record structure.

Detailed field-level specification of variable-length VBQ records including flags, sequence lengths, encoded nucleotide buffers, quality scores, and sequence headers for both primary and extended (paired-end) sequences.

(PDF)

pcbi.1014181.s005.pdf (97.8KB, pdf)
S6 Table. VBQ index header.

Specification of the 32-byte index header structure including magic number, file size verification field, and reserved bytes for future extensions.

(PDF)

pcbi.1014181.s006.pdf (50.1KB, pdf)
S7 Table. VBQ index range.

Specification of the 32-byte index range structure describing block locations, including file offset, block size, number of records per block, cumulative record count, and reserved bytes.

(PDF)

pcbi.1014181.s007.pdf (50.2KB, pdf)
S8 Table. Parallel processing hooks.

Description of the map-reduce interface for parallel processing including the process_record map function for individual record processing and the on_batch_complete reduce function for batch aggregation.

(PDF)

pcbi.1014181.s008.pdf (65.5KB, pdf)

Acknowledgments

The authors would like to thank David Holtz for his help on improving BINSEQ and its ecosystem, as well as Hani Goodarzi, Nicholas D. Youngblut, Yusuf H. Roohani, Abhinav Adduri, David P. Burke, and the rest of the Arc Institute computational team for their helpful suggestions and feedback.

Data Availability

All data used in this study are either computationally simulated using publicly available tools (wgsim,pbsim3) with the human reference genome GRCh38, or obtained from publicly available datasets in the NCBI Sequence Read Archive: SRR11214033, SRR36606595, and SRR37455459. All code and relevant data for reproducibility is available publicly on github: - binseq: Library for BINSEQ I/O, https://github.com/arcinstitute/binseq - bitnuc: Library for SIMD two-bit and four-bit operations, https://github.com/noamteyssier/bitnuc - binseq-bindings: Multi-language bindings for BINSEQ, https://github.com/arcinstitute/binseq-bindings - bsb: Parsing implementations for benchmarking, https://github.com/noamteyssier/binseq_benchmark - kmer_count: Naive parallel k-mer counting and benchmarking, https://github.com/arcinstitute/kmer-count - mmr: Minimap2 bindings with BINSEQ input support, https://github.com/arcinstitute/mmr - STAR: STAR branch with BINSEQ input, https://github.com/alexdobin/STAR/tree/binseq.

Funding Statement

The author(s) received no specific funding for this work.

References

  • 1.Al-Okaily A, Almarri B, Al Yami S, Huang C-H. Toward a better compression for DNA sequences using huffman encoding. J Comput Biol. 2017;24(4):280–8. doi: 10.1089/cmb.2016.0151 [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 2.Bankevich A, Nurk S, Antipov D, Gurevich AA, Dvorkin M, Kulikov AS, et al. SPAdes: A new genome assembly algorithm and its applications to single-cell sequencing. J Comput Biol. 2012;19(5):455–77. [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 3.Benoit G, Lemaitre C, Lavenier D, Drezen E, Dayris T, Uricaru R, et al. Reference-free compression of high throughput sequencing data with a probabilistic de bruijn graph. BMC Bioinformatics. 2015;16(1):288. doi: 10.1186/s12859-015-0709-7 [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 4.Bonfield JK, Marshall J, Danecek P, Li H, Ohan V, Whitwham A, et al. HTSlib: C library for reading/writing high-throughput sequencing data. Gigascience. 2021;10(2):giab007. doi: 10.1093/gigascience/giab007 [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 5.Bray NL, Pimentel HP, Melsted P áll, Pachter L. Near-optimal probabilistic RNA-seq quantification. Nat Biotechnol. 2016;34(5):525–7. doi: 10.1038/nbt.3519 [DOI] [PubMed] [Google Scholar]
  • 6.Cochrane G, Alako B, Amid C, Bower L, Cerdeño-Tárraga A, Cleland I, et al. Facing growth in the European nucleotide archive. Nucleic Acids Research. 2013;41:D30–5. [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 7.Cock PJA, Fields CJ, Goto N, Heuer ML, Rice PM. The sanger FASTQ file format for sequences with quality scores, and the solexa/illumina FASTQ variants. Nucleic Acids Research. 2010;38(6):1767–71. [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 8.Dobin A, Davis CA, Schlesinger F, Drenkow J, Zaleski C, Jha S, et al. STAR: ultrafast universal RNA-seq aligner. Bioinformatics. 2013;29(1):15–21. [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 9.Kerbiriou M, Chikhi R. Parallel decompression of gzip-compressed files and random access to DNA sequences. 2019. doi: arXiv:1905.07224 [Google Scholar]
  • 10.Knespel M, Brunst H. Rapidgzip: Parallel decompression and seeking in gzip files using cache prefetching. In: 295–307. 2023. [Google Scholar]
  • 11.Kryukov K, Ueda MT, Nakagawa S, Imanishi T. Nucleotide archival format (NAF) enables efficient lossless reference-free compression of DNA sequences. Nucleic Acids Res. 2007;35(19):3826–8. [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 12.Köster J. rust_htslib. 2024.
  • 13.Langmead B, Wilks C, Antonescu V, Charles R. Scaling read aligners to hundreds of threads on general-purpose processors. Bioinformatics. 2019;35(3):421–32. [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 14.Li H. Minimap and miniasm: fast mapping and de novo assembly for noisy long sequences. bioRxiv. 2023. [DOI] [PMC free article] [PubMed]
  • 15.Li H. Minimap2: pairwise alignment for nucleotide sequences. Bioinformatics. 2018;34(18):3094–100. [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 16.Li H, Durbin R. Fast and accurate short read alignment with burrows–wheeler transform. Bioinformatics. 2009;25(14):1754–60. [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 17.Li H, Handsaker B, Wysoker A, Fennell T, Ruan J, Homer N, et al. The sequence alignment/map format and SAMtools. Bioinformatics. 2009;25(16):2078–9. [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 18.Haque Mohammed M, Dutta A, Bose T, Chadaram S, Mande SS. DELIMINATE—a fast and efficient method for loss-less compression of genomic sequences. Bioinformatics. 2012;28(19):2527–9. [DOI] [PubMed] [Google Scholar]
  • 19.Ono Y, Hamada M, Asai K. PBSIM3: a simulator for all types of PacBio and ONT long reads. NAR Genomics and Bioinformatics. 2023;4(4):lqac092. doi: 10.1093/nargab/lqac092 [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 20.Patro R, Duggal G, I Love M, Irizarry RA, Kingsford C. Salmon provides fast and bias-aware quantification of transcript expression. Nat Methods. 2017;14(4):417–9. [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 21.Pearson WR, Lipman DJ. Improved tools for biological sequence comparison. Proc Natl Acad Sci USA. 1988;85(8):2444–8. [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 22.Replogle JM, Bonnar JL, Pogson AN, Liem CR, Maier NK, Ding Y, et al. Maximizing CRISPRi efficacy and accessibility with dual-sgRNA libraries and optimal effectors. Elife. 2022;11:e81856. [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 23.Replogle M, Norman TM, Xu A, Hussmann JA, Chen J, Cogan JZ, et al. Combinatorial single-cell CRISPR screens by direct guide RNA capture and targeted sequencing. Nature Biotechnology. 2020;38(8):954–61. [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 24.Schlegel M. seq_io. 2025.
PLoS Comput Biol. doi: 10.1371/journal.pcbi.1014181.r001

Decision Letter 0

Stephan Schiffels

5 Aug 2025

-->PCOMPBIOL-D-25-01020

BINSEQ: A Family of High-Performance Binary Formats for Nucleotide Sequences

PLOS Computational Biology

Dear Dr. Teyssier,

Thank you for submitting your manuscript to PLOS Computational Biology. After careful consideration, we feel that it has merit but does not fully meet PLOS Computational Biology's publication criteria as it currently stands. Therefore, we invite you to submit a revised version of the manuscript that addresses the points raised during the review process.

Please submit your revised manuscript within 60 days Oct 05 2025 11:59PM. If you will need more time than this to complete your revisions, please reply to this message or contact the journal office at ploscompbiol@plos.org. When you're ready to submit your revision, log on to https://www.editorialmanager.com/pcompbiol/ and select the 'Submissions Needing Revision' folder to locate your manuscript file.

Please include the following items when submitting your revised manuscript:

* A rebuttal letter that responds to each point raised by the editor and reviewer(s). You should upload this letter as a separate file labeled 'Response to Reviewers'. This file does not need to include responses to formatting updates and technical items listed in the 'Journal Requirements' section below.

* A marked-up copy of your manuscript that highlights changes made to the original version. You should upload this as a separate file labeled 'Revised Manuscript with Track Changes'.

* An unmarked version of your revised paper without tracked changes. You should upload this as a separate file labeled 'Manuscript'.

If you would like to make changes to your financial disclosure, competing interests statement, or data availability statement, please make these updates within the submission form at the time of resubmission. Guidelines for resubmitting your figure files are available below the reviewer comments at the end of this letter

We look forward to receiving your revised manuscript.

Kind regards,

Stephan Schiffels

Academic Editor

PLOS Computational Biology

Ilya Ioshikhes

Section Editor

PLOS Computational Biology

Additional Editor Comments:

All three reviewers found your paper of high relevance, being well written, and in principle suitable for publication in this journal after a major revision.

While all reviewers appreciated the significant increase in I/O access perfomance that the new formats provide, there were shared concerns on some of the design choices which may limit the usability of the new formats. In particular, Reviewers 1 and 2 found the choice to drop quality scores from the BINSEQ format to be rather case-limiting. Both reviewers also criticized the current lack of read names in the formats. All reviewers mentioned the problem of 2-bit encoding of nucleotides, which excludes missing bases ("N") or ambiguous base calls.

There are also many more detailed issues raised by the reviewers that I hope you find helpful to revise your manuscript, which I look forward to receive.

Journal Requirements:

1) We ask that a manuscript source file is provided at Revision. Please upload your manuscript file as a .doc, .docx, .rtf or .tex. If you are providing a .tex file, please upload it under the item type u2018LaTeX Source Fileu2019 and leave your .pdf version as the item type u2018Manuscriptu2019.

2) Please provide an Author Summary. This should appear in your manuscript between the Abstract (if applicable) and the Introduction, and should be 150-200 words long. The aim should be to make your findings accessible to a wide audience that includes both scientists and non-scientists. Sample summaries can be found on our website under Submission Guidelines:

https://journals.plos.org/ploscompbiol/s/submission-guidelines#loc-parts-of-a-submission

3) Please upload all main figures as separate Figure files in .tif or .eps format. For more information about how to convert and format your figure files please see our guidelines:

https://journals.plos.org/ploscompbiol/s/figures

4) We notice that your supplementary Tables are included in the manuscript file. Please remove them and upload them with the file type 'Supporting Information'. Please ensure that each Supporting Information file has a legend listed in the manuscript after the references list.

Reviewers' comments:

Reviewer's Responses to Questions

Comments to the Authors:

Please note here if the review is uploaded as an attachment.

Reviewer #1: Teyssier and Dobin described BINSEQ and VBINSEQ, two binary formats for storing NGS reads with I/O performace being a primary focus. BINSEQ is designed for reads of fixed length while VBINSEQ for reads of variable length and optionally keeps base quality. Neither format stores read names. The format design is straightforward and the implementation is well engineered. The authors BINSEQ greatly outperforms other formats and associated tools. Critical comments are as follows:

1) As a general comment, I see BINSEQ will have limited use cases. Base quality is essential to variant calling. This is why Illumina tried to reduce quality resolution but still decided to use 2 bits per quality. Base quality is unimportant to RNA-seq quantification, but read lengths could be variable due to trimming. BINSEQ wouldn't work in this case, either.

2) As the more flexible format, VBINSEQ should optionally store read names. Illumina read names carry information and are still used for marking optical duplicates if I am right. Probably removing names will have little impact to analysis but if the authors want VBINSEQ to be an archival format, a lossless mode would be essential to data centers. The authors can use the flag field to indicate the presence/absence of read names.

3) How are non-A/C/G/T bases stored? The UCSC 2-bit format uses a sparse vector to keep positions of non-A/C/G/T bases. The authors can do the same for sequences with "N" and use a flag bit to indicate the presence/absence of this information.

4) Zstd and pigz (a popular gzip alternative) support multi-threading. Please evaluate their multi-threading mode in Table 2. By the way, on the Time column, better to use 0.21, 0.05, 0.86, etc for timing. This is easier to read in my opinion.

5) What data is used for benchmarking? Please specify the resolution of base quality, the format of read names, the average read depth and whether input reads are sorted by coordinate. Some of these factors may greatly affect compression ratio.

Reviewer #2: In this manuscript, the authors present a family of two binary file formats for nucleotide sequences. First, the BINSEQ format, which is designed for storing sequences of a fixed length. Second, the VBINSEQ format, an extension to BINSEQ that can contain sequences of variable length. With the development of these formats, the authors seek to increase the speed at which sequences can be accessed, and hence the speed of computations reading that data. To showcase this improvement, the authors compare the speed and storage footprint of their formats to other standard formats, and particularly the FASTQ/FASTA formats, which currently serve as the de facto default formats for the storage, sharing, and archiving of sequence data.

Overall, I feel that the authors created suitable and fair tests to assess the efficacy of the BINSEQ formats. Furthermore their tests showcase that these formats achieve their goal of increasing the parallelisation efficiency of operations, while maintaining a storage footprint similar in size to FASTQ files.

While this is not the first attempt to improve on sequence data formats, it is the first approach I have seen to focus on improving the access speed of the data, instead of only their storage footprint. With the ever-increasing volume of sequencing data being produced, storing this data in optimised data formats that are interoperable and easily convertible is more relevant than ever.

However, there are design decisions made in the creation of these formats that might severely limit their applicability across the genomics field. Namely, the current omission of quality scores, sequence identifiers, and uncertain base calls and/or Ns in the stored sequences. Admittedly, my own experience is limited to low-coverage ILLUMINA data from human DNA, so I acknowledge that perhaps the omitted information is less important in when working with other types of sequencing data.

Should changes to this format allow for the inclusion of the omitted information (thus making it fully equivalent to FASTQ), BINSEQ would become a valuable data format for genomics in the age of HPCs and cloud computing.

Major comments:

1. It is not entirely clear what niche the BINSEQ format currently fills. The lack of any quality scores makes it suboptimal for storing raw reads (like a FASTQ does), while the specification that sequences must be of equal length makes it unsuitable for storing reference sequences composing multiple contigs (like a FASTA does).

2. Considering that this file format is designed for storing reads before any alignment, the decision to not allow for Ns in the nucleotide sequences in either format is dangerous when working with lower-coverage data. This becomes a bigger issue in the BINSEQ format, where quality scores are not accounted for.

3. More broadly, I am very skeptical of the decision to drop quality scores from the BINSEQ format specification altogether. The authors argue that "quality scores and sequence identifiers [are] frequently ignored by modern bioinformatics tools", and hence can be dropped from BINSEQ files entirely. This might be okay to do if everything goes according to plan during data generation, but it allows for no troublshooting should anything go wrong (e.g. if some part of a flowcell produces poor quality data).

Minor comments:

1. Please ensure the legends of tables and figures are accurately describing the content. For example:

a. Table2: The legend states the times given are in milliseconds, but the unit stated is (s).

b. Figure 4e: The legend states this plot shows the speedup of VBINSEQ, but the figure includes results for short-read spliced alignment, which was only ran with BINSEQ, and not VBINSEQ.

Reviewer #3: In this manuscript, Teyssier and Dobin introduce the BINSEQ format (both the simple binseq and more flexible vbinseq) formats. They describe the format in detail, argue for its utility compared to the FASTQ format for storing primary sequencing data; especially in the context of high-throughput analysis tasks such as k-mer counting and read alignment via case studies with modified versions of existing tools. They also introduce a suite of tools for handling and converting to and from these formats. Overall, I share the concerns of the authors about the fundamental way in which the FASTQ format is ill-suited for modern parallel processing tasks, and shudder to think how much time (both CPU time and wall-clock time) has been wasted simply parsing a format that was never well-designed for the purposes of parsing by a computer. The BINSEQ format is a big step up from FASTQ but ultimately, as the authors themselves suggest, whether or not a true alternative can emerge at scale will depend on ecosystem an tool adoption. Nonetheless, it is certainly a worthwile goal. The manuscript itself is concise and well-written. I have several questions and suggestions for the authors.

Questions / suggestions:

* One key reference that is missing from the current manuscript is "Scaling read aligners to hundreds of threads on general-purpose processors"[^1], by Langmead et al. It is directly relevant to the current manuscript and describes precisely the scalability bottleneck upstream of multi-core read alignment that arises from the fundamentally unparallelizable nature of parsing a (potentially compressed) FASTQ file.

* A question that arises to me in the format is the extent to which assuming that sequence records have either 1 or 2 segments may be problematic. Certain protocols, though relatively rare, make use of more than 2 segments per record to encode information (e.g. some single-cell ATAC-seq protocols have 3 segments per record, with the first 2 representing a biological paried-end read, and the third representing a technical barcode). The authors should consider if and how this might be supported in binseq (presumably vbinseq) or justify excluding support. It seems to me it would be fairly easy to have the number of segments per records be a simple field recorded in the header, and that having values larger than 2 doesn't seem to pose any fundamental tension with the rest of the format (as long as it is fixed throughout the whole file).

* Related to the above, what replacement policy was used in the experiments conducted in the paper?

* In general, I think a somewhat deeper exploration of the effect of different ambiguous base policies should be conducted, or an alternative ambiguous base policy should be included. Specifically, the current approach can skip records with ambiguous bases, replace those bases with pseudorandom nucleotides, or replace those bases with a fixed nucleotide. These are all reasonable policies. However, I feel it is important to characterize the effect of such a policy on downstream analysis. For example, if an `N` nucleotide appears in the barcode of a single-cell RNA-seq read, then downstream algorithms may handle this differently than if a fixed nucleotide is present (in fact, by replacing the `N` with a fixed nucleotide, a barcode collision may be artificially introduced). Further, in other analyses, tools may have special ways to handle ambiguous bases (assigning them a different cost during alignment). I suspect that in the vast majority of cases, the policies supported by binseq will have no effect on the subsequent analysis, but that may not always be the case (e.g. variant detection from fairly low-coverage data). This is worth further exploration in the manuscript in my opinion. Likewise, perhaps it makes sense to offer a policy where the ambiguous bases are recorded (either as auxiliary data - a list of positions for a record - or in an alternative encoding that allows more than 4 characters). The same comment also applies to the skipping of quality scores in the basic binseq format.

* Another question that occurred to me is if it is the case that in all experiments in the paper, where speeds are compared over different formats, if the experimental samples processed all consist of individual files or file pairs. That is, for large samples, the input is often spread across multiple files (e.g. a large single-cell RNA-seq experiment may have `sample1_lane1_read1_001`, `sample1_lane1_read_2_001`, `sample1_lane1_read1_002`, `sample1_lane1_read2_002`, ..., etc.). In such cases, it is often possible to parse fastq input truly in parallel, at least at the scale of the number of input file streams. While this is certainly (a) not ubiquitous and (b) not taken advantage of by all tools, I think it would be very useful to the reader to know if any of the samples processed in the benchmarks exhibited this quality, and if not, to perhaps include some. This will give a more comprehensive overview of the expected throughput benefits of binseq.

* Finally, I have a specific design suggestion, which the authors may of course feel free to accept or not. While having an index for random block-level access in vbinseq mirrors the way that e.g. SAM/BAM indices work, I actually feel this is a suboptimal design. These indices tend to be tiny and fast to create, which is why we tend to re-create them on demand. However, it does constitute extra work. Further, such indices are separate files and easy to forget or misplace when transferring data (e.g. one could easily imagine a use grepping for `.vbq` files and forgetting to include all of the index files when creating an archive or copying files between machines). Since the indices are only relevant in the context when the entire file exists on disk (i.e. not in the streaming context), I would recommend the authors consider including the index for vbinseq files as a footer.

Here is the proposal: the vbinseq format can allow an optional footer. This footer comes after all of the record blocks. If this footer is present, the file ends in a magic number (which validates the existence of the footer). The word before the magic number then stores the size of the index, so that the bytes from (EOF - 8 - size_of_magic_number - index_size) until (EOF - 8 - size_of_magic_number) encode the index itself. This seems as it should work because the index can then be calculated in either a streaming manner as the file is created, which is OK because one won't know the index until all blocks have been compressed, and then appended to the end. Likewise, for a file without the footer, one could easily calculate the index as is currently done and then, rather than write it as a separate file, simply append the footer to the input file. I suspect that this approach may be useful as it keeps the index along with the rest of the data, but does so in a manner that doesn't preclude streaming or parallel writing / appending of the record blocks.

Minor points:

* On page 4, the statement that the encoding and decoding operations are of sub-linear time complexity don't quite seem right. Certainly, the input must be read, which is itself an O(N) operation for an input of length N. Further, even if one is operating a word at a time and achieving N/(W/sigma) work (for W-bit words, a sigma-bit alphabet encoding and a string of N symbols), this is still linear in the length of the input (i.e. it is still O(N), just with a constant c < 1).

* In section 2.2.2 the authors describe the input and file i/o capabilities of their binseq library and the C and C++ bindings. I took a look at the bindings, and I think it is great that the authors provide these. One question that this brought up to me is whether or not binseq is designed to allow streaming input (I think this would be immensely useful). If so, I'd encourage the authors to provide an additional C / C++ function for opening a binseq file for reading apart from `mmap_open`, one that may be properly suited for reading the file in a streaming manner.

* In section 2.3.3 it is stated that minimap2 specifically notes that it is not designed for the use-case of spliced short-read alignment. However, as of release 2.29 this is no longer true[^2]. To be clear, I *don't* think the authors need to add minimap2-based short-read, spliced alignment benchmarks to their paper, but rather they should remove or amend this particular justification. Since STAR is, by far, one of the most common short-read RNA-seq spliced read aligners, I think it is fine to having testing for this datatype using only that tool

Finally, this may be out of scope for this paper which defines and justifies (well, in my opinion) the BINSEQ format. However, having a new format and generating a lot of new data to place into this format, seems to me an opportunity to improve the state of data provenance tracking and automated metadata propagation. Might the authors consider if it makes sense to have a structured metadata section in the binseq file that can record relevant information about the source of the data (e.g. sequencing data, machine, etc.)? Perhaps the relevant full set of information is not something that the authors feel comfortable specifying unilaterally, which I think makes sense. However, having the format have built-in support for metadata (even flexible metadata where much of it is optional) could, itself, have

References

----------

[^1]: Ben Langmead, Christopher Wilks, Valentin Antonescu, Rone Charles, Scaling read aligners to hundreds of threads on general-purpose processors, Bioinformatics, Volume 35, Issue 3, February 2019, Pages 421–432, https://doi.org/10.1093/bioinformatics/bty648

[^2]: https://lh3.github.io/2025/04/18/short-rna-seq-read-alignment-with-minimap2

**********

Have the authors made all data and (if applicable) computational code underlying the findings in their manuscript fully available?

The PLOS Data policy requires authors to make all data and code underlying the findings described in their manuscript fully available without restriction, with rare exception (please refer to the Data Availability Statement in the manuscript PDF file). The data and code should be provided as part of the manuscript or its supporting information, or deposited to a public repository. For example, in addition to summary statistics, the data points behind means, medians and variance measures should be available. If there are restrictions on publicly sharing data or code —e.g. participant privacy or use of data from a third party—those must be specified.

Reviewer #1: Yes

Reviewer #2: Yes

Reviewer #3: Yes

**********

PLOS authors have the option to publish the peer review history of their article (what does this mean?). If published, this will include your full peer review and any attached files.

If you choose “no”, your identity will remain anonymous but your review may still be made public.

Do you want your identity to be public for this peer review? For information about this choice, including consent withdrawal, please see our Privacy Policy.

Reviewer #1: No

Reviewer #2: No

Reviewer #3: Yes: Rob Patro

[NOTE: If reviewer comments were submitted as an attachment file, they will be attached to this email and accessible via the submission site. Please log into your account, locate the manuscript record, and check for the action link "View Attachments". If this link does not appear, there are no attachment files.]

Figure resubmission:

While revising your submission, please upload your figure files to the Preflight Analysis and Conversion Engine (PACE) digital diagnostic tool, https://pacev2.apexcovantage.com/. PACE helps ensure that figures meet PLOS requirements. To use PACE, you must first register as a user. Registration is free. Then, login and navigate to the UPLOAD tab, where you will find detailed instructions on how to use the tool. If you encounter any issues or have any questions when using PACE, please email PLOS at figures@plos.org. Please note that Supporting Information files do not need this step. If there are other versions of figure files still present in your submission file inventory at resubmission, please replace them with the PACE-processed versions.

Reproducibility:

To enhance the reproducibility of your results, we recommend that authors of applicable studies deposit laboratory protocols in protocols.io, where a protocol can be assigned its own identifier (DOI) such that it can be cited independently in the future. Additionally, PLOS ONE offers an option to publish peer-reviewed clinical study protocols. Read more information on sharing protocols at https://plos.org/protocols?utm_medium=editorial-email&utm_source=authorletters&utm_campaign=protocols-->

PLoS Comput Biol. doi: 10.1371/journal.pcbi.1014181.r003

Decision Letter 1

Stephan Schiffels

9 Dec 2025

PCOMPBIOL-D-25-01020R1

BINSEQ: A Family of High-Performance Binary Formats for Nucleotide Sequences

PLOS Computational Biology

Dear Dr. Teyssier,

Thank you for submitting your manuscript to PLOS Computational Biology. We see that the manuscript has substantially improved, but still requires a minor revision in order to fully meet PLOS Computational Biology's publication criteria. Therefore, we invite you to submit a revised version of the manuscript that addresses the points raised during the review process.

Please submit your revised manuscript by Feb 08 2026 11:59PM. If you will need more time than this to complete your revisions, please reply to this message or contact the journal office at ploscompbiol@plos.org. When you're ready to submit your revision, log on to https://www.editorialmanager.com/pcompbiol/ and select the 'Submissions Needing Revision' folder to locate your manuscript file.

Please include the following items when submitting your revised manuscript:

* A rebuttal letter that responds to each point raised by the editor and reviewer(s). You should upload this letter as a separate file labeled 'Response to Reviewers'. This file does not need to include responses to formatting updates and technical items listed in the 'Journal Requirements' section below.

* A marked-up copy of your manuscript that highlights changes made to the original version. You should upload this as a separate file labeled 'Revised Manuscript with Track Changes'.

* An unmarked version of your revised paper without tracked changes. You should upload this as a separate file labeled 'Manuscript'.

If you would like to make changes to your financial disclosure, competing interests statement, or data availability statement, please make these updates within the submission form at the time of resubmission. Guidelines for resubmitting your figure files are available below the reviewer comments at the end of this letter.

We look forward to receiving your revised manuscript.

Kind regards,

Stephan Schiffels

Academic Editor

PLOS Computational Biology

Ilya Ioshikhes

Section Editor

PLOS Computational Biology

Additional Editor Comments:

You will see that all reviewers agree that the manuscript has substantially improved. Reviewers 1 and 3 ask for minor revisions. Specifically, reviewer 1 suggests one last additional test on real data to be done, but they explicitly suggest a smaller scope than the other tests/benchmarks in the paper. Reviewer 3 suggests additional discussion of trade-offs related to multi-file inputs and I/O saturation. I do follow the two reviewers' arguments here, and therefore also decide for minor revision.

Journal Requirements:

We ask that a manuscript source file is provided at Revision. Please upload your manuscript file as a .doc, .docx, .rtf or .tex. If you are providing a .tex file, please upload it under the item type u2018LaTeX Source Fileu2019 and leave your .pdf version as the item type u2018Manuscriptu2019.

Reviewers' comments:

Reviewer's Responses to Questions

Comments to the Authors:

Please note here if the review is uploaded as an attachment.

Reviewer #1: The authors have addressed most of my concerns. I have a few more comments:

1) This is a follow-up to my initial comment 5). I didn't realize that the authors are using simulated data. Please benchmark on real data in the VBQ lossless mode. They do not need to do comprehensive evaluation like Fig. 2. Just gzip/VBQ file sizes and decompression speed would suffice. Ideally, they could include short genomic reads, long genomic reads and short RNA-seq reads.

2) This is a comment on the new results. High-performance tools such as kmc and minimap2 often use separate I/O threads such that we can read/write data while performing the core task. Does mmr support separate I/O threads? If not, it would be good to show how minimap2 works given gzip'd input. It would be good to test on real data in the VBQ lossless mode.

3) [Discretionary] I encourage the authors to look beyond their own environment. In the wider ecosystem, WGS data dominates in terms of data volume and most production teams would choose a lossless format. Note that the CRAM format was published in 2011 but didn't get much attention initially. It was gaining popularity primarily due to its lossless-by-default mode. Samtools/picard still supports lossy options but few are enabling them. This is why I am requesting the evaluation of the VBQ lossless mode, the only mode that matters to those outside the Arc Institute.

Reviewer #2: The changes made to VBQ to optionally include base qualities, read names (--archive), as well as the possibility to use four-bit encoding for Ns have largely addressed my concerns with the applicability of the BQ and VBQ file formats.

I thank the authors for implementing these changes.

Reviewer #3: I thank the authors for their detailed responses to my and the other reviewer's concerns with the initial manuscript. I find the manuscript itself, and the Binseq tooling to be substantially improved. The ability to optionally store 'N' values, quality scores, and read header information increases the broadness of VBQs applicability. I am glad that the suggested idea of a footer-based index for VBQ worked out, and, generally, am very heartened to see all of the progress and improvements made to the software since the initial version of the manuscript. Likewise, I am also encouraged by the authors' perspective on Binseq as a community driven standard and library, and am glad to see that others have, indeed, been contributing to the project. I feel these developments bode well for the future of Binseq.

While I agree with the authors that several of the points brought up in my original review might have expanded the scope of the manuscript more than they wanted in this initial paper describing Binseq, I believe there are two specific points that are worth at least a little bit more discussion.

First, the authors clarify that they focus here on format-specific gains, and hence choose not to compare the throughput obtained by BQ and VBQ to that obtained by other formats in the case of multi-file input (i.e. when an experiment may be broken into many files). I will not press the point, specifically, that a particular comparison needs to be presented in this manuscript (though I still think it might be informative). However, I do think it is worthwhile addressing, at a high-level, where and how this might affect the tradeoff. That is, while it is true that the improved throughput of Binseq can conceptually be *stacked* with the improved performance that comes from handling multiple input files in parallel, it is also true that, for sufficiently large numbers of individual input files, I/O may become saturated anyway. That is, BQ and VBQ are more efficient than compressed fasta/fastq files for numerous reasons, but one substantial reason is that they can be easily chunked and processed in parallel. This allows extracting more throughput from the underlying storage than can be done from a compressed fasta/fastq file. However, given a sufficient number of independent compressed fasta/fastq file, a client program could be fed at the speed of storage throughput. In that scenario, while I'd expect Binseq to be somewhat faster, I expect those gains to be lesser than in the single-file or small number of files case. I don't view this as an argument against Binseq in any way, since, as I specified in my previous review and as the authors mention, this practice is not ubiquitous, not all experiments are large enough to use this approach, and not all tools take advantage of this capability. However, in order to give the reader a fair idea of the spread of potential gains, this would be useful to mention. Generally, I'd expect that, in typical / common workflows where the computations are embarrassingly parallel, Binseq-enabled pipelines would be considerably faster than those based on compressed fasta/fastq. However, in workflows where I/O isn't a bottleneck, or in workflows where I/O can already be saturated with existing fasta/fastq formats, the speedup may be more modest.

Second, reviewer 1 previously mentioned pigz and zstd supporting multithreading. While the authors are correct that these tools support only multi-threaded compression and not multi-threaded decompression, it is worth mentioning that there exist a couple of tools that support the latter; namely, pugz (https://github.com/Piezoid/pugz) and more recently rapidgzip (https://github.com/mxmlnkn/rapidgzip). Both of these approaches are based on speculative decompression and/or caching, and therefore trade-off extra computation in order to achieve parallel decompression. Nonetheless, with sufficient extra computation, they can yield substantial speedups over even the best implementations of serial gzip decompression (i.e. that provided by Intel's isa-l library (https://github.com/intel/isa-l)). I will leave it up to the authors as to how to address the existence of these related libraries. I highly suspect that even the state-of-the-art speculative parallel decoder (rapidgzip) won't be competitive with Binseq, as the amount of extra computation required to obtain much faster decompression is relatively large. However, even if these tools are not included or used in the benchmarks of the paper, they are related to the goal of the paper and likely deserve mention (both pugz : http://www.hicomb.org/HiCOMB2013/papers/HICOMB2019-07.pdf and rapidgzip : https://dl.acm.org/doi/10.1145/3588195.3592992 have corresponding published papers).

**********

Have the authors made all data and (if applicable) computational code underlying the findings in their manuscript fully available?

The PLOS Data policy requires authors to make all data and code underlying the findings described in their manuscript fully available without restriction, with rare exception (please refer to the Data Availability Statement in the manuscript PDF file). The data and code should be provided as part of the manuscript or its supporting information, or deposited to a public repository. For example, in addition to summary statistics, the data points behind means, medians and variance measures should be available. If there are restrictions on publicly sharing data or code —e.g. participant privacy or use of data from a third party—those must be specified.

Reviewer #1: Yes

Reviewer #2: Yes

Reviewer #3: Yes

**********

PLOS authors have the option to publish the peer review history of their article (what does this mean?). If published, this will include your full peer review and any attached files.

If you choose “no”, your identity will remain anonymous but your review may still be made public.

Do you want your identity to be public for this peer review? For information about this choice, including consent withdrawal, please see our Privacy Policy.

Reviewer #1: No

Reviewer #2: No

Reviewer #3: Yes: Rob Patro

[NOTE: If reviewer comments were submitted as an attachment file, they will be attached to this email and accessible via the submission site. Please log into your account, locate the manuscript record, and check for the action link "View Attachments". If this link does not appear, there are no attachment files.]

Figure resubmission:

-->While revising your submission, we strongly recommend that you use PLOS’s NAAS tool (https://ngplosjournals.pagemajik.ai/artanalysis) to test your figure files. NAAS can convert your figure files to the TIFF file type and meet basic requirements (such as print size, resolution), or provide you with a report on issues that do not meet our requirements and that NAAS cannot fix.-->-->

After uploading your figures to PLOS’s NAAS tool - https://ngplosjournals.pagemajik.ai/artanalysis, NAAS will process the files provided and display the results in the "Uploaded Files" section of the page as the processing is complete. If the uploaded figures meet our requirements (or NAAS is able to fix the files to meet our requirements), the figure will be marked as "fixed" above. If NAAS is unable to fix the files, a red "failed" label will appear above. When NAAS has confirmed that the figure files meet our requirements, please download the file via the download option, and include these NAAS processed figure files when submitting your revised manuscript.-->

Reproducibility:

To enhance the reproducibility of your results, we recommend that authors of applicable studies deposit laboratory protocols in protocols.io, where a protocol can be assigned its own identifier (DOI) such that it can be cited independently in the future. Additionally, PLOS ONE offers an option to publish peer-reviewed clinical study protocols. Read more information on sharing protocols at https://plos.org/protocols?utm_medium=editorial-email&utm_source=authorletters&utm_campaign=protocols

PLoS Comput Biol. doi: 10.1371/journal.pcbi.1014181.r005

Decision Letter 2

Stephan Schiffels

30 Mar 2026

Dear Dr Teyssier,

We are pleased to inform you that your manuscript 'BINSEQ: A Family of High-Performance Binary Formats for Nucleotide Sequences' has been provisionally accepted for publication in PLOS Computational Biology.

Before your manuscript can be formally accepted you will need to complete some formatting changes, which you will receive in a follow up email. A member of our team will be in touch with a set of requests.

Please note that your manuscript will not be scheduled for publication until you have made the required changes, so a swift response is appreciated.

IMPORTANT: The editorial review process is now complete. PLOS will only permit corrections to spelling, formatting or significant scientific errors from this point onwards. Requests for major changes, or any which affect the scientific understanding of your work, will cause delays to the publication date of your manuscript.

Should you, your institution's press office or the journal office choose to press release your paper, you will automatically be opted out of early publication. We ask that you notify us now if you or your institution is planning to press release the article. All press must be co-ordinated with PLOS.

Thank you again for supporting Open Access publishing; we are looking forward to publishing your work in PLOS Computational Biology.

Best regards,

Stephan Schiffels

Academic Editor

PLOS Computational Biology

Ilya Ioshikhes

Section Editor

PLOS Computational Biology

***********************************************************

I am pleased with the additional revisions and believe they address the reviewers' remarks. I accept this article for publication.

PLoS Comput Biol. doi: 10.1371/journal.pcbi.1014181.r006

Acceptance letter

Stephan Schiffels

PCOMPBIOL-D-25-01020R2

BINSEQ: A Family of High-Performance Binary Formats for Nucleotide Sequences

Dear Dr Teyssier,

I am pleased to inform you that your manuscript has been formally accepted for publication in PLOS Computational Biology. Your manuscript is now with our production department and you will be notified of the publication date in due course.

The corresponding author will soon be receiving a typeset proof for review, to ensure errors have not been introduced during production. Please review the PDF proof of your manuscript carefully, as this is the last chance to correct any errors. Please note that major changes, or those which affect the scientific understanding of the work, will likely cause delays to the publication date of your manuscript.

Soon after your final files are uploaded, unless you have opted out, the early version of your manuscript will be published online. The date of the early version will be your article's publication date. The final article will be published to the same URL, and all versions of the paper will be accessible to readers.

For Research, Software, and Methods articles, you will receive an invoice from PLOS for your publication fee after your manuscript has reached the completed accept phase. If you receive an email requesting payment before acceptance or for any other service, this may be a phishing scheme. Learn how to identify phishing emails and protect your accounts at https://explore.plos.org/phishing.

Thank you again for supporting PLOS Computational Biology and open-access publishing. We are looking forward to publishing your work!

With kind regards,

Anita Estes

PLOS Computational Biology | Carlyle House, Carlyle Road, Cambridge CB4 3DN | United Kingdom ploscompbiol@plos.org | Phone +44 (0) 1223-442824 | ploscompbiol.org | @PLOSCompBiol

Associated Data

    This section collects any data citations, data availability statements, or supplementary materials included in this article.

    Supplementary Materials

    S1 Table. Nucleotide encoding.

    Standard nucleotides use two-bit encoding. In four-bit mode, these values are preserved in the least significant bits with leading zeros, while N requires the full four-bit representation.

    (PDF)

    pcbi.1014181.s001.pdf (50.1KB, pdf)
    S2 Table. BQ header structure.

    Complete specification of the 32-byte BQ header including field offsets, sizes, types, and descriptions for magic number, version, sequence lengths, bit encoding, flags, and reserved bytes.

    (PDF)

    pcbi.1014181.s002.pdf (50.3KB, pdf)
    S3 Table. VBQ header structure.

    Complete specification of the 32-byte VBQ header including format version, virtual block size, and boolean flags indicating presence of quality scores, compression, paired-end reads, sequence headers, and record flags.

    (PDF)

    pcbi.1014181.s003.pdf (50.4KB, pdf)
    S4 Table. VBQ block header.

    Specification of the 32-byte block header structure including magic number, true block size (accounting for compression), number of records in block, and reserved bytes for future extensions.

    (PDF)

    pcbi.1014181.s004.pdf (50.2KB, pdf)
    S5 Table. VBQ record structure.

    Detailed field-level specification of variable-length VBQ records including flags, sequence lengths, encoded nucleotide buffers, quality scores, and sequence headers for both primary and extended (paired-end) sequences.

    (PDF)

    pcbi.1014181.s005.pdf (97.8KB, pdf)
    S6 Table. VBQ index header.

    Specification of the 32-byte index header structure including magic number, file size verification field, and reserved bytes for future extensions.

    (PDF)

    pcbi.1014181.s006.pdf (50.1KB, pdf)
    S7 Table. VBQ index range.

    Specification of the 32-byte index range structure describing block locations, including file offset, block size, number of records per block, cumulative record count, and reserved bytes.

    (PDF)

    pcbi.1014181.s007.pdf (50.2KB, pdf)
    S8 Table. Parallel processing hooks.

    Description of the map-reduce interface for parallel processing including the process_record map function for individual record processing and the on_batch_complete reduce function for batch aggregation.

    (PDF)

    pcbi.1014181.s008.pdf (65.5KB, pdf)
    Attachment

    Submitted filename: review_responses.pdf

    pcbi.1014181.s010.pdf (97KB, pdf)
    Attachment

    Submitted filename: Reviewer Responses.pdf

    pcbi.1014181.s011.pdf (78.8KB, pdf)

    Data Availability Statement

    All data used in this study are either computationally simulated using publicly available tools (wgsim,pbsim3) with the human reference genome GRCh38, or obtained from publicly available datasets in the NCBI Sequence Read Archive: SRR11214033, SRR36606595, and SRR37455459. All code and relevant data for reproducibility is available publicly on github: - binseq: Library for BINSEQ I/O, https://github.com/arcinstitute/binseq - bitnuc: Library for SIMD two-bit and four-bit operations, https://github.com/noamteyssier/bitnuc - binseq-bindings: Multi-language bindings for BINSEQ, https://github.com/arcinstitute/binseq-bindings - bsb: Parsing implementations for benchmarking, https://github.com/noamteyssier/binseq_benchmark - kmer_count: Naive parallel k-mer counting and benchmarking, https://github.com/arcinstitute/kmer-count - mmr: Minimap2 bindings with BINSEQ input support, https://github.com/arcinstitute/mmr - STAR: STAR branch with BINSEQ input, https://github.com/alexdobin/STAR/tree/binseq.


    Articles from PLOS Computational Biology are provided here courtesy of PLOS

    RESOURCES