DNA Computing
The founder of DNA (deoxyribonucleic acid) computing, one of the most revolutionary discipline of present computer science, is an American mathematician Leopard Adleman. In 1994, he demonstrated the solution of the HPP (Hamiltonian Path Problem), that is, to solve the HPP for a given directed graph, with the aid of DNA strands.
The major benefit of L. Adleman’s idea lies in DNA molecule applications as a data medium. Operations, which can be performed with DNA molecules by means of molecular biology methods, can be used for a massive search of the state space. Theoretically, the molecular computers can surpass existing supercomputers. The molecular computers are estimated to surpass the existing computers not only in operating rate, but also in economical data storage and in low power consumption. However, the practical implementation of the operation with DNA meets many problems that are already familiar among professional geneticists.
Structure of DNA
DNA (deoxyribonucleic acid), found in every living creatures, is a storage medium for a genetic information. DNA is a polymer made of monomers called deoxyribonucleotides (for short nucleotides). Each of nucleotides consists of three basic items: dexyribose sugar, phosphate group and nitrogenous base. Dexyribose comprises five carbon atoms. The phosphate group is attached to the carbon atom 5', the nitrogenous base to the carbon atom 1'. A hydroxyl group (OH) is attached to the carbon atom 3'.

Fig.1.1: Structure of nucleotide with thymine base (T)
Various nucleotides differ from each other only with particular bases. There are two types: purins and pyrimidins. Purins are adenine (A) and guanine (G). Pyrimidins are cytosine (C) and thymine (T). Since the base is the only feature through which the nucleotides differ from each other, the abbreviations A, T, C and G are used to identify the individual nucleotides.
There are two ways the nucleotides are bound together: As for the first one, the phosphate group attached to the fifth dexyribose carbon atom is bound with the hydroxyl group attached to the third carbon atom of the next nucleotide. This covalent bond is called phosphodiester. The resulting molecule consists of 5'-phosphate group attached to one nucleotide and of 3'-hydroxil group attached to another nucleotide. In this manner, the direction of the molecule is defined. We speak about the 5'-3' or 3'-5' direction.
The latter way of nucleotide binding is the connection of two particular nucleotide bases by means of the hydrogen bond according to Watson-Crick complementarity. Complementary bases are A/T and C/G. This type of a bond is weak and can be split by mere warming of the molecule soup. All DNA computing applications are based on Watson-Crick complementarity.

Fig.1.2: A DNA molecule model
DNA is naturally not in the form of linear nucleotide clusters (only a phosphodiester bond connection). Under appropriate conditions, two linear DNA clusters are bound together by a hydrogen bond forming a double stranded DNA molecule.
Hamiltonian Path Problem (HPP)
This problem is defined in this way: Let G be an oriented graph with a denoted initial node Vin and a final node Vout. The path from the node Vin to the node Vout is called Hamiltonian one if and only if it includes every node of the graph G only once. Generally, the Hamiltonian Path Problem is formulated as a decision whether or not the given oriented graph contains the Hamiltonian path.
The Hamiltonian Path Problem is NP-complete, which means that the efficient solution of this problem, achievable in polynomial time, probably does not exist and that all general solutions of the problem lead to a massive search of the state space. The number of steps needed to solve the problem increases exponentially according to the size of the graph.

Fig.2.1: Oriented graph G
For instance, let the initial node Vin = 0 and the final node Vout = 6 be in the graph (Fig. 2.1). The Hamiltonian path is created by the edges (0,1) (1,2) (2,3) (3,4) (4,5) and (5,6).
Generally, the HPP is known as a salesman problem. The salesman leaves his town (the initial node) and visits every existing town (node) just once. However, he may move along denoted paths only (along the edges of the graph). The destination of his journey is in a town (the final node) designated in advance. The problem is to find out if the salesman can visit all the towns and if so, which paths he has to move along.
Adleman’s experiment
Adleman’s experiment solves the Hamiltonian Path Problem (HPP) in an oriented graph. The principle lies in coding of information (nodes, edges) in DNA clusters and in use of enzymes for a simulation of simple calculations. The key for the solution of the HPP with the aid of DNA is a massive parallelism DNA calculation and Watson-Crick complementarity.

