Calculatoarele moleculare
-trecut, prezent și viitor-

În anul 1987, profesorul Tom Head de la departamentul de matematică al Universității Binghamton (New York State University) publica în numărul 49 al Buletinului de Biologie Matematică un articol în care propunea un model matematic al operației de splicing, operație ce se desfășoară asupra moleculelor de ADN, în prezența unor enzime restrictive și a unei ligaze, cu scopul de a dinamiza teoria limbajelor formale prin introducerea unui nou tip de operație.

După cum se știe, molecula de ADN are o structură dublu-spiralată. Fiecare din cele două spirale, (numite în limbajul de specialitate catene) este compusă dintr-o succesiune de baze azotate (nucleotide) legate între ele în interiorul catenei respective, precum și cu bazele azotate corespunzătoare din cealaltă catenă ce compune molecula de ADN considerată. În general, se întâlnesc 4 baze azotate care compun prin înlănțuire o catenă ADN, și anume adenina (A), timina (T), guanina (G) și citozina (C). Dacă în interiorul unei catene, bazele azotate se pot lega în aproape orice succesiune posibilă, legăturile dintre catene se pot stabili doar între bazele azotate complementare, și anume adenină - timină, respectiv guanină - citozină. Legăturile dintre bazele azotate ce compun o catenă sunt puternice, pentru desfacerea lor fiind necesară utilizarea unor enzime restrictive, iar pentru refacerea lor utilizarea unei ligaze. Legăturile dintre catene sunt mai slabe, pentru desfacerea lor fiind suficientă creșterea temperaturii peste o anumită limită, iar pentru refacerea lor scăderea temperaturii sub limita respectivă. Fiecare enzimă restrictivă recunoaște o anumită succesiune într-un grup de baze azotate din cele două catene, și desface o anumită legătură în fiecare din cele două catene.

Prin această operație, molecula de ADN se va desface în două, fiecare având câte un capăt liber (una dintre catene - mai lungă decât cealaltă - va conține un grup de baze azotate nelegate). În prezența unei ligaze, fiecare moleculă cu un capăt liber va căuta să se lege cu o altă moleculă aflată în aceeași situație, cu condiția ca bazele azotate libere să-și găsească complementele pe pozițiile similare, rezultând o moleculă ADN completă. Acest proces de desfacere a unei molecule ADN în două molecule cu margini libere și de refacere a unei molecule prin legarea a două molecule cu margini libere complementare, în condițiile prezentate mai sus pe scurt, poartă denumirea de splicing.

Mai trebuie spus aici că fiecare bază azotată se leagă într-un anumit loc cu o baza complementară din catena vecină, precum și în alte două locuri distincte cu cele două baze azotate din aceeași catenă. Alegând sensul orar de parcurgere al structurii moleculare a unei baze azotate, și numerotând cu 1 legătura cu baza complementară, legătura cu baza predecesoare în propria catenă are numărul 3, iar cea cu baza succesoare numărul 5. Se poate stabili astfel o ordine de parcurgere liniară a unei catene. Mai mult, cele două catene ce compun dubla spirală ADN sunt legate astfel încât ordinea de parcurgere este diferită (de la poziția 3, la poziția 5 pentru o catenă, și invers pentru cealaltă). Figura de mai jos prezintă o posibilă operație de splicing asupra unei fracțiuni dintr-o moleculă ADN ale cărei catene sunt reprezentate liniar, în plan.

Cele 4 baze azotate pot fi considerate ca alcătuind un alfabet, catenele construite prin diferitele combinații de baze azotate pot fi văzute ca șiruri liniare generate peste acest alfabet, iar enzimele restrictive care desfac moleculele ADN ca un fel de reguli de splicing. Sistemul alcătuit dintr-un astfel de alfabet, un număr inițial finit de șiruri obținute prin posibile combinații ale simbolurilor ce compun acest alfabet, precum și din operația de splicing, împreună cu un set finit de reguli pentru aplicarea acesteia asupra mulțimii de șiruri, se numește sistem splicing (conform modelului propus de matematicianul Tom Head în 1987). Închiderea operației de splicing asupra setului inițial finit de șiruri considerat generează un limbaj splicing.

Formalizarea

