1 UVOD V zadnjem desetletju so se raziskave na področju sinte- zne biologije usmerile na graditev preprostih bioloških sistemov, ki opravljajo posamezne primitivne funkcije, na katerih temeljijo današnji računalniški sistemi. Tako Prejet 15. april, 2016 Odobren 28. junij, 2016 so bili že izdelani biološki preklopni logični primitivi (npr. vseh 16 dvovhodnih dvovrednostnih logičnih vrat [1]), že kar natančni in zanesljivi biološki oscilatorji [2], v zadnjem času pa nastajajo tudi prve biološke pomnilne strukture. Te naj bi opravljale funkciji krat- kotrajnega (angl. short term storage) in dolgotrajnega pomnjenja (angl. long term storage). Prva funkcija naj bi omogočala začasno pomnjenje vrednosti operacijskih spremenljivk dinamičnega biološkega sistema (npr. po- mnjenje režima načina delovanja biološkega zdravila), druga pa trajno pomnjenje izbranih podatkov. Z vidika načina realizacije pomnjenja biološke pomnilne struk- ture delimo v dve skupini, in sicer na • strukture, ki omogočajo trajno pomnjenje dvovre- dnostnih podatkov neposredno v DNA zapisu in • strukture, ki omogočajo začasno pomnjenje dvovre- dnostnih podatkov v obliki vzdrževanja nizkih ali visokih koncentracij opazovanih kemijskih zvrsti (npr. proteinov), ki so rezultat izražanja (ekspresije) posameznih genov DNA-zapisa. Ob predpostavki, da so biološki preklopni logični primi- tivi, biološki oscilatorji in biološke pomnilne strukture modularni, lahko na podlagi njihovega obstoja začnemo snovati preproste biološke računalnike, saj imamo s tem zagotovljene tako logične, kot tudi pomnilne funkcije, vključno z urinim taktom. V pričujočem članku predstavimo dosedanji razvoj bioloških pomnilnih struktur in na podlagi tega naredimo korak naprej. Z uporabo obeh vrst pomnjenja pred- stavimo koncept izvajanja trajno pomnjenega celičnega programa, katerega ukaze naslavljamo (izbiramo) z začasno pomnjeno vrednostjo biološkega Johnsonovega števca. POMNJENJE V BIOLOŠKIH SISTEMIH 195 2 POMNJENJE V RAČUNALNIŠKIH SISTEMIH Računalniški sistem je kakršenkoli samodejno delujoči sistem, ki je zmožen opravljati funkcije procesiranja, pomnjenja in prenašanja podatkov. Zmožnost procesira- nja, decizije ali odločanja nad podatki si predstavljamo kot zmožnost odzivanja ali formiranja odziva na vhodne podatke, pri čemer se posamezni odziv izdela samodejno na podlagi vgrajene logike ali programa. Zmožnost prenašanja pojmujemo v ožjem pomenu kot mehanizem prenosa podatkov in programov med pomnilnikom, pro- cesnim segmentom in vhodno/izhodnimi enotami (torej v opazovanem računalniškem sistemu), v širšem pomenu pa kot mehanizem prenosa podatkov in programov med računalniškimi sistemi. Funkcijo pomnjenja lahko razdelimo na funkciji traj- nega in časovno omejenega začasnega pomnjenja. Zgo- dovinsko gledano je bila v računalništvu funkcija traj- nega pomnjenja od nekdaj namenjena pomnjenju progra- mov in le izbranih podatkov, funkcija začasnega pomnje- nja pa pomnjenju vrednosti operacijskih spremenljivk programov. Večina podatkov, s katerimi danes operirajo računalniški sistemi, je dvovrednostne logične narave. Ne glede na vrsto nosilca podatkov (npr. nivo električne napetosti, namagnetenost medija ali tok fotonov po optičnem omrežju) tako velja, da vrednost nosilca podatkov preslikamo v logične nivoje, ki jih enačimo z naborom logičnih vrednosti {0, 1}. Tako za vse tri kategorije (procesiranje, pomnjenje in prenašanje) velja, da z logičnega vidika uporabljajo entitete logičnih vrednosti iz množice {0, 1} ali bite. 3 TRAJNO POMNJENJE PODATKOV NEPOSREDNO V ZAPISU DNA Trajno pomnjenje podatkov neposredno v zapisu DNA temelji na kodiranju ciljnih dvovrednostnih podatkov (bitov) v zapis DNA, ki temelji na kodnem naboru simbolov {A,C,G,T}. Simboli so oznake nukleotidov Adenina, Citozina, Gvanina in Timina, ki so osnovni se- stavni deli DNA-zapisa. Ob hipotetični predpostavki, da imamo algoritem kodiranja posameznih kodov kodnega nabora {0, 1} v kode kodnega nabora {A,C,G,T}, je končni korak do želenega zapisa DNA in s tem trajnega pomnjenja le še postopek umetne sinteze zapisa DNA, ki je danes že tržno dosegljiv. V strokovni literaturi najdemo kar nekaj primerov izvedbe pomnjenja podatkov neposredno v zapisu DNA. Večina avtorjev izvedb poudarja naslednje prednosti tovrstnega pomnjenja: • izjemno velika gostota pomnjenja (največja mogoča gostota pomnjenja v zapisu DNA je 455 EB (angl. exabytes)/gram (1 EB=1018 B=1000 PB=106 TB) [3]), • izjemno dolga življenjska doba oziroma stabilnost b2∗i b2∗i+1 ki 0 0 A 0 1 T 1 0 G 1 1 C Tabela 1: Preslikovalna tabela parov bitov v nukleotidni zapis (i = 0, ..., n− 1) zapisa v ambientalnem okolju (angl. long lifespan in low-maintenance environment) [4], • izjemno dolga predvidena življenjska doba formata zapisa, saj zapis DNA postaja de-facto standard biološkega zapisa vseh živih organizmov [5], • izjemno velika energetska učinkovitost zapisa (angl. energy efficiency). Avtorji realizacij po drugi plati priznavajo proble- matičnost zrelosti tehnologije pisanja in branja zapisa DNA. Oba postopka sta kljub rastoči zanesljivosti na- mreč še vedno dolgotrajna, cenovno nekonkurenčna in s tem primerna samo za hrambo podatkov za daljša časovna obdobja, kot smo jih vajeni danes (npr. za več desetletij ali celo stoletij (angl. century-scale archives)). Glede na povedano je tovrstni način hrambe prime- ren predvsem za dolgotrajno pomnjenje velikih količin (angl. large-scale) arhivskih podatkov (angl. archival storage), pri čemer je ekonomsko upravičeno le zelo redko (angl. infrequently accessed) in sočasno parcialno dostopanje do vsebinsko zaključenih enot podatkov, ki so na pomnilnem mediju DNA shranjene v fizičnem so- sedstvu, kar pri postopkih branja in pisanja daje prednost aplikacijam z zaporednim dostopom do podatkov (angl. sequential access applications) [3]. 3.1 Algoritem kodiranja pri neposrednem pomnje- nju v zapisu DNA Ob predpostavkah, da je zapis DNA lahko poljubno dolg in da je lahko sestavljen iz poljubnega zapo- redja nukleotidov (kodov iz kodnega nabora K = {A,C,G,T}), smo soočeni s problemom določitve načina kodiranja logičnih vrednosti 0 in 1. Predpostavimo, da je želena hranjena podatkovna vse- bina v nam znanem digitalnem svetu zakodirana v zapo- redje sode dolžine 2 ∗ n bitov (b0, b1, ..., b2n−1), želimo pa jo prestaviti v zaporedje kodnega sveta nukleotidov dolžine l (k0, k1, ..., kl−1). Glede na to, da je ciljni kodni nabor K po zalogi vrednosti dvakrat večji od kodnega nabora {0, 1}, se nam sama od sebe ponuja logika preslikave, predstavljena v preslikovalni tabeli 1, kjer po dva sosednja bita (b2∗i, b2∗i+1) iz bitnega zaporedja preslikujemo v en nukleotid ki (i = 0, ..., n − 1) po pravilu iz tabele. Tako dobimo kompaktnejši zapis z vi- dika manjšega števila uporabljenih pomnilniških entitet pomnilnega medija. 196 MOŠKON, ZIMIC, MRAZ 3.2 Churcheva realizacija pomnjenja v zapisu DNA V delu [3] Church s soavtorji opiše primer hrambe podatkov neposredno v zapisu DNA, v katerega zakodi- rajo HTML verzijo dela [6] v obsegu 53.426 besed in 11 JPEG slik. Skupna količina podatkov obsega zaporedje 5, 27 Mb. Avtorji se pri realizaciji odločijo za manj ekonomičen pristop kodiranja, kot je bil predstavljen v predhodnem razdelku, in sicer za kodiranje logične vre- dnosti 0 izbirajo med nukleotidoma A in C, za kodiranje logične vrednosti 1 pa med nukleotidoma T in G. S tem se skušajo izogniti štirim ali več sosednim ponovitvam posameznega nukleotida in uravnovešajo frekvenco pod- zaporedij CG na ciljnem kodnem zaporedju. Omejitvi izhajata iz značilnosti postopkov sinteze DNA (pisanja ciljnega zapisa), sekvenciranja DNA (branja ciljnega za- pisa) in same stabilnosti molekule DNA. Tako realizacija izgubi na gostoti zapisa, ker je dolžina podatkovnega zapisa v bitni obliki enaka dolžini nukleotidnega zapisa. Z arhitekturnega vidika realizacije pomnjenja avtorji podatkovni zapis razdelijo na 96 bitov dolga podzapo- redja, vsakemu podzaporedju pa dodajo 19 bitni naslov, ki označuje lego podatkovnega podzaporedja v celotnem zaporedju zapisa. Sočasno zaradi narave pisanja in bra- nja podzaporedju dodajo še 44 kontrolnih bitov. Tako pridejo do segmentiranega načina hranjenja podatkov v segmentih po 159 bitov (ciljnih nukleotidov) in končne dolžine zapisa (96 + 19 + 44) ∗ 54.898 = 8.728.782, (1) kjer je zapis segmentiran v 54.898 nukleotidnih pod- zaporedij (angl. chunks), vsota dolžin vseh segmentov zapisa pa 8.728.782 nukleotidov. Podatkovni (kodirani) del je sestavljen iz (96 ∗ 54.898) 5.270.208 nukleotidov. V primerjavi z načinom kodiranja, opisanim v razdelku 3.1, so avtorji tako drastično zmanjšali gostoto zapisa. 3.3 Goldmanova realizacija pomnjenja v zapisu DNA V delu [4] Goldman s soavtorji opiše primer hrambe podatkov neposredno v zapisu DNA, v katerega zakodi- rajo 739 KB podatkovne vsebine vseh 154 Shakespearo- vih sonetov v obliki ASCII, temu pa dodajo še en članek PDF, eno datoteko JPEG, izsek iz govora Martina Luthra Kinga iz leta 1963 v formatu MP3 in izsek o kodiranju v formatu Huffmanovega koda. Pri svojem modelu načina zapisa jih vodijo naslednje smernice: • podobno kot Church se avtorji zaradi lažjega obvla- dovanja ciljnega zapisa DNA (njegovega sintetizi- ranja – pisanja in sekvenciranja – branja) odločijo za segmentiran zapis ciljne vsebine v večje število krajših podzaporedij DNA, • v postopku kodiranja v nukleotidni zapis se od- povedo možnosti sosednosti enakih nukleotidov v ciljnem zapisu zaradi zanesljivosti branja (sekven- ciranja) in zaradi tega, ker naravna DNA takšne ponovitve običajno vsebuje; s tem je iz ciljnega 0 1 2 A C G T C G T A G T A C T A C G Tabela 2: Kodirna shema tritov v nabor nukleotidov [4] nukleotidnega zapisa po kodiranju razvidno, da gre za umetno sintetizirano DNA, • podatkovne podnize kodirajo večkratno v prekriv- nem načinu, s čimer dosežejo štirikratno redun- danco zapisa (vsak podatek je shranjen v štirih ver- zijah) in s tem posredno večjo zanesljivost branja (sekvenciranja) in daljšo življenjsko dobo zapisa. Z arhitekturnega vidika realizacije pomnjenja avtorji ciljni nukleotidni zapis oblikujejo po naslednjih korakih in pravilih: • posamezni bajt izvirnega podatkovnega zapisa pre- kodirajo v zaporedje petih trivrednostnih entitet – tritov (angl. trits) z zalogo vrednosti K1 = {0, 1, 2}; te si kljub manjši zalogi vrednosti no- vega kodnega nabora lahko privoščijo zaradi narave izvirnega podatkovnega zapisa, ki temelji na pod- množici razširjenega kodnega nabora ASCII, • posamezni trit prekodirajo v nukleotid po kodirni shemi, predstavljeni v tabeli 2 (levi stolpec tabele označuje predhodno zapisani nulkeotid ni, desni del tabele pa izbiro nukleotida ni+1 glede na vre- dnost trita), ki zagotavlja, da v ciljnem zapisu DNA ne bo enakih sosednih nukloetidov, • izhodiščni podatkovni nabor z dolžino 739 KB (757.051 B) tako prevedejo na zaporedje 3.785.255 (5 ∗ 757.051) nukleotidov; te razdelijo na podzapo- redja po 100 nukleotidov, vsako od njih pa opremijo z dodatnimi 17 kontrolnimi (CRC) in adresnimi nukleotidi; tovrstnih podzaporedij je 37.853, • v zadnji fazi vsak podniz z dolžino 117 nukleo- tidov sintetizirajo v prekrivnem načinu (sosednja podniza se prekrivata v 75 nukleotidih) v štirikratni redundanci (glej sliko 1); s tem pridejo do 151.348 nukleotidnih podzaporedij dolžine 117 nukleotidov, tako da je vsota vseh podazporedij 17.707.716 nukleotidov; sosednji prekrivni podnizi so kodirani na podlagi Cricks-Watsonovega komplementa. Realizacija ni najbolj kompaktna z vidika gostote za- pisa, po drugi plati pa ima vgrajeno redundanco in se ciljni zapis zaradi omejitev evidentno razlikuje od DNA, nastale po naravni evoluciji v živečem gostitelju. 3.4 Narava pomnjenja v zapisu DNA V predhodnih razdelkih smo opisali dva primera rea- lizacije pomnjenja podatkov neposredno v zapisu DNA. Pri tem moramo poudariti, da sta oba zgleda primera in- vitro pomnjenja v kontroliranem laboratorijskem okolju, kjer medija DNA ne gosti živeči gostitelj (celica). Po- vedano drugače, medij hrambe ni osnova za življenje POMNJENJE V BIOLOŠKIH SISTEMIH 197 Slika 1: Prekrivna redundanca sintetizirane DNA [4]. Sosednji prekrivni podnizi so kodirani na podlagi Cricks-Watsonovega komplementa (A = T , T = A,C = G,G = C). Segment R so redundančni podatki neprekrivne narave. in ekspresijo kemijskih zvrsti nekega živečega orga- nizma. Avtorji se in-vitro koncepta poslužujejo zaradi nedefinirane ekspresije sintetizirane DNA v gostitelju in možnosti njenih mutacij skozi evolucijo gostitelja. 4 ZAČASNO POMNJENJE PODATKOV NA PODLAGI VZDRŽEVANJA KONCENTRACIJ KEMIJSKIH ZVRSTI Začasno pomnjenje dvovrednostnih podatkov temelji na vzdrževanju visokih ali nizkih nivojev koncentracij kemijskih zvrsti (npr. proteinov), ki jih izražajo (ekspre- sirajo) posamezni geni zapisa DNA. Pogoj za tovrstno pomnjenje je bistabilno delovanje, ki ga dosežemo s po- zitivno povratno zanko. To realiziramo bodisi z dvojno represijo ali dvojnim aktiviranjem (glej sliko 2) [7]. Pri Slika 2: Shemi izvedbe začasnega pomnjenja preko dvojne represije (levo) oziroma dvojne aktivacije (desno), pri čemer označuje aktivacijo (spodbujanje), pa represijo (inhibicijo ali zaviranje) izražanja reguliranih proteinov p1 in p2. takšnih izvedbah podatki niso shranjeni neposredno v DNA, je pa v DNA shranjeno navodilo ali program za izražanje gena, zato govorimo o posrednem pomnje- nju na podlagi DNA. Ker je naše izhodišče pomnje- nje dvovrednostnih podatkov iz kodnega nabora {0, 1}, potrebujemo za vsak tovrstni podatek ustrezen nosilec – kemijsko zvrst (v primeru s slike 2 sta to proteina p1 in p2). Vsaki od njih moramo določiti tudi mejne koncentracije, da bi znali ustrezno interpretirati logične vrednosti. Nekaj primerov modelov tovrstnega načina pomnjenja najdemo v delih [8], [9], primer realizacije kratkotrajnega pomnjenja, tj. izvedbo pomnilne celice in njeno razširitev v Johnsonov števec, pa predstavimo v naslednjem razdelku. 5 MODEL NASLOVLJIVEGA BIOLOŠKEGA CELIČNEGA PROGRAMA V razdelku 3 smo našteli prednosti trajnega pomnje- nja podatkov neposredno v izoliranem zapisu DNA. Tovrstna hramba bi imela še večjo uporabno vre- dnost, če bi bilo mogoče podatke shranjevati v zapis DNA žive celice, do njih dostopati (angl. Read-Only Memory, ROM) ali jih tekom časa celo spreminjati (angl. Programmable-Read-Only Memory, PROM). Za- pisovanje manjše količine podatkov in njihova uporaba pri procesiranju sta bila v preteklosti že predstavljena [10]–[13]. V nadaljevanju predstavimo nadgradnjo ob- stoječih pristopov z modelom trajno hranjenega bi- ološkega celičnega programa, ki ga naslavljamo prek začasno hranjene vrednosti biološkega števca. Števec je eden osnovnih funkcionalnih gradnikov avtomatiziranih sistemov. Namenjen je štetju izbranih dogodkov. Njegovo stanje obravnavamo kot vrednost spremenljivke, ki jo moramo skozi čas pomniti in jo občasno spremeniti (povečati ali zmanjšati). V zadnjem času je že bilo predstavljenih nekaj bioloških izvedb različnih števcev, ki temeljijo na začasnem pomnjenju in ki v kontekstu sintezne biologije obetajo številne nove aplikacije (npr. štetje celičnih delitev) [14]–[16]. Omenjeni števci so s stališča izvedbe neoptimalni, saj je za predstavitev vrednosti enega števca potrebnih n kemijskih zvrsti (npr. proteinov), pri čemer se stanje ali vrednost števca manifestira s prisotnostjo (visoko koncentracijo) ene od kemijskih zvrsti in hkratno od- sotnostjo (nizko koncentracijo) preostalih n − 1 kemij- skih zvrsti (angl. one-hot encoding). Tako lahko z n kemijskimi zvrstmi zakodiramo zgolj n različnih stanj posameznega števca. 5.1 Zasnova izboljšanega biološkega števca Predpostavimo, da imamo v zapisu DNA žive celice množico genov, pri čemer vsak od njih definira ekspre- sijo ali izražanje nekega izhodnega proteina. Množico genov imamo za trajno hranjen celični program, izho- dne proteine pa za različne odzive celičnega programa. Celični program naslavljamo z biološkim programskim števcem, katerega predlog izvedbe in model podamo v nadaljevanju. Pod terminom naslavljanja imamo v mislih izbiro gena, ki na tekočem koraku izvaja ekspresijo ali izražanje izhodnega proteina. Programski števec v nadaljevanju realiziramo kot Johnsonov števec. Za njegovo izvedbo razen pomnilnih celic ne potrebujemo nikakršne dodatne logike (glej sliko 3). S takšno realizacijo z n notranjimi proteini zakodiramo 2n različnih stanj števca. 5.2 Realizacija biološke pomnilne celice D Za izvedbo prej omenjenega Johnsonovega števca potrebujemo realizacijo celice D v biološkem sistemu (npr. v bakterijski celici). To realiziramo z uporabo dveh medsebojno represirajočih se (komplementarnih) 198 MOŠKON, ZIMIC, MRAZ Slika 3: Izvedba Johnsonovega števca z uporabo pomnilnih celic D, ki so občutljive na pozitivno fronto urinega signala (CLK). Zaradi preglednosti je signal RESET iz sheme izpuščen. proteinov q in qc, s pomočjo katerih dosežemo bista- bilno delovanje. Predpostavimo, da za vsakega od obeh proteinov velja, da ga ekspresirata po dva gena. Prvi gen je aktiven takrat, ko je odsoten komplementarni protein (qc za q in nasprotno). Drugi gen je aktiven samo ob prisotnosti urinega signala. Če je hkrati aktiven še vhod v celico (d), bo aktivno izražanje proteina q, v nasprotnem primeru pa proteina qc. Biološka shema realizacije celice D je predstavljena na sliki 4, njeno delovanje pa opišemo z izrazoma q = qc ∨ d · CLK, (2) qc = q ∨ d · CLK. Slika 4: Shema izvedbe pomnilne celice D z uporabo genske regulacije - aktiviranja in represije Problem predlagane sheme je v možnosti porajanja neželenih večkratnih preklopov stanja celice D v eni urini periodi. Izvedba namreč predpostavlja, da je pre- klop števca prožen s prisotnostjo urinega signala, ki indicira določen dogodek v sistemu. Ker je preklop predlagane celice D prožen na podlagi nivoja signala, mora biti dolžina visokega nivoja urinega signala (pulza) za pravilno delovanje vezja v točno določenem intervalu. Pulz mora biti dovolj dolg, da celica D izvede ves preklop, in hkrati dovolj kratek, da celica ne izvede več preklopov hkrati [14]. Bolj robustno delovanje lahko dosežemo z vezavo Master-Slave pomnilnih celic D, s čimer pridemo do vezja, ki je proženo na fronto in ne zgolj na nivo ure [17] (glej sliko 5). V tej izvedbi uporabimo dve pomnilni celici s slike 4, tj. vhodno (angl. Master) in izhodno (angl. Slave). Vhodna celica je prožena z zunanjim vhodom d in nizkim nivojem urinega signala CLK ter za pomnjenje uporablja kom- plementarna proteina a in ac. Izhodna celica je prožena s stanjem vhodne celice (določeno z a in ac) in visokim nivojem urinega signala CLK ter za pomnjenje upo- rablja komplementarna proteina q in qc. Tako pridemo do pomnilne celice, ki je prožena na pozitivno fronto urinega signala. Slika 5: Shema izvedbe Master-Slave pomnilne celice D z uporabo genske regulacije 5.3 Matematični model biološke pomnilne celice D Pravilnost delovanja predlagane realizacije lahko pre- verimo s simulacijo na podlagi njenega matematičnega modela, ki temelji na sistemu navadnih diferencialnih enačb (angl. Ordinary Diferential Equations, ODE). Model izvedbe Master-Slave pomnilne celice D lahko podamo z izrazi da dt = α1 ·Θ(d−Kd1) ·Θ(Kd2 − CLK) +α2 ·Θ(Kd3 − ac)− δ · a, (3) dac dt = α1 ·Θ(Kd1 − d) ·Θ(Kd2 − CLK) +α2 ·Θ(Kd3 − a)− δ · ac, dq dt = α1 ·Θ(a−Kd1) ·Θ(CLK −Kd2) +α2 ·Θ(Kd3 − qc)− δ · q, dqc dt = α1 ·Θ(ac −Kd1) ·Θ(CLK −Kd2) +α2 ·Θ(Kd3 − q)− δ · qc, kjer je Θ funkcija enotine stopnice, CLK, a, ac, q in qc določajo koncentracije opazovanih proteinov, α1 in α2 hitrosti genskega izražanja, Kd1 , Kd2 in Kd3 disociacijske konstante, ki opisujejo mejo aktiviranja oziroma represije gena, δ pa hitrosti degradacije pro- teinov. Predpostavljamo, da imajo opisani parametri pri vseh štirih proteinih enake vrednosti. Podrobnejša razlaga vzpostavljenega modela presega obseg tega dela. Izhodišča za vzpostavitev bralec najde v [7], [9]. 5.4 Izvedba biološkega Johnsonovega števca Biološko realizacijo Johnsonovega števca lahko iz- vedemo z umestitvijo biološke pomnilne celice D s slike 5 v shemo, ki je predstavljena na sliki 3. Vsi segmenti pomnjenja so v končnem vezju izvedeni z enakim številom logičnih nivojev, s čimer se izognemo problemom različnih zakasnitev. V nadaljevanju matematični model biološke pomnilne celice D umestimo v izvedbo tribitnega Johnsonovega števca. Predpostavimo, da za vrednosti kinetičnih para- metrov povzamemo vrednosti, ki so v rangu povprečnih POMNJENJE V BIOLOŠKIH SISTEMIH 199 vrednosti parametrov, značilnih za bakterijske celice (npr. α1 = 5, α2 = 2, 5, Kd1 = 10, Kd2 = 5, Kd3 = 0, 5, δ = 0, 1). Simulacijski rezultati delo- vanja sheme so pridobljeni na podlagi prej navede- nega modela in vrednosti parametrov in so prikazani na sliki 6. Iz nje je razvidna pravilna sekvenca štetja (000, 100, 110, 111, 011, 001). 5.5 Opis delovanja celičnega programa Izvedbo Johnsonovega števca uporabimo za naslavlja- nje (izbiro) aktivnega gena, ki je del (ukaz) celičnega programa. Sekvenco izvedbe ukazov (genskih ekspresij) določa zaporedje štetja, prehod na izvedbo naslednjega ukaza pa je prožen s pozitivno fronto urinega signala. Predlagano shemo naslavljanja prikazuje slika 7. Slika 7: Shema naslavljanja celičnega programa z uporabo pre- dlagane izvedbe Johnsonovega števca. Primer na sliki prikazuje naslavljanje ukaza na pomnilniški lokaciji 111. 6 SKLEP V prispevku smo na začetku podali kratek pregled ra- zvoja področja pomnjenja dvovrednostnih logičnih vre- dnosti v preprostih bioloških sistemih. V nadaljevanju smo predstavili model realizacije trajno pomnjenega celičnega programa, katerega posamezne ukaze (eks- presije genov) naslavljamo z začasno pomnjenim bi- ološkim programskim števcem. Funkcijo trajnega po- mnjenja opravlja zapis DNA, funkcijo začasnega po- mnjenja pa vzdrževanje in preklapljanje koncentracij kemijskih zvrsti v gostitelju. Na podlagi idejne zasnove števca, ki ga realiziramo kot Johnosonov števec, pred- stavimo njegovo delovanje v tribitni različici, ki podpira zalogo šestih različnih stanj števca. ZAHVALA Pričujoča raziskava je bila izvedena v okviru znanstveno raziskovalnega programa Vseprisotno računalništvo (P2- 0359) in projekta Načrtovana celična vezja (J1-6740), ki ju v letih 2013–2017 financira Agencija za raziskave in razvoj Republike Slovenije.