Мне был задан следующий вопрос:
Вы отправляетесь на неизвестный остров и находите популяцию слизняков странного цвета! При внимательном рассмотрении вы замечаете, что у 16% слизней сморщенные хвосты — самое ужасное состояние, которое вы решили назвать Yilunemia. Это состояние дает пораженным слизням 50% шансов выжить и размножиться. Это вегетативное рецессивное состояние, вызванное одним геном, и гетерозиготы не страдают.
Предполагая, что йилунемия не дает заметного эволюционного преимущества, сколько поколений должно пройти, чтобы доля слизней с болезнью йилунемии упала ниже 5%?
Возможные ответы:
Я попытался применить обычную формулу для частоты после выбора:
0,36 + 0,48 + 0,16 = 1
0,36 + 0,48 + 0,5 * 0,16 = 0,92
Разделение на 0,92 дает:
0,39 + 0,52 + 0,087 = 1
Если я продолжу это делать, после 3-го поколения частота состояния Yilunemia составит 0,045, что составляет менее 5%. Однако это не вариант ответа, поэтому я, должно быть, делаю что-то не так.
Какие-либо предложения?
Теория
Вы должны использовать уравнение отбора диплоидов (см. здесь ). Позволять быть частотой интересующего рецессивного аллеля, вы получаете
, где
Вы можете просто повторить это уравнение. Не забудьте пересчитать в каждом поколении по мере изменения частоты аллеля меняется и средняя приспособленность . Также не забываем, что мы ищем поколение, где частота заболевших особей ниже, чем , это поколение, где .
К сожалению, я не думаю, что это уравнение рекурсии имеет какое-либо общее решение. Это означало бы, что итерация - единственный способ получить.
Практика
Мне немного лень вычислять все вручную, поэтому вот короткий R-код, который сделает расчеты за нас.
frequencySickIndividuals = 0.16
p = sqrt(frequencyHomozygoteRecessiveMutants)
waa = 0.5
waA = 1
wAA = 1
for (generation in 0:10)
{
frequencySickIndividuals = p^2
cat(paste0("Generation ", generation, " frequency sick individuals = ", frequencySickIndividuals, "\n"))
p = (p^2 * waa + p*(1-p)*waA) / (p^2*waa + 2*p*(1-p)*waA + (1-p)^2*wAA)
}
Он выводит
Generation 0 frequency sick individuals = 0.16
Generation 1 frequency sick individuals = 0.120982986767486
Generation 2 frequency sick individuals = 0.0935350533786218
Generation 3 frequency sick individuals = 0.0738632061510922
Generation 4 frequency sick individuals = 0.0594638505565122
Generation 5 frequency sick individuals = 0.0487003101360286
Generation 6 frequency sick individuals = 0.0404940467744661
Generation 7 frequency sick individuals = 0.034123112395776
Generation 8 frequency sick individuals = 0.0290951856295452
Generation 9 frequency sick individuals = 0.0250680151553009
Generation 10 frequency sick individuals = 0.0217991643532054
Таким образом, на самом деле требуется 5 поколений, чтобы достичь частоты аллеля ниже, чем .
Источник информации о проблемах Харди-Вайнберга
Кстати, обратите внимание, что вам может быть интересно ознакомиться с учебным пособием по решению задач Харди-Вайнберга в посте « Решение задач Харди Вайнберга» .
ФеликсКот
Реми.б