SexOnR–13. Добір за двома ознаками у гермафродитів, з сексом та без нього

 

«Секс на R»
Онлайн-матеріали до курсу «Еволюція сексу і статевих стратегій: імітаційне моделювання на R»

Д.А. Шабанов

Секс на R–09: Опис проблеми III Чому статей саме дві? Секс на R–13:
Добір за двома ознаками у гермафродитів (з сексом та без нього)
Секс на R–14
Секс на R-11: Моделювання добору за однією спадковою ознакою Секс на R–15

 

13.1 Постановка задачі

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

Нам будуть необхідні відповідні позначення. Тут можливо обрати безліч різних варіантів, але у будь-якому разі слід зупинитися на якомусь певному варіанті.

Визначимо, що ми розглядаємо два гени:

  • перший, ген A з домінантним алелем 1 (A) або 2 (a);

  • другий, B з домінантним алелем 3 (B) або 4 (b).

Цифри перед точкою (ви ж пам’ятаєте, що у R десятковий роздільник — це завжди точка, а не кома?) — це генотип за першим геном. Алелі першого гену — 1 та 2. Можливо 3 варіанти (12 та 21 для нас не відрізняються нічим).

Цифри після точки — генотип за другим геном, з алелями 3 та 4. Три варіанти за першим геном, три — за другим, усього — дев’ять.

У такому разі можливі дев’ять генотипів: 11.33, 11.34, 11.44, 12.33, 12.34, 12.44, 22.33, 22.34, 22.44

Які процеси цікаво спостерігати на такій моделі?

  • Вплив взаємодії генів на процеси в популяції;

  • Вплив наявності або відсутності сексу на процеси в популяції та на швидкість вироблення пристосувань.

Взаємодії маж генами немає, якщо за кожним геном різниця між алелями впливає на ймовірність успіху однаковим чином. Припустимо, на користь фенотипу 2 у порівнянні з фенотипом 1 діє добір інтенсивності s=0.1. Це означає, що особини з генотипом 11. (і 12. у разі повного домінування алелю 1) мають ймовірність загинути 10% у тих умовах, коли особини з генотипом 22. будуть зберігатися).

Припустимо, що за другим геном ситуація аналогічна. На користь фенотипу 4 у порівнянні з фенотипом 3 діє добір інтенсивності s=0.1. Це означає, що особини з генотипом .33 (і .34 у разі повного домінування алелю 3) мають ймовірність загинути 10% у тих умовах, коли особини з генотипом .44 будуть зберігатися).

