crossInfo: R6 class representing a crossing information

crossInfoR Documentation

R6 class representing a crossing information

Description

crossInfo object store specific crossing information

Public fields

parentPopulation

[population class] Parent population that will generatea new population of the next generation

nSelectionWays

[numeric] Number of selection ways

selectionMethod

[character] Selection method

traitNoSel

[numeric / list] (list of) number of trait No of your interest for selection

userSI

[matrix] Selection index defined by user. If you set ‘userSI' and 'selectionMethod = ’userSI'', this argument will be used for selection. The number of rows equals to the number of individuals. If you have multiple traits, it will be a matrix of multiple columns.

lociEffects

[matrix] Effect of the genetic markers (including intercept). If you have multiple traits, it will be a matrix of multiple columns.

blockSplitMethod

[character] How to determine the markers belonging to each block when computing OHV. You can define the number of markers in each block ('nMrkInBlock') or the minimum length of each segment ('minimumSegmentLength').

nMrkInBlock

[numeric] Number of markers in each block. This will be used for the computation of OHV.

minimumSegmentLength

[numeric] Minimum length of each segment [cM]. This will be used for the computation of OHV.

nSelInitOPV

[numeric] Number of selected candiates for first screening before selecting parent candidates by OPV

nIterOPV

[numeric] Number of iterations for computation of OPV

nProgeniesEMBV

[numeric] Number of progenies of double haploids produced when computing EMBV

nIterEMBV

[numeric] Number of iterations to estimate EMBV

nCoresEMBV

[numeric] Number of cores used for EMBV estimation

clusteringForSel

[logical] Apply clustering results of marker genotype to selection or not

nCluster

[numeric] Number of clusters

nTopCluster

[numeric] Number of top clusters used for selection

nTopEach

[numeric] Number of selected individuals in each cluster

nSel

[numeric] Number of selection candidates

multiTraitsEvalMethod

[character] When evaluating multiple traits, you can choose how to evaluate these traits simultaneously. One method is to take a weighted sum of these traits, and the other is to compute a product of these traits (adjusted to be positive values in advance.)

hSel

[numeric] Hyperparameter which determines which trait is weighted when selecting parent candidates for multiple traits.

matingMethod

[character] Mating method

allocateMethod

[character] Allocation method

weightedAllocationMethod

[character] Which selection index will be used for weighted resource allocation

nProgenies

[numeric] Number of progenies for each pair

traitNoRA

[numeric] trait No of your interest for resource allocation

h

[numeric] Hyperprameter which determines how parent pair with high BV is emphasized when producing progenies

includeGVP

[logical] Whether or not to consider genetic variance of progenies of each pair when determining the number of progenies per each pair

nNextPop

[numeric] Number of progenies for the next generation

nPairs

[numeric] Number of parent pairs for the next generation

nameMethod

[character] Method for naming individuals

indNames

[character] Character string vector specifying the individuals names of the new population

seedSimRM

[numeric] Random seed for mate pairs

seedSimMC

[numeric] Random seed for make crosses

selCands

[character] Names of selection candidates

crosses

[data.frame] data.frame with crossing instructions: parents names ind1 ind2, number of descendant n and names of descendant names

genDist

[dist] 'dist' object of genetic distance computed from marker genotype by Euclidean distance

groups

[list] List of named vectors of group IDs of each individual categorized by hierarchical clustering

BV

[matrix] matrix of the breeding values

WBV

[matrix] matrix of the weighted breeding values

OHV

[matrix] matrix of the optimal haploid values

EMBV

[matrix] matrix of the expected maximum haploid breeding values

haploEffMaxArray

[array] haploid value of each segment (haplotype block) for each individual

Active bindings

computeBV

[matrix] matrix of the breeding values

computeWBV

[matrix] matrix of the weighted breeding values

computeOHV

[matrix] matrix of the optimal haploid values

computeEMBV

