founderGenomes <- quickHaplo(nInd = 30, nChr = 1, segSites = 100)
SP <- SimParamBee$new(founderGenomes)
SP$nThreads = 1L
basePop <- createVirginQueens(founderGenomes)
drones <- createDrones(x = basePop[1], nInd = 1000)
droneGroups <- pullDroneGroupsFromDCA(drones, n = 20, nDrones = nFathersPoisson)
# If input is a Pop class of virgin queen(s)
virginQueen <- basePop[2]
isQueen(virginQueen)
(matedQueen <- cross(
x = virginQueen,
drones = droneGroups[1]
))
isQueen(virginQueen)
isQueen(matedQueen)
nFathers(matedQueen)
isDrone(getFathers(matedQueen))
isFather(getFathers(matedQueen))
virginQueens <- basePop[4:5]
matedQueens <- cross(
x = virginQueens,
drones = droneGroups[c(3, 4)]
)
isQueen(matedQueens)
nFathers(matedQueens)
getFathers(matedQueens)
# Inbred mated queen (mated with her own sons)
matedQueen2 <- cross(
x = basePop[1],
drones = droneGroups[5]
)
# Check the expected csd homozygosity
pHomBrood(matedQueen2)
# If input is a Colony or MultiColony class
# Create Colony and MultiColony class
colony <- createColony(basePop[6])
isVirginQueen(getVirginQueens(colony))
apiary <- createMultiColony(basePop[7:8])
all(isVirginQueen(mergePops(getVirginQueens(apiary))))
# Cross
colony <- cross(colony, drones = droneGroups[[6]])
isQueenPresent(colony)
apiary <- cross(apiary, drones = droneGroups[c(7, 8)])
all(isQueenPresent(apiary))
nFathers(apiary)
# Try mating with drones that were already used for mating
colony <- createColony(basePop[9])
try((matedColony <- cross(x = colony, drones = droneGroups[[1]])))
# Create new drones and mate the colony with them
drones <- createDrones(x = basePop[1], nInd = 15)
all(isDrone(drones))
any(isFather(drones))
(matedColony <- cross(x = colony, drones = drones))
isQueenPresent(matedColony)
# Mate with drone producing colonies and a given cross plan
droneColonies <- createMultiColony(basePop[10:15])
droneColonies <- cross(droneColonies, drones = droneGroups[10:15])
nFathers(droneColonies)
apiary2 <- createMultiColony(basePop[16:20])
apiary3 <- createMultiColony(basePop[21:25])
apiary4 <- createMultiColony(basePop[26:30])
# Create a random cross plan
randomCrossPlan <- createCrossPlan(x = apiary2,
droneColonies = droneColonies,
nDrones = nFathersPoisson,
spatial = FALSE)
apiary2 <- cross(x = apiary2,
droneColonies = droneColonies,
crossPlan = randomCrossPlan,
nDrones = 15)
nFathers(apiary2)
# Mate colonies according to a cross plan that is created internally within the cross function
apiary3 <- cross(x = apiary3,
droneColonies = droneColonies,
crossPlan = "create",
nDrones = 15)
nFathers(apiary3)
# Mate colonies according to a cross plan that is created internally within the cross function
# For this, all the colonies have to have a set location
droneColonies <- setLocation(droneColonies,
location = Map(c, runif(6, 0, 2*pi), runif(6, 0, 2*pi)))
apiary4 <- setLocation(apiary4,
location = Map(c, runif(5, 0, 2*pi), runif(5, 0, 2*pi)))
apiary4 <- cross(x = apiary4,
droneColonies = droneColonies,
crossPlan = "create",
nDrones = nFathersPoisson,
spatial = TRUE,
checkCross = "warning",
radius = 3)
nFathers(apiary4)
Run the code above in your browser using DataLab