Мова програмування для живого комп "ютера

Набір логічних елементів, які можна записати в ДНК, дозволяє створювати відносно складні алгоритми для «бактеріального калькулятора».


В основі роботи електронних пристроїв, від калькулятора до комп'ютера, лежать логічні операції: наприклад, якщо виконуються дві якісь умови, пов'язані логічним оператором AND, то машина що-небудь вважатиме, якщо ж одна умова не виконується, то машина нічого робити не стане. Чи можна зробити те саме на основі живої клітини? Виявляється, можна, якщо логічним операціям поставити у відповідність молекулярно-біохімічні процеси, коли зв'язкам AND (і), OR (або) та іншим будуть відповідати ті чи інші внутрішньоклітинні реакції. Наприклад, логічний оператор AND може запустити синтез флуоресцентного білка: у клітку приходять ззовні два сигнали (у вигляді якихось хімічних речовин), біохімічні процеси виконують аналог логічного складання і, якщо операція пройшла успішно, в результаті синтезується білкова молекула, що світиться. За останні роки такі живі калькулятори зуміли зробити у Вищій технічній школі Цюріха і в Массачусетському технологічному інституті. Більш того, бактерію навіть навчили пам'ятати результат, отриманий в результаті її «логічних роздумів»: в експериментах дослідників з Массачусетського технологічного інституту кишкова паличка у відповідь на якийсь сигнал із зовнішнього середовища синтезувала шматок ДНК, а спеціальний фермент, яким її забезпечили, вбудовував новосинтезовану ДНК в бактеріальний геном, причому в строго визначене місце. Таким чином, хромосома бактерії виступала в ролі жорсткого диска; про цю роботу ми писали два роки тому.


Ну а якщо не обмежуватися однією-двома логічними процедурами, а спробувати створити цілу мову програмування, втілену в молекулярних взаємодіях і біохімічних реакціях? У статті Science Крістофер Войгт (Christopher A. Voigt) з того самого Массачусетського технологічного інституту і його колеги з Бостонського університету та Національного інституту стандартів і технологій якраз таку мову і описують. Як основу дослідники використовували Verilog, одна з так званих мов опису апаратури, за допомогою яких логічні операції переводять в електричні мікросхеми. Складовими елементами «клітинного Verilog'a» стали логічні елементи і сенсори, від яких до логічних елементів надходили різні дані, від вмісту кисню або глюкози в середовищі до температури і рівня кислотності. Найскладнішим, за словами авторів роботи, було вписати в бактеріальний геном 14 логічних вентилів - так називають елементи цифрових схем, що виконують елементарні логічні операції (начебто вже згаданих AND, OR, NOT тощо); трудність же була в тому, щоб хімічні реакції і міжмолекулярні взаємодії, які служили алгоритмам матеріальною базою, не заважали б ні один одному, ні іншим клітинним процесам.

У результаті вдалося сконструювати 60 різних програмних ланцюжків. Деякі з них призначалися для вимірювань якихось зовнішніх параметрів, деякі ж були складнішими: наприклад, від клітини вимагалося проранжувати три вхідні сигнали і відреагувати на той, який в даний момент виявився найголовнішим. Один з логічних ланцюгів включав сім елементарних логічних операцій, і для її запису знадобилося 12 000 генетичних «букв» ДНК.

Всі експерименти робили на кишковій паличці, проте в перспективі дослідники хочуть адаптувати цю мову програмування для інших бактерій, таких як Bacteroides (представники яких живуть в нашій травній системі) і Pseudomonas (що мешкає на корінні рослин); крім того, складного програмування хочуть піддати і дріжджів Saccharomyces cerevisiae. Можна уявити, що в майбутньому вдасться розробити системи програмування і для багатоклітинних організмів, проте не варто забувати, що успіх програми залежатиме від того, наскільки складний геном організму і наскільки добре ми розуміємо, як він працює. Варіанти програмних алгоритмів для еукаріотичних клітин, чий геном більше і складніше, ніж у дріжджів, з'являться, швидше за все, не дуже скоро.

Важливо відзначити, що основним результатом роботи стали не бактерії-вимірювачі кисню, кислотності тощо, а розробка системи програмування, що складається з набору елементів- «цеглинок». Щоб змусити клітку робити те-то і те-то, не обов'язково занурюватися в подробиці функціонування її сенсорів, молекулярних перемикачів генетичної активності, біологічного годинника і т. д. - всю процедуру можна зібрати з готових логічних модулів. Іншими словами, програму для клітини можна написати, знаючи тільки цю мову і взагалі не згадуючи про ДНК.

Загалом, біологи зробили ще один крок у бік створення синтетичних організмів, створюваних під конкретне завдання і відповідно до конкретного дизайну. Область застосування таких «клітинних машин» може бути досить обширною. Наприклад, бактерії, налаштовані запам'ятовувати присутність якогось забруднювача, можуть працювати хорошими екологічними детекторами, і, будучи випущені в якийсь резервуар з водою, вони можуть зберігати інформацію про небажані речовини протягом досить довгого часу. З іншого боку, схожу роботу можуть виконувати модифіковані бактерії-сімбіонти, які будуть фіксувати відомості про хороші і погані речовини, що надійшли в наш кишечник, а потім «доповідати» про це лікарям.

COM_SPPAGEBUILDER_NO_ITEMS_FOUND