Молекулярная эволюция и родство видов
Урок о том, как сравнение молекул позволяет восстановить родословное древо всего живого.
Молекулярная эволюция изучает изменения последовательностей ДНК и белков во времени; число различий между видами говорит об их родстве.
Молекулы как летопись
Чем дольше два вида эволюционируют отдельно, тем больше различий накапливается в их ДНК. Сравнив один и тот же ген у разных видов, можно оценить, как давно они разошлись. Это идея молекулярных часов: мутации копятся примерно с постоянной скоростью, поэтому число различий служит «секундомером».
Считаем расстояние между последовательностями
Простейшая мера различия — число позиций, в которых две выровненные последовательности не совпадают (расстояние Хэмминга). Чем оно больше, тем дальше родство.
def hamming(a, b):
return sum(1 for x, y in zip(a, b) if x != y)
human = "ATGCGTACGTTAGC"
ape = "ATGCGTACGTTGGC" # 1 отличие
mouse = "ATGCATACGATAGC" # 3 отличия
print("Человек vs обезьяна:", hamming(human, ape), "отличий")
print("Человек vs мышь: ", hamming(human, mouse), "отличий")
print("Ближе родство у:", "обезьяны" if hamming(human, ape) < hamming(human, mouse) else "мыши")Вывод:
Человек vs обезьяна: 1 отличий Человек vs мышь: 3 отличий Ближе родство у: обезьяны
Меньше различий — ближе родство. По одному короткому участку видно то же, что подтверждают полные геномы: человек ближе к обезьянам, чем к мышам.
Оценка времени расхождения
Если известна скорость накопления мутаций $\mu$ (мутаций на позицию за год), то время расхождения двух видов оценивают как:
$$ t \approx \frac{d}{2\mu} $$
где $d$ — доля различающихся позиций. Множитель 2 учитывает, что мутации копятся в обеих ветвях.
d = 0.06 # доля различий между видами
mu = 1e-8 # мутаций на позицию в год (на ветвь)
t = d / (2 * mu)
print("Доля различий d:", d)
print("Оценка времени расхождения, лет:", round(t))Вывод:
Доля различий d: 0.06 Оценка времени расхождения, лет: 3000000
Как работает под капотом
Молекулярные часы работают лучше всего по нейтральным мутациям — тем, что не влияют на приспособленность и потому накапливаются с почти постоянной скоростью (вспомните синонимичные замены из раздела про мутации). Участки под сильным отбором меняются неравномерно и для датировки годятся хуже. Поэтому биологи выбирают для «часов» консервативные или нейтральные участки. Так абстрактная статистика мутаций превращается в инструмент датировки эволюции.
Частые ошибки
- Сравнивают невыровненные последовательности. Сначала нужно их выровнять.
- Считают молекулярные часы абсолютно точными. Это оценка со своей погрешностью.
- Берут для датировки быстро меняющиеся под отбором участки вместо нейтральных.
Итог
- Число различий между последовательностями отражает родство видов.
- Молекулярные часы: время расхождения $t \approx d / (2\mu)$.
- Лучше всего часы идут по нейтральным мутациям.
- Молекулы подтверждают эволюционное древо, построенное по анатомии.