Fig.3.1: Oriented graph used in Adleman’s experiment
In the experiment, L. Adleman used the following algorithm to solve HPP set by the figure 3.1:
The HPP solving algorithm
- Input: oriented graph G with n vertices, the initial node Vin (0) and the final node Vout (0) are denoted in the graph.
- Step 1: generate random paths in the graph (large quantity).
- Step 2: remove all the paths that do not start in the vertex Vin and do not end in the vertex Vout.
- Step 3: remove all the paths that do not involve exactly n vertices.
- Step 4: for each of the n vertices v, remove all the paths that do not involve vertex v.
- Output: if the set of remaining paths is empty, the result of HPP states „No, the Hamiltonian path does not exist“, otherwise „Yes, the Hamiltonian paths does exist“ and the resulting set contains the solution of HPP.
L. Adleman carried out individual steps of described algorithm with the aid of DNA molecules and of operations with them.
The HPP solution with the aid of DNA molecules
Oligonucleotid s(i) (a shorter artificially created linear DNA cluster) of length of 20 nucleotides (20-mer) is assigned to every node of the graph G. These oligonucleotides have random structure (random base arrangement) and direction 5'-3'. However, they must not be mutually identical.
App.3.1: Creation of oligonucleotides representing the nodes of the graph G
Also to every edge of the graph G the oligonucleotide e(i,j) of length 20-mer is assigned. Let us divide every oligonucleotide representing the node of the graph into two sections of length 10-mer. Then every existing edge is coded as an oligonucleotide whose first half (10-mer) is complementary to the node, where the edge ends. The orientation of the edges is thus ensured.
App.3.2: Creation of oligonucleotides representing the edges of the graph G
In the experiment, Adleman mixed a large quantity (50 pmol) of oligonucleotides e(I,j) and s(i) in a solution together with DNA-ligase. From these components, he let the DNA-ligase create different-long double stranded DNA molecules. Due to the Watson-Crick complementarity, the edge oligonucleotides e(i,j) interconnect the node oligonucleotides s(i) that are also interconnected in the actual graph, see Fig. 3.1. Due to the large quantity of the molecules s(i) and e(i,j), a massive parallel process takes place resulting in an amount of molecules coding random passages through the graph G – step 1. There is a possibility that the Hamiltonian path is among the generated paths.
App.3.3: DNA ligation reaction
Molecules coding the paths in the graph G that have been generated in the previous step are multiplied by a PCR technique (a polymerase chain reaction). This technique consists of three basic steps: denaturation, adding primers and extension. During the denaturation phase, all double stranded DNA molecules are divided by means of high temperature into two complementary molecules. During the primer adding phase, the primers are being tied up to these molecules. We shall use the primers h(s0) and s6 that are complementary to the node s0 resp. to the edge e(i,6). During the extension phase, every partial double stranded DNA molecule is complemented to the complete cluster. This procedure is repeated n-times, which gives a rise to 2^n copies of the molecules that code the paths starting in the node s0 and ending in the node s6 – step 2.
App.3.4: Polymerase chain reaction (PCR)
Products of the step 2 are sorted according to a size by a gel electrophoresis method (a molecule screen). Electrophoresis is based on the following principle: The DNA molecules are negatively charged. In a electrical field, they move towards the positive electrode. If they move in a solution (a gel) that exhibits the resistance against passing molecules, then the different-long molecules will move with a different velocity. After certain time, the electrical field is turned off and the molecules are located in clearly recognizable bands. The bands uniquely correspond with the lengths of the molecules. In Adleman’s experiment, there is a need to detect a molecul band of length of 140 base couples (7 nodes * 20-mer) coding the paths in the graph G of length 7. We then extract the molecules from the appropriate band – step 3.
App.3.5: Gel electrophoresis
We repeatedly apply an affinity purification process. First, we disunite the coding path double strands in the graph G to single-stranded DNA molecules. Next, we repeat this procedure for every vertex of the graph G: we generate a complementary copy of every vertex v(i) of the graph G and we attach this copy to magnetic particles. We let the molecules we get in the previous step reassociate with the sequences on the magnetic particles. Only the molecules coding the path passing through the vertex v(i) attach to the magnetic particles. Other molecules are washed away from the solution – step 4.
App.3.6: Affinity purification
We verify the existence of the molecule coding the Hamiltonian path in the graph G by multiplying the acquired molecules by means of the PCR (polymerase chain reaction) technique and by consequent use of the gel electrophoresis method. Both techniques have already been described (see the text above). If the set of molecules in the solution is empty, the result of the HPP runs: “No, there is no Hamiltonian path”, otherwise “Yes, there is a Hamiltonian path” and the solution contains just the molecules coding the HPP solution.
SAT problem
Work of L. Adleman was extended by an American mathematician R. J. Lipton. He investigated the solution of the satisfiability of propositional formulas – SAT Problem (Satisfiability Problem). A SAT problem is a classic example of NP-complete problem, i.e. it does not have the solution in polynomial time. The only method of how to solve SAT problem is a massive search of the state space of all parameters for a given propositional formula. It is another example pointing to new opportunities of DNA calculations.
Formally, this problem can be put as follows: Let F(x1,…,xn) be the propositional formula with length s. Let us resolve whether truth-values of Boolean variables x1,…,xn exist so that the formula F(x1,…,xn) is true.
Solution of a SAT problem with the aid of DNA molecules
Just as Adleman generated all possible passings through the graph, Lipton generated all possible evaluations of variables x1,…,xn in a similar way. Locations encoding the value of the variable xi are fixed. At every i-th location of DNA molecule only two different oligonucleotides can occur with one oligonucleotid encoding information xi = 0 and another one encoding information xi = 1. All oligonucleotides have to differ from each other. DNA molecules representing nodes ai serve as binary bit delimiters x1, x2,… ,xn.

