Здравствуйте. В этой неделе мы поговорим про аннотацию геномов и, в частности, про поиск генов в собранном геноме. Гены можно искать по гомологии, например, если у вас дан геном мыши, и вам известны гены мыши,и вы хотите найти аналогичные гены в человеке, то алгоритмически это похоже на задачу нахождения подстроки в строке, потому что вам нужно взять последовательность известного гена и найти ее в каком-то другом геноме, возможно с ошибками. Но это достаточно вычислительно сложная задача, поэтому мы сейчас рассмотрим другие методы нахождения генов, в частности, статистические методы, которые не подразумевают наличие какого-то известного похожего генома с уже размеченными генами. В частности, это позволяет найти новые гены, которые до этого не встречались ни в каком похожем организме. И это особенно применимо для бактерий, у которых есть очень большое разнообразие генов. Что такое ген? Однозначного определения гена нету, но мы далее будем подразумевать, что это некоторый участок в геноме, который кодирует белок. То есть это участок в нашем геноме, который... из которого получается РНК и из которого получается белок. У прокариотов это один непрерывный участок, тогда как у эукариотов он может быть разбит на экзоны и интроны, как вам, возможно, известно из биологических курсов. Также до этого участка находится промоторная область, которая, в частности, отвечает за связывание транскрипционных факторов, которые, связываясь с этой областью, дальше позволяют этому гену экспрессироваться. И в промоторной области иногда встречаются такие последовательности как ТАТА-боксы и другие консервативные участки, которые можно просто находить как подстроки в строке. Рассмотрим для начала поиск открытых рамок считывания, так называемых open reading frames. Что такое open reading frame? Это участок в геноме такой, что он начинается со старт-кодона и заканчивается стоп-кодоном, при этом особый интерес представляют достаточно длинные open reading фреймы. Если бы мы брали случайный участок генома и начинали считать кодоны от старт-кодона, то мы бы обнаружили стоп-кодон в среднем через 21 кодон, потому что всего у нас кодонов 64, то есть 4 в третьей степени, 4 нуклеотида, 3 буквы в кодоне. Получается 64 варианта трехбуквенных сочетаний. И кодонов, стоп-кодонов у нас 3 штуки, по крайней мере у млекопитающих. У бактерий иногда бывает по-другому. И если бы мы искали в случайной последовательности открытую рамку считывания, то через 64 поделить на 3 стоп-кодона, то есть примерно 21 кодон, мы бы встретили стоп-кодон. Но если мы рассматриваем геном и находим в нем рамку считывания, которая представляет из себя сотни кодонов, то это не случайно. Скорее всего, это некоторый ген, который подвергался отбору, потому что в нем в середине не может быть стоп-кодон. И это... Таким образом можно находить достаточно длинные гены, но короткие гены, которые состоят из 20, например, кодонов, ну и даже 30 кодонов, сложно отличить от статистически случайного нахождения такой открытой рамки считывания в геноме. При этом важно понимать, что рамок считывания в геноме 6. Начиная с первой позиции генома, со второй и с третьей, а также в реверс-комплементарной цепочке, тоже начиная с первой, второй и третьей позиции. И в каждой из этих рамок считывания могут находиться достаточно продолжительные открытые рамки считывания, которые являются кандидатами в наши гены. То есть простой алгоритм поиска генов — это 6 раз пройти по геному и найти все достаточно длинные, например, больше 30 кодонов, открытые рамки считывания. Это неплохо работает для нахождения генов в прокариотах, потому что у них нет разделения на интроны и экзоны. И также это хорошо работает для нахождения достаточно продолжительных генов, но это плохо работает для нахождения маленьких генов и нахождения генов в эукариотах, которые разбиты на много небольших экзонов. Также для нахождения генов можно находить мотивы специфичные промоторным областям, например, ТАТА-боксы, и смотреть вперед них, что находится в их геноме. И если там находится что-то похожее на ген, то исследовать это более подробно. Еще важно заметить, что распределение кодонов, использование кодонов другое обычно в генах, чем в случайных областях генома. То есть, например, если у вас есть вероятность встретить AAA в геноме X процентов, то в генах эта вероятность зачастую другая, потому что гены кодируют белки, и для белков важно, какие тройки в них встречаются, потому что эти тройки потом транслируются в аминокислоты. И если у вас есть данные о случайном распределении кодонов по геному и распределении кодонов внутри генов, если у вас есть некоторый участок в геноме, вы можете подсчитать частоту нахождения в нем кодонов, то есть всех возможных 64 трехбуквенных последовательностей и сравнить эти значения со случайными и с белок-кодирующими распределениями. Соответственно, к чему он ближе, то, скорее всего, либо это ген, либо это некоторая мусорная ДНК. Важно отметить, что такие методы не очень хорошо работают для некодирующих участков и, в частности, для нахождения некодирующих РНК. Также открытые рамки считывания не помогают находить некодирующие РНК и гены маленького размера. Также отличительной особенностью этих методов является то, что, если у вас есть некоторое окно, то есть подстрока в геноме, то вы можете определить вероятность того, является ли это окно геном или не является оно. Но если у вас есть просто геном, не разделенный на какие-то кусочки, то найти в нем гены с помощью определения сравнения вероятностей с распределения кодонов, это получается не так удобно, потому что вы не знаете, где ген начинается, где ген заканчивается. Вам нужно сравнить, определить такое для всех окон, и это не очень хорошо работает. Сейчас мы рассмотрим алгоритмы, основанные на марковских цепях, которые на практике применяются чаще в биоинформатике для определения генов и для нахождения генов de novo.