Pokud dnes panuje celkem všeobecné přesvědčení o tom, že ty největší objevy se zrodí jaksi napříč jednotlivými vědními disciplínami, biologické vědy a informační technologie jsou toho velmi názorným dokladem. Oba obory se přitom protínají hned několikerým způsobem. Klasické počítače hrají významnou úlohu např. při luštění genetického kódu a interpretaci získaným výsledků. Lze dokonce říci, že aplikace z oblasti genetiky a farmacie jsou dnes jedním z hlavních impulzů pro další zvyšování výkonu počítačů. Simulace z těchto oborů či práce s obrovskými databázemi sekvencí nukleotidů a aminokyselin jsou samozřejmě prováděny na superpočítačích. Významný je i fakt, že se kromě vědeckých projektů stále častěji objevují i superpočítačové aplikace realizované v komerční sféře.
Druhým průsečíkem biologie a IT je tzv. genetické programování. Tato metoda vychází z určitých poznatků a teorií evoluční biologie a snaží se je aplikovat při programování klasických počítačů. Kusy programového kódu spolu podle určitých pravidel křížíme a podrobujeme je působení náhodných mutací i obdobě přírodního výběru. Tak jako v přírodě mezi biologickými druhy nepřežije zdaleka každý a postupně bychom tak měli vyšlechtit kód, který nejlépe řeší naši úlohu. Jedná se tedy o určitou vývojářskou techniku, která má i přes svůj název s biologií společnou vlastně pouze úvodní inspiraci.
Posledním průnikem biologie a informatiky, kterému se budeme věnovat v tomto článku, jsou tzv. DNA počítače. Jako médium pro uchovávání informací i vlastní “stroj” pro provádění výpočtů se v tomto případě přitom využívá molekul nukleových kyselin.
V tuto chvíli zatím ještě neexistuje žádný “obecný” DNA počítač, na kterém bychom mohli řešit libovolnou úlohu. Pro řešení každého problému si musíme zkonstruovat speciální postup. Objekty a vztahy mezi nimi v rámci problému modelujeme sekvencemi nukleových kyselin. S nimi pak provádíme určitou sadu operací.
Využití DNA počítačů se demonstruje nejčastěji na problémech obtížně vyčíslitelných, kdy se namísto sofistikovaného algoritmu požívá metoda hrubé síly. Např. luštění šifry dnes vlastně znamená vyzkoušet všechny možnosti. Na DNA počítači budou všechny alternativy reprezentovány různými molekulami DNA a stačí najít mezi nimi tu pravou. Přitom se vychází z faktu, že v protřepávané zkumavce dostaneme z původní “sadby” směs jednovláknových a vícevláknových molekul, které budou držet pohromadě právě na základě komplementarity bází. Klíčové je – a bez toho by DNA počítače vůbec pracovat nemohly – že řetězce, které nejsou přesně komplementární, spolu pohromadě držet nebudou.
Ve druhé fázi pak budeme schopni tyto molekuly rozdělit na základě rozdílů v jejich vlastnostech (chování v elektrickém poli, hustota…) a správné řešení opět “přečíst”, tj. převést do jazyka původního problému. V praxi se celý postup, tj. párování a rozdělování dle vlastností, obvykle vícekrát opakuje. Můžeme také enzymaticky dělit párovaná vlákna opět na jednotlivé řetězce. O DNA computingu se proto poněkud vulgárně mluví jako o metodě, kdy něco nasypete do kýblu a potom už pouze počkáte, až vám odtud vypadne správné řešení.
Problém obchodního cestujícího
Zdají se vám předchozí řádky příliš abstraktní? Příkladem, na kterém se využití DNA počítačů často demonstruje, je tzv. problém obchodního cestujícího (v angličtině Travelling Salesman Problem), který z matematického hlediska patří do kategorie grafů. V první variantě si představte, že jste obchodní cestující, který musí projet X městy. Začne v bodě A a končí v bodě X, pořadí mezi tím může být jinak libovolné, ovšem podmínkou je navštívit všechna města, každé navštívit právě jednou a přitom urazit co nejkratší vzdálenost. Úlohu je možné řešit pouze hrubou silou, tedy stanovením všech možností a jejich seřazením dle vzdálenosti.
V DNA computingu budeme zřejmě postupovat následujícím způsobem: Připravíme si sadu nukleových kyselin (molekul, sekvenci nukleotidů), které budou odpovídat jednotlivým městům. Jiné sekvence budou reprezentovat cesty mezi uzly. Např. cesta mezi bodem A a B bude mít na začátku báze komplementární s koncem sekvence města A, na svém konci báze komplementární se začátkem řetězce reprezentujícího bod B. Délka úseku mezi komplementární částmi cesty pak bude odpovídat vzdálenosti mezi body.
Ve zkumavce (kýblu, bazénu…) smícháme všechny předpřipravené sekvence nukleové kyseliny. V okamžiku proběhne obrovské množství reakcí, jednotlivé řetězce se k sobě budou přibližovat, dotýkat a zase vzdalovat. Tam, kde se ale k sobě přiblíží komplementární řetězce, vytvoří se mezi párovými bázemi vodíkové vazby a obě části již zůstanou pohromadě. Nyní tedy máme směs všech možností (Protože reagující látky jsme přidali ve velkém množství, jednotlivé kombinace jsou zde zastoupeny ve větším počtu. Z našeho hlediska se prostě spoléháme na to, že je statisticky víceméně vyloučeno, aby nějaký způsob poskládání řetězců zcela scházel).
Nyní nám zbývá najít správné řešení, tj. analytickými metodami od sebe látky oddělit dle jejich vlastností. Hypoteticky můžeme postupovat třeba následujícím způsobem: ke směsi přidáme “činidlo 1”, sekvenci nukleotidů komplementárních k začátku molekuly A. Činidlo 1 má na sobě navázán atom železa. Všechny cesty, vyhovující našemu řešení, začínají v bodě A. Vyhovující řetězce musí mít tedy začátek bodu A prázdný, bez nalepeného komplementárního řetězce “cesty”. Na toto místo se “přilepí” činidlo 1. Všechny vyhovující molekuly jsou tedy nyní označené železem. Směs vystavíme účinkům magnetického pole a látky rozdělíme na magnetické a nemagnetické.
Nyní jsme tedy dostali množinu všech cest, které vyhovují podmínce “začátek v bodě A” a nějakou enzymaticky specifickou reakcí vazbu Bod A-činidlo 1 rozštěpíme. Směs opět podrobíme účinkům magnetického pole a oddělíme činidlo 1 (frakce, která nás nyní zajímá, je samozřejmě ta nemagnetická).
Můžeme pokračovat úplně stejně, až na to, že nyní aplikujeme “činidlo 2”, tedy opět nějak označenou sekvenci nukleotidů komplemetárních s koncem bodu Z. Tím dostaneme množinu molekul, které již odpovídají pouze cestám začínajícím v bodě A a současně ukončeným v bodě X.
Analogickými metodami získáme nakonec směs molekul, která přesně vyhovuje zadaným podmínkám. Každá z těchto molekul obsahuje sekvence kódující všechny body, a to právě jednou. Molekuly se však liší cestami mezi body. Námi hledaná cesta je právě ta nejkratší a protože délka “nekomplementárních” částí cest odpovídá délce skutečné, musíme získat nejkratší molekulu. Taková molekula by např. měla být také nejlehčí, jednotlivé řetězce nukleové kyseliny se dle své velikosti liší i v dalších fyzikálních vlastnostech (body tání, chování v gravitačním poli nebo v elektromagnetickém poli), takže můžeme použít klasické postupy chemické analýzy typu chromatografických kolon. Směs tedy opět nějak rozdělíme a “přečteme” správné řešení. V praxi samozřejmě přečteme molekul více a zjistíme, zda jsou shodné. Pokud ne, ověříme, jaká z nich kóduje výhodnější cestu.
Adlemanův postup
Již v podstatě klasickým případem, na němž se také dobře demonstruje využití DNA počítačů, je modifikovaný případ obchodního cestujícího. Příslušný pokus se sedmi uzly zrealizoval již v roce 1994 Leonard Adleman a výsledky publikoval v americkém časopise Science. My v tomto případě reprodukuje průběh pokusu dle článku Adama Rubena a Laury Landwaberové z časopisu Nature (říjen 2000).
V tomto případě nebylo cílem najít nejkratší cestu, ale cestu libovolnou. Ne všechny body grafu jsou totiž spolu spojeny, cesty jsou navíc pouze jednosměrné (viz obrázek) a dopředu tedy samozřejmě není jasné ani to, kolik řešení (tzv. hamiltonian) vlastně existuje. Podle charakteru zadání nemusí být úloha řešitelná vůbec.
Adleman postupoval analogicky předešlému případu. Připravil si sekvence vždy 20 nukleotidů odpovídající jednotlivým místům a cestám mezi nimi – zde logicky zahrnul pouze řetězce reprezentující existující cesty, včetně příslušné směrové orientace. Sekvence pro cestu přitom na rozdíl od předešlého případu obsahuje pouze části komplementární s řetězci příslušných měst, tj. schází volná, nepárová část vyjadřující vzdálenost. Cesty jsou opět tvořeny dvaceti nukleotidy, počátečních deset komplemetárních se začátkem cesty, dalších 10 s jejím koncem.
Postup vypadá následovně:
– po smíchání dostaneme odhadem směs asi 10 na 13 molekul, v nichž by mělo být i řešení.
– poznáme a oddělíme molekuly začínající bodem 0 a končící bodem 6
– poznáme a oddělíme molekuly, které obsahují přesně 140 nukleotidů (tj. sedm bodů po enzymatickém oddělení obou řetězců, můžeme také pracovat s dvouřetězcovými molekulami a v takovém případě nás zajímají molekuly s celkem 260 nukleotidy, tj. sedm bodů v jednom řetězci a šest cest mezi nimi v řetězci komplementárním)
– rozpoznáme a oddělíme řetězce, v nichž se opakuje stejná sekvence, tj. vícenásobný přechod jedním uzlem.
– pokud nám v tuto chvíli ještě nějaká molekula zbyla, jde o hamiltonian. Přečteme její strukturu a zkontrolujeme, zda vyhovuje podmínkám zadání.
Přednosti DNA počítačů
Výše popsaný problém obchodního cestujícího se sedmi body zabral Adlemanovi přibližně 7 dní práce v laboratoři. Stávající PC vyřeší úlohu za necelou sekundu. Člověk dle údajů v Nature vyřeší úlohu zřejmě do jedné hodiny, mně osobně trvalo asi pět minut.
Zdánlivě tedy DNA počítač nijak neoslnil, dokonce i za předpokladu, že laboratorní práce by se mohla nějakým způsobem optimalizovat a celý proces tím zrychlit. Pokud bychom ale přidávali další a další uzly, poměr mezi silou DNA a klasického počítače by se začal obracet (a z hlavy bychom nebyli již velmi rychle problém řešit vůbec). Zatímco stolní počítače dnes dosahují rychlosti přibližně 10 na 6 operací za sekundu a superpočítače výkonu přibližně 10 na 12, počet operací realizovaných Adlemanovým počítačem je více než 10 na 14 za sekundu, při zavedení některých optimalizačních postupů až 10 na 20 za sekundu.
K dalším výhodám DNA počítačů patří malá energetická náročnost. Na jeden joul dodané energie může DNA počítač vykovat údajně až 2 * 10 na 19 operací, což se blíží maximu 34 * 10 na 19, které vyplývá z omezujících účinků druhé věty termodynamiky. Moderní superpočítače vykonají na jeden dodaný joule pouze 10 na 9 operací.
Ohromující je také přednost DNA počítačů v hustotě ukládaných dat. Suchá DNA může obsahovat až 10 na 12 krát více informací, než stejně objemné paměťové médium. Jinak řečeno: gram sušené DNA nese asi tak stejně informace jako miliarda CD-ROMů (http://unisci.com/stories/20001/0114005.htm).
Přesnost přepisu informace v rámci DNA
Aby mohla být v živých organismech zajištěna dědičnost, přepis informace musí být dostatečně přesný. Párovat se spolu musí komplementární báze a žádné jiné. Taková přesnost samozřejmě může být zajištěna pouze ve statistickém měřítku, nikoliv absolutně (uvádí se, že chybná, nekomplemetární báze se objevuje přibližně v jednom případě z miliardy). Živé organismy proto disponují řadou opravných nástrojů, které jsou analogické např. funkci kontrolních součtů při přenosu informace v počítačovém světě. Pokud nějaká změna přesto projde sítem všech regulačních mechanismů, hovoříme o mutaci.
Pro DNA počítače nám z výše uvedeného vyplývá následující závěr: příslušné reakce musíme provádět s relativně velkými objemy molekul. Postačující objem se však obvykle vejde do zkumavky. Ze statistického charakteru všech postupů vyplývá jako principiální problém možnost chybovosti. Určité postupy musíme pro dosažení větší přesnosti někdy opakovat a ve výsledku kontrolovat, zda jsme skutečně získali řešení vyhovující všem vstupním podmínkám.
Různé chemické reakce či analytické postupy jsou samozřejmě nestejně specifické. Ačkoliv stanovit nějaký obecný postup řešení problému na DNA počítači není tedy příliš obtížné, konkrétní realizace algoritmu (např. jaké kroky opakovat) vyžaduje příslušné biochemické znalosti. Úspěšnost jednotlivých postupů se pak také samozřejmě porovnává na základě experimentálních výsledků. Současné postupy výpočtů na DNA počítačích by zřejmě bylo možné optimalizovat (Adleman sám uvádí některá vylepšení pro řešení problému obchodního cestujícího). V tuto chvíli je však také důležitá demonstrační role těchto postupů, analytické metody jsou tedy voleny rovněž s ohledem na svou názornost, pochopitelnost a “teoretickou čistotu”.
Další kategorie problémů
Kromě již zmíněných šifer a problému obchodního cestujícího patří do sféry zájmu DNA computingu i další obtížně vyčíslitelné problémy. Výše zmíněný článek v časopisu Nature např. uvádí vyčíslování spojené s šachovými problémy, zejména tzv. Knight Problem (knight je šachová figurka v češtině správně označovaná jako jezdec, v rámci problému jde o rozmístění těchto figurek na určité ploše šachovnice bez toho, aby se jezdci navzájem napadali).
Na http://dna2z.com/dnacpu/dna2.html je popsáno i využití DNA počítačů při řešení problému 3 barev (3-colourability problem). V tomto případě jde o rozhodnutí otázky, zda určitá mapa s ohraničenými oblastmi může být vybarvena třemi barvami, aniž by se přitom jednotlivé stejně zbarvené plochy navzájem dotýkaly.
Velký problém DNA počítačů dnes samozřejmě spočívá v tom, že pro každý problém vlastně potřebujeme počítač speciální.
Zdroje na Internetu:
Obecné zdroje:
Především americké vědecké časopisy Nature (http://www.nature.com/nature/), Science (http://www.sciencemag.org/) a Scientific American (http://www.sciam.com). Pozor, články jsou však většinou k dispozici pouze v rámci placených služeb a i ke čtení abstraktů se musíte obvykle zaregistrovat.
Některé články a specializované servery:
DNA Computer Pages (http://dna2z.com/dnacpu/index.html)
DNA Biocomputers (http://www.mitre.org/research/nanotech/biocomputers.html)
Daily University Science News (http://unisci.com/stories/20001/0114005.htm)
The Chronicle of Higher Education (http://chronicle.com/data/articles.dir/art-44.dir/issue-14.dir/14a02301.htm)