Fig.4.1: An oriented graph with paths representing n-bit binary number x1, x2,…,xn
To solve SAT problem the following information is required:
- Extract – select all DNA molecules that include given base sequence.
- Detect – find out whether or not a DNA molecule is present in the solution.
- Multiply – multiply count of DNA molecule copies.
We have dealt with these operations by the description of Adleman’s experiment. The exact description of algorithm for a solution of SAT problem is beyond the scope of this problem explication. Note that the number of steps required for answering a question relating to satisfiability of arbitrary propositional formula is linear function of its size.
Výpočty na bázi DNA
Za zakladatele jedné z nejrevolučnějších disciplín současné informatiky, výpočty na bázi molekul DNA (dexyribonukleová kyselina), je považován americký matematik Leonard Adleman. Ten vše započal v roce 1994, kdy demonstroval řešení HPP problému (nalezení hamiltonovské cesty v orientovaném grafu) pomocí řetězců DNA.
Hlavní přínos myšlenky L. Adlemana je ve využití molekul DNA jako výpočetní médium. Operace, které je možno vykonat nad molekulami DNA pomocí metod molekulární biologie, se mohou využít při masivním paralelním prohledávání velkých prostor řešení. Teoreticky mohou molekulární počítače překonat existující superpočítače. Odhaduje se, že molekulární počítače by překonaly existující počítače nejenom svou rychlostí, ale i ekonomickým uchováváním informace a malou energetickou spotřebou. Praktická realizace operací nad DNA však naráží na mnohé problémy, které jsou již profesionálním genetikům známé.
Struktura DNA
DNA (deoxyribonukleová kyselina) se nachází v každém živém organismu jako paměťové médium pro genetickou informaci. DNA je polymer sestavený z monomerů zvaných deoxyribonukleotidy (zkráceně tzv. nukleotidy). Každý z nukleotidů se skládá ze tří základních části: cukru dexyribózy, fosfátové skupiny a dusíkaté báze. Dexyribóza má pět atomů uhlíku. Fosfátová skupina je připojena na uhlík 5' a báze na uhlík 1'. Na uhlík 3' je připojena hydroxylová skupina (OH).