Modelul propus de către matematicianul Tom Head a avut un impact mai deosebit doar asupra cercetărilor din domeniul teoriei limbajelor formale. Grupuri restrânse de cercetători din toată lumea, atrași de posibilitățile oferite de către modelul respectiv, l-au extins și studiat în diferite contexte. Formal, un sistem splicing simplu (rebotezat sistem H) este reprezentat prin tuplul <A, L, R>, unde A este alfabetul, L este setul inițial de șiruri (limbajul de pornire), iar R este mulțimea regulilor de splicing (care respectă condițiile de legare prezentate anterior). De exemplu, o regulă de splicing poate fi reprezentată astfel:

(x1a|bx2)/(y1c|dy2) -->  x1ady2/y1cbdy2

unde x1abx2 și y1cdy2 sunt șirurile inițiale, a, b, c, d, aparțin A (a și c, respectiv b și d sunt complementare), x1, x2, y1, y2 aparțin L sunt șiruri construite peste alfabetul A, iar rezultatul operației de splicing activate de prezența în cele două șiruri a simbolilor a, b, c, d este obținerea a două noi șiruri, respectiv x1ady2 și y1cbx2. O altă notație des utilizată pentru aceeași regulă este:

a # b 'există' c # d

Pornind de aici, utilizarea operației formale de splicing și a sistemelor H s-a propagat în paralel, în ambele direcții (echivalente) de cercetare ce caracterizează știința calculatoarelor: automate și gramatici formale. S-a constatat că un sistem H simplu este echivalent unui automat finit. Diferite tipuri de extensii au fost propuse în scopul creșterii puterii sistemelor H (set inițial infinit de șiruri și/sau de reguli, șiruri circulare, restricționarea și creșterea controlului asupra operației de splicing, etc., în general extensii tipice domeniului teoriei limbajelor formale sau teoriei automatelor), obținându-se, în final, sisteme H extinse care pot genera limbaje recursiv numerabile. Pe cealaltă parte, au fost construite sisteme H extinse, echivalente cu mașinile Turing, propunându-se chiar algoritmi de construire a unui automat Turing, pornind de la un sistem H extins și invers. O alta direcție de cercetare o constituie automatele Watson-Crick, denumite astfel după doi dintre laureații Nobel pentru descoperiri legate de structura ADN, automate similare mașinii Turing, care dispun de două benzi de citire/scriere între care există o relație de complementaritate.

Experimentele din „laboratorul umed"

În 1994, când se părea că utilizarea sistemelor splicing se va limita strict în cadrul studiilor teoretice din domeniul limbajelor formale, respectiv automatelor, iar interesul inițial stârnit de calculul molecular în mediile științifice se stingea încetul cu încetul, un articol publicat de profesorul Leonard Adleman de la departamentul de știința calculatoarelor al University of Southern California, în numărul 268 al revistei Science a produs senzație. De profesie matematician, Adleman este bine cunoscut ca unul dintre inventatorii sistemului de criptare cu chei publice RSA. Implicat în ultima vreme în cercetări legate de virusul HIV, Adleman a avut ideea de utiliza molecule ADN pentru efectuarea de calcule matematice. Folosind operații biochimice standard asupra unor molecule ADN, el a reușit să rezolve practic un caz particular al problemei căii hamiltoniene într-un graf orientat. Un graf orientat constă dintr-o mulțime finită de noduri, legate între ele prin arce orientate de la un nod la altul. O succesiune de arce din graf formează o cale în acel graf. O cale ce trece prin toate nodurile grafului, atingând fiecare nod o singură dată, se numește cale hamiltoniană. Problema căii hamiltoniene, pentru un anumit graf, constă în deciderea dacă în acel graf există o cale hamiltoniană. Această problemă este NP-completă: în timp ce obținerea unei soluții deterministe este foarte greu de realizat (complexitate exponențială), verificarea unei soluții posibile se poate face într-un timp polinomial. Acesta a fost primul experiment reușit de utilizare a calculului molecular pentru rezolvarea unor probleme. Datorită faptului că moleculele sunt de fapt fragmente ADN, calculul se mai numește și calcul ADN.

Figura alăturată prezintă graful orientat utilizat. Numărul de noduri a fost ales intenționat mic, pentru ca o soluție să poată fi determinată simplu, prin mijloace convenționale. În graful prezentat, calea 1 --> 2 --> 3 --> 4 --> 5 --> 6 --> 7 este o soluție (o cale hamiltoniană). Algoritmul nedeterminist, utilizat pentru rezolvarea problemei, este următorul:
1. Se generează căi aleatorii prin graf.
2. Sunt păstrate acele căi care pornesc din nodul inițial, și se termină în nodul final.
3. Sunt păstrate doar acele căi care au dimensiunea egală cu numărul de noduri din graf.
4. Sunt păstrate doar acele căi în care fiecare nod apare maxim odată.
5. Dacă a rămas cel puțin o cale, problema are soluție, altfel nu.

