# NOT RUN {
library(GenomicMating)
###Create 100 markers for two sets of populations of size 20.
N=20
nmarkers=100
Markers<-c()
for (i in 1:N){
Markers<-rbind(Markers,rbinom(nmarkers, 2,.1)-1)
}
Markers2<-c()
for (i in 1:N){
Markers2<-rbind(Markers2,rbinom(nmarkers, 2,.1)-1)
}
###Marker effects for a trait.
markereffects<-rep(0,nmarkers)
markereffects[sample(1:nmarkers,nmarkers/2)]<-rnorm(nmarkers/2)
Markers[1:5,1:5]
#######Relationship matrices (K only for the first population.
##K2 for both populations together.)
#library(parallel)
K=Amat.pieces(rbind(Markers), pieces=5)
K2=Amat.pieces(rbind(Markers,Markers2), pieces=5)
K[1:5,1:5]
####putting names
rownames(Markers)<-paste("l", 1:nrow(Markers),sep="_")
rownames(Markers2)<-paste("l", (nrow(Markers)+1):(nrow(Markers)+
nrow(Markers2)),sep="_")
rownames(K2)<-colnames(K2)<-c(rownames(Markers),rownames(Markers2))
rownames(K)<-colnames(K)<-c(rownames(Markers))
###Best genotype in pop 1
which.max(Markers%*%markereffects)
markermap=as.matrix(data.frame(chr=rep(1,nmarkers),
pos=seq(0,1,length=nmarkers)))
colnames(Markers)<-1:nmarkers
########Mating within pop 1, using method 1.
########Adjust genetic algorithm paparmeters for convergence.
gasols<-getGaSolutions(Markers=Markers,Markers2=NULL, K=K,
markereffects=markereffects,markermap=markermap,nmates=10,
minparents=3, impinbreedstepsize=.02, impvar=.01,
impforinbreed=.01,npopGA=50, nitGA=10, miniters=10,minitbefstop=20,
plotiters=TRUE,mc.cores=1,nelite=20, mutprob=0.8, noself=TRUE,
method=1, type=0L, generation=0L)
gasols
######Mating between pop1 and pop2. Method 1.
gasols1<-getGaSolutions(Markers=Markers,Markers2=Markers2, K=K2,
markereffects,markermap=markermap,nmates=10,
minparents=3,
impinbreedstepsize=.02, impvar=.02,
impforinbreed=.07,
npopGA=50, nitGA=10, miniters=10,minitbefstop=20,
plotiters=TRUE,
mc.cores=2,nelite=20, mutprob=0.8, noself=F, method=1,
type=0L, generation=0L)
######Mating between pop1 and pop2. Method 2.
gasols2<-getGaSolutions(Markers=Markers,Markers2=Markers2, K=K2,
markereffects,markermap=markermap,nmates=10,
minparents=3,
impinbreedstepsize=.02, impvar=.02,
impforinbreed=.07,
npopGA=50, nitGA=10, miniters=10,minitbefstop=20,
plotiters=TRUE,
mc.cores=2,nelite=20, mutprob=0.8, noself=F, method=2,
type=0L, generation=0L)
####for method 3 polyploid. Markers need to be coded between 0 and 1.
N=20
nmarkers=100
Markers<-c()
for (i in 1:N){
Markers<-rbind(Markers,runif(nmarkers))
}
Markers2<-c()
for (i in 1:N){
Markers2<-rbind(Markers2,runif(nmarkers))
}
markereffects<-rep(0,nmarkers)
markereffects[sample(1:nmarkers,nmarkers/2)]<-rnorm(nmarkers/2)
Markers[1:5,1:5]
#library(parallel)
K=Amat.pieces(rbind(Markers)*2-1, pieces=5)
K2=Amat.pieces(rbind(Markers,Markers2)*2-1, pieces=5)
K[1:5,1:5]
rownames(Markers)<-paste("l", 1:nrow(Markers),sep="_")
rownames(Markers2)<-paste("l", (nrow(Markers)+1):(nrow(Markers)+nrow(Markers2)),sep="_")
rownames(K2)<-colnames(K2)<-c(rownames(Markers),rownames(Markers2))
rownames(K)<-colnames(K)<-c(rownames(Markers))
which.max(Markers%*%markereffects)
markermap=as.matrix(data.frame(chr=rep(1,nmarkers),pos=seq(0,1,length=nmarkers)))
colnames(Markers)<-1:nmarkers
gasols3<-getGaSolutions(Markers=Markers,Markers2=Markers2, K=K2,
markereffects,markermap=markermap,nmates=10,
minparents=1,
impinbreedstepsize=.02, impvar=.02,
impforinbreed=.07,
npopGA=50, nitGA=10, miniters=10,minitbefstop=20,plotiters=TRUE,
mc.cores=1,nelite=20, mutprob=0.8, noself=F, method=3,
type=0L, generation=0L)
gasols3
# }
# NOT RUN {
# }
Run the code above in your browser using DataLab