Я установил некоторые фиктивные данные в 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
Наследуемость - это аддитивная дисперсия, деленная на фенотипическую дисперсию.
Но я думаю, что в этом случае правильно использовать линейную дисперсию, а не аддитивную дисперсию (если кто-то может объяснить в ответе, который был бы полезен), поэтому я сделал,
# 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 для извлечения компонентов дисперсии таким образом?
Я рассчитал , , , правильно? Я думаю а также правильные, возможно, это сумма а также скорее, чем , а впоследствии может быть .
Из того, что я понял из вашего кода и того, что вы спрашиваете, я предполагаю, что вы делаете следующее:
Создание виртуального набора из 40 человек (линий), из которых у вас есть 200 измерений (повторений). Вы говорите, что они полноправные братья и сестры, поэтому у них общие родители. Затем вы используете функцию lmer (с которой я не знаком), чтобы получить общую дисперсию, дисперсию внутри группы и дисперсию между группами ( соответственно). Что вы называете было бы .
Мы знаем это
В полных братьях и сестрах мы также знаем, что куда является аддитивной стоимостью и является значением доминирования, потому что они разделяют четверть своих комбинаций генов.
Если вы лечитесь с полными братьями и сестрами, должно быть тогда и было бы как вы видите разницу между братьями и сестрами.
Так что нет, вы не правильно считаете потому что тебе не хватает своего на ваш счет. Сам код выглядит нормально для того, что я понял, но, возможно, вам следует взять его для проверки с тегом R.
WYSIWYG
Реми.б