Skip to content

Commit c50f0b5

Browse files
Update 09.Predict_Envs.R
1 parent 4bea759 commit c50f0b5

1 file changed

Lines changed: 21 additions & 28 deletions

File tree

R/09.Predict_Envs.R

Lines changed: 21 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1097,33 +1097,26 @@ MMPrdM<-function(pheno,geno,env,para,Para_Name,model,depend=NULL,reshuffle=NULL,
10971097
PrdM_wide<-as.data.frame(PrdM_wide)
10981098
}
10991099
else if (model == "GBLUP"){
1100-
GENO<-as.data.frame(GENO)
1101-
rowname<-paste(y[,1],y[,2], sep="-")
1102-
rownames(GENO)<-rowname
1103-
A<-rrBLUP::A.mat(GENO)
1104-
y2<-y %>%
1105-
group_by(Envs) %>%
1106-
mutate(row_number = row_number()) %>%
1107-
mutate(Obs = ifelse(row_number %in% id.V, NA, Obs)) %>%
1108-
select(-row_number)
1109-
y2<-as.data.frame(y2)
1110-
dataF=data.frame(genoID=rownames(GENO),yield=y2[,ncol(y2)])
1111-
MODEL<-rrBLUP::kin.blup(data=dataF,geno="genoID",pheno="yield", GAUSS=FALSE, K=A,
1112-
PEV=TRUE,n.core=1,theta.seq=NULL)
1113-
Prd<-MODEL$pred
1114-
PrdM<-data.frame(y2, Prd = as.numeric(Prd))
1115-
PrdM_wide<- PrdM %>% tidyr::pivot_wider(
1116-
id_cols = "line_code",
1117-
names_from ="Envs",
1118-
values_from = "Prd")
1119-
PrdM_wide<-as.data.frame(PrdM_wide)
1120-
if((length(id.V) != dim(pheno)[1])){
1121-
PrdM_wide<-PrdM_wide[PrdM_wide$line_code %in% pheno[id.V,1],]
1122-
}
1123-
else{(length(id.V) != dim(pheno)[1])
1124-
PrdM_wide<- data.frame(line_code=PrdM_wide$line_code,Prd=PrdM_wide[[id]])
1125-
}
1126-
PrdM_wide<-as.data.frame(PrdM_wide)
1100+
ans <- rrBLUP::mixed.solve(y = yNa[, ncol(yNa)],
1101+
Z = M)
1102+
e <- as.matrix(ans$u)
1103+
G.pred <- GENO
1104+
y_pred <- as.matrix(G.pred) %*% e
1105+
Prd <- c(y_pred[, 1]) + c(ans$beta)
1106+
PrdM <- data.frame(y, Prd = as.numeric(Prd))
1107+
PrdM_wide <- PrdM %>% tidyr::pivot_wider(id_cols = "line_code",
1108+
names_from = "Envs", values_from = "Prd")
1109+
PrdM_wide <- as.data.frame(PrdM_wide)
1110+
if ((length(id.V) != dim(pheno)[1])) {
1111+
PrdM_wide <- PrdM_wide[PrdM_wide$line_code %in%
1112+
pheno[id.V, 1], ]
1113+
}
1114+
else if (length(id.V) == dim(pheno)[1]) {
1115+
PrdM_wide <- data.frame(line_code = PrdM_wide$line_code,
1116+
Prd = PrdM_wide[[id]])
1117+
}
1118+
PrdM_wide <- as.data.frame(PrdM_wide)
1119+
return(PrdM_wide)
11271120
}
11281121
else if (model == "BA" | model == "BC" | model == "BL" | model == "BRR"
11291122
| model == "BB" ){
@@ -1256,7 +1249,7 @@ MMPrdM<-function(pheno,geno,env,para,Para_Name,model,depend=NULL,reshuffle=NULL,
12561249
PrdF<-rbind(PrdF,PrdM_wide)
12571250
}
12581251
Prd_mean<-PrdF %>% group_by(line_code) %>% summarize_all(mean)
1259-
Prd_mean<-as.data.frame(Prd_mean)
1252+
Prd_mean<-as.data.frame(Prd_mean)*
12601253
return(Prd_mean)
12611254
#Correlation within environment 50 times
12621255
}

0 commit comments

Comments
 (0)