wgaim.asreml: wgaim method for class "asreml"

Description Usage Arguments Details Value Author(s) References See Also Examples

Description

Implements the iterative Whole Genome Average Interval Mapping (wgaim) algorithm using the functionality of the flexible linear mixed modelling R package ASReml-R V4.

Usage

1
2
3
4
5
## S3 method for class 'asreml'
wgaim(baseModel, intervalObj, merge.by = NULL,
         fix.lines = TRUE, gen.type = "interval", method = "fixed",
         selection = "interval", exclusion.window = 20, breakout = -1,
         TypeI = 0.05, trace = TRUE, verboseLev = 0, ...)

Arguments

baseModel

a linear mixed model object of class "asreml" usually representing a base asreml() model to be extended.

intervalObj

a list object containing the genotypic data, usually an "interval" object obtained from using cross2int (see Details).

merge.by

a character string or name of the column(s) in phenoData and intervalObj to merge the phenotypic and genotypic data sets.

fix.lines

A logical value. If TRUE then lines existing in the phenotype data that do not exist in intervalObj are fixed and placed in the fixed component of the asreml() models (see Details). It is recommended to set this to TRUE. Defaults to TRUE.

gen.type

a character string determining the type of genetic data to be used in the analysis. Possibilities are "interval" and "markers". The default is "interval". (see Details).

method

a character string determining the type of algorithm to be used in the analysis. Possibilities are "random" and "fixed". The default is "random". (see Details).

selection

a character string determining the type of selection method that is used to select QTL in the analysis. Possibilities are "interval" and "chromosome". The default is "interval". (see Details).

exclusion.window

For each QTL, the distance in centimorgans on the left and right side of each QTL that is excluded from further analysis.

breakout

A numerical integer equivalent to the iteration where the algorithm breaks out. The default is -1 which ensures the algorithm finds all QTL before halting. (see Details)

TypeI

a numerical value determining the familywise alpha level of significance for detecting a QTL. The default is 0.05.

trace

An automatic tracing facility. If trace = TRUE then all asreml output is piped to the screen during the analysis. If trace = "file.txt", then output from all asreml models is piped to "file.txt". Both trace machanisms will display a message if a QTL is detected.

verboseLev

numerical value, either 0 or 1, determining the level of tracing outputted during execution of the algorithm A 0 value will produce the standard model fitting output from the fitted ASReml models involved in the forward selection. A value of 1 will add a table of chromosome and interval outlier statistics for each iteration.

...

Any extra arguments to be passed to the asreml calls. (see ?asreml and ?asreml.options for more information).

Details

In the initial call to wgaim.asreml(), the marker or interval information is collated from intervalObj. If gen.type = "interval" then midpoints of intervals are collated from the "interval.data" components of the chromosomes in intervalObj. If gen.type = "markers" then markers are collated from the "imputed.data" components of the chromosomes in intervalObj.

It is recommended to set fix.lines = TRUE to ensure additive and non-additive genetic variances are estimated from lines in the merge.by component of the phenotypic data that have genetic marker data in intervalObj. Lines in the phenotype merge.by factor not existing in intervalObj will be placed as a fixed factor (called Gomit) in the asreml model. Note, if there are others factors in the model that have some potential confounding with Gomit then asreml will indicate this with a simple message 'Terms with zero df listed in attribute 'zerodf' of the wald table' at the end of its iterative maximisation. This confounding will have no effect on the outcome and can be safely ignored. If fix.lines = FALSE is set then all available lines in the merge.by component of the phenotypic data will be used to estimate the non-additive genetic variance. In this instance, users also need to be aware that asreml will output a large number of warnings due to an inherent mismatch in the levels of the lines contained in the phenotype data compared to the lines in intervalObj.

The method argument in wgaim.asreml() allows the user access to two algorithms. If method = "fixed" the algorithm places selected QTL as an additive set of fixed effects in the model as the forward selection algorithm proceeds. If method = "random" places selected QTL in the random part of the model as an additive set of random effects. This new formulation is outlined in Verbyla et. al (2012).

The selection argument determines the type of selection algorithm for the analysis. If selection = "chromosome" then outlier statistics for each chromosome are calculated and the largest chromosome or linkage group is chosen. The largest marker/interval outlier statistic in this linkage group is then selected as the putative QTL. If selection = "interval", only marker/interval statistics are calculated and the largest marker/interval is chosen as the putative QTL.

Note: If a genetic map has a small number of markers on a linkage group then using selection = "chromosome" as the selection algorithm is known to be flawed (see Verbyla et. al, 2012). For this reason it is suggested that this option only be used when there are a moderate number of markers on each linkage group.

Users can break out of the algorithm using the breakout argument. If a numerical value greater than zero is given, then the forward selection algorithm breaks at the iteration equal to that value and returns the collected information to this point. This includes fixed/random QTL effects, diaganostic components such as interval/marker BLUPs and outlier statistics as well as the trace components of the algorithm. It should be noted that the algorithm breaks out before a QTL has been moved to the fixed/random effects and estimated. Therefore a positive integer, say n will not return an estimate of the nth QTL but it will return the outlier statistics or BLUPs for the nth iteration.

It is recommended that trace = "file.txt" be used to pipe the sometimes invasive tracing of asreml licensing and fitting numerics for each model to a file. Errors, warnings and messages will still appear on screen during this process. Note some warnings that appear may be passed through from an asreml call and are outputted upon exit. These may be ignored as they are handled during the execution of the function.

Value

An object of class "wgaim" which also inherits the class "asreml" by default. The object returned is actually an asreml object (see asreml.object) with the addition of components from the QTL detection listed below.

QTL

A list of components from the significant QTL detected including a character vector of the significant QTL along with a vector of the QTL effect sizes. There are also a number of diagnostic meausres that can be found in diag that are used in conjunction with tr.wgaim and outStat.

Author(s)

Julian Taylor and Ari Verbyla

References

Verbyla, A. P & Taylor, J. D, Verbyla, K. L (2012). RWGAIM: An efficient high dimensional random whole genome average (QTL) interval mapping approach. Genetics Research. 94, 291-306.

Julian Taylor, Arunas Vebyla (2011). R Package wgaim: QTL Analysis in Bi-Parental Populations Using Linear Mixed Models. Journal of Statistical Software, 40(7), 1-18. URL http://www.jstatsoft.org/v40/i07/.

Verbyla, A. P., Cullis, B. R., Thompson, R (2007) The analysis of QTL by simultaneous use of the full linkage map. Theoretical and Applied Genetics, 116, 95-111.

See Also

print.wgaim, summary.wgaim

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
## Not run: 
# read in data

data(phenoRxK, package = "wgaim")
data(genoRxK, package = "wgaim")

# subset linkage map and convert to "interval" object

genoRxK <- subset(genoRxK, chr = c("1A", "2D1", "2D2", "3B"))
genoRxK <- cross2int(genoRxK, impute = "Martinez", id = "Genotype")

# base model

rkyld.asf <- asreml(yld ~ Type + lrow, random = ~ Genotype + Range,
                   residual = ~ ar1(Range):ar1(Row), data = phenoRxK)

# detect and estimate QTL

rkyld.qtl <- wgaim(rkyld.asf, intervalObj = genoRxK, merge.by = "Genotype",
                   trace = "trace.txt", na.action = na.method(x = "include"))


## End(Not run)

wgaim documentation built on Oct. 3, 2019, 9:03 a.m.