Дещо спрощуючи, можна сказати, що у такому разі після того, як усі особини 22.44 виживатимуть, з-поміж особин 11.33, 12.33, 11.34 та 12.34 (носіїв обох несприятливих ознак, має лишитися близько 80% (точніше, 81% внаслідок двох хвиль вилучення по 10% особин), а з-поміж особин 22.33, 22.34, 11.44 та 12.44 (носії однієї несприятливої ознаки) залишиться по 90%.

Вплив на ймовірність виживання за кожним геном у цьому прикладі не залежить від стану іншого гену, тобто добір йде за двома генами ОКРЕМО.

Розглянемо іншу ситуацію. Вісім генотипів, що не мають потрібного сполучення ознак, проріджуються добором; особини 11.33, 11.34, 11.44, 12.33, 12.34, 12.44, 22.33 та 22.34 зазнають впливу 10% смертності, і лише особини 22.44 зберігаються усі.

У такому випадку добір йде за двома генами ВОДНОЧАС. В нашій моделі ми будемо розглядати саме такий випадок.

13.2 Генерація файлу з результатами схрещувань

У минулому розділі ми працювали з трьома генотипами та 6 можливими результатами схрещувань. Їх результати ми вказували прямо у тексті скрипту моделі. У цій моделі кількість генотипів збільшилася: їх вже дев’ять (а якщо розглянути ситуацію з трьома генами — їх стане двадцять сім!). Уявіть собі, як це може перевантажити скрипт!

Оптимальним здається таке рішення: за допомогою окремого скрипту створити окрему матрицю з переліком усіх комбінацій генотипів при схрещуваннях, де зазначити усіх потомків. Зберегти цю матрицю в окремий файл та завантажувати її у скрипт власне моделі.

Створимо такий скрипт.

Спочатку треба перебрати усі можливі комбінації дев’яти генотипів (таких комбінацій буде 81). В першому векторі дев’ять разів повторимо дев’ять генотипів, зберігаючи їх порядок; у другому векторі спочатку дев’ять разів повторимо перший, потім — дев’ять разів другий… Так ми переберемо усі можливі сполучення. Далі, щоб встановити, які генотипи будуть схрещуватися у кожній можливій парі, просто складемо коди цих генотипів.

# СТВОРЕННЯ МАТРИЦІ З КОМБІНАЦІЯМИ ГЕНОТИПІВ ТА ПОТОМСТВОМ ВІД ЇХ СХРЕЩУВАНЬ: МОДЕЛЬ ДОБОРУ ЗА ДВОМА ОЗНАКАМИ В ПОПУЛЯЦІЇ ДИПЛОЇДНИХ МОНОЦИКЛІЧНИХ ГЕРМАФРОДИТІВ З СЕКСОМ ТА БЕЗ НЬОГО
# setwd("~/!_Courses/Sex_on_R") # Робоча директорія (лише на комп'ютері Д.Ш.!!!)
rm(list = ls()) # Очищення раніше збережених об'єктів в Environment
# ПОЗНАЧЕННЯ: Два гени. Перший, ген A з домінантним алелем 1 (A) або 2 (a), і другий, B з домінантним алелем 3 (B) або 4 (b). Алелі гена A записуються до точки, гена B - після. Дев'ять генотипів: 11.33, 11.34, 11.44, 12.33, 12.34, 12.44, 22.33, 22.34, 22.44
# Утворення усіх можливих комбінацій генотипів:
First <- rep(c(11.33, 11.34, 11.44, 12.33, 12.34, 12.44, 22.33, 22.34, 22.44), 9)
Second <- sort(First)
All_Pairs <- First + Second
All_Pairs
##  [1] 22.66 22.67 22.77 23.66 23.67 23.77 33.66 33.67 33.77 22.67 22.68 22.78
## [13] 23.67 23.68 23.78 33.67 33.68 33.78 22.77 22.78 22.88 23.77 23.78 23.88
## [25] 33.77 33.78 33.88 23.66 23.67 23.77 24.66 24.67 24.77 34.66 34.67 34.77
## [37] 23.67 23.68 23.78 24.67 24.68 24.78 34.67 34.68 34.78 23.77 23.78 23.88
## [49] 24.77 24.78 24.88 34.77 34.78 34.88 33.66 33.67 33.77 34.66 34.67 34.77
## [61] 44.66 44.67 44.77 33.67 33.68 33.78 34.67 34.68 34.78 44.67 44.68 44.78
## [73] 33.77 33.78 33.88 34.77 34.78 34.88 44.77 44.78 44.88

Цей перелік надлишковий; багато кодів повторюються. Залишимо в ньому лише унікальні значення, причому для простоти вишикуємо їх у порядку зростання.

# Лишаються тільки унікальні значення, розташовані у порядку зростання:
Pairs <- sort(unique(All_Pairs))
Pairs
##  [1] 22.66 22.67 22.68 22.77 22.78 22.88 23.66 23.67 23.68 23.77 23.78 23.88
## [13] 24.66 24.67 24.68 24.77 24.78 24.88 33.66 33.67 33.68 33.77 33.77 33.78
## [25] 33.88 34.66 34.67 34.68 34.77 34.77 34.78 34.88 44.66 44.67 44.68 44.77
## [37] 44.78 44.88

Лишилося 38 кодів пар.

Зверніть увагу: деякі коди відповідають більш ніж одній парі батьківських генотипів (навіть без врахування їх порядку).
11.33 + 12.44 = 23.77;
11.44 + 12.33 = 23.77.

Чи є це недоліком нашого способу розрахунків? Ні. Річ у тім, що склад потомків буде однаковим в обох пар! Для схрещування важливо, які алелі комбінуються, але для розрахунку сполучень алелей за різними генами у загальному випадку неважливо, які з них отримані від одного з батьків, а які — від іншого.

Створимо матрицю, в який ми будемо розраховувати склад потомства залежно від сум кодів генотипів батьків.

# Створення файлу для перебору комбінацій 
Comb_cols <- c("Pair", "A", "11", "12", "22", "B", "_.33", "_.34", "_.44", "11.33", "11.34", "11.44", "12.33", "12.34", "12.44", "22.33", "22.34", "22.44", "S")
Cmb <- matrix(NA, nrow = length(Pairs), ncol = length(Comb_cols))
colnames(Cmb) = Comb_cols
Cmb[ , "Pair"] <- Pairs
# Сполучення "генотипів" пар за генами A та B та переліки їх варіантів:
Cmb[ , "A"] <- trunc(Cmb[ , "Pair"])
Cmb[ , "B"] <- round(Cmb[ , "Pair"] - trunc(Cmb[ , "Pair"]), 2)
a <- unique(Cmb[ , "A"])
b <- unique(Cmb[ , "B"])
a # перелік варіантів сум кодів генотипів батьків за геном A
## [1] 22 23 24 33 34 44
b # перелік варіантів сум кодів генотипів батьків за геном B
## [1] 0.66 0.67 0.68 0.77 0.78 0.88

Автор цього коду чимало сил витратив на формування переліку b. Річ у тім, що в деяких випадках в розрахунках дрібної частини з’являються якісь залишки у 15-му знаку після десяткового роздільника. Одне значення 0.66 може відрізнятися від іншого 0.66 саме цим “хвостом” у 15-му десятковому знаку. Можна намагатися встановити, чому так виходить, і організовувати розрахунки так, щоб цієї різниці не виникало, а можна просто округлити до двох знаків. Тут обрано другий варіант.

Тепер можна встановити, якими будуть варіанти потомків за кожним з двох генів.

# Цикл, у якому визначаються потомки за кожною парою:
for (i in 1:length(Pairs)) { # Початок циклу
  WayA <- which(a == Cmb[i, "A"])
  switch(WayA, # Залежно від значення суми генотипів батьків за геном A обирається розподіл потомства за цим геном
         {Cmb[i, "11"] <- 1;      Cmb[i, "12"] <- 0;      Cmb[i, "22"] <- 0},
         {Cmb[i, "11"] <- 0.5;    Cmb[i, "12"] <- 0.5;    Cmb[i, "22"] <- 0},
         {Cmb[i, "11"] <- 0.25;   Cmb[i, "12"] <- 0.5;    Cmb[i, "22"] <- 0.25},
         {Cmb[i, "11"] <- 0;      Cmb[i, "12"] <- 1;      Cmb[i, "22"] <- 0},
         {Cmb[i, "11"] <- 0;      Cmb[i, "12"] <- 0.5;    Cmb[i, "22"] <- 0.5},
         {Cmb[i, "11"] <- 0;      Cmb[i, "12"] <- 0;      Cmb[i, "22"] <- 1})
  WayB <- which(b == Cmb[i, "B"])
  switch(WayB, # Залежно від значення суми генотипів батьків за геном B обирається розподіл потомства за цим геном
         {Cmb[i, "_.33"] <- 1;     Cmb[i, "_.34"] <- 0;    Cmb[i, "_.44"] <- 0},
         {Cmb[i, "_.33"] <- 0.5;   Cmb[i, "_.34"] <- 0.5;  Cmb[i, "_.44"] <- 0},
         {Cmb[i, "_.33"] <- 0.25;  Cmb[i, "_.34"] <- 0.5;  Cmb[i, "_.44"] <- 0.25},
         {Cmb[i, "_.33"] <- 0;     Cmb[i, "_.34"] <- 1;    Cmb[i, "_.44"] <- 0},
         {Cmb[i, "_.33"] <- 0;     Cmb[i, "_.34"] <- 0.5;  Cmb[i, "_.44"] <- 0.5},
         {Cmb[i, "_.33"] <- 0;     Cmb[i, "_.34"] <- 0;    Cmb[i, "_.44"] <- 1})
                            } # Кінець циклу
Cmb
##        Pair  A   11  12   22    B _.33 _.34 _.44 11.33 11.34 11.44 12.33 12.34
##  [1,] 22.66 22 1.00 0.0 0.00 0.66 1.00  0.0 0.00    NA    NA    NA    NA    NA
##  [2,] 22.67 22 1.00 0.0 0.00 0.67 0.50  0.5 0.00    NA    NA    NA    NA    NA
##  [3,] 22.68 22 1.00 0.0 0.00 0.68 0.25  0.5 0.25    NA    NA    NA    NA    NA
##  [4,] 22.77 22 1.00 0.0 0.00 0.77 0.00  1.0 0.00    NA    NA    NA    NA    NA
##  [5,] 22.78 22 1.00 0.0 0.00 0.78 0.00  0.5 0.50    NA    NA    NA    NA    NA
##  [6,] 22.88 22 1.00 0.0 0.00 0.88 0.00  0.0 1.00    NA    NA    NA    NA    NA
##  [7,] 23.66 23 0.50 0.5 0.00 0.66 1.00  0.0 0.00    NA    NA    NA    NA    NA
##  [8,] 23.67 23 0.50 0.5 0.00 0.67 0.50  0.5 0.00    NA    NA    NA    NA    NA
##  [9,] 23.68 23 0.50 0.5 0.00 0.68 0.25  0.5 0.25    NA    NA    NA    NA    NA
## [10,] 23.77 23 0.50 0.5 0.00 0.77 0.00  1.0 0.00    NA    NA    NA    NA    NA
## [11,] 23.78 23 0.50 0.5 0.00 0.78 0.00  0.5 0.50    NA    NA    NA    NA    NA
## [12,] 23.88 23 0.50 0.5 0.00 0.88 0.00  0.0 1.00    NA    NA    NA    NA    NA
## [13,] 24.66 24 0.25 0.5 0.25 0.66 1.00  0.0 0.00    NA    NA    NA    NA    NA
## [14,] 24.67 24 0.25 0.5 0.25 0.67 0.50  0.5 0.00    NA    NA    NA    NA    NA
## [15,] 24.68 24 0.25 0.5 0.25 0.68 0.25  0.5 0.25    NA    NA    NA    NA    NA
## [16,] 24.77 24 0.25 0.5 0.25 0.77 0.00  1.0 0.00    NA    NA    NA    NA    NA
## [17,] 24.78 24 0.25 0.5 0.25 0.78 0.00  0.5 0.50    NA    NA    NA    NA    NA
## [18,] 24.88 24 0.25 0.5 0.25 0.88 0.00  0.0 1.00    NA    NA    NA    NA    NA
## [19,] 33.66 33 0.00 1.0 0.00 0.66 1.00  0.0 0.00    NA    NA    NA    NA    NA
## [20,] 33.67 33 0.00 1.0 0.00 0.67 0.50  0.5 0.00    NA    NA    NA    NA    NA
## [21,] 33.68 33 0.00 1.0 0.00 0.68 0.25  0.5 0.25    NA    NA    NA    NA    NA
## [22,] 33.77 33 0.00 1.0 0.00 0.77 0.00  1.0 0.00    NA    NA    NA    NA    NA
## [23,] 33.77 33 0.00 1.0 0.00 0.77 0.00  1.0 0.00    NA    NA    NA    NA    NA
## [24,] 33.78 33 0.00 1.0 0.00 0.78 0.00  0.5 0.50    NA    NA    NA    NA    NA
## [25,] 33.88 33 0.00 1.0 0.00 0.88 0.00  0.0 1.00    NA    NA    NA    NA    NA
## [26,] 34.66 34 0.00 0.5 0.50 0.66 1.00  0.0 0.00    NA    NA    NA    NA    NA
## [27,] 34.67 34 0.00 0.5 0.50 0.67 0.50  0.5 0.00    NA    NA    NA    NA    NA
## [28,] 34.68 34 0.00 0.5 0.50 0.68 0.25  0.5 0.25    NA    NA    NA    NA    NA
## [29,] 34.77 34 0.00 0.5 0.50 0.77 0.00  1.0 0.00    NA    NA    NA    NA    NA
## [30,] 34.77 34 0.00 0.5 0.50 0.77 0.00  1.0 0.00    NA    NA    NA    NA    NA
## [31,] 34.78 34 0.00 0.5 0.50 0.78 0.00  0.5 0.50    NA    NA    NA    NA    NA
## [32,] 34.88 34 0.00 0.5 0.50 0.88 0.00  0.0 1.00    NA    NA    NA    NA    NA
## [33,] 44.66 44 0.00 0.0 1.00 0.66 1.00  0.0 0.00    NA    NA    NA    NA    NA
## [34,] 44.67 44 0.00 0.0 1.00 0.67 0.50  0.5 0.00    NA    NA    NA    NA    NA
## [35,] 44.68 44 0.00 0.0 1.00 0.68 0.25  0.5 0.25    NA    NA    NA    NA    NA
## [36,] 44.77 44 0.00 0.0 1.00 0.77 0.00  1.0 0.00    NA    NA    NA    NA    NA
## [37,] 44.78 44 0.00 0.0 1.00 0.78 0.00  0.5 0.50    NA    NA    NA    NA    NA
## [38,] 44.88 44 0.00 0.0 1.00 0.88 0.00  0.0 1.00    NA    NA    NA    NA    NA
##       12.44 22.33 22.34 22.44  S
##  [1,]    NA    NA    NA    NA NA
##  [2,]    NA    NA    NA    NA NA
##  [3,]    NA    NA    NA    NA NA
##  [4,]    NA    NA    NA    NA NA
##  [5,]    NA    NA    NA    NA NA
##  [6,]    NA    NA    NA    NA NA
##  [7,]    NA    NA    NA    NA NA
##  [8,]    NA    NA    NA    NA NA
##  [9,]    NA    NA    NA    NA NA
## [10,]    NA    NA    NA    NA NA
## [11,]    NA    NA    NA    NA NA
## [12,]    NA    NA    NA    NA NA
## [13,]    NA    NA    NA    NA NA
## [14,]    NA    NA    NA    NA NA
## [15,]    NA    NA    NA    NA NA
## [16,]    NA    NA    NA    NA NA
## [17,]    NA    NA    NA    NA NA
## [18,]    NA    NA    NA    NA NA
## [19,]    NA    NA    NA    NA NA
## [20,]    NA    NA    NA    NA NA
## [21,]    NA    NA    NA    NA NA
## [22,]    NA    NA    NA    NA NA
## [23,]    NA    NA    NA    NA NA
## [24,]    NA    NA    NA    NA NA
## [25,]    NA    NA    NA    NA NA
## [26,]    NA    NA    NA    NA NA
## [27,]    NA    NA    NA    NA NA
## [28,]    NA    NA    NA    NA NA
## [29,]    NA    NA    NA    NA NA
## [30,]    NA    NA    NA    NA NA
## [31,]    NA    NA    NA    NA NA
## [32,]    NA    NA    NA    NA NA
## [33,]    NA    NA    NA    NA NA
## [34,]    NA    NA    NA    NA NA
## [35,]    NA    NA    NA    NA NA
## [36,]    NA    NA    NA    NA NA
## [37,]    NA    NA    NA    NA NA
## [38,]    NA    NA    NA    NA NA

Тепер, коли відомо, які частки потомства отримують які алелі кожного гену, можна остаточно встановити генотипи потомства. Для перевірки, просумуємо усі частки кожного генотипу; якщо ніде нема помилки, усюди мають бути одиниці.

# Розрахунки часток потомства за кожним генотипом
Cmb[ , "11.33"] <- Cmb[ , "11"] * Cmb[ , "_.33"]
Cmb[ , "11.34"] <- Cmb[ , "11"] * Cmb[ , "_.34"]
Cmb[ , "11.44"] <- Cmb[ , "11"] * Cmb[ , "_.44"]
Cmb[ , "12.33"] <- Cmb[ , "12"] * Cmb[ , "_.33"]
Cmb[ , "12.34"] <- Cmb[ , "12"] * Cmb[ , "_.34"]
Cmb[ , "12.44"] <- Cmb[ , "12"] * Cmb[ , "_.44"]
Cmb[ , "22.33"] <- Cmb[ , "22"] * Cmb[ , "_.33"]
Cmb[ , "22.34"] <- Cmb[ , "22"] * Cmb[ , "_.34"]
Cmb[ , "22.44"] <- Cmb[ , "22"] * Cmb[ , "_.44"]
# Перевірка того, що сума часток різних генотипів потомства дорівнює одиниці
Cmb[ , "S"] <- Cmb[ , "11.33"] + Cmb[ , "11.34"] + Cmb[ , "11.44"] + Cmb[ , "12.33"] + Cmb[ , "12.34"] + Cmb[ , "12.44"] + Cmb[ , "22.33"] + Cmb[ , "22.34"] + Cmb[ , "22.44"]
Cmb
##        Pair  A   11  12   22    B _.33 _.34 _.44  11.33 11.34  11.44 12.33
##  [1,] 22.66 22 1.00 0.0 0.00 0.66 1.00  0.0 0.00 1.0000 0.000 0.0000 0.000
##  [2,] 22.67 22 1.00 0.0 0.00 0.67 0.50  0.5 0.00 0.5000 0.500 0.0000 0.000
##  [3,] 22.68 22 1.00 0.0 0.00 0.68 0.25  0.5 0.25 0.2500 0.500 0.2500 0.000
##  [4,] 22.77 22 1.00 0.0 0.00 0.77 0.00  1.0 0.00 0.0000 1.000 0.0000 0.000
##  [5,] 22.78 22 1.00 0.0 0.00 0.78 0.00  0.5 0.50 0.0000 0.500 0.5000 0.000
##  [6,] 22.88 22 1.00 0.0 0.00 0.88 0.00  0.0 1.00 0.0000 0.000 1.0000 0.000
##  [7,] 23.66 23 0.50 0.5 0.00 0.66 1.00  0.0 0.00 0.5000 0.000 0.0000 0.500
##  [8,] 23.67 23 0.50 0.5 0.00 0.67 0.50  0.5 0.00 0.2500 0.250 0.0000 0.250
##  [9,] 23.68 23 0.50 0.5 0.00 0.68 0.25  0.5 0.25 0.1250 0.250 0.1250 0.125
## [10,] 23.77 23 0.50 0.5 0.00 0.77 0.00  1.0 0.00 0.0000 0.500 0.0000 0.000
## [11,] 23.78 23 0.50 0.5 0.00 0.78 0.00  0.5 0.50 0.0000 0.250 0.2500 0.000
## [12,] 23.88 23 0.50 0.5 0.00 0.88 0.00  0.0 1.00 0.0000 0.000 0.5000 0.000
## [13,] 24.66 24 0.25 0.5 0.25 0.66 1.00  0.0 0.00 0.2500 0.000 0.0000 0.500
## [14,] 24.67 24 0.25 0.5 0.25 0.67 0.50  0.5 0.00 0.1250 0.125 0.0000 0.250
## [15,] 24.68 24 0.25 0.5 0.25 0.68 0.25  0.5 0.25 0.0625 0.125 0.0625 0.125
## [16,] 24.77 24 0.25 0.5 0.25 0.77 0.00  1.0 0.00 0.0000 0.250 0.0000 0.000
## [17,] 24.78 24 0.25 0.5 0.25 0.78 0.00  0.5 0.50 0.0000 0.125 0.1250 0.000
## [18,] 24.88 24 0.25 0.5 0.25 0.88 0.00  0.0 1.00 0.0000 0.000 0.2500 0.000
## [19,] 33.66 33 0.00 1.0 0.00 0.66 1.00  0.0 0.00 0.0000 0.000 0.0000 1.000
## [20,] 33.67 33 0.00 1.0 0.00 0.67 0.50  0.5 0.00 0.0000 0.000 0.0000 0.500
## [21,] 33.68 33 0.00 1.0 0.00 0.68 0.25  0.5 0.25 0.0000 0.000 0.0000 0.250
## [22,] 33.77 33 0.00 1.0 0.00 0.77 0.00  1.0 0.00 0.0000 0.000 0.0000 0.000
## [23,] 33.77 33 0.00 1.0 0.00 0.77 0.00  1.0 0.00 0.0000 0.000 0.0000 0.000
## [24,] 33.78 33 0.00 1.0 0.00 0.78 0.00  0.5 0.50 0.0000 0.000 0.0000 0.000
## [25,] 33.88 33 0.00 1.0 0.00 0.88 0.00  0.0 1.00 0.0000 0.000 0.0000 0.000
## [26,] 34.66 34 0.00 0.5 0.50 0.66 1.00  0.0 0.00 0.0000 0.000 0.0000 0.500
## [27,] 34.67 34 0.00 0.5 0.50 0.67 0.50  0.5 0.00 0.0000 0.000 0.0000 0.250
## [28,] 34.68 34 0.00 0.5 0.50 0.68 0.25  0.5 0.25 0.0000 0.000 0.0000 0.125
## [29,] 34.77 34 0.00 0.5 0.50 0.77 0.00  1.0 0.00 0.0000 0.000 0.0000 0.000
## [30,] 34.77 34 0.00 0.5 0.50 0.77 0.00  1.0 0.00 0.0000 0.000 0.0000 0.000
## [31,] 34.78 34 0.00 0.5 0.50 0.78 0.00  0.5 0.50 0.0000 0.000 0.0000 0.000
## [32,] 34.88 34 0.00 0.5 0.50 0.88 0.00  0.0 1.00 0.0000 0.000 0.0000 0.000
## [33,] 44.66 44 0.00 0.0 1.00 0.66 1.00  0.0 0.00 0.0000 0.000 0.0000 0.000
## [34,] 44.67 44 0.00 0.0 1.00 0.67 0.50  0.5 0.00 0.0000 0.000 0.0000 0.000
## [35,] 44.68 44 0.00 0.0 1.00 0.68 0.25  0.5 0.25 0.0000 0.000 0.0000 0.000
## [36,] 44.77 44 0.00 0.0 1.00 0.77 0.00  1.0 0.00 0.0000 0.000 0.0000 0.000
## [37,] 44.78 44 0.00 0.0 1.00 0.78 0.00  0.5 0.50 0.0000 0.000 0.0000 0.000
## [38,] 44.88 44 0.00 0.0 1.00 0.88 0.00  0.0 1.00 0.0000 0.000 0.0000 0.000
##       12.34 12.44  22.33 22.34  22.44 S
##  [1,]  0.00 0.000 0.0000 0.000 0.0000 1
##  [2,]  0.00 0.000 0.0000 0.000 0.0000 1
##  [3,]  0.00 0.000 0.0000 0.000 0.0000 1
##  [4,]  0.00 0.000 0.0000 0.000 0.0000 1
##  [5,]  0.00 0.000 0.0000 0.000 0.0000 1
##  [6,]  0.00 0.000 0.0000 0.000 0.0000 1
##  [7,]  0.00 0.000 0.0000 0.000 0.0000 1
##  [8,]  0.25 0.000 0.0000 0.000 0.0000 1
##  [9,]  0.25 0.125 0.0000 0.000 0.0000 1
## [10,]  0.50 0.000 0.0000 0.000 0.0000 1
## [11,]  0.25 0.250 0.0000 0.000 0.0000 1
## [12,]  0.00 0.500 0.0000 0.000 0.0000 1
## [13,]  0.00 0.000 0.2500 0.000 0.0000 1
## [14,]  0.25 0.000 0.1250 0.125 0.0000 1
## [15,]  0.25 0.125 0.0625 0.125 0.0625 1
## [16,]  0.50 0.000 0.0000 0.250 0.0000 1
## [17,]  0.25 0.250 0.0000 0.125 0.1250 1
## [18,]  0.00 0.500 0.0000 0.000 0.2500 1
## [19,]  0.00 0.000 0.0000 0.000 0.0000 1
## [20,]  0.50 0.000 0.0000 0.000 0.0000 1
## [21,]  0.50 0.250 0.0000 0.000 0.0000 1
## [22,]  1.00 0.000 0.0000 0.000 0.0000 1
## [23,]  1.00 0.000 0.0000 0.000 0.0000 1
## [24,]  0.50 0.500 0.0000 0.000 0.0000 1
## [25,]  0.00 1.000 0.0000 0.000 0.0000 1
## [26,]  0.00 0.000 0.5000 0.000 0.0000 1
## [27,]  0.25 0.000 0.2500 0.250 0.0000 1
## [28,]  0.25 0.125 0.1250 0.250 0.1250 1
## [29,]  0.50 0.000 0.0000 0.500 0.0000 1
## [30,]  0.50 0.000 0.0000 0.500 0.0000 1
## [31,]  0.25 0.250 0.0000 0.250 0.2500 1
## [32,]  0.00 0.500 0.0000 0.000 0.5000 1
## [33,]  0.00 0.000 1.0000 0.000 0.0000 1
## [34,]  0.00 0.000 0.5000 0.500 0.0000 1
## [35,]  0.00 0.000 0.2500 0.500 0.2500 1
## [36,]  0.00 0.000 0.0000 1.000 0.0000 1
## [37,]  0.00 0.000 0.0000 0.500 0.5000 1
## [38,]  0.00 0.000 0.0000 0.000 1.0000 1
save(Cmb, file = "GenotipeCombinations.RData")

Останнє, що можна зробити в цьому скрипті — зберегти отриману матрицю у вигляді окремого файлу (він буде збережений в робочій директорії).