[matrix] matrix of the expected maximum haploid breeding values

randomMate

[data.frame] data.frame of the crossing table by random mating

roundRobin

[data.frame] data.frame of the crossing table by round-robin

diallel

[data.frame] data.frame of the crossing table by diallel

diallelWithSelfing

[data.frame] data.frame of the crossing table by diallel with selfing

selfing

[data.frame] data.frame of the crossing table by selfing

maxGenDist

[data.frame] data.frame of the crossing table by mating pairs whose genetic distance is maximum

makeDH

[data.frame] data.frame of the crossing table by makeDH

makeCrosses

[list] return a list of new individuals

makeDHs

[list] return a list of new double haploids

Methods

Public methods


Method new()

Create a new population object.

Usage
crossInfo$new(
  parentPopulation,
  nSelectionWays = NA,
  selectionMethod = "nonSelection",
  traitNoSel = NULL,
  userSI = NULL,
  lociEffects = NULL,
  blockSplitMethod = NULL,
  nMrkInBlock = NULL,
  minimumSegmentLength = NULL,
  nSelInitOPV = NULL,
  nIterOPV = NULL,
  nProgeniesEMBV = NULL,
  nIterEMBV = NULL,
  nCoresEMBV = NULL,
  clusteringForSel = FALSE,
  nCluster = NULL,
  nTopCluster = NULL,
  nTopEach = NULL,
  nSel = NULL,
  multiTraitsEvalMethod = NULL,
  hSel = NULL,
  matingMethod = "randomMate",
  allocateMethod = "equalAllocation",
  weightedAllocationMethod = NULL,
  nProgenies = NULL,
  traitNoRA = NULL,
  h = NULL,
  includeGVP = FALSE,
  nNextPop = NULL,
  nPairs = NULL,
  nameMethod = "pairBase",
  indNames = NULL,
  seedSimRM = NA,
  seedSimMC = NA,
  selCands = NULL,
  crosses = NULL,
  verbose = TRUE
)
Arguments
parentPopulation

[population class] Parent population that will generate a new population of the next generation

nSelectionWays

[numeric] Number of selection ways

selectionMethod

[character] Selection method

traitNoSel

[numeric / list] (list of) number of trait No of your interest for selection

userSI

[matrix] Selection index defined by user. If you set ‘userSI' and 'selectionMethod = ’userSI'', this argument will be used for selection. The number of rows equals to the number of individuals. If you have multiple traits, it will be a matrix of multiple columns.

lociEffects

[matrix] Effect of the genetic markers (including intercept). If you have multiple traits, it will be a matrix of multiple columns.

blockSplitMethod

[character] How to determine the markers belonging to each block when computing OHV. You can define the number of markers in each block ('nMrkInBlock') or the minimum length of each segment ('minimumSegmentLength').

nMrkInBlock

[numeric] Number of markers in each block. This will be used for the computation of OHV.

minimumSegmentLength

[numeric] Minimum length of each segment [cM]. This will be used for the computation of OHV.

nSelInitOPV

[numeric] Number of selected candiates for first screening before selecting parent candidates by OPV

nIterOPV

[numeric] Number of iterations for computation of OPV

nProgeniesEMBV

[numeric] Number of progenies of double haploids produced when computing EMBV

nIterEMBV

[numeric] Number of iterations to estimate EMBV

nCoresEMBV

[numeric] Number of cores used for EMBV estimation

clusteringForSel

[logical] Apply clustering results of marker genotype to selection or not

nCluster

[numeric] Number of clusters

nTopCluster

[numeric] Number of top clusters used for selection

nTopEach

[numeric] Number of selected individuals in each cluster

nSel

[numeric] Number of selection candidates

multiTraitsEvalMethod

[character] When evaluating multiple traits, you can choose how to evaluate these traits simultaneously. One method is to take a weighted sum of these traits, and the other is to compute a product of these traits (adjusted to be positive values in advance.)