Primul pas l-a constituit codificarea nodurilor și a arcelor dintre ele, folosind șiruri liniare de baze azotate orientate 5 - 3. Pentru codificarea fiecărui nod, s-a generat un șir aleator compus din 20 de baze azotate. Lungimea a fost aleasă suficient de mare pentru a putea obține codificări diferite ale nodurilor, care să respecte anumite restricții (prezentate pe parcurs). Arcele au fost obținute prin concatenare celei de-a doua jumătăți a șirului, ce codifică nodul de pornire la prima jumătate a șirului, ce codifică nodul de sosire al arcului:

Nodul 2: 5 - TATCGGATCGGTATATCCGA - 3
Nodul 3: 5 - GCTATTCGAGCTTAAAGCTA - 3
Nodul 4: 5 - GGCTAGGTACCAGCATGCTT - 3
Arcul 2 --> 3: 5 - GTATATCCGAGCTATTCGAG - 3
Arcul 3 --> 4: 5 - CTTAAAGCTAGGCTAGGTAC - 3

Arcele care pornesc din nodul 1 preiau toată codificarea nodului (și nu doar a doua jumătate), iar cele care se termină în nodul 7 preiau toată codificarea nodului (și nu doar prima jumătate), pentru a nu permite obținerea unor căi în care nodurile respective apar în altă poziție decât cea inițială, respectiv finală. Codificările pentru noduri trebuie astfel alese, încât fiecare arc să fie codificat diferit, iar arcul i --> j (dacă există) să fie codificat diferit de arcul j --> i (dacă există). De asemenea, pentru fiecare șir ce codifică un nod (mai puțin pentru nodurile 1 și 7) a fost sintetizat șirul complementar:

5 - GCTATTCGAGCTTAAAGCTA - 3 --> (Nodul 3)
3 - CGATAAGCTCGAATTTCGAT - 3 --> (Complementarul nodului 3)

Astfel, în prezența unei ligaze, complementarul unui nod poate lega șirul unui arc, ce intră în nodul respectiv, cu șirul unui arc ce iese din nodul respectiv, formându-se astfel o moleculă bi-catenată, care reprezintă o cale orientată de la un nod până la altul, trecând printr-un nod intermediar. Complementarul unui nod este orientat 3 --> 5:

(Arcul 2 --> 3) 5 - GTATATCCGAGCTATTCGAGCT TAAAGCTAGGCTAGGTAC
(Arcul 3 --> 4) - 33 - CGATAAGCTCGAATTTCGAT - 5 (Complementarul nodului 3)

Alegerea codificărilor pentru noduri trebuie să asigure desfășurarea întocmai a procesului descris, pentru a evita legările necorespunzătoare.

Experimentul s-a desfășurat astfel: într-un buffer lichid (tub pentru testare) cu o compoziție specială, s-au introdus într-o cantitate suficient de mare (de ordinul a 10*13 ) moleculele mono-catenate ce codifică nodurile și arcele grafului respectiv, precum și moleculele mono-catenate, complementare nodurilor interne ale grafului. În prezența unei ligaze (substanță care favorizează legarea catenelor corespunzătoare), moleculele respective au produs căi arbitrare prin graful respectiv. Pentru a păstra doar acele căi care încep din nodul 1 și se termină în nodul 7, au fost utilizate enzime speciale în cadrul unei reacții cunoscute sub numele PCR (polymerase chain reaction). Rezultatul a fost amplificarea (creșterea prin copiere a) numărului de molecule bi-catenate care corespund acestui criteriu, astfel încât celelalte practic nu mai contează în etapele următoare ale experimentului. Pasul următor a constat în separarea moleculelor ADN, care au lungimea egala cu 7 (140 de baze azotate). Această operație s-a desfășurat într-un mediu special (gel) care, inserat într-un circuit electric, a condus la separarea moleculelor pe lungimi, reușindu-se apoi extragerea celor cu o anumită dimensiune (Figura „Vizualizarea desfășurării experimentului ..." A). Moleculele astfel obținute au fost amplificate și purificate de mai multe ori, prin succesiunea operațiilor de amplificare și separare prezentate anterior, pentru a elimina cât mai mult posibil moleculele necorespunzătoare. Ultimul pas a constat în izolarea moleculelor care conțin o singură dată fiecare codificare a unui nod al grafului. Pentru aceasta, mediul a fost încălzit astfel încât moleculele bi-catenate au fost desfăcute în molecule mono-catenate, păstrându-se apoi doar partea care reprezenta calea prin graf (în exemplele prezentate anterior, partea superioară). Aceste molecule reprezintă căi ce încep în nodul 1, trec prin alte 5 noduri și se termină în nodul 7. Pe rând, moleculele complementare, reprezentând cele 5 noduri interne grafului, au fost fixate pe un suport cu ajutorul unei substanțe speciale (biotină), s-a adăugat ligază, iar moleculele reprezentând căile prin graf, care conțineau codificarea nodului respectiv se legau, celelalte rămânând libere. Acestea din urmă erau îndepărtate din sistem, și se trecea la următorul nod. La sfârșit, în tubul de test au rămas acele molecule care începeau cu reprezentarea nodului 1, se terminau cu reprezentarea nodului 7, și conțineau reprezentarea fiecărui nod intern. Datorită faptului că lungimea moleculei este 7 (140), este clar că reprezentarea fiecărui nod apare o singură dată în șirul rezultat. Soluția rezultată este din nou supusă operației de separare în gel. Dacă se puteau evidenția molecule de lungime 7, problema avea soluție, altfel nu (Figura „Vizualizarea desfășurării experimentului ..." B).

