  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 \(\delta\) 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 \(\delta=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.
