Аддитивные компоненты генетической изменчивости из LMER в R

Я установил некоторые фиктивные данные в R, которые составляют 40 генетически связанных линий, все они являются братьями и сестрами в пределах линии, поэтому генетически связаны в ½ раза, поэтому аддитивная генетическая дисперсия должна быть вдвое больше дисперсии, объясняемой линией. Для линий измеряется 200 особей по трем признакам/признакам. Первый признак имеет низкую фенотипическую изменчивость, второй - высокую средовую изменчивость, а третий - высокую генетическую изменчивость.

rm(list=ls())
re = 200 # replicate individuals per line
li = 40  # lines

# setup
set.seed(5)
data = data.frame(rep(1:li, each = re))
colnames(data)="Line"
library(nlme)
library(lme4)
par(mfrow=c(1,3))

# trait 1: little variance (Va or Ve)
data$Trait = rnorm(li*re,10,1)
boxplot(data$Trait~data$Line, ylim=c(0,20), main = expression("Low V"[A]*"& Low V"[E]))
var1 = var(data$Trait); mean1 = mean(data$Trait); m1 = lmer(data$Trait ~ (1|data$Line))

# trait 2: high enivronmental variance, little Va
data$Trait = rnorm(li*re,10,1); data$Trait = data$Trait + rnorm(re*li,0,3)
boxplot(data$Trait~data$Line, ylim=c(0,20),main = expression("Low V"[A]*"& High V"[E]))
var2 = var(data$Trait); mean2 = mean(data$Trait); m2 = lmer(data$Trait ~ (1|data$Line))

# trait 3: high additive genetic variance, little Ve
data$Trait = rnorm(li*re,10,1); data$Trait = data$Trait+rep(rnorm(li,0,3),each=re)
boxplot(data$Trait~data$Line, ylim=c(0,20), main = expression("High V"[A]*"& Low V"[E]))
var3 = var(data$Trait); mean3 = mean(data$Trait); m3 = lmer(data$Trait ~ (1|data$Line))

Сюжеты трех черт,

введите описание изображения здесь

Тогда для оценки аддитивной дисперсии ( В А ) Я извлекаю дисперсию линии ( В л ) из модели lmer и удвоить ее,

# line variances (variance in additive effect of each haploid genome)
m1_line = unlist(VarCorr(m1))[[1]]; 
m2_line = unlist(VarCorr(m2))[[1]]; 
m3_line = unlist(VarCorr(m3))[[1]]

# additive variance (double the line variance because it is a hemiclone)
m1_add = 2*m1_line; 
m2_add = 2*m2_line; 
m3_add = 2*m3_line

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

# residual variance
m1_res = attr(VarCorr(m1), "sc")^2
m2_res = attr(VarCorr(m2), "sc")^2
m3_res = attr(VarCorr(m3), "sc")^2

# phenotypic variance
m1_phe = m1_line + m1_res
m2_phe = m2_line + m2_res
m3_phe = m3_line + m3_res

Наследуемость - это аддитивная дисперсия, деленная на фенотипическую дисперсию.

час 2 знак равно В А / В п

Но я думаю, что в этом случае правильно использовать линейную дисперсию, а не аддитивную дисперсию (если кто-то может объяснить в ответе, который был бы полезен), поэтому я сделал,

# heritability (line/ (line+ residual))
m1_h2 = m1_line/ m1_phe
m2_h2 = m2_line/ m2_phe
m3_h2 = m3_line/ m3_phe
m1_h2; m2_h2; m3_h2

Мои вопросы):

Уместно ли использовать lmerфункцию в R для извлечения компонентов дисперсии таким образом?

Я рассчитал В А , В Е , В п , час 2 правильно? Я думаю В А а также В Е правильные, В п возможно, это сумма В А а также В Е скорее, чем В л , а впоследствии час 2 может быть В А / В п .

Можете ли вы добавить блок-схему или просто методологию вместо/в дополнение к коду.
Я удалил свой ответ. Я слишком неуверен в своих словах! Извиняюсь. Я мог бы еще раз подумать об этом позже, когда у меня будет возможность использовать R.

Ответы (1)

Из того, что я понял из вашего кода и того, что вы спрашиваете, я предполагаю, что вы делаете следующее:

Создание виртуального набора из 40 человек (линий), из которых у вас есть 200 измерений (повторений). Вы говорите, что они полноправные братья и сестры, поэтому у них общие родители. Затем вы используете функцию lmer (с которой я не знаком), чтобы получить общую дисперсию, дисперсию внутри группы и дисперсию между группами ( В Т , В Вт , В Б соответственно). Что вы называете В л было бы В Вт .

Мы знаем это В п знак равно В А + В Д + В Е

В полных братьях и сестрах мы также знаем, что В ( А , А ) знак равно 1 2 В А + 1 4 В Д куда А является аддитивной стоимостью и Д является значением доминирования, потому что они разделяют четверть своих комбинаций генов.

Если вы лечитесь с полными братьями и сестрами, В Вт должно быть тогда В Е и В Б было бы 1 2 В А + 1 4 В Д как вы видите разницу между братьями и сестрами.

Так что нет, вы не правильно считаете В А потому что тебе не хватает своего В Д на ваш счет. Сам код выглядит нормально для того, что я понял, но, возможно, вам следует взять его для проверки с тегом R.

Спасибо - на самом деле я использую линии Hemiclone, которые похожи на полных братьев (связанных наполовину), но не имеют эффекта доминирования, я просто написал братьев и сестер, а не объяснял полуклоны. Если бы тогда использовались половинные братья, код, который я использую, был бы правильным, за исключением В А знак равно 4 В л Правильно? И точно так же если бы не было доминирования то для полных сибсов В А знак равно 2 В л
Я мог бы тщательно проверить это, но моя интуиция говорит, что В А знак равно 2 В л в этом случае, поскольку тогда не было бы эффекта доминирования, но в остальных эффектах это были бы полные сибсы.