Procesul de rezolvare a acestei probleme s-a desfășurat pe parcursul a 7 zile de muncă în laborator. Cel mai mare consumator de timp a fost ultimul pas, în care s-au utilizat succesiv complementarele nodurilor interne, pentru eliminarea căilor ce trec de mai multe ori prin același nod. Numărul de molecule utilizate crește liniar cu numărul de noduri din graf, ca și numărul de pași ai algoritmului (ceea ce constituie marele avantaj al metodei). Numărul mare de cópii ale fiecărei molecule asigură, într-un fel, posibilitatea obținerii unei soluții prin minimizarea efectului erorilor care pot apare (legări eronate ale moleculelor sau nelegarea lor atunci când sunt îndeplinite condițiile, deteriorarea moleculelor, separarea incorectă, etc.).

Concluziile imediate la care a ajuns Adleman și echipa sa sunt că utilizarea calculului molecular, pentru dimensiuni medii ale acestui tip de probleme, poate fi mai eficientă decât utilizarea calculatoarelor convenționale, datorită paralelismului masiv, energiei mici consumate și a volumului mic în care poate fi codificată o cantitate mare de informații. Pentru probleme de dimensiuni mici, calculul molecular este ineficient, iar în cazul problemelor de dimensiuni mari s-ar putea atinge repede limitele cunoștințelor umane în domeniul biochimiei (dimensiunile moleculelor care pot fi utilizate, desfășurarea unor procese nedorite, degradarea în timp a soluțiilor, ceea ce limitează timpul în care un astfel de experiment se poate desfășura, etc).

Maturizarea

