Симулятор эволюции длины шеи жирафа

Развернуть описание Свернуть описание
TL;DR — как смотреть на эту демку
  • Нажмите «Старт», чтобы запустить эволюцию популяции из 10 000 жирафов с «геномом» из 100 позиций.
  • Каждый ген даёт небольшой вклад в длину шеи. Отбор предпочитает особей с длиной около 150 см и делает их родителями чаще.
  • Верхний график показывает распределение длин шеи в текущем поколении, нижний — динамику средней длины по поколениям.
  • «Мутаций на поколение» и «Давление отбора (σ)» можно менять во время работы и смотреть, как меняется скорость и ширина эволюции.
  • Блок «Топ-5 длинных и 5 коротких» показывает примеры геномов; тепловая карта справа — частоты букв A/C/G/T в каждой позиции. Кликайте по буквам и строкам, чтобы увидеть вклад аллелей.
  • Это упрощённая модель: вклад генов просто складывается, взаимодействий между ними (эпистаза) нет, а мутации ускорены, чтобы эволюция была заметна «на глазах».
Как устроена эта модель

Что здесь моделируется

  • В популяции всегда 10 000 особей.
  • У каждой особи есть «геном» длиной 100 позиций. В каждой позиции стоит одна буква: A, C, G или T.
  • Каждая буква в каждой позиции даёт небольшой вклад в признак — длину шеи. Сумма вкладов по всем позициям + базовое значение = длина шеи особи.
  • Отбор стабилизирующий: есть оптимальная длина шеи (150 см). Слишком короткие и слишком длинные шеи менее успешны.
  • В модели вклад генов аддитивный: никаких неаддитивных взаимодействий (эпистаза) здесь нет, вклад всех позиций просто складывается.

Как отбор делает следующее поколение

  • У каждой особи считается «приспособленность»: чем ближе её шея к 150 см, тем выше шанс оставить потомков.
  • Следующее поколение собирается из потомков предыдущего:
    • Каждый новый детёныш получает геном от двух родителей: для каждой позиции случайно берётся буква либо у «мамы», либо у «папы» (перекомбинация).
    • Родители выбираются случайно, но с весами по приспособленности: особи ближе к оптимуму чаще оказываются родителями.

Мутации

  • После формирования нового поколения в нём случайным образом происходит некоторое число мутаций — то, что выбирается в списке «Мутаций на поколение».
  • Каждая мутация:
    • случайно выбирает одну особь и одну позицию в её геноме;
    • заменяет букву в этой позиции на другую (A → C/G/T и т.п.).
  • Одна такая мутация обычно сдвигает длину шеи лишь на несколько сантиметров — это мутации небольшого эффекта.
  • В реальной эволюции мутаций у конкретного вида обычно гораздо меньше. В демо скорость мутаций специально завышена, чтобы изменения были заметны за минуты, а не за тысячи поколений.

Режимы: полигенный vs моногенный признак

  • Полигенный (по умолчанию):
    • В каждой из 100 позиций есть 4 возможные буквы с разным эффектом на длину шеи.
    • При этом в начальной популяции на каждой позиции разрешены только 2 из 4 аллелей — остальные появляются позже только через мутации.
    • Уже в начальной популяции есть заметное генетическое разнообразие, из которого отбор «лепит» нормальное распределение.
  • Моногенный:
    • В начале во всех 100 позициях стоит один «нормальный» вариант (A), дающий нулевой вклад.
    • Все отличающиеся варианты возникают только через мутации и могут иметь как слегка полезный, так и слегка вредный эффект (обычно ±1–2 см).
    • Сначала у всех длина шеи ≈50 см, вариации почти нет. Со временем, по мере накопления небольших мутаций, вокруг 50 см начинают появляться сначала 49 и 51, потом 48 и 52 и т.д., постепенно формируя колокол распределения.
    • Это иллюстрирует ситуацию, когда вариация признака появляется за счёт большого числа мутаций небольшого эффекта, а не из-за единичных «крупных» мутаций.

Что означают графики

  • Строка «Поколение / средняя длина / min / max / σ» под панелью управления:
    • Поколение — номер текущего поколения.
    • Средняя длина — средняя длина шеи по всем 10 000 особям.
    • min — минимальная длина шеи в популяции.
    • max — максимальная длина шеи в популяции.
    • σ — стандартное отклонение, ширина «колокола» (насколько сильно особи отличаются друг от друга).
  • «Распределение длины шеи в текущем поколении» (верхний график):
    • Гистограмма показывает, сколько особей с каждой длиной шеи.
    • По оси X — длина шеи (см), по оси Y — число особей.
    • Под действием отбора и мутаций гистограмма обычно стремится к колоколу нормального распределения.
  • «Динамика средней длины шеи» (нижний график):
    • Оранжевая линия — средняя длина шеи по поколениям.
    • Серая пунктирная линия — оптимум 150 см.
    • Можно видеть, как средняя длина подходит к оптимуму и колеблется вокруг него.

Топ-5 длинных и 5 коротких особей

  • Здесь показаны геномы нескольких самых длинношеих и нескольких самых короткошеих особей.
  • Каждая буква раскрашена в тот же цвет, что и на тепловой карте аллелей.
  • Число справа — длина шеи этой особи в сантиметрах.
  • Можно кликнуть по любой букве. Это:
    • подсветит соответствующую позицию на тепловой карте;
    • покажет подробную информацию о том, насколько каждый вариант буквы в этой позиции помогает или мешает.

