Снижение доли фенотипа в популяции Харди Вайнберга путем селекции

Мне был задан следующий вопрос:

Вы отправляетесь на неизвестный остров и находите популяцию слизняков странного цвета! При внимательном рассмотрении вы замечаете, что у 16% слизней сморщенные хвосты — самое ужасное состояние, которое вы решили назвать Yilunemia. Это состояние дает пораженным слизням 50% шансов выжить и размножиться. Это вегетативное рецессивное состояние, вызванное одним геном, и гетерозиготы не страдают.

Предполагая, что йилунемия не дает заметного эволюционного преимущества, сколько поколений должно пройти, чтобы доля слизней с болезнью йилунемии упала ниже 5%?

Возможные ответы:

  • 5
  • 6
  • 7
  • 8
  • 9

Я попытался применить обычную формулу для частоты после выбора:

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%. Однако это не вариант ответа, поэтому я, должно быть, делаю что-то не так.

Какие-либо предложения?

Ответы (1)

Теория

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

п "=" п 2 Вт а а + п ( 1 п ) Вт а А Вт ¯

, где

Вт ¯ "=" п 2 Вт а а + 2 п ( 1 п ) Вт а А + ( 1 п ) 2 Вт А А

Вы можете просто повторить это уравнение. Не забудьте пересчитать Вт ¯ в каждом поколении по мере изменения частоты аллеля меняется и средняя приспособленность Вт ¯ . Также не забываем, что мы ищем поколение, где частота заболевших особей ниже, чем 0,05 , это поколение, где п < 0,05 .

К сожалению, я не думаю, что это уравнение рекурсии имеет какое-либо общее решение. Это означало бы, что итерация - единственный способ получить.

Практика

Мне немного лень вычислять все вручную, поэтому вот короткий 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 поколений, чтобы достичь частоты аллеля ниже, чем 0,05 .

Источник информации о проблемах Харди-Вайнберга

Кстати, обратите внимание, что вам может быть интересно ознакомиться с учебным пособием по решению задач Харди-Вайнберга в посте « Решение задач Харди Вайнберга» .

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