全基因组选择BayesC模型代码部分疑问

有三个问题想请教一下: (1)课程中在做BayesC模型部分的Bayesian_train.r代码中,G矩阵的计算方式是G<-tcrossprod(X)/ncol(X),分母的ncol(X)和常规的VanRaden G矩阵定义不一样,这个会对结果有影响吗? (2)在K折交叉部分,训练集是1093个样本,但是代码中设置的sets是round取整,这样会导致set只有1090个,order之后产生3个NA,这一步会导致有3个样本一直仅存在于训练集中无法进入K折交叉检验的验证集中,是否有问题? sets<-rep(1:10,round(length(y)/folds,digits = 0)) sets<-sets[order(runif(nrow(X)))] (3)做植物GS选择时,训练集样本有无最低数量要求,如果有的话最少需要多少个样本能保证模型精确度。

请先 登录 后评论

1 个回答

xun - 电路元件工程师

1,没有任何影响,因为实际上这个代码里没有用到这个G矩阵,这个是在GBLUP里的,不影响


2,这个是我们的疏忽,感谢提醒,使用这两行代码替换

sets <- as.numeric(cut(1:length(y), breaks = 10, labels = FALSE))
sets <- sets[order(runif(nrow(X)))]


3,不绝对,和几个因素有关, 其中最重要的是h2和Ne

要是都是平均的,一般为了精度最低差不多是300个样本,

高h2低Ne的看情况可能可以缩减到200个


请先 登录 后评论