selectInd {AlphaSimR}R Documentation

Select individuals

Description

Selects a subset of nInd individuals from a population.

Usage

selectInd(
  pop,
  nInd,
  trait = 1,
  use = "pheno",
  sex = "B",
  selectTop = TRUE,
  returnPop = TRUE,
  candidates = NULL,
  simParam = NULL,
  ...
)

Arguments

pop

and object of Pop-class, HybridPop-class or MultiPop-class

nInd

the number of individuals to select

trait

the trait for selection. Either a number indicating a single trait or a function returning a vector of length nInd. The function must work on a vector or matrix of use values. See the examples and selIndex.

use

select on genetic values "gv", estimated breeding values "ebv", breeding values "bv", phenotypes "pheno", or randomly "rand"

sex

which sex to select. Use "B" for both, "F" for females and "M" for males. If the simulation is not using sexes, the argument is ignored.

selectTop

selects highest values if true. Selects lowest values if false.

returnPop

should results be returned as a Pop-class. If FALSE, only the index of selected individuals is returned.

candidates

an optional vector of eligible selection candidates.

simParam

an object of SimParam

...

additional arguments if using a function for trait

Value

Returns an object of Pop-class, HybridPop-class or MultiPop-class

Examples

#Create founder haplotypes
founderPop = quickHaplo(nInd=10, nChr=1, segSites=10)

#Set simulation parameters
SP = SimParam$new(founderPop)

SP$addTraitA(10)
SP$setVarE(h2=0.5)

#Create population
pop = newPop(founderPop, simParam=SP)

#Select top 5 (directional selection)
pop2 = selectInd(pop, 5, simParam=SP)
hist(pop@pheno); abline(v = pop@pheno, lwd = 2)
abline(v = pop2@pheno, col = "red", lwd = 2)

#Select 5 most deviating from an optima (disruptive selection)
squaredDeviation = function(x, optima = 0) (x - optima)^2
pop3 = selectInd(pop, 5, simParam=SP, trait = squaredDeviation, selectTop = TRUE)
hist(pop@pheno); abline(v = pop@pheno, lwd = 2)
abline(v = pop3@pheno, col = "red", lwd = 2)

#Select 5 least deviating from an optima (stabilising selection)
pop4 = selectInd(pop, 5, simParam=SP, trait = squaredDeviation, selectTop = FALSE)
hist(pop@pheno); abline(v = pop@pheno, lwd = 2)
abline(v = pop4@pheno, col = "red", lwd = 2)


[Package AlphaSimR version 1.5.3 Index]