hSel

[numeric] Hyperparameter which determines which trait is weighted when selecting parent candidates for multiple traits.

matingMethod

[character] Mating method

allocateMethod

[character] Allocation method

weightedAllocationMethod

[character] Which selection index will be used for weighted resource allocation

nProgenies

[numeric] Number of progenies for each pair

traitNoRA

[numeric] Trait No of your interest for resource allocation

h

[numeric] Hyperparameter which determines how parent pair with high BV is emphasized when producing progenies

includeGVP

[logical] Whether or not to consider genetic variance of progenies of each pair when determining the number of progenies per each pair

nNextPop

[numeric] Number of progenies for the next generation

nPairs

[numeric] Number of parent pairs for the next generation

nameMethod

[character] Method for naming individuals

indNames

[character] Character string vector specifying the individuals names of the new population

seedSimRM

[numeric] Random seed for mate pairs

seedSimMC

[numeric] Random seed for make crosses

selCands

[character] Names of selection candidates

crosses

[data.frame] data.frame with crossing instructions: parents names ind1 ind2, number of descendant n and names of descendant names

verbose

[boolean] display information

Returns

A new 'population' object.

Examples
### create simulation information
mySimInfo <- simInfo$new(simName = "Simulation Example",
                         simGeno = TRUE,
                         simPheno = TRUE,
                         nSimGeno = 1,
                         nSimPheno = 3,
                         nCoreMax = 4,
                         nCorePerGeno = 1,
                         nCorePerPheno = 3,
                         saveDataFileName = NULL)

### create specie information
mySpec <- specie$new(nChr = 3,
                     lChr = c(100, 150, 200),
                     specName = "Example 1",
                     ploidy = 2,
                     mutRate = 10^-8,
                     recombRate = 10^-6,
                     chrNames = c("C1", "C2", "C3"),
                     nLoci = 100,
                     recombRateOneVal = FALSE,
                     effPopSize = 100,
                     simInfo = mySimInfo,
                     verbose = TRUE)

### create lociInfo object
myLoci <- lociInfo$new(genoMap = NULL, specie = mySpec)


### create simulated population
simulatedPop <- createPop(geno = NULL,
                          haplo = NULL,
                          lociInfo = myLoci,
                          founderIsInitPop = TRUE,
                          popName = "First Population",
                          verbose = FALSE)


### create cross oinformation object
myCrossInfo <- crossInfo$new(parentPopulation = simulatedPop,
                             selectionMethod = "nonSelection",
                             matingMethod = "randomMate",
                             nNextPop = 100)
print(myCrossInfo)
myCrossInfo$designResourceAllocation()
newIndsList <- myCrossInfo$makeCrosses

Method computeGenDist()

Compute genetic distance from marker genotype

Usage
crossInfo$computeGenDist()

Method hClustering()

Hierarchical clustering for marker genotype

Usage
crossInfo$hClustering(nCluster = NULL)
Arguments
nCluster

[numeric] Number of clusters


Method selectParentCands()

Select parent candidates If you set 'addCands = TRUE', you can add selection candidates by setting each parameter.

Usage
crossInfo$selectParentCands(
  nSelectionWaysPlus = NA,
  selectionMethod = NULL,
  traitNoSel = NULL,
  nSelInitOPV = NULL,
  clusteringForSel = NULL,
  nCluster = NULL,
  nTopCluster = NULL,
  nTopEach = NULL,
  nSel = NULL,
  multiTraitsEvalMethod = NULL,
  hSel = NULL,
  parentCands = NULL,
  addCands = FALSE
)
Arguments
nSelectionWaysPlus

[numeric] Number of selection ways when you want to add candidates

selectionMethod

[character] Selection method when you want to add candidates

traitNoSel

[numeric / list] (list of) number of trait No of your interest for selection when you want to add candidates

nSelInitOPV

[numeric] Number of selected candiates for first screening before selecting parent candidates by OPV

