Реферат: «Биокомпьютеры»
Ресничные обитают на Земле, по меньшей мере, два миллиарда лет, их обнаруживают практически повсюду, даже в самых негостеприимных местах. Директор Центра Гжегож Розенберг (Grzegorz Rozenberg), называет эти инфузории «одним из наиболее успешных организмов на Земле». Ученые объясняют такую «удачливость» чрезвычайно эффективными механизмами манипуляции собственной ДНК, позволяющими инфузориям приспосабливаться практически к любой среде обитания.
Уникальность ресничных в том, что их клетка имеет два ядра - одно большое, «на каждый день», где в отдельных нитях хранятся копии индивидуальных генов; и одно маленькое, хранящее в клубке используемую при репродукции единственную длинную нить ДНК со всеми генами сразу. В ходе размножения «микроядро» используется для построения «макроядра» нового организма. В этом ключевом процессе и происходят чрезвычайно интересные для ученых «нарезание» ДНК микроядра на короткие сегменты и их перетасовка, гарантирующие то, что в макроядре непременно окажутся нити с копиями всех генов.
Розенбергом и его коллегами установлено, что способ, с помощью которого создаются эти фрагменты, удивительно напоминает технику «связных списков», издавна применяемую в программировании для поиска и фиксации связей между массивами информации. Более глубокое изучение репродуктивной стратегии ресничных инфузорий при сортировке ДНК открывает новые и интересные методы «зацикливания», сворачивания, исключения и инвертирования последовательностей.
Напомним, что в 1994 году Леонардом Эдлманом (Leonard Adleman) экспериментально было продемонстрировано, как с помощью молекул ДНК в единственной пробирке можно быстро решать классическую комбинаторную «задачу про коммивояжера» (обход вершин графа по кратчайшему маршруту), «неудобную» для компьютеров традиционной архитектуры. Результаты же экспериментов ученых из лейденского центра дают основания надеяться, что в недалеком будущем ресничные инфузории можно будет использовать для реальных ДНК-вычислений.
А вот английские исследователи из компании British Telecom пришли к выводу, что изучение поведения колоний бактерий дает ключ к решению сложнейшей задачи упорядочивания коммуникационных сетей.
Для описания ближайшего будущего компьютеров сегодня все чаще привлекают популярную концепцию «всепроникающих вычислений» - идею о гигантской совокупности микрокомпьютеров, встроенных во все предметы быта и незаметно взаимодействующих друг с другом. В этой единой беспроводной сети будет увязано все: кухонная техника, бытовая электроника, следящие за микроклиматом сенсоры в комнатах, радиомаяки на детях и домашних животных… Список этот можно увеличивать бесконечно. Но сейчас добавление каждой новой «умной штучки» отнимает массу времени, чтобы взаимно подстроить работу этого устройства и уже сформировавшейся конфигурации. В концепции же будущего, поскольку хозяева дома, по определению, не обладают ни временем, ни знаниями для настройки совместной работы всей этой армии бесчисленных «разумных вещей», изначально предполагается способность системы к самоорганизации. Поэтому достаточно естественно, что взгляд ученых устремился к природе, где подобные задачи решены давно и успешно. В частности, эксперименты исследователей British Telecom показали, что их система, имитирующая поведение колонии бактерий в строматолитах 1 , способна поддерживать работу сети из нескольких тысяч устройств, автоматически управляя большими популяциями отдельных элементов.
Для симуляции функционирования такой колонии британскими учеными была создана сеть из трех тыс. узлов. Основой самоорганизации стало присвоение различных приоритетов рассылаемым по сети пакетам данных. Например, высший приоритет получили «информационные» пакеты, доносящие послания от одного узла к другому (кроме них в системе рассылаются еще «управляющие», «конфигурирующие» и прочие пакеты), поэтому ими занимаются устройства, имеющие в данный момент наилучшие связи с максимальным числом элементов сети.
В British Telecom полагают, что воплощение экспериментальной концепции в реальных продуктах можно ожидать уже через пять-шесть лет.
Еще одна любопытная разработка была представлена на конференции бельгийскими исследователями под руководством профессора Марко Дориго (Marco Dorigo). Они продемонстрировали, что программы, имитирующие стратегию поведения муравьиного сообщества, могут успешно управлять работой сложных компьютерных сетей.
Рыская в поисках корма, муравьи-разведчики оставляют за собой меченую феромонами дорожку. При этом зачастую к одному источнику пищи прокладывается сразу несколько троп, но разведчик, открывший самую короткую тропинку, возвращается быстрее и уводит за собой соплеменников. Выделяемые ими феромоны делают тропку более пахучей, чем остальные - в результате самая выгодная тропа быстро становится самой популярной. Учёные взяли эту тактику на вооружение: созданные ими программные агенты случайным образом «прозванивают» каналы связи между различными узлами сети и метят «тропинки» цифровыми «феромонами», на основании чего определяют оптимальный маршрут для передачи пакетов данных из одной точки в другую.
Практические испытания проводились в сетях Национального научного фонда США и японской корпорации NTT. Синтетические «муравьи» должны были, ничего не зная о конфигурации сети, отыскать кратчайшую дорогу от одного узла к другому. Быстро исследовав сеть, агенты определили её строение и вскоре уже могли «подсказать» любому информационному пакету к какому следующему узлу ему нужно направиться, чтобы достичь своей цели быстрее. Иначе говоря, был реализован механизм высококачественного интеллектуального роутинга, причем при возникновении различных «заторов» в сети «искусственные муравьи» реконфигурировали схему роутинга быстрее, чем традиционные решения.
Как считают авторы, их разработка может использоваться и для выполнения других неординарных задач, например динамической организации снабжения товаром в сложной торговой сети.
Биоалгоритмика
Эта заметка посвящена разделу биоинформатики, который можно назвать «биоалгоритмикой», - алгоритмам анализа первичных структур (последовательностей) биополимеров. Биоалгоритмика находится на стыке прикладной теории алгоритмов и теоретической молекулярной биологии и, подобно другим разделам биоинформатики, бурно развивалась в течение 70-х - 90-х годов XX века1 .
А лгоритмы анализа символьных последовательностей и связанные с ними алгоритмы сортировки и алгоритмы на графах активно изучались и разрабатывались, начиная со второй половины 50-х годов. Алгоритмический бум 60-х - 70-х годов был связан как с разработкой теоретических моделей вычислений (конечные автоматы и их варианты с различными видами памяти), так и с появлением компьютеров и, следовательно, реальной потребностью в обработке значительных (по тем временам) объемов данных. Своеобразными итогами этого периода стали многотомное «Искусство программирования» Д. Кнута (1968-1973) и «Построение и анализ вычислительных алгоритмов» А. Ахо, Дж. Хопкрофта и Дж. Ульмана (1976). Анализ достижений этого замечательного этапа в развитии теории алгоритмов есть также в книге: В. А. Успенский, А. Л. Семенов. Теория алгоритмов: основные открытия и приложения. - М.: Наука, 1987.
Таким образом, к моменту создания первых баз данных последовательностей ДНК и белков - началу 80-х годов - алгоритмический аппарат был, в значительной степени, готов. При этом специалисты в области алгоритмов рассматривали биологические приложения в одном ряду с техническими, одни и те же алгоритмы применялись, например, для сравнения («выравнивания») биологических последовательностей и для поиска сбоев при хранении файлов. Характерно название первого сборника работ по биоалгоритмике - «Time Warps, String Edits, and Macromolecules: The Theory and Practice of Sequence Comparison» (Sankoff, D and Kruskal, JB, eds, 1983).
Впрочем, довольно скоро выяснилось, что анализ биологических последовательностей имеет свою специфику - прежде всего с точки зрения постановок задач. Вот, например, задача о распознавании «вторичной» структуры РНК. Она очень важна для молекулярной биологии и впервые была рассмотрена еще в конце 70-х годов. Молекула рибонуклеиновой кислоты (РНК) - однонитевой полимер, состоящий из четырех видов мономеров-нуклеотидов (аденин, гуанин, урацил, цитозин). А-У и, соответственно, Г-Ц могут образовывать водородные связи, стабилизирующие молекулу. Однако образование одних связей из-за стереохимических соображений делает невозможным образование других, то есть не все комбинации межнуклеотидных связей в молекуле РНК допустимы (правила конфликтов между связями известны). Требуется для данной нуклеотидной последовательности найти наиболее стабильную вторичную структуру, т. е. допустимый набор межнуклеотидных связей, содержащий наибольшее возможное количество элементов (рис. 1). Эта задача может быть переформулирована как задача построения графа (точнее - гиперграфа , см. ниже) специального вида с максимально возможной суммой весов ребер (вершины соответствуют нуклеотидам, ребра - установленным связям) и решена с помощью метода динамического программирования (Ruth Nussinov и соавт., 1978; также см. гл. 7 в книге М. Уотермена). Однако появляющиеся ограничения на вид графа весьма экзотичны с точки зрения небиологических приложений. Другой пример задачи, не имеющей смысла вне биологического контекста, -распознавание кодирующих фрагментов ДНК, рассмотренное в статье Михаила Гельфанда.
Рис. 1. Вторичная структура участка бактериофага Qb (231 основание). Сплошные линии проведены между парами оснований, связанных водородными связями. |
Возвращаясь к задаче распознавания наиболее стабильной «вторичной» структуры РНК, отметим следующие обстоятельства, характерные для многих важных задач биоалгоритмики:
- в описанной выше модели правильнее считать не количество связей, а их суммарную энергию, энергия каждой возможной пары считается известной. С алгоритмической точки зрения задача практически не меняется;
- модель, положенная в основу описанной выше задачи, - упрощенная и во многих случаях не согласуется с экспериментом. Полезно учитывать и вклад нуклеотидов, не участвующих в образовании водородных связей. Ограничения на множество допустимых наборов связей, принятые в задаче (а), слишком строгие. Различные формальные постановки задач, лучше отражающие биологическую реальность, приводят к существенному усложнению алгоритма;
- в реальности молекула РНК может принимать не ту структуру, которой мы приписали оптимальную энергию, а несколько иную, например, из-за того, что мы не знаем точных значений энергетических параметров. Поэтому полезно не искать одну «оптимальную» структуру, а проанализировать все возможные структуры и оценить вероятность образования каждой отдельной связи («статистический вес» связи). Это также можно решить методом динамического программирования.
- многие авторы пытаются выяснить вторичную структуру РНК, не сводя ее к какой-либо алгоритмической оптимизационной задаче, а путем моделирования реального процесса «сворачивания» молекулы РНК (т. е. установления и исчезновения водородных связей).
Специфика биоалгоритмики, однако, проявляется не только в задачах, которые «по определению» не могли встретиться вне анализа биологических последовательностей. Показательна самая старая и, наверное, самая популярная задача анализа биологических последовательностей - их выравнивание. Выравнять две последовательности - это изобразить их друг над другом, вставляя в обе пробелы так, чтобы сделать их длины равными. Вот, например, как можно выровнять слова ПОДБЕРЕЗОВИК и ПОДОСИНОВИК (cм. врезку).
Такой способ изображения последовательностей широко распространен в молекулярной биологии. Предполагается, что выравнивание отражает эволюционную историю, то есть стоящие друг под другом символы соответствуют одному и тому же символу последовательности-предка. К сожалению, мы не знаем, как именно шла эволюция последовательностей. Поэтому в качестве «правильного» обычно выбирается выравнивание, оптимальное относительно некоторой функции качества. Но как мы можем контролировать правильность выбора этой функции? Есть ли у нас (пусть приблизительные) «эталоны»? К счастью, да. В качестве эталонных можно взять выравнивания, соответствующие наилучшему возможному совмещению их пространственных структур (такие структуры известны для нескольких сотен белков). Это связано с тем, что функционирование белка в клетке определяется прежде всего его пространственной структурой и можно ожидать, что аминокислоты, лежащие в сходных местах трехмерной структуры, соответствуют одним и тем же аминокислотам предкового белка.
В «добиологическом» анализе последовательностей (например, при сравнении файлов) использовалось понятие редактирующего расстояния . При этом фиксируется набор редактирующих операций (например, замена символа, вставка символа и удаление символа) и для каждой операции фиксируется цена. Тогда каждое выравнивание получает свою цену, определяемую как сумма цен отдельных операций.
Лучшим считается то, которое имеет наименьшую цену. Например, при цене замены 1 и цене вставки/удаления 3, лучшими в примере во врезке 2 будут третье и четвертое выравнивания, а при цене замены 10 и той же цене вставки/удаления, лучшим будет пятое.
Довольно скоро выяснилось, что для выравнивания биологических последовательностей в эту естественную схему необходимо внести ряд важных изменений. Дело в том, что разные аминокислоты различны по-разному. Например, аланин и валин очень похожи по своим свойствам (и цена замены аланина на валин должна быть небольшой), и они оба совершенно не похожи на триптофан. Более того, даже одинаковые аминокислоты «одинаковы по-разному». Так, триптофан - редок, и сопоставление двух триптофанов более ценно, чем сопоставление весьма распространенных аланинов.
Поэтому вместо «цены замены символа» в схеме редактирующего расстояния при сравнении белков используется весовая матрица замен , где каждой паре символов соответствует вес (положительный - для похожих, отрицательный для непохожих), а выравниванию в целом - вес W=R-G , где R - суммарный вес сопоставлений символов (в соответствии с выбранной весовой матрицей замен), G - суммарный штраф за удаления и вставки символов. Таким образом, оптимальное выравнивание - это выравнивание, имеющее наибольший вес (в то время как цена требовалась наименьшая ). Например, пусть вес совпадения для гласных букв +2, вес совпадения для согласных букв +1, вес сопоставления двух различных гласных или двух различных согласных -1, вес сопоставления гласной и согласной -2. Далее, пусть штраф за удаление или вставку символа -5. Тогда, например, третье выравнивание имеет вес -3, а четвертое - +1. Таким образом, оптимальное выравнивание слов ПОДБЕРЕЗОВИК и ПОДОСИНОВИК (при выбранных матрице замен и штрафе за удаление/вставку) - четвертое. Переход от минимизации цены к максимизации качества, - это не только технический трюк. На языке максимизации качества естественно ставится задача о поиске оптимального локального сходства. Эта задача соответствует сравнению двух белков, которые в ходе эволюции стали совсем непохожи - везде, кроме относительно короткого участка.
Алгоритм построения оптимального выравнивания основан на методе динамического программирования, введенном в широкую практику Ричардом Беллманом в 1957. Идея метода состоит в следующем: чтобы решить основную задачу, нужно придумать множество промежуточных и последовательно их решить (в каком порядке - отдельный вопрос). При этом очередная промежуточная задача должна «легко» решаться, исходя из уже известных решений ранее рассмотренных задач. Множество промежуточных задач удобно представлять в виде ориентированного ациклического графа. Его вершины соответствуют промежуточным задачам, а ребра указывают на то, результаты решений каких промежуточных задач используются для основной. Таким образом, исходная задача сводится к поиску оптимального пути в графе2 (подробнее о методе динамического программирования см. книгу Ахо, Хопкрофта и Ульмана, а также статью Finkelstein A.V., Roytberg M.A. Computation of biopolymers: a general approach to different problems. Biosystems.1993; 30 (1-3): 1-19.). Аналогично можно переформулировать различные варианты задач выравнивания, предсказания вторичной структуры РНК и белков, поиска белок-кодирующих областей ДНК и других важных проблем биоинформатики.
При построении оптимального выравнивания (мы рассматриваем простейший случай, когда удаление и вставка отдельных символов штрафуются независимо) промежуточные задачи - это построение оптимальных выравниваний начальных фрагментов исходных последовательностей. При этом задачи нужно решать в порядке возрастания длин фрагментов. Граф зависимости между промежуточными решениями для сравнения слов «ПАПКА» и «ПАПАХА», а также последовательность промежуточных шагов, приводящих к оптимальному выравниванию, показаны на рис. 2.
Рис. 2.
(a) Граф зависимостей между промежуточными задачами для выравнивания слов ПАПКА и ПАПАХА. Каждая вершина соответствует паре начальных фрагментов указанных слов. Диагональное ребро, входящее в вершину, соответствует сопоставлению последних букв сравниваемых начальных фрагментов (случай 1), горизонтальное ребро - удалению буквы в слове ПАПАХА, вертикальное ребро - удалению буквы в слове ПАПКА (случаи 2 и 3). Правая верхняя вершина - начальная и соответствует выравниванию пустых слов, левая нижняя вершина - конечная, соответствует выравниванию полных слов ПАПКА и ПАПАХА. | |
(b) Оптимальное выравнивание слов ПАПКА и ПАПАХА при следующих параметрах: вес совпадения букв: 1, штраф за замену гласной на гласную или согласной на согласную: 1, штраф за замену гласной на согласную или согласной на гласную: 2, штраф за удаление символа: 3. | |
(c) Траектория, соответствующая оптимальному выравниванию. В клетках указаны веса промежуточных оптимальных выравниваний. Например, вес оптимального выравнивания для «ПАП» и «ПАПА» равен 0, а для «ПАПК» и «ПАПАХ» равен -1. |
Н а двух примерах - распознавания вторичной структуры РНК (бегло) и выравнивания белковых последовательностей (более подробно) мы проследили за эволюцией постановок задач в биоалгоритмике. Упомянем кратко еще несколько аспектов. Пожалуй, с практической точки зрения самым важным является поиск в базах данных последовательностей, сходных с изучаемой. Определяющую роль начинают играть проблемы вычислительной эффективности, решаемые, в частности, с применением алгоритмов хеширования. Для предсказания пространственн