Function to manually specify a breeding scheme parameters (bsp) object in R, rather than using a control file. Currently does not handle costs. For costs (for now), run specifyCosts() on this. Ideally this is useful for programmatically varying breeding schemes.

specifyBSP(
  schemeDF,
  nChr,
  effPopSize,
  quickHaplo = FALSE,
  segSites,
  nQTL,
  nSNP,
  genVar,
  gxeVar = NULL,
  gxyVar = NULL,
  gxlVar = NULL,
  gxyxlVar = NULL,
  meanDD = 0,
  varDD = 0,
  relAA = 0,
  stageToGenotype,
  nParents,
  nCrosses,
  nProgeny,
  usePolycrossNursery = FALSE,
  nSeeds = NULL,
  useOptContrib = FALSE,
  nCandOptCont = NULL,
  targetEffPopSize = NULL,
  nClonesToNCRP,
  phenoF1toStage1 = FALSE,
  errVarPreStage1 = NULL,
  useCurrentPhenoTrain = FALSE,
  nCyclesToKeepRecords,
  selCritPipeAdv = "selCritIID",
  selCritPopImprov = "selCritIID",
  nTrainPopCycles,
  nYrsAsCandidates,
  maxTrainingPopSize,
  modelType = NULL,
  propSel = 0.05,
  crossSelCrit = NULL,
  nCrossPredCores = 1
)

Arguments

schemeDF

data.frame columns: stageNames, nReps, nLocs, nChks, nEntries, entryToChkRatio, errVars

  • stageNames: Vector of number of number of entries in each stage

  • nReps: Vector of number of reps used in each stage

  • nLocs: Vector of number of locations used in each stage

  • nChks: Vector of number of checks used in each stage. Checks are replicated the same as experimental entries

  • nEntries: Vector of number of number of entries in each stage

  • entryToChkRatio: How many entry plots do you have per check plot

  • errVars: Vector of error variances estimated from historical data

  • trainingPopCycles: How many cycles back to keep records from each stage in the training population. More cycles means bigger training population but also more distant from the selection candidates. Fewer cycles means the simulation runs faster

nChr

integer number of chromosomes for the species

effPopSize

numeric historic effective population size for the species

quickHaplo

T/F, Whether to use the AlphaSimR "quickHaplo" feature. It is less realistic but greatly accelerates the creation of founders. Useful for quick tests.

segSites

integer number of sites segregating per chromosome

nQTL

integer number of loci affecting the trait per chromosome

nSNP

integer number of observed SNPs per chromosome

genVar

numeric genetic variance of the founders

gxeVar

numeric genotype by environment variance of the founders

gxyVar

genotype-by-year variance

gxlVar

genotype-by-location variance

gxyxlVar

genotype-by-location-by-year variance

meanDD

numeric mean dominance deviation. Set to zero for additive

varDD

numeric variance across loci of their dominance deviation

relAA

from AlphaSimR "the relative value of additive-by-additive variance compared to additive variance in a diploid organism with allele frequency 0.5"

stageToGenotype

At what stage do you want to genotype individuals? In addition to the named stages (SDN, CET, and PYT in this control file), the user can specify F1, which will cause all nCrosses * nProgeny individuals to be genotyped. If nothing is specified, the default will be to genotype all F1.

nParents

integer number of parents to cross

nCrosses

integer how many crosses to make

nProgeny

integer how many progeny per cross

usePolycrossNursery

T/F. Whether to use a polycross nursery. If it is used, nSeeds are made using completely random mating

nSeeds

Parameter to determine the number of seeds only if usePolycrossNursery TRUE

useOptContrib

logical whether to use optimal contributions

nCandOptCont

integer how many candidates to consider for opt contrib

targetEffPopSize

numeric target effective population size for OC

nClonesToNCRP

Number of clones that will be sent to NCRP for potential variety release

phenoF1toStage1

T/F. Parameters to control how seeds are moved from F1 to the Stage 1 trial

errVarPreStage1

Parameters to control how seeds are moved from F1 to the Stage 1 trial

useCurrentPhenoTrain

T/F. Are the current year phenotypes available for model training. when parents are chosen to send to the crossing nursery?

nCyclesToKeepRecords

integer eliminate data on cycles above this num

selCritPipeAdv

function used to determine selection criterion for pipe

selCritPopImprov

function used to determine sel crit for pop improv

nTrainPopCycles

draw training pop lines only from this number of recent cycles.

nYrsAsCandidates

candidates for selection only from this number of recent years

maxTrainingPopSize

From the lines in the most recent cycles (indicated by nTrainPopCycles), subsample this number of lines for training data.

Value

a named list of of the parameters to specify a breeding scheme simulation

Details

All arguments are exactly as specified in the control files. Main exception is schemeDF, which is just a tibble() or data.frame version of the set of bsp arguments which are vectors (giving values for each breeding stage). Columns must have names exactly as in the corresponding arguments in control file: stageNames, nReps, nLocs, nChks, nEntries, entryToChkRatio, errVars

Examples