plakhov: (Default)
[personal profile] plakhov
Первый пост о том, как простые численные эксперименты позволяют лучше прочувствовать не совсем интуитивные особенности биологической эволюции.


Опрос показал, что предназначается он для "технарей", а не для биологов. Поэтому я буду со спокойной совестью подставлять под отдельные термины ссылки на Википедию, не боясь этим оскорбить ничье достоинство.

Кроме того, именно поэтому мы для начала рассмотрим случай сферического коня в вакууме, а большую часть сложности реального мира пока проигнорируем. Как известно, П. Л. Чебышев начал парижскую лекцию, посвященную математическим методам оптимальной раскройки ткани, словами "примем для простоты, что человеческое тело имеет форму шара". Так вот, я сейчас тоже несколько раз напишу "примем для простоты", и не нужно после этого выходить из зала, как те парижские портные. Эффект, который я хочу продемонстрировать, на самом деле не зависит от подобных предположений. Я могу утверждать это совершенно уверенно, так как изначально писал в расчете на биологов, и с этой целью сооружал намного более сложные модели. В них проявлялись по большому счету те же эффекты, пусть и более "биологичным" образом. И сейчас нам лишние подробности будут совершенно ни к чему.

Итак, пусть в некоторых джунглях живет себе популяция, состоящая из 16384 бабочек. На них охотятся птицы. Бабочки размножаются. Примем для простоты, что размер популяции бабочек стабилен (то есть ограничителем их численности являются не птицы, а какие-то иные факторы): в каждом поколении у нас по-прежнему остается 16384 бабочки.

Примем для простоты, что бабочки отличаются друг от друга только расцветкой и тем, на какие деревья они "любят" садиться. Пусть и то, и другое генетически детерминировано, а соответствующие гены сосредоточены в небольшом количестве локусов. Примем для простоты, что в каждом таком локусе в популяции существует всего два аллеля (иначе говоря, мы можем договориться о каком-нибудь коде так, чтобы вместо последовательности троек кодонов в каждом конкретном локусе можно было говорить всего об одном бите информации). Другими словами, мы будем считать, что генотип каждой бабочки (если точнее, все его значимые участки) могут быть заданы в виде небольшой последовательности нулей и единиц.

Симуляция будет происходить так. Птицы съедают случайную бабочку. Из популяции случайным образом выбирается еще пара, и производит на свет бабочку, заменяющую съеденную. Повторяем снова и снова. Когда такое происходит 16384 раза (то есть столько, сколько у нас в популяции всего бабочек), мы условно говорим, что "прошло поколение". Симуляция идет в течение некоторого числа поколений. Я скоро устану делать оговорки, но пока еще в силах отметить, что вообще-то "в реальной жизни" пара родителей должна быть разного пола, бабочки не появляются на свет мгновенно, далеко не по одной, и не половозрелыми, появление на свет бабочки никак не связано с насильственной смертью другой бабочки (в отличие от культовой игры Star Control II), в гибели бабочки могут быть виноваты далеко не только птицы, и тд и тп. Как вы уже, наверное, догадались, все это на самом деле не так уж важно.

Вероятность, с которой данная конкретная бабочка оказывается съеденной, зависит от ее генотипа: например, если бабочка полностью серенькая, и садится только на деревья того же цвета, то вероятность оказаться съеденной для нее становится немного меньше. Конкретная зависимость fitness-функции от фено-, а значит, и генотипа, будет разной в разных экспериментах, и об этом чуть позже.

Действительно нетривиальные упрощения, на которые, увы, придется пойти, касаются того, как именно наследуются гены, то есть, как именно генотип потомка зависит от генотипов родителей. Для начала, забудем о мутациях (речь пойдет о временных промежутках порядка сотни поколений, так что это не такая уж натяжка). "Но какая же эволюция без мутаций"? А вот такая, самая обыкновенная. Забудем о таких тонкостях, как наличие половых хромосом (можем, в конце концов, считать, что, по счастливой случайности, интересующие нас локусы все как один расположены на других хромосомах). Именно это и позволяет нам не делить бабочек на "мальчиков" и "девочек".

