Что здесь моделируется
- В популяции всегда 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 см). В реальных полигенных признаках участвуют тысячи вариантов с куда меньшим индивидуальным эффектом. Увеличивать число «генов» или сильно уменьшать вклад каждого в этой демке невыгодно: модель стала бы тяжелее, а изменения длины шеи было бы хуже видно «на глаз».
- Тем не менее, она иллюстрирует несколько ключевых идей:
- как стабилизирующий отбор формирует колоколообразное распределение признака;
- почему даже при отборе в популяции неизбежно остаются и «минусующие», и «плюсующие» аллели;
- как меняются частоты генов (тепловая карта) и генотипы отдельных особей (список геномов) по мере эволюции.