Obr.1.1: Struktura nukleotidu s bází tyminu (T)
Různé nukleotidy se liší pouze svými bázemi, kterých jsou dva druhy: puriny a pyrimidiny. Puriny jsou adenin (A) a guanin (G). Pyrimidiny jsou cytosin (C) a tymin (T). Protože se nukleotidy liší pouze svými bázemi, označujeme je zkráceně A, T, C a G.
Nukleotidy se spojují dvěma různými způsoby. První z nich je, že fosfátová skupina napojená na pátý uhlík dexyribózy je napojena na hydroxylovou skupinu na třetím uhlíku následujícího nukleotidu. Tato vazba se nazývá fosfordiesterová a je to silná (kovalentní) vazba. Výsledná molekula má 5'-fosfátovou skupinu na jednom nukleotidu a 3'-hydroxylovou skupinu na druhém nukleotidu. Takto je definován směr molekuly. Hovoříme o směru 5'-3' nebo 3'-5'.
Druhý způsob spojení nukleotidů je spojení jejich bází vodíkovou vazbou podle komplementarity bází. Komplementární báze jsou A/T a C/G. Tato vazba je slabá a může být zrušena pouhým zahřáním roztoku s molekulami. Na komplementaritě bází (tzv. Watson-Crick complementarity) staví veškeré využití DNA pro výpočty.

Obr.1.2: Model DNA
DNA se v přírodě obyčejně nevyskytuje ve formě lineárních řetězců nukleotidů (spojení pouze fosfordiesterovou vazbou). Za vhodných podmínek se dva lineární řetězce DNA spojí také vodíkovou vazbou a vytvoří dvojitou šroubovici.
Problém nalezení hamiltonovské cesty (HPP - Hamiltonian Path Problem)
Problém nalezení hamiltonovské cesty je definován takto: nechť G je orientovaný graf s označeným počátečním uzlem Vin a koncovým Vout. Cesta z uzlu Vin do Vout se nazývá hamiltonovská právě tehdy, když obsahuje každý uzel grafu G právě jednou. Obecně je problém nalezení hamiltonovské cesty formulován jako rozhodnutí, zda daný orientovaný graf hamiltonovskou cestu obsahuje či ne.
Problém nalezení hamiltonovské cesty je NP-úplný. To znamená, že neexistuje jeho efektivní, v polynomiálním čase dosažitelné řešení, a že všechna jeho obecná řešení vedou na úplné prohledávání stavového prostoru. Počet kroků potřebných na vyřešení problému roste exponenciálně s velikostí grafu.

Obr.2.1: Přiklad orientovaného grafu, ve kterém hledáme hamiltonovskou cestu
Například, nechť v grafu na obrázku 2.1 je počáteční uzel Vin = 0 a koncový uzel Vout = 6. Potom hamiltonovská cesta je tvořena hranami (0,1) (1,2) (2,3) (3,4) (4,5) a (5,6).
Jednou z aplikací HPP je problém obchodního cestujícího. Obchodník vyjíždí ze svého města (počáteční uzel) a navštěvuje všechna existující města (uzly) právě jednou. Při tom se smí pohybovat pouze po vyznačených cestách (hrany grafu). Svou pouť končí v předem určeném cílovém městě (koncový uzel). Problémem je zjistit, zda může obchodník navštívit všechna města. Pokud může, máme zjistit, po kterých cestách se má pohybovat.
Adlemanův experiment
Adlemanův experiment řeší originálním způsobem problém nalezení hamiltonovské cesty (HPP) v orientovaném grafu. Jeho podstata spočívá v kódování informace (uzly, hrany) řetězci DNA a ve využití enzymů k simulaci jednoduchých výpočtů. Klíčem k řešení HPP pomocí DNA je masivní paralelismus DNA výpočtů a komplementarita bází.

