Для выравнивания используют алгоритмы динамического программирования, подобные алгоритмам поиска оптимального пути на графе. Они дают правильные решения, но, особенно при выравнивании фрагмента ДНК и целого генома, занимают много времени. Поэтому наиболее часто для поиска нуклеотидной последовательности в геноме применяют алгоритм BLAST (basic local alignment search tool) [6]. Суть его работы заключается в том, что он сначала создает кеш-таблицу. В ней для каждой последовательности длиной 7-13 нуклеотидов указываются точки, в которых она встречается в данном геноме. При выравнивании искомой последовательности (длина которой, как правило, значительно превышает длину табличных последовательностей) она разбивается на короткие фрагменты, расположение которых в геноме определяется с использованием кеш-таблицы. После этого проводится выравнивание с помощью алгоритмов поиска путей на графе, однако, так как поиск соответствия проводится не по всей базе, а только по тем ее участкам, которые были отобраны на первом этапе, результат достигается значительно быстрее.
В том случае, если требуется провести выравнивание сразу нескольких похожих последовательностей, для экономии времени пользуются несколько упрощенным подходом, называемым прогрессивным выравниванием [5,6]. Суть его состоит в том, что сначала выравниваются две наиболее похожие последовательности и на основании результатов этого выравнивания строится суперпоследовательность, которая на следующем шаге заменяет те две последовательности, на основании которых она была построена. Снова ищутся две самые похожие последовательности и т.д. В конечном итоге получают выравнивание всех введенных последовательностей.
Еще одна интересная и до конца пока не решенная задача – это анализ имеющихся последовательностей геномов с целью обнаружения генов и различных регуляторных участков и выявления их функций [5,7]. Еще до секвенирования первого эукариотического генома, было ясно, что у этих организмов, в отличие от бактерий-прокариот, далеко не весь геном представлен генами, а имеются и значительные по своему размеру межгенные участки. Таким образом, само по себе определение нуклеотидной последовательности геномов эукариот дало исследователям сравнительно мало информации. Во всем этом массиве данных предстояло найти участки, соответствующие генам, и участки, регулирующие их работу (в геноме человека в совокупности они составляют не более 30%), определить какую функцию выполняет тот или иной ген и в каких условиях он работает, а в каких – нет. Решение такой задачи стало возможным благодаря тому, что имеются экспериментальные данные о последовательности и функции различных генов различных организмов. Проанализировав их можно постараться выявить маркеры, характерные для всех генов или большой их группы, которые позволяли бы отличать их от негенной ДНК. Для большинства генов такие маркеры были найдены. Они представляют собой более-менее консервативные нуклеотидные последовательности в начале гена. Если, вдобавок к этим маркерам, проанализировать наличие некоторых других последовательностей, обычно ассоциированных с генами, а также проверить, может ли предполагаемый ген транскрибироваться и транслироваться, то в любом геноме можно оценить общее количество генов и найти их расположение. Так, благодаря этому подходу было установлено, что у человека примерно 22 тысячи генов. Однако это только начало работы. После обнаружения гена встает вопрос о его функции (что он делает?) и особенностях его регуляции (когда, в каком типе клеток и при каких условиях этот ген работает?). Для выяснения функции гена его последовательность сравнивают с последовательностями других генов (как того же, так и других организмов) с известной функцией. Если обнаруживается существенная гомология, значит, скорее всего, характеризуемый ген имеет такую же функцию, как и тот, на который он оказался похожим. При создании подобных программ качество их работы проверяют, вводя в них последовательности генов, функции которых были уже определены экспериментально. Если программа правильно определяет функцию такого гена, значит, она работает надежно.
Однако подход, основанный на сравнении нуклеотидных последовательностей, сталкивается с определенными трудностями: во-первых, реальную работу в клетках выполняют не сами гены, а их продукты, как правило, это белки. Из-за вырожденности генетического кода два гена с весьма отличающейся нуклеотидной последовательностью могут давать белки, схожие по своей аминокислотной последовательности. Во-вторых, функция белка определяется не столько его аминокислотной последовательностью (первичной структурой), сколько его пространственной организацией (вторичной, третичной и четвертичной структурами). Соответственно, наиболее правильный подход к выявлению функции гена – сравнение потенциальной трехмерной структуры его белкового продукта и белков с известной трехмерной структурой и функцией [3]. А это уже куда более сложная задача, чем сравнивание последовательностей, так как, с одной стороны, существующие ныне математические модели далеко не всегда правильно строят трехмерную структуру белка по имеющейся аминокислотной последовательности, а, с другой стороны, количество белков, для которых экспериментально выявлена трехмерная структура, не очень велико. Таким образов, моделирование трехмерной структуры белков (о чем речь еще пойдет ниже) и определение функций генов – это задачи, которые являются одними из перспектив развития вычислительной биологии и БИ.
Очень важным является моделирование пространственных структур молекул РНК и белков [3,5]. Для белков эта задача, с одной является, с одной стороны, более сложной, а, с другой, - более важной, так как белков с функциональной структурой гораздо больше, чем РНК, поэтому именно о белках и пойдет речь. Изучением и предсказанием пространственных структур белков занимается структурная геномика, объединяющая в себе как экспериментальный, так и биоинформатический подходы.
Как уже было отмечено, очень многие функции в клетках выполняются белками. Свойства и биологические функции белка определяются не только его аминокислотной последовательностью, но и пространственной структурой. Обе эти характеристики в совокупности определяют наличие у белка различных доменов (функциональных участков), таких как реакционные и регуляторные центры ферментов, сайты связывания с ДНК и другими белками, сайты химической модификации, сигналы внутриклеточной локализации, трансмембранные домены и т.д. Так как аминокислотная последовательность белка устанавливается экспериментальным путем, то первой биоинформатической задачей при характеристике белка является построение его трехмерной структуры. Предпосылкой, делающей решение такой задачи возможным, является тот факт, что пространственная организация белка во многом определяется его первичной структурой. Иными словами, в первом приближении можно считать, что аминокислотная цепь сама принимает наиболее стабильную конформацию, поэтому моделирование пространственной структуры белка сводится к поиску варианта его упаковки с минимальной внутренней энергией. Для малых молекул, число конформационных вариантов которых относительно невелико, эта задача является простой. Однако для белков, состоящих из сотен, а то и десятков тысяч аминокислотных остатков, сделать это значительно сложнее, и построение всех возможных конформаций и их сравнение займет много времени. Поэтому для такой цели используются специальные алгоритмы, которые находят наиболее стабильные структуры быстрее, хотя и с меньшей точностью. Однако, несмотря на внешнюю легкость данной задачи, развитие программ, моделирующих трехмерную структуру белков, активно продолжается, и оптимального решения пока найдено не было. Дело в том, что, во-первых, стабильность пространственных структур зависит от физико-химический условий, которые различаются в различных типах клеток и их компартментах, и в различные моменты времени. Во-вторых, в белки в клетках могут существовать не только в виде самой стабильной конформации, а в нескольких субоптимальных конформациях. В-третьих, конформация молекулы белка может меняться в зависимости от его взаимодействий с другими белками.
Как уже говорилось, попытаться обойти проблему можно, сравнивая последовательности данного белка, и белков, для которых пространственная структура установлена экспериментально. Но и этот подход имеет ограничения, которые уже упоминались. Таким образом, для правильного моделирования структуры белков необходимо учитывать не только их аминокислотную последовательность, но и тип клеток и внутриклеточных органелл, в которых располагается этот белок, и возможность различных взаимодействий между белками, а также сравнивать исходные последовательности и полученные структуры с экспериментально определенными. Решение такой задачи возможно только в рамках системного подхода.
С предыдущей задачей связан поиск различного рода функциональных участков в молекуле белка. Хотя некоторые из них представляют собой фрагмент аминокислотной цепи (например, сигнальные последовательности и различные типы доменов) и их можно обнаружить без знания пространственной структуры, такие важные участки, как каталитические и регуляторные центры или сайты связывания с нуклеиновыми кислотами и белками, представляют собой совокупность аминокислотных остатков, расположенных в первичной структуре белка довольно далеко друг от друг и сближающихся только при переходе белка в нужную конформацию. Соответственно их обнаружение не возможно без знания пространственной структуры белка. Если же она известна, то, сравнив ее со структурой тех белков, для которых экспериментально показано наличие того или иного домена, можно делать выводы о наличии такого же домена в изучаемом нами белке.