Теперь худшее преступление. Забудем о Менделе и о том, что кариотип состоит из пар (а у некоторых организмов - и большего количества) гомологичных хромосом. Забудем, соответственно, о доминантных и рецессивных генах, а тем более о кодоминировании и прочих специальных случаях. Ну, кто не понимает, о чем речь, тому забыть будет несложно; судя по типичному дизайну "генетических алгоритмов", к этой категории относится подавляющее большинство не-биологов, хотя о наследовании и рассказывают в десятом (кажется) классе. Преступление состоит в том, что такое упрощение, в отличие от всех предыдущих, уже является существенным: некоторые интересные эффекты (к счастью, не сегодняшний) на гаплоидных моделях продемонстрировать невозможно. Поэтому в следующей серии придется о законах Менделя все-таки вспомнить.

Даже с учетом всех этих "примем для простоты" механизм наследования все еще сильно зависит от того, как интересующие нас локусы разбросаны по хромосомам. Возможен практически непрерывный спектр вариантов. На одном его конце - случай, когда все локусы расположены на одной и той же хромосоме, причем рядом. В этом случае интересующие нас гены образуют "суперген": их последовательность при наследовании разрывается крайне редко. На уровне нашей модели это будет означать, что генотип "ребенка" с равной вероятностью совпадает или с генотипом "папы", или с генотипом "мамы", а "смешанных" последовательностей вообще не возникает. На другом конце спектра - случай, в котором все локусы расположены на разных хромосомах, и потому наследуются полностью независимо. На уровне нашей модели это значит, что каждый бит генотипа "ребенка" с равной вероятностью унаследован от "мамы" или у от "папы", причем случайные величины, определяющие для каждого бита, от кого именно он унаследован, независимы. Чтобы различие было контрастнее, моделировать мы будем именно эти два полярных случая (понимая, что обычно наблюдается некий промежуточный вариант).

Уф. Что происходит, надеюсь, понятно, теперь можно и картинки посмотреть. Надеюсь, вы простите мне "locuses" вместо "loci" и "inheritance" вместо более корректного "heredity" в подписях. Впредь обязуюсь.

Для разгона - первая симуляция без каких-либо сюрпризов. Задача эволюции максимально тривиальна: все деревья в нашем лесу серые, ген в каждом локусе заведует, скажем, окраской какой-то части тела бабочки (например, серая/желтоватая). Чем больше у бабочки серых частей тела, тем выше вероятность ее выживания в таком лесу. Все преимущества отдельных признаков аддитивны, отдельным генам не нужно никак "сотрудничать" друг с другом. Полностью серая бабочка имеет на 20% больше вероятности выжить, нежели полностью желтая. Всего интересующих нас локусов - шесть штук.

В графики пока что можно не всматриваться. Это независимое наследование признаков (по горизонтали здесь и далее - три разных прогона в одних и тех же условиях):


А это сцепленное наследование:


Как говорится, найдите три отличия. И там и там средняя приспособленность популяции (черный график) быстро растет, и за 100 поколений достигает значений, близких к максимально возможным. И в том, и в другом случае быстро появляются "идеальные бабочки", и их доля стремится к 100% (красный график). Все без неожиданностей. Собственно, если бы всегда все так происходило, не стоило бы и огород городить.

Усложним задачу. Теперь в лесу два вида деревьев: с серыми и с желтоватыми стволами. Птицы стали внимательнее. Бабочка имеет повышенные шансы на выживание всего в двух случаях: 1) она полностью серая, и садится на серые деревья, и 2) она полностью желтая, и садится на желтые деревья. И даже в этом случае она имеет всего на 10% менее высокую вероятность быть склеванной. Ген в первом локусе каким-то образом кодирует стремление бабочки садиться на желтые или на серые деревья (допущение, что это может зависеть всего от одного цистрона, может показаться немного фантастичным, но этологи, как я понимаю, никакой крамолы в нем не видят). Остальные гены, как и раньше, кодируют "раскраску" разных частей тела.

Независимое наследование признаков (у нас появился третий график: теперь синий и красный цвет - доли двух разновидностей "выработавших адаптацию" бабочек, серой и желтой; черный, как и раньше - средняя приспособленность популяции).

Как-то дела идут не очень. В первом запуске даже намека на адаптацию за 100 поколений не видно. Во втором и в третьем равновесие благодаря счастливой случайности сместилось в сторону бабочек одного из двух видов, и отбор начал поощрять сородичей, похожих на них. Можно предсказать, что еще поколений через 50-100 все бабочки станут одноцветными. Это именно та ситуация, о которой писал Докинз в книге "Расширенный фенотип". И именно тот способ, которым, как он показывал "на пальцах", может возникнуть признак, требующий согласованности в генах, в случае, когда они не объединены ни в какой "суперген". Адаптация эта получена довольно дорогой ценой: разнообразие генотипов в популяции полностью уничтожается. Это самая настоящая невосстановимая потеря информации.