Obr.3.1: Orientovaný graf použitý v pokusu L. Adlemana
Ve svém experimentu L. Adleman vyřešil HPP zadaný obrázkem 3.1. Použil k tomu následující algoritmus.
Algoritmus řešení HPP
- Vstup: orientovaný graf G s n vrcholy, v grafu je vyznačen počáteční vrchol Vin (0) a koncový vrchol Vout (6).
- Krok 1: generuj náhodné cesty v grafu (velké množství).
- Krok 2: odstraň všechny cesty, které nezačínají ve vrcholu Vin a nekončí ve vrcholu Vout.
- Krok 3: odstraň všechny cesty, které nemají právě n vrcholů.
- Krok 4: odstraň všechny cesty, které neobsahují nějaký vrchol grafu G.
- Výstup: pokud je množina zbývajících cest prázdná, výsledek HPP zní "Ne, neexistuje hamiltonovská cesta", jinak "Ano, existuje hamiltonovská cesta" a výsledná množina obsahuje právě řešení HPP.
Jednotlivé kroky popsaného algoritmu L. Adleman realizoval pomocí molekul DNA a operací s nimi.
Řešení HPP pomocí molekul DNA
Každému uzlu grafu G je přiřazen oligonukleotid s(i) (kratší umělě vytvořený lineární řetězec DNA) délky 20 nukleotidů (20-mer). Tyto oligonukleotidy mají náhodnou strukturu (náhodné uspořádání bází). Nesmí však být navzájem shodné.
App.3.1: Vytvoření oligonukleotidů reprezentujících uzly grafu G
Také každé hraně grafu G je přiřazen oligonukleotid e(i,j) délky 20-mer. Rozdělme pomyslně každý oligonukleotid reprezentující uzel grafu s(i) na dvě části délky 10-mer, tak aby každá existující hrana grafu G je zakódována jako oligonukleotid e(i,j), jehož první polovina (10-mer) je komplementární k druhé části uzlu s(i), kde hrana začíná a druhá polovina (10-mer) je komplementární k první části uzlu s(j), kde hrana končí. Orientace hran je tedy zajištěna.
App.3.2: Vytvoření oligonukleotidů reprezentujících hrany grafu G
Adleman ve svém experimentu smíchal velké množství (50 pmol) oligonukleotidů e(i,j) a s(i) v roztoku společně s DNA-ligázou. Z těchto komponent nechal DNA-ligázu vytvářet různě dlouhé dvojité šroubovice DNA. Oligonukleotidy hran e(i,j) díky komplementaritě bází propojují právě ty oligonukleotidy uzlů s(i), které jsou propojeny i ve skutečném grafu, viz Obr 3.1. Díky velkému množství molekul s(i) a e(i,j) dochází k masivnímu paralelnímu procesu, jehož výsledkem je množství molekul, které kódují náhodné průchody grafem G - krok 1. Existuje možnost, že mezi vygenerovanými cestami bude také hamiltonovská cesta.
App.3.3: Působení DNA-ligázy
Molekuly kódující cesty v grafu G, které byly vygenerovány v předešlém kroku, znásobíme technikou PCR (polymerázová řetězová reakce). Tato technika se skládá ze tří základních kroků: denaturace, přidání iniciátorů a rozšíření. Ve fázi denaturace jsou vysokou teplotou rozděleny všechny dvojité šroubovice DNA na dvě komplementární molekuly. Ve fázi přidání iniciátorů jsou na tyto molekuly navázány iniciátory. Použijeme iniciátory h(s0) a s6, které jsou komplementární k uzlu s0 respektive k hraně e(i,6). Ve fázi rozšíření je pomocí enzymů polymerázy doplněna každá částečná dvojitá šroubovice na kompletní řetězec. Tento postup opakujme n-krát a vznikne 2^n kopií jen z molekul, které kódují cesty začínající v uzlu s0 a končící v uzlu s6 - krok 2.
App.3.4: Polymerázová řetězová reakce (PCR)
Produkty kroku 2 seřadíme podle velikosti metodou gelové elektroforézy (molekulového síta). Elektroforéza je založena na tom, že molekuly DNA jsou záporně nabity a v elektrickém poli se budou pohybovat směrem ke kladné elektrodě. Pokud se budou pohybovat v roztoku (gel), který bude stavět odpor procházejícím molekulám, budou se různě dlouhé molekuly pohybovat různě velikou rychlostí. Po jisté době je elektrické pole vypnuto a molekuly se nachází v jasně rozpoznatelných pásmech. Pásma jednoznačně odpovídají délkám molekul. V Adlemanově experimentu je třeba detekovat pásmo molekul délky 140 bázových párů (7 uzlů * 20-mer) kódujících cesty v grafu G délky 7. Molekuly z příslušného pásma extrahujeme - krok 3.
App.3.5: Gelová elektroforéza
Opakovaně aplikujeme proces afinitního čištění (affinity purification). Nejdříve zahřáním roztoku rozpojíme dvojzávity kódující cesty v grafu G na jednovláknové molekuly DNA. Potom pro každý vrchol grafu G opakujeme tento postup: pro každý vrchol v(i) grafu G vygenerujeme jeho komplementární kopii a připojíme ji na magnetické částice. Molekuly získané v minulém kroku necháme reasociovat se sekvencemi na magnetických částicích. Na magnetické částice se navážou jen molekuly kódující cesty procházející přes vrchol v(i). Ostatní molekuly z roztoku odplavíme – krok 4.
App.3.6: Afinitní čištění
Existenci molekuly kódující hamiltonovskou cestu v grafu G ověříme znásobením získaných molekul pomocí techniky PCR (polymerázová řetězová reakce) a následným použitím metody gelové elektroforézy. Obě techniky již byly v textu popsány. Pokud získaný roztok neobsahuje žádné molekuly DNA, výsledek HPP zní: „Ne, neexistuje hamiltonovská cesta“, jinak „Ano, existuje hamiltonovská cesta“ a roztok obsahuje právě molekuly kódující řešení HPP.
SAT problém
Práci L. Adlemana rozšířil americký matematik R. J. Lipton. Zabýval se řešením splnitelnosti výrokových formulí - SAT problémem (Satisfiability Problem). SAT problém je vzorový příklad NP-úplného problému, tj. nemá řešení v polynomiálním čase. Jediný způsob jeho řešení je úplné prohledávání stavového prostoru všech proměnných dané výrokové formule. Je to další příklad, na kterém byly prezentovány možnosti DNA výpočtů.
Formálně lze tento problém vyjádřit takto: máme výrokovou formuli F(x1, …, xn) délky s. Rozhodněme, zda existují takové pravdivostní hodnoty booleovských proměnných x1, …, xn, že formule F(x1, …, xn) je pravdivá.
Řešení SAT problému pomocí molekul DNA
Podobným způsobem jakým Adleman vygeneroval všechny možné průchody grafem, Lipton vygeneroval všechna možná ohodnocení proměnných x1, ..., xn. Místa, které kódují hodnotu proměnné xi jsou pevně dána. Na každém i-tém místě molekuly DNA se mohou vyskytovat pouze dva různé oligonukleotidy, přičemž jeden kóduje informaci x(i) = 0 a druhý informaci x(i) = 1. Všechny oligonukleotidy musí být navzájem různé. Molekuly DNA reprezentující uzly a(i) slouží jako oddělovače jednotlivých bitů binárního čísla x1 x2 ... xn.

Obr.4.1: Orientovaný graf, jehož cesty reprezentují n-bitové binární číslo x1 x2 ... xn
K vyřešení SAT problému potřebujeme následující operace:
- Extrahuj – vyber všechny molekuly DNA, které obsahují danou posloupnost bází.
- Zjisti – zjisti, zda se v roztoku nachází nějaká molekula DNA, či nikoliv.
- Znásob – znásob počet kopií molekul DNA.
S těmito operacemi jsme již setkali při popisu Adlemanova experimentu. Přesný popis algoritmu řešení SAT problému je nad rámec tohoto výkladu. Poznamenejme jen, že počet kroků potřebných k zodpovězení otázky splnitelnosti libovolné výrokové formule je lineární funkcí její velikosti.