Finding a large set of single DNA strands that do not crosshybridize to themselves and/or to their complements is an important
problem in DNA computing, self-assembly, and DNA memories. We describe a theoretical framework to analyze this problem, gauge
its computational difficulty, and provide nearly optimal solutions. In this framework,
codeword design is reduced to finding large sets of strands maximaly separated in a DNA space and the size of such sets depends on the geometry
of these metric spaces. We show that
codeword design is NP-complete using any single reasonable measure that approximates the Gibbs energy, thus practically excluding the possibility
of finding any procedure to find maximal sets efficiently. Second, we extend a technique known as shuffling to provide a construction
that yields provably nearly-maximal codes. Third, we propose a filtering process that removes strands creating pairs with
low Gibbs energies, as approximated by the nearest-neighbor model. These two steps produce large codes of thermodynamic high
quality. The proposed framework can be used to gain an understanding of the Gibbs energy landscapes for DNA strands on which
much of DNA computing and self-assembly are based.
Keywords Gibbs energy - DNA hybridization - Data coding in DNA - Metric DNA space - Codeword design -
h-Distance - Maximal codes