Prima observație, care se poate face în legătură cu experimentul Adleman, este că acesta nu se bazează pe modelul sistemelor H. Adleman nu a folosit nimic din ceea ce se obținuse până atunci studiind modelul formal al operației de splicing (în articolul său nu face nici o referire la vreun studiu din domeniul teoriei limbajelor formale sau automatelor). Mai mult, euforia generată de spectaculosul rezultat al experimentului a condus la apariția unei noi direcții de cercetare, oarecum paralelă cu cea inițiată de matematicianul Tom Head. Principala problemă a sistemelor splicing formale este că, pe măsură ce sunt extinse pentru a câștiga în putere, se îndepărtează tot mai mult de modelul biologic de la care au plecat, astfel încât pentru sistemele H extinse, cu adevărat interesante, nu pot fi proiectate sisteme moleculare echivalente, date fiind cunoștințele actuale din domeniul biologiei, biochimiei și geneticii. Interesați în cele din urmă de efectuarea unor experimente cu sisteme moleculare similare modelului formal, grupuri de cercetători din cadrul curentului inițial au propus o soluție mult mai elegantă și mai rapidă pentru problema abordată de Adleman, utilizând enzime restrictive pentru fiecare nod intermediar al grafului și o codificare bazată pe molecule bi-catenate. Experimentul a fost încununat de succes. Pe de altă parte, conștienți de limitările abordării inițiale, Adleman și o serie de alți cercetători activi în domeniu (R. Lipton, M. Eigen, D. Bartel) au propus o serie de îmbunătățiri, precum și câteva modele formale, bazate pe experimentul Adleman. A fost conceput un model formal pentru un calculator, bazat pe ADN, având la bază 4 operații elementare: separarea, prin care dintr-un tub de testare se pot obține două tuburi diferite, prin separarea moleculelor ADN ce conțin o anumită secvența de baze azotate de restul moleculelor, unificarea, prin care se pot pune în comun moleculele ADN din două tuburi diferite, detectarea, prin care se poate determina dacă un tub conține cel puțin o moleculă ADN, și amplificarea, prin care dint-un tub de testare se pot obține două, având același conținut (duplicare). Aceste operații elementare au la bază o serie de procedee biochimice standard, o parte dintre ele fiind menționate pe parcursul descrierii experimentului Adleman (PCR, ligare, desfacere, separare în gel, etc). Cu aceste operații se pot scrie unele programe, care primesc un tub de testare inițial (intrare), și răspund prin da, nu, sau prin producerea unui set de tuburi de testare finale (ieșire). Mai târziu, datorită complicațiilor generate de operația de amplificare, precum și din dorința de a utiliza și altfel de molecule decât ADN, a fost propus un model restrictionat, în care amplificarea nu mai este utilizată, iar operațiile rămase au fost adaptate pentru a funcționa asupra unor șiruri neorientate, generate peste un alfabet posibil diferit de {A, C, G, T}. Calculatorul ADN bazat pe modelul restricționat este suficient de puternic pentru a rezolva problema colorării unei hărți cu trei culori diferite, astfel încât doi vecini să nu fie colorați identic (o problemă NP-completă). Modelul nerestricționat a permis construirea formală a unui calculator cu memorie. Printre alte probleme dificile, care pot fi rezolvate utilizând calculul DNA, se numără și problema satisfacerii formelor conjunctive normale (asignarea unor valori de adevăr tuturor variabilelor dintr-o FNC, astfel încât forma să fie adevărată - SAT), și chiar varianta generală a acesteia privind forme booleene generale, problema satisfacerii unor circuite booleene generale cu porți binare arbitrare, în general probleme de optimizare, rezolvabile în acest mod în timp liniar, cel mult polinomial. Un interes aparte a fost acordat unei propuneri (deocamdată numai la nivel teoretic) de spargere a celebrului sistem de criptare DES prin calcul molecular (generarea prin calcul molecular a cheii de decriptare), într-un interval de aproximativ 4 luni. Eforturi au fost depuse pentru a limita cât mai mult posibil efectul erorilor ce pot apare pe parcursul calculelor moleculare reale, prin utilizarea unui număr suficient de mare de molecule, îmbunătățirea operațiilor de separare și purificare la nivel biochimic, sintetizarea unor molecule ce conțin informații redundante, etc. Însă, cele mai mari eforturi au fost îndreptate în direcția proiectării unui calculator molecular universal programabil. Cercetările sunt abia la început.

La rândul lor, cercetătorii din domeniul teoriei limbajelor formale, interesați de calculul molecular, au continuat să îmbunătățească continuu modelul sistemelor H, respectiv sistemelor H extinse, colaborând în același timp cu specialiști din domeniul biologiei, biochimiei, ingineriei genetice, pentru a face posibilă transpunerea la nivel molecular a sistemelor formale puternice construite.

Prezent și viitor

Experimentul Adleman a produs o adevărată efervescență în mediile științifice internaționale. Entuziasmul inițial a condus chiar la apariția unor afirmații și proiecte ușor desprinse de realitate. Începând din 1995, o conferință dedicată se desfășoară anual, primele două (1995, 1996) având loc la Princeton, iar ultima (1997) la Philadelphia. Dacă la conferința din 1996, la întrebări de genul „Calculatoarele moleculare - de ce ?, cum ?, când ?" se răspundea „pentru a construi un supercalculator, pornind de la tehnicile utilizate de Adleman în experimentul său", iar un participant din partea armatei a strigat chiar „start building it now !", conferința din 1997 a lăsat loc unui optimism moderat, propunând „rezolvarea unor probleme concrete, dificil de rezolvat cu ajutorul tehnicii de calcul actuale, încercând întâi mici experimente de laborator și crescând, apoi, treptat, complexitatea problemelor abordate", astfel încât „it will take some time" până când calculul molecular va deveni suficient de puternic pentru a fi utilizat efectiv, pentru rezolvarea unor probleme reale. Între timp, ambele direcții de cercetare au luat amploare, și s-ar putea să se întâlnească la un moment dat, în punctul în care construirea unui calculator DNA funcțional să fie o problemă rezolvată. Până atunci, noi modele formale sunt propuse, noi experimente sunt efectuate cu mai mult sau mai puțin succes, noi posibile aplicații ale calculului molecular sunt descoperite. Au fost imaginate chiar calculatoare hibride, în care coexistă componente bazate pe siliciu cu sisteme „umede", bazate pe molecule. O altă direcție foarte promițătoare de cercetare are în vedere utilizarea structurii 3D a moleculei ADN, ceea ce ar permite reducere a timpului de rezolvare a unor clase de probleme la o constantă, indiferent de dimensiunea acestora.