Тепловая карта аллелей

  • Каждая горизонтальная строка — одна позиция в геноме (один «ген» в модели).
  • Длина цветных сегментов в строке показывает, какой процент популяции несёт буквы A, C, G, T в этой позиции.
  • Например, если в какой-то позиции:
    • A у 30% особей,
    • C у 20%,
    • G у 0%,
    • T у 50%,
    то строка будет состоять примерно из 30% красного сегмента (A), 20% жёлтого (C) и 50% зелёного (T), подряд.
  • Цвета:
    • A — красный, C — жёлтый, G — синий, T — зелёный.
  • В режиме полигенного признака для удобства эффекты всех четырёх букв в каждой позиции упорядочены так, что:
    • их вклад идёт по возрастанию: A ≤ C ≤ G ≤ T;
    • в этой конкретной позиции T всегда самый «плюсующий» вариант, а A — самый «минусующий»;
    • при этом численные значения эффекта (например, +2 см или −1 см) отличаются от позиции к позиции;
    • возможны случаи, когда все буквы дают одинаковый вклад (например, A = C = G = T = −2 см или = +2 см).
  • В режиме моногенного признака:
    • A всегда имеет фиксированный вклад 0 см;
    • значения для C, G и T случайно выбираются в диапазоне от −2 до +2 см и затем сортируются между собой так, что C ≤ G ≤ T;
    • поэтому A может оказаться как меньше, так и больше C, G или T: A не обязательно «самая минусующая» буква и не обязательно самая «плюсующая»;
    • возможны ситуации, когда C, G и T между собой равны (например, C = G = T = −1 см), но A при этом остаётся 0 см.
  • Если кликнуть по строке или перейти стрелками ↑/↓, в блоке ниже появится:
    • номер позиции;
    • для каждой буквы — её вклад в длину шеи (в сантиметрах) и её частота в популяции.
  • Важно: тепловая карта показывает средние частоты аллелей в популяции, а не конкретный геном отдельной особи.
  • На тепловой карте можно наблюдать динамику:
    • в позициях, где «плюсующие» аллели помогают приблизить длину шеи к 150 см, их цветные сегменты со временем занимают всё большую долю строки;
    • «минусующие» варианты, уводящие признак от оптимума, постепенно занимают всё меньшую долю.

Кнопки и ползунки

  • «Старт / Пауза» — запускает или останавливает эволюцию.
  • «1 шаг» — продвигает модель ровно на одно поколение вперёд.
  • «Сбросить» — полностью переинициализирует генетическую карту и создаёт новую случайную популяцию.
  • «Признак: Полигенный / Моногенный»:
    • режим можно менять только при сбросе (после смены режима популяция создаётся заново);
    • полигенный режим даёт много вариации с самого начала, моногенный — вводит её постепенно через мутации.
  • «Мутаций на поколение»:
    • задаёт ожидаемое число мутаций во всей популяции за одно поколение;
    • чем больше значение, тем быстрее появляются новые варианты генов и тем быстрее эволюция находит новые комбинации.
  • «Давление отбора (σ)»:
    • σ — ширина «горба» приспособленности вокруг оптимума;
    • маленькое σ → сильный отбор: особи, сильно отличающиеся от 150 см, почти не размножаются;
    • большое σ → слабый отбор: популяция допускает широкий разброс длин шеи;
    • чем меньше σ (больше давление отбора), тем сильнее различаются шансы на размножение у более и менее приспособленных особей и тем быстрее меняется длина шеи.
  • Часть параметров (число мутаций, давление отбора) можно менять прямо во время симуляции и сразу видеть, как меняется ход эволюции. Режим признака (полигенный/моногенный) меняется только при сбросе.

Что важно иметь в виду

  • Это игрушечная модель: один признак, упрощённый отбор, завышенные скорости мутаций и совсем маленькое число «генов» по сравнению с реальным организмом.
  • Большой разброс длины шеи в демке (широкий колокол, далёкие значения min и max) тоже связан с упрощением. Здесь признак задаётся всего 100 позициями, и вклад каждой буквы относительно крупный (до примерно ±2 см). В реальных полигенных признаках участвуют тысячи вариантов с куда меньшим индивидуальным эффектом. Увеличивать число «генов» или сильно уменьшать вклад каждого в этой демке невыгодно: модель стала бы тяжелее, а изменения длины шеи было бы хуже видно «на глаз».
  • Тем не менее, она иллюстрирует несколько ключевых идей:
    • как стабилизирующий отбор формирует колоколообразное распределение признака;
    • почему даже при отборе в популяции неизбежно остаются и «минусующие», и «плюсующие» аллели;
    • как меняются частоты генов (тепловая карта) и генотипы отдельных особей (список геномов) по мере эволюции.
Поколение: 0  |  средняя длина шеи: 0 см  |  мин: 0 см  |  макс: 0 см  |  σ: 0 см
Распределение длины шеи в текущем поколении
Динамика средней длины шеи
Линия — средняя длина шеи по поколениям. Пунктир — оптимум 150 см.
Топ-5 длинных и 5 коротких особей
Загружаем данные...
Распределение аллелей
Каждая строка — позиция генома; цвета показывают доли A/C/G/T в популяции. Кликните на строку, чтобы увидеть подробности.
Загружаем данные...