  The sequence reconstruction problem, introduced by Levenshtein in 2001,
considers a communication scenario where the sender transmits a codeword from
some codebook and the receiver obtains multiple noisy reads of the codeword.
The common setup assumes the codebook to be the entire space and the problem is
to determine the minimum number of distinct reads that is required to
reconstruct the transmitted codeword.
  Motivated by modern storage devices, we study a variant of the problem where
the number of noisy reads $N$ is fixed. Specifically, we design reconstruction
codes that reconstruct a codeword from $N$ distinct noisy reads. We focus on
channels that introduce single edit error (i.e. a single substitution,
insertion, or deletion) and their variants, and design reconstruction codes for
all values of $N$. In particular, for the case of a single edit, we show that
as the number of noisy reads increases, the number of redundant bits required
can be gracefully reduced from $\log n+O(1)$ to $\log \log n+O(1)$, and then to
$O(1)$, where $n$ denotes the length of a codeword. We also show that the
redundancy of certain reconstruction codes is within one bit of optimality.
