C_sraMechanistic: Descriptive models of artificial-selection responses:...

3. Mechanistic modelsR Documentation

Descriptive models of artificial-selection responses: quantitative genetics models

Description

The sra functions for mechanistic model are wrappers for the maximum-likelihood optimization routine mle. They implement classical quantitative genetics models, fit them to artificial-selection time series, and provide estimates of e.g. the effective population size, the mutational variance, the strength of genetic / environmental canalization, the directionality and strength of epistasis, etc., given some assumptions about the properties of the genetic architecture.

Usage

sraCstvar(sradata, start=NULL, fixed=NULL, macroE=FALSE, Bulmer=TRUE, ...)
sraDrift(sradata, start=NULL, fixed=NULL, macroE=FALSE, Bulmer=TRUE, ...)
sraMutation(sradata, start=NULL, fixed=NULL, macroE=FALSE, Bulmer=TRUE, ...)
sraCanalization(sradata, start=NULL, fixed=NULL, macroE=FALSE, Bulmer=TRUE, ...)
sraCanalizationOpt(sradata, start=NULL, fixed=NULL, macroE=FALSE, Bulmer=TRUE, ...)
sraSelection(sradata, start=NULL, fixed=NULL, macroE=FALSE, Bulmer=TRUE, ...)
sraDirepistasis(sradata, start=NULL, fixed=NULL, macroE=FALSE, ...)

Arguments

sradata

A data object generated by sraData.

start

A named list of starting values for the convergence algorithm. NA is allowed and lets the function sraStartingvalues calculating a (hopefully) educated guess on the starting values. Parameters are described below.

fixed

A named list of the parameters that have to be kept constant. NA is not allowed.

macroE

Whether or not macro-environmental effects (random deviation of the phenotypic mean each generation) should be included. This might have some side effects.

Bulmer

Whether or not the impact of linkage disequilibrium (Bulmer effect) due to selection on variance should be accounted for.

...

Additional parameters to be passed to mle, and thus to optim.

Details

All functions (except sraDirepistasis) rely on the same underlying model, and thus simply provide convenient shortcuts for different sets of parameters to fit.

mu0 is the initial phenotype of the population.

logvarA0 is the logarithm of the initial additive variance in the population.

logvarE0 is the logarithm of the initial environmental variance in the population.

logNe is the logarithm of the effective population size.

logn is the logarithm of the effective number of loci.

logvarM is the logarithm of the mutational variance.

kc and kg are the strength of environmental and genetic canalization, respectively.

o corresponds to the 'optimum' phenotype. When fixed and set to NA, o is identical to mu0. For convenience, the same optimum is used for environmental canalization, genetic canalization and natural stabilizing selection.

s corresponds to the strength of natural selection.

logvarepsilon is the logarithm of the variance of the epistatic coefficient (\varepsilon). This parameter is fixed by default, since it is unlikely that realistic data sets contain enough information to estimate it properly.

The dynamic model that is fitted (except of the directional epistasis, detailed in the next paragraph) is:

\mu(t+1) = \mu(t) + VarA(t) * (\beta(t) + s \delta(t))

VarA(t+1) = VarM + VarA(t) * (1 - 1/(2*N_e)) * e^{kg*(|\delta(t+1)| - |\delta(t)|)}

VarE(t+1) = VarE(t) * e^{kc*|\delta(t)|}

\mu(1), VarA(1) and varE(1) are parameters of the model, \beta(t) is the selection gradient, calculated for each generation from the data set, and \delta(t) = \mu(t) - o.

The directional epistasis model has its own setting:

\mu(t+1) = \mu(t) + varA(t) * \beta(t)

VarA(t+1) = VarA(t) + 2*\beta(t)*\varepsilon*VarA(t)^2

VarE(t+1) = VarE(1) + (\varepsilon^2 + Var\varepsilon)*VarA(t)^2

Where epsilon is a key parameter, representing the directionality of epistasis (Hansen and Wagner 2001, Carter et al. 2005). The properties of the likelihood function when epsilon varies makes numerical convergence tricky, and the function SRAdirepistasis actually performs two model fits: one for positive epsilons (the estimated parameter being logepsilon) and one for negative epsilons (estimating logminusepsilon). The likelihood of both models is then compared, and the best model is returned, providing either logepsilon or logminusepsilon. Although part of the model, the parameter logvarepsilon appeared to affect environmental variance only weakly, and its estimation is problematic in most cases.

These models are extensively described in le Rouzic et al 2010.

Value

The functions return objects of class srafit, a list containing information about the model, the data, and the parameter estimates. Some standard R functions can be applied to the object, including AIC (AIC.srafit), logLik (logLik.srafit), vcov (vcov.srafit), coef (coef.srafit) confint (confint.srafit), and plot (plot.srafit).

Author(s)

Arnaud Le Rouzic

References

Carter, A.J.R., Hermisson, J. and Hansen, T.F. (2005) The role of epistatic genetic interactions in the response to selection and the evolution of evolvability. Theor. Pop. Biol. 68, 179-196.

Hansen, T.F. and Wagner, G.P. (2001) Modelling genetic architecture: a multilinear theory of gene interaction. Theor. Pop. biol. 59, 61-86.

Le Rouzic, A., Houle, D., and Hansen, T.F. (2010) A modelling framework for the analysis of artificial selection-response time series. in prep.

See Also

sraAutoreg, sraAutoregHerit and sraAutoregEvolv for phenomenological models, sraAutoregTsMinuslogL and sraAutoregTimeseries for some details about the internal functions, AIC.srafit, logLik.srafit,vcov.srafit, coef.srafit, confint.srafit, plot.srafit for the analysis of the results.

Examples

########### Generating a dummy dataset ################

m <- c(12,11,12,14,18,17,19,22,20,19)
v <- c(53,47,97,155,150,102,65,144,179,126)
s <- c(15,14,14,17,21,20,22,25,24,NA)
n <- c(100,80,120,60,100,90,110,80,60,100)

########## Making a sra data set #######################
data <- sraData(phen.mean=m, phen.var=v, phen.sel=s, N=n)

#################### Data Analysis ####################

cstvar <- sraCstvar(data)
drift <- sraDrift(data)
direpi <- sraDirepistasis(data)

# In case of convergence problems, better starting values can be provided:
direpi <- sraDirepistasis(data, start=list(mu0=10, logvarA0=log(20), logvarE0=NA), 
fixed=list(logNe=log(50)))

plot(cstvar)

AIC(direpi)

sra documentation built on March 31, 2023, 9:31 p.m.