Сцепленное наследование ("суперген").

Картина совершенно поменялась, не правда ли? К сотому поколению в популяции остаются только максимально приспособленные бабочки, причем примерно в равной пропорции, то есть информация из генофонда никуда не пропадает. Позже генетический дрейф возьмет свое, но в популяции из 214 бабочек это случится не скоро. Когда условия изменятся (например, тип растительности в данной местности тоже постепенно меняется), у бабочек останется некоторое "пространство для маневра".

От соотношения каких факторов (в рамках нашей модели) зависит такая резкая разница двух способов наследования? Прелесть таких быстрых численных методов состоит в том, что нет нужды строить матмодель или рассуждать "на пальцах". Можно просто покрутить параметры и посмотреть, что изменится.
Наилучшая вероятность спрятаться повышена до 20%, независимое наследование.

То же самое, сцепленное наследование.

Все осталось по-прежнему, изменился только масштаб времени: увеличение давления отбора вдвое и в том, и в другом случае также ускорило эволюцию вдвое (строго говоря, зависимость тут не линейная, а логарифмическая, но в окрестностях единицы это почти одно и то же).

Покрутим число локусов. Слева - независимое наследование, справа - сцепленное.
Восемь локусов, временная шкала расширена до 200 поколений для лучшего понимания перспективы:

Комментарии излишни.

Всего два локуса:

Даже в такой простой задаче независимое наследование заметно проигрывает

Так что, сцепленное наследование всегда эффективнее независимого (или настолько же эффективно в самом простом случае, когда влияние отдельных генов полностью аддитивно)? Странновато как-то получается. Конечно же, нет, и вот почему:

Аддитивное влияние генов, максимальная вероятность спрятаться 20%, но число локусов резко увеличилось, теперь их аж 20.

Понадобилось целых 500 поколений, но независимое наследование справилось с этой задачей, число "идеальных бабочек" в популяции растет и приближается к 100%

А теперь сцепленное наследование:

Эволюция "затыкается", не достигая предела приспособленности. "Идеальных бабочек" не появляется. Для того, чтобы понять, почему так происходит, вообще-то, никакая симуляция не нужна. Новые комбинации генов ведь не появятся из ниоткуда: рекомбинацию мы "запретили", мутации тоже. Бабочек у нас всего 214, и вероятность того, что в изначальной популяции попадется одна "идеальная" комбинация из 220 возможных, очень мала; и даже если такая бабочка появилась, ее могут случайно съесть в первом же поколении. Менее тривиален тот факт, что до тех пор, пока эволюция не "заткнется", она идет с той же скоростью, что и в случае независимого наследования.

Теперь словами:
Если адаптация, которую "требуется выработать", требует согласованной работы многих генов, то в условиях сцепленного наследования она вырабатывается намного быстрее, чем в условиях независимого наследования, и без потерь генетического разнообразия. Если приспособленность состоит из аддитивных вкладов каждого гена по отдельности, то скорость эволюции до некоторого момента не зависит от типа наследования. Но при этом сцепленное наследование имеет "потолок качества", который тем ниже (по сравнению с "качеством", достигаемым при независимом наследовании), чем большее число различных генов вносит свой аддитивный вклад в итоговую приспособленность.

Сравнение выше может выглядеть черезчур адаптационистским: ну да, скорость эволюции супергена выше, а информация не теряется. Ну и что? Эволюция ведь "не заботится" о таких эфемерных свойствах. Она никуда не направлена; из того факта, что "такая-то адаптация была бы хороша для популяции/вида/экосистемы/whatever" не следует автоматически, что она обязана возникнуть, и уж тем более не следует, что она обязана это сделать как можно быстрее. Наше сравнение неявно подсказывает, что взаимосвязанные признаки будут кодироваться сцепленными генами, а несвязанные - независимо наследуемыми, потому что так эффективнее. Чтобы придать этому рассуждению строгость, нужно показать, каким образом может сработать это "потому что".

