Error-Correcting Codes for Nanopore Sequencing
Anisha Banerjee, Yonatan Yehezkeally, Antonia Wachter-Zeh, Eitan Yaakobi
TL;DR
The paper studies error-correcting codes for a nanopore sequencing model that combines intersymbol interference with composition-based readouts and substitution noise. It develops a rigorous graph-theoretic framework to bound redundancy for 1-substitution reads, proving a lower bound of $\log_q\log_q n$ symbols and presenting a redundancy-optimal construction for $\ell\ge 3$ that remains effective for reconstruction from two noisy reads. A concrete code $\mathcal C(n,\ell)$ achieving near-optimal redundancy is introduced, leveraging $(\log_q qn)$-RLL constraints and a parity-check on a transformed read, and shown to correct a single composition substitution; its applicability extends to multiple reads. The work lays a foundation for efficient coding in nanopore-like channels and suggests directions for handling additional error models and broader reconstruction tasks in DNA data storage contexts.
Abstract
Nanopore sequencing, superior to other sequencing technologies for DNA storage in multiple aspects, has recently attracted considerable attention. Its high error rates, however, demand thorough research on practical and efficient coding schemes to enable accurate recovery of stored data. To this end, we consider a simplified model of a nanopore sequencer inspired by Mao \emph{et al.}, incorporating intersymbol interference and measurement noise. Essentially, our channel model passes a sliding window of length \(\ell\) over a \(q\)-ary input sequence that outputs the \textit{composition} of the enclosed \(\ell\) bits and shifts by \(δ\) positions with each time step. In this context, the composition of a \(q\)-ary vector $\bfx$ specifies the number of occurrences in \(\bfx\) of each symbol in \(\lbrace 0,1,\ldots, q-1\rbrace\). The resulting compositions vector, termed the \emph{read vector}, may also be corrupted by \(t\) substitution errors. By employing graph-theoretic techniques, we deduce that for \(δ=1\), at least \(\log \log n\) symbols of redundancy are required to correct a single (\(t=1\)) substitution. Finally, for \(\ell \geq 3\), we exploit some inherent characteristics of read vectors to arrive at an error-correcting code that is of optimal redundancy up to a (small) additive constant for this setting. This construction is also found to be optimal for the case of reconstruction from two noisy read vectors.