clusteringForSel

[logical] Apply clustering results of marker genotype to selection or not when you want to add candidates

nCluster

[numeric] Number of clusters when you want to add candidates

nTopCluster

[numeric] Number of top clusters used for selection when you want to add candidates

nTopEach

[numeric] Number of selected individuals in each cluster when you want to add candidates

nSel

[numeric] Number of selection candidates when you want to add candidates

multiTraitsEvalMethod

[character] When evaluating multiple traits, you can choose how to evaluate these traits simultaneously. One method is to take a weighted sum of these traits, and the other is to compute a product of these traits (adjusted to be positive values in advance.)

hSel

[numeric] Hyperparameter which determines which trait is weighted when selecting parent candidates for multiple traits.

parentCands

[character] Names of selection candidates to be added

addCands

[logical] If you set 'addCands = TRUE', you can add selection candidates by setting each parameter. In other words, the parameters above does not make sense.


Method allocateProgenies()

Allocate the number of progenies to each parent pair

Usage
crossInfo$allocateProgenies(crosses0)
Arguments
crosses0

[data.frame] data.frame with crossing instructions: parents names ind1 ind2


Method designResourceAllocation()

Design resource allocation (make cross table)

Usage
crossInfo$designResourceAllocation()

Method print()

Display informations about the object

Usage
crossInfo$print()

Method clone()

The objects of this class are cloneable with this method.

Usage
crossInfo$clone(deep = FALSE)
Arguments
deep

Whether to make a deep clone.

References

Jannink, Jean-Luc. “Dynamics of Long-Term Genomic Selection.” Genetics Selection Evolution 42, no. 1 (December 2010). https://doi.org/10.1186/1297-9686-42-35.

Daetwyler, H.D., Hayden, M.J., Spangenberg, G.C. and Hayes, B.J. (2015) Selection on optimal haploid value increases genetic gain and preserves more genetic diversity relative to genomic selection. Genetics. 200(4): 1341-1348.

Müller, D., Schopp, P. and Melchinger, A.E. (2018) Selection on expected maximum haploid breeding values can increase genetic gain in recurrent genomic selection. G3 (Bethesda). 8(4): 1173-1181.

Examples


## ------------------------------------------------
## Method `crossInfo$new`
## ------------------------------------------------

### create simulation information
mySimInfo <- simInfo$new(simName = "Simulation Example",
                         simGeno = TRUE,
                         simPheno = TRUE,
                         nSimGeno = 1,
                         nSimPheno = 3,
                         nCoreMax = 4,
                         nCorePerGeno = 1,
                         nCorePerPheno = 3,
                         saveDataFileName = NULL)

### create specie information
mySpec <- specie$new(nChr = 3,
                     lChr = c(100, 150, 200),
                     specName = "Example 1",
                     ploidy = 2,
                     mutRate = 10^-8,
                     recombRate = 10^-6,
                     chrNames = c("C1", "C2", "C3"),
                     nLoci = 100,
                     recombRateOneVal = FALSE,
                     effPopSize = 100,
                     simInfo = mySimInfo,
                     verbose = TRUE)

### create lociInfo object
myLoci <- lociInfo$new(genoMap = NULL, specie = mySpec)


### create simulated population
simulatedPop <- createPop(geno = NULL,
                          haplo = NULL,
                          lociInfo = myLoci,
                          founderIsInitPop = TRUE,
                          popName = "First Population",
                          verbose = FALSE)


### create cross oinformation object
myCrossInfo <- crossInfo$new(parentPopulation = simulatedPop,
                             selectionMethod = "nonSelection",
                             matingMethod = "randomMate",
                             nNextPop = 100)
print(myCrossInfo)
myCrossInfo$designResourceAllocation()
newIndsList <- myCrossInfo$makeCrosses

KosukeHamazaki/myBreedSimulatR documentation built on Aug. 31, 2024, 3:55 p.m.