O serie de cifre vin să demonstreze avantajele utilizării calculului molecular. Astfel, timpul de rezolvare crește în general liniar cu dimensiunea problemei. Durata unei operații efectuate de (sau cu) o moleculă este în medie de 103 secunde, de peste 1010 ori mai lent decât calculatoarele actuale, ceea ce le face inutile pentru calcule secvențiale. Dacă ținem însă cont de faptul că un tub de test poate conține, în medie, peste 1015 molecule, asta semnifică tot atâtea operații executabile în paralel, calculul molecular devine foarte util. În ceea ce privește energia consumată, s-a afirmat că, în timp ce un calculator convențional poate efectua cam 109 operații / Joule, unul molecular ar depăși 1019 operații pentru aceeași cantitate de energie. Nu în ultimul rând, 1 bit de informație poate fi stocat în 1 nm3 ADN, în timp ce un calculator convențional are nevoie de 1012 nm*3 pentru același lucru.

Implicațiile produse de reușita primului calcul molecular experimental sunt fără îndoială mari. Dincolo de influențele exercitate asupra științei calculatoarelor (prin oferirea unor noi paradigme de calcul, etc.), acest experiment a deschis drumul către o mai bună înțelegere a modului în care molecula ADN - constituent fundamental al lumii vii - poate fi utilizată pentru stocarea și procesarea informației. Fără nici un dubiu, progrese importante în biochimie și genetică sunt necesare, pentru ca cercetările să conducă la obținerea unui calculator molecular universal (dacă acest lucru va fi posibil). Dar nu trebuie neglijate nici progresele în sine așteptate în biochimie și inginerie genetică, precum și impactul lor în biologie, chimie, medicină, precum și în alte discipline.

Post Scriptum

În perioada 17-24 august 1997, s-a desfășurat la Mangalia, în organizarea Fundației Universitare a Mării Negre, școala de var㠄Molecular Computing", prima de acest gen în Europa. Manifestarea s-a bucurat de participarea profesorului Tom Head și a unui număr important de cercetători din întreaga lume, interesați de teoria și aplicațiile practice ale sistemelor H în special, și de calcul molecular în general. Am fost plăcut surprins de nivelul cercetării teoretice românești în domeniu. Această școală a constituit un bun prilej pentru stabilirea de contacte între cercetători, și pentru comunicarea ultimelor noutăți din domeniu. Prezentările și discuțiile, desfășurate pe toată durata manifestării, au constituit o importantă sursă de informație pentru conceperea acestui articol.

Referințe bibliografice:
1. Adleman, Leonard - Molecular computation of solutions to combinatorial problems, Science, 268 (1994), 1021-1024.
2. Adleman, Leonard - On constructing a molecular computer, unpublished (1995).
3. Boneh, D., Dunworth, C., Lipton, R..J.,Sgall, J., - On the computational power of DNA.
4. Boneh, D., Dunworth, C., Lipton, R.J., - Making DNA computers error resistant.
5. Boneh, D., Dunworth, C., Lipton, R.J., - Breaking DES using a molecular computer.
6. Head, Tom - Formal language theory and DNA: an analysis of the generative capacity of recombinant behaviors, Bulletin of Mathematical Biology, 49 (1987), 737-759.
7. Head, Tom - Splicing schemes and DNA, Nanobiology, 1 (1992), 335-342.
8. Mateescu, A., Păun, Gh., Rozenberg, G., Salomaa, A. - Simple splicing systems, Discrete Applied Mathematics, (to appear).Majoritatea acestor articole, precum și multe altele sunt accesibile în Internet.


BYTE România - septembrie 1997


(C) Copyright Computer Press Agora