Такой способ действительно есть, и даже не один. Представим себе, что в нашей местности сосуществуют две расы бабочек, изначально не отличающиеся вообще ничем, кроме характера наследования. Один и тот же размер популяции, одна и та же fitness-функция, и так далее. Друг с другом они не скрещиваются. С точки зрения птиц, на вкус бабочки одинаковы. Пусть они конкурируют за некоторый ограничивающий их численность ресурс таким образом, что в сумме бабочек двух рас всегда 16384. Что будет происходить?

Слева - случай сложной fitness-функции (быстрее эволюционируют те, у которых наследование признаков сцепленное). Справа - случай простой fitness-функции и многочисленных локусов (рекомбинация становится важной).

Различий в интерпретации этих графиков, как мне кажется, возникать не должно. Побеждают именно те, кто и должен был победить, и не "по очкам", а чистым нокаутом.

А вот менее кровожадный эксперимент, иллюстрирующий второй, не такой очевидный, способ действия нашего "потому что". Предположим, у бабочек есть сразу два возможных способа прятаться от птиц, и им "все равно", какой из них развить: если бабочка обладает любой из двух адаптаций, она повышает свои шансы выжить на 10%, но обладание обеими ей ничего сверх этого не дает. Пусть гены, детерминирующие первую группу признаков, наследуются независимо, а гены, детерминирующие вторую, сцеплены.

Здесь на графиках будет изображено вот что: красный - среднее умение прятаться первым способом, синий - среднее умение прятаться вторым способом

А вот это уже очень чудной результат. В первом случае (сложная fitness-функция) все в порядке, победили те, кто и должен был победить. Но во втором более интересная "красная" адаптация так и не была выработана: помешал более простой "синий" способ. Это случайность: иногда "побеждает" и "красный" способ. Хотя и реже.

Тем не менее: в подобных численных экспериментах не получается показать, почему в ходе эволюции вообще закрепилось независимое наследование некоторых генов (хуже того, вообще наличие двух полов), если не привлекать отбор на уровне не скрещивающихся видов. Вот так.

Домашнее задание (оно очень легкое, но свой вариант решения с небольшим комментарием я все-таки покажу чуть позже):
1. Придумать механизм наследования, который во всех вышеописанных ситуациях существенно не проигрывает (ни в скорости, ни в качестве) ни полностью независимому, ни полностью сцепленному наследованию.
2. Придумать параметры задачи (fitness-функцию, число локусов), для которых и полностью независимое, и полностью сцепленное наследование не позволяют выработать желаемую адаптацию, а какой-то промежуточный вариант быстро справляется с задачей. Интереснее всего, конечно, "биологичные" промежуточные варианты, то есть имеющие вид "гены разбиты на подмножества, наследование внутри подмножеств сцепленное, а подмножества наследуются независимо"

Напоследок. Кому-нибудь нужно выложить простенький tool, при помощи которого я получал веселые картинки, и скрипты к нему? Или подождете online-варианта на Silverlight?

Жду комментариев, охотно отвечаю на вопросы.

Re: Истина где-то рядом

Date: 2009-07-16 07:30 am (UTC)
From: [identity profile] plakhov.livejournal.com
Про "тезис супергена" ответил выше, вот: http://plakhov.livejournal.com/103042.html?thread=1673602#t1673602
В "вырожденном" сценарии, когда бабочка либо идеальна, либо нет, а локусы полностью независимы...
При невырожденных сценариях получаются аналогичные результаты. Я проверял в случае, когда получаем +MAX_FITNESS/(NUM_LOCI-1) за каждый локус, начиная со второго ("локусы расцветки"), который совпадает с первым ("локус поведения"). Эффекты те же.
Для 8 локусов это 1/16 - уже мало, рекомбинация слишком быстрая, и 10% прибавки к выживаемости не хватает для закрепления признака.
Это не так. Признак в итоге все равно закрепляется, я проверял. Просто поколений должно пройти гораздо больше (зависимость от числа локусов я не строил пока, правда). Это все к вопросу о "рассуждениях на пальцах" и интуитивности, кстати говоря.

Соответственно:
- Гипотезу 1 проверял, она неверна
- Гипотезы 2 и 3 буду проверять

(P.S. ждать - не проблема, 100 поколений - это пара секунд)

Profile

plakhov: (Default)
plakhov

August 2017

S M T W T F S
  12345
6789101112
13141516171819
20212223242526
2728293031  

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 17th, 2025 02:19 pm
Powered by Dreamwidth Studios