  Due to its high data density and longevity, DNA is considered a promising
medium for satisfying ever-increasing data storage needs. However, the
diversity of errors that occur in DNA sequences makes efficient
error-correction a challenging task. This paper aims to address simultaneously
correcting two types of errors, namely, short tandem duplication and
substitution errors. We focus on tandem repeats of length at most 3 and design
codes for correcting an arbitrary number of duplication errors and one
substitution error. Because a substituted symbol can be duplicated many times
(as part of substrings of various lengths), a single substitution can affect an
unbounded substring of the retrieved word. However, we show that with
appropriate preprocessing, the effect may be limited to a substring of finite
length, thus making efficient error-correction possible. We construct a code
for correcting the aforementioned errors and provide lower bounds for its rate.
Compared to optimal codes correcting only duplication errors, numerical results
show that the asymptotic cost of protecting against an additional substitution
is only 0.003 bits/symbol when the alphabet has size 4, an important case
corresponding to data storage in DNA.
