Abstract
A functional machine is not only an assembly of parts, but also an assembly of processes. The processing of each part must obey laws that respect to the property of this part. For example, building any kind of computer entails selecting appropriate components and assembling their properties to function in computation. Here, we describe computation using a DNA strand as the basic unit and we have used this unit to achieve the function of multiplication. We exploit the phenomenon of DNA hybridization, in which each strand can represent two individual units that can pair to form a single unit. We represent the numbers we multiply in binary, with different lengths representing each digit present in the number. In principle, all combinations of the numbers will be present in solution. Following hybridization, there is present a collection of duplex molecules that are tailed by single-stranded ends. These intermediates are converted to fully duplex molecules by filling in the ends with DNA polymerase. The lengths that are present represent the digits that are present, and they may be separated by denaturing PAGE. The results give a series of bands for each power of two. The number of bands in the size domain for a particular power of two is converted to binary and the sum of all present bands is then added together. Experimentally, the result of this process always yields the correct answer.
Original language | English (US) |
---|---|
Pages (from-to) | 427-441 |
Number of pages | 15 |
Journal | Natural Computing |
Volume | 5 |
Issue number | 4 |
DOIs | |
State | Published - Nov 2006 |
Keywords
- DNA hybridization
- DNA multiplication
- DNA polymerase
- DNA representation of binary numbers
- Strand extension
ASJC Scopus subject areas
- Computer Science Applications