То же самое происходит и с нашими генами. Все мы — потомки выживших в эволюционной гонке, поэтому если какой-то участок ДНК жизненно важен, его современное состояние, скорее всего, совпадает с тем, которое было у предка. Почему? Да просто потому, что организмы с мутациями в этих участках «не вернулись на базу» — не выжили. И мы можем восстановить исходное состояние этих участков, изучая гены родственных видов. Исследования показывают: те части генов, которые кодируют ключевые участки белков, эволюционируют медленнее остальных частей. А те, в свою очередь, меняются медленнее, чем участки кодонов, не влияющие на конечный белок. Получается простое правило: чем медленнее эволюционирует участок ДНК, тем важнее его функция.
Этот принцип мы применяем, когда пытаемся понять, какая именно из множества унаследованных мутаций может вызывать генетическое заболевание. Если какой-то участок ДНК эволюционирует медленно — то есть остается неизменным у нас, шимпанзе, горилл и других видов, — значит, он, вероятно, особенно важен для выживания. Это своего рода «двигатели и кабины пилотов», закодированные в нашей ДНК. И важно понимать, почему этот подход работает. Дело не в том, что медленно эволюционирующие участки реже подвергаются мутациям — точно так же, как разные части самолета не различаются по вероятности попадания в них снарядов. Просто мутации, как и снаряды, попадая в разные участки, приводят к разным последствиям. И именно от этого зависит, окажется ли организм (или самолет) среди выживших.
Впрочем, применить этот принцип на практике не так просто, как кажется, ведь частота мутаций зависит от геномного окружения. В некоторых участках нашей ДНК мутации действительно возникают чуть чаще, чем в других. Это можно сравнить с ситуацией, когда в разные части самолета попадает разное количество снарядов — например, если зенитчики чаще целятся в места, не защищенные броней. Тем не менее, когда мы видим замедленную эволюцию гена, это часто признак очищающего отбора: мутации возникают, но их носители погибают, как подбитые самолеты, не долетевшие до базы. Этот принцип особенно помогает при изучении генов, кодирующих белки. К счастью, у нас есть методы, позволяющие учесть разницу в частоте мутаций.
Обычно мы сравниваем, как быстро эволюционируют разные участки одного и того же гена: те, что меняют структуру белка, и те, что на нее не влияют. Дело в том, что у нас есть 61 кодон для записи аминокислот, хотя самих аминокислот всего 20. Поэтому многие изменения в ДНК просто заменяют один кодон на другой, кодирующий ту же аминокислоту. Например, и GGC, и GGT кодируют глицин. Мы используем скорость эволюции таких «синонимичных» (т.е. похожих) кодонов как точку отсчета — это наш фоновый уровень эволюции. Это позволяет исключить влияние разной скорости мутаций в разных участках ДНК — по крайней мере, мы на это надеемся. Сравнивая этот фоновый уровень со скоростью изменения белка, мы можем найти те участки генов, которые кодируют важнейшие части, те самые «двигатели и кабины пилотов». Этот метод известен как тест соотношения Ka/Ks. Его также называют тест соотношения dN/dS, а само соотношение — «омега». Еще раз приношу извинения за путаную терминологию в нашей области. Давайте остановимся на Ka/Ks, ведь, по сути, все эти показатели означают одно и то же.
Для расчета Ka/Ks нужно сравнить одинаковые участки ДНК хотя бы у двух разных видов. Конечно, можно использовать и две последовательности от одного вида, но такой тест менее показателен, ведь времени для накопления и отбора изменений совсем мало. Это все равно что изучать самолеты до завершения боевого вылета. А если проверять их прямо на взлетной полосе, различий между разными частями вообще не увидишь, ведь мутации-снаряды еще не попали в цель, а отбор не успел сработать: все самолеты пока что целы и невредимы.
Начинаем мы с того, что выстраиваем последовательности ДНК параллельно друг другу, добиваясь, чтобы каждый кодон гена первого вида оказался напротив соответствующего кодона у второго вида. Такое расположение называется выравниванием последовательностей. Когда мы находим один и тот же ген у разных видов, мы называем такие гены ортологами, а соответствующие друг другу кодоны — ортологичными. Если виды далеки друг от друга эволюционно, выравнивание может превратиться в настоящую головоломку и привести к ошибкам: бывает непросто определить, какие именно кодоны должны стоять друг напротив друга. Но когда мы сравниваем близкие виды — например, разных млекопитающих, — выравнивание генов, кодирующих белки, обычно проходит без особых проблем.
Выровняв последовательности, мы подсчитываем, сколько различий привело к изменению белка, а сколько не привело. Давайте рассмотрим это на примере короткого фрагмента гена. Допустим, у человека (хотя это мог быть и другой вид) ген начинается так: ATG GGT GCA TTC. Эта последовательность кодирует четыре аминокислоты: ATG = метионин, GGT = глицин, GCA = аланин, TTC = фенилаланин. Теперь посмотрим на тот же участок, но у мыши. У нее последовательность такая: ATG GGC GTA TTC. Первый кодон ATG одинаковый — значит, здесь изменений не было. Второй кодон отличается: у мыши GGC, у человека GGT. Имея только две последовательности, мы не можем сказать, что из чего получилось — GGT превратился в GGC или наоборот (да и сценарий изменений мог быть сложнее). Мы видим только, что кодоны разные — значит, эволюционное изменение произошло. Но оба кодона, GGC и GGT, кодируют один и тот же глицин. То есть ДНК изменилась, а белок остался прежним. Такое изменение мы записываем в графу «синонимичных» замен. В следующем кодоне у мыши тоже есть отличие от человеческой последовательности — GTA вместо GCA. И здесь уже замена серьезнее: GTA кодирует валин, а GCA — аланин. То есть изменились и ген, и белок. Эту мутацию мы относим к тем, которые меняют белок. Последний кодон TTC у обоих видов одинаковый — здесь эволюционных изменений не было, так что считать нечего.
Такой анализ можно провести с помощью компьютера для всех наших генов, сравнивая их не только с мышиными, но и с генами любых других видов. Чем больше видов мы включаем в сравнение, тем точнее