Package nadiv
March 28, 2012
Type Package
Title Functions to construct non-additive genetic relatedness matrices
Version 2.9
Date 2012-03-22
Author Matthew Wolak
Maintainer Matthew Wolak <matthewwolak@[Link]>
Depends Matrix, pedigreemm
Suggests multicore, asreml
Description Constructs non-additive genetic relationship matrices from
a pedigree. These and their inverses can be passed to a linear
mixed effect model, known as the animal model.
License GPL (>= 2)
LazyLoad yes
LazyData yes
Repository CRAN
Date/Publication 2012-03-28 18:13:16
R topics documented:
nadiv-package
aiCI . . . . .
aiFun . . . .
chooser . . .
constrainFun
DFC . . . . .
findBetween .
findDFC . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2
3
4
6
6
7
7
8
nadiv-package
genAssign . . . .
IBD . . . . . . .
IBD2 . . . . . .
makeA . . . . . .
makeAA . . . . .
makeD . . . . . .
makeDomEpi . .
makeDsim . . . .
Mrode2 . . . . .
Mrode9 . . . . .
numPed . . . . .
parConstrainFun
[Link] . . .
proLik . . . . . .
SEfun . . . . . .
sm2list . . . . . .
varTrans . . . . .
vchoose . . . . .
warcolak . . . . .
wrap_DFC . . . .
wrap_dij . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Index
nadiv-package
9
9
10
10
11
12
14
15
17
18
18
19
20
20
22
23
24
25
25
26
26
28
Functions to create non-additive relationship matrices and their inverses
Description
From a supplied pedigree, creates the matrices of dominance and epistatic relatedness. Also, the
inverses of these matrices are produced, which is what is needed to estimate these non-additive
variance components in a linear mixed effects model (i.e., the animal model).
Details
Package:
Type:
Version:
Date:
License:
LazyLoad:
nadiv
Package
2.9
2012-03-22
GPL (>=2)
yes
aiCI
Author(s)
Matthew Wolak <matthewwolak@[Link]>
aiCI
Confidence Intervals for Variance Components
Description
Produces the 1-alpha Upper and Lower Confidence Limits for the variance components in an
ASReml-R model.
Usage
aiCI([Link], Dimnames = NULL, alpha = 0.05)
Arguments
[Link]
Object from a call to asreml
Dimnames
A vector of characters if names are desired for the output. If not specified, the
default labels from the asreml object will be used.
alpha
A numeric value indicating the level of Type I error for constructing the Confidence Intervals.
Details
Variances from the inverse of the Average Information matrix of an ASReml model are translated
according to the varTrans function and used in constructing the 1-alpha Confidence Interval.
Value
A matrix is returned with a row for each variance component. The three columns correspond to the
Upper Confidence Limit, estimate from the asreml model, and Lower Confidence Limit for each
variance component.
Note
The vector of Dimnames should match the same order of variance components specified in the
model.
Author(s)
<matthewwolak@[Link]>
See Also
aiFun
aiFun
Examples
## Not run:
library(asreml)
ginvA <- [Link](warcolak)$ginv
ginvD <- makeD(warcolak[,1:3])$listDinv
warcolak$IDD <- warcolak$ID
[Link] <- asreml(trait1 ~ 1, random = ~ped(ID) + giv(IDD),
ginverse = list(ID = ginvA, IDD = ginvD), data = warcolak)
summary([Link])$varcomp
aiCI([Link])
## End(Not run)
aiFun
Sampling (co)variances and correlations
Description
This function returns the sampling covariances, variances, and correlations of the random effects
fitted in an mixed model solved using the Average Information algorithm
Usage
aiFun(model = NULL, [Link] = NULL, inverse = TRUE, Dimnames = NULL)
Arguments
model
A model object returned by a call to the asreml function.
[Link]
A numeric vector of the Average Information matrix. The order must be the
row-wise lower triangle of the matrix (including the diagonal).
inverse
A logical indicating whether the elements of the Average Information matrix are
being provided. If FALSE, the Average Information matrix (and not its inverse)
is being supplied.
Dimnames
A vector of characters if names are desired for the output (co)variance/correlation
matrix. If not specified, either the default labels from the asreml object will be
used or the rows and columns will be un-labeled.
Details
The inverse of the Average Information matrix provides the sampling (co)variance of each random
term in the mixed model. If a model from the ASReml-R function is supplied (model is not NULL),
this function extracts the inverse of the AI matrix from an ASReml-R model and organizes it so
that the sampling covariances between random terms are located below the diagonal, the sampling
variances of random terms are located along the diagonal, and the sampling correlations between
random terms are located above the diagonal. The order of the variances along the diagonal is the
same as the order entered in the random section of the asreml function. This is also the same order
as the rows of a call to the summary function, summary(model)$varcomp.
aiFun
If model is NULL then [Link] should contain the vector of values from an Average Information
matrix. The function will then reconstruct this matrix, invert it, and supply the sampling (co) variances and correlations for the random terms in the model as described above. Note, either model or
[Link] must be supplied, but not both.
Value
A matrix of k x k dimensions is returned, if k is the number of random effects estimated in the
model. Sampling covariances are below the diagonal, variances along the diagonal, and correlations
are above the diagonal. If Dimnames is specified, the row and column names are assigned according
the vector of names in this argument.
Note
The vector of Dimnames should match the same order of variance components specified in the
model.
Author(s)
<matthewwolak@[Link]>
References
Gilmour, A.R., Gogel, B.J., Cullis, B.R., & Thompson, R. 2009. ASReml User Guide Release 3.0.
VSN International Ltd., Hemel Hempstead, UK.
Examples
## Not run:
library(asreml)
ginvA <- [Link](warcolak)$ginv
ginvD <- makeD(warcolak[,1:3])$listDinv
warcolak$IDD <- warcolak$ID
[Link] <- asreml(trait1 ~ 1, random = ~ped(ID) + giv(IDD),
ginverse = list(ID = ginvA, IDD = ginvD), data = warcolak)
summary([Link])$varcomp
aiFun(model = [Link], Dimnames = c("Va", "Vd", "Ve"), inverse = TRUE)
## End(Not run)
output <- c(7.3075921, 7.0635161, 12.3423380, 1.9539486, 2.7586340, 0.6626111)
aiFun([Link] = output, inverse = FALSE, Dimnames = c("Va", "Vd", "Ve"))
constrainFun
chooser
Internal function for makeDsim
Description
Selects items, given an index and list of choices
Author(s)
<matthewwolak@[Link]>
constrainFun
Function used in conjunction with others to produce a profile likelihood for a variance component
Description
Given a model object from asreml and a range of estimates of the parameter, the function will supply the likelihood ratio test statistic for the comparison of the full model to one where the parameter
of interest is constrained.
Usage
constrainFun([Link], full, fm2, comp, G)
Arguments
[Link]
a value for which the log Likelihood of a model is to be calculated
full
the full model asreml object
fm2
starting values for the full model
comp
which variance component to constrain
logical, indicating if the component is part of the G structure
Details
Used internally in the proLik function
Author(s)
<matthewwolak@[Link]>
See Also
See Also proLik
DFC
Indicates Double First Cousins
DFC
Description
Given all eight grandparents of two individuals, the function will indicate whether they are double
first cousins. Mainly to be used inside of findDFC
Usage
DFC([Link])
Arguments
[Link]
a vector indicating the dam and sire of both is and js dam and sire
Value
returns either a 0 if individuals i and j are not double first cousins, or a 1 if they are
Author(s)
<matthewwolak@[Link]>
See Also
findDFC
findBetween
Determines how close estimates are to a true value
Description
Function used when constructing profile likelihoods. This determines between which variance estimates a confidence limit sits and if this is within a certain threshold.
Usage
findBetween(x, output, side = "L", threshb)
Arguments
x
output
side
threshb
the critical value to search for
output from constrainFun
a character indicating whether the "L" lower or "U" upper confidence limits
should be searched
the threshold for determining if an estimate is close enough to x
findDFC
Details
Used within proLik function
Author(s)
<matthewwolak@[Link]>
See Also
See Also proLik
findDFC
Finds the double first cousins in a pedigree
Description
Given a pedigree, all pairs of individuals that are double first cousins are returned.
Usage
findDFC(pedigree, parallel = FALSE, ncores = getOption("cores"))
Arguments
pedigree
A pedigree with columns organized: ID, Dam, Sire
parallel
A logical statement indicating if parallelization should be attempted. Note, only
reliable for Mac and Linux operating systems.
ncores
Number of cpus to use, default is maximum available
Details
If parallel = TRUE then the pacakge multicore must be loaded.
Value
PedPositionList
gives the list of row numbers for all the pairs of indidivuals that are related as
double first cousins
DFC
gives the list of IDs, as characters, for all the pairs of individuals that are related
as double first cousins
FamilyCnt
If two individuals, i and j, are double first cousins, then is siblings will also
be double first cousins with js siblings. Therefore, this is the total number of
family pairs where offspring are related as double first cousins.
Author(s)
<matthewwolak@[Link]>
genAssign
Generation assignment
genAssign
Description
Given a pedigree, the function assigns the generation number each individual belongs in.
Usage
genAssign(pedigree)
Arguments
pedigree
A pedigree with columns organized: ID, Dam, Sire
Details
Zero is the base population.
Adapted from kindepth function in kinship
Value
A vector of values is returned. This vector is in the same order as the ID column of the pedigree.
See Also
kinship
IBD
Identical by descent
Description
determines if two individuals are IBD, given their genotypes
Usage
IBD(pair, genotypes, n)
Arguments
pair
which two individuals
genotypes
each individuals genotype
number of individuals in the population to index the second haploid complement
of genes
10
makeA
Author(s)
<matthewwolak@[Link]>
Identity by descent helper function
IBD2
Description
applies IBD over a set of pairs
Usage
IBD2(pairs, genos, n)
Arguments
pairs
see IBD
genos
see IBD
see IBD
Author(s)
<matthewwolak@[Link]>
makeA
Creates the additive genetic relationship matrix
Description
This returns the additive relationship matrix in sparse matrix format.
Usage
makeA(pedigree, method = NULL)
Arguments
pedigree
A pedigree where the columns are ordered ID, Dam, Sire
method
Indication of method to use. Either NULL, in which case the "fast" method is
used by default, or one of "fast", "lowestmem", or "flowmem". Method "fast"
uses a good deal of RAM and is fastest for smaller pedigrees. Method "lowestmem" is the slowest method, but uses the least amount of RAM. Method
"flowmem" is slower than "fast" for small pedigrees, but faster then "fast" for
very large pedigrees (testing by the author puts the swtiching point at around
3000). However, "flowmem" still uses more RAM than "lowestmem" for very
large pedigress (despite being much faster).
makeAA
11
Details
Missing parents (e.g., base population) should be denoted by either NA, 0, or *.
Uses relfactor function in package pedigreemm. Also, used as a support function to makeD.
Value
Returns A, or the numerator relationship matrix, in sparse matrix form.
Author(s)
<matthewwolak@[Link]>
See Also
relfactor, makeD
Examples
makeA(Mrode2)
Creates the additive by additive epistatic genetic relationship matrix
makeAA
Description
Given a pedigree, the matrix of additive by additive genetic relatedness (AA) among all individuals
in the pedigree is returned.
Usage
makeAA(pedigree)
Arguments
pedigree
A pedigree where the columns are ordered ID, Dam, Sire
Details
Missing parents (e.g., base population) should be denoted by either NA, 0, or *.
The function first estimates the A matrix using makeA, then it calculates the Hadamard (elementwise) product of the A matrix with itself (A # A).
Value
AA
logDet
AAinv
listAAinv
the AA matrix in sparse matrix form
the log determinant of the AA matrix
the inverse of the AA matrix in sparse matrix form
the three column form of the non-zero elements for the inverse of the AA matrix
12
makeD
Author(s)
<matthewwolak@[Link]>
See Also
makeA
Examples
AAoutput <- makeAA(Mrode2)
makeD
Creates the dominance genetic realationship matrix
Description
Given a pedigree, the matrix of coefficients of fraternity are returned - the D matrix. Note, no
inbreeding must be assumed. Will return the inverse of the D matrix by default, otherwise this
operation can be skipped if desired.
Usage
makeD(pedigree, parallel = FALSE, ncores = getOption("cores"),
invertD = TRUE, Amethod = NULL, returnA = FALSE)
Arguments
pedigree
A pedigree with columns organized: ID, Dam, Sire
parallel
Logical, indicating whether computation should be run on multiple processors
at once. See details for considerations.
ncores
Number of cores to use when parallel = TRUE. Default is maximum available.
Otherwise, set with an integer. See details for considerations.
invertD
A logical indicating whether or not to invert the D matrix
Amethod
Either NULL or a character string, indicating the method to be used when creating the A matrix. If NULL and the pedigree is greater than 3000 individuals, the
"flowmem" method will be used. If NULL and the pedigree is less than 3000,
the "fast" method will be used. See makeA for more details on the methods.
returnA
Logical, indicating if the numerator relationship matrix (A) should be stored and
returned.
makeD
13
Details
Missing parents (e.g., base population) should be denoted by either NA, 0, or *.
There exists no convenient method of obtaining the inverse of the dominance genetic relatedness
matrix (or the D matrix itself) directly from a pedigree (such as for the inverse of A, i.e., Quaas
(1995)). Therefore, this function computes the coefficient of fraternity (Lynch and Walsh, 1998) for
every individual in the pedigree with a non-zero additive genetic relatedness. Note, the construction
of the D matrix is more computationally demanding (in computing time and space requirements)
than is the construction of A.
To overcome the computational difficulties, this function can enable parallel processing (see package multicore) to speed up the execution. Note this may not be possible on Windows (See
multicore documentation for further information). If parallel = TRUE then the pacakge multicore
must be loaded. The default is to use the maximum available to the machine, but this can be restricted by indicating the number desired in the argument ncores. Setting up the multi-processing
takes some overhead, so no real advantage is gained for small pedigrees. Also, since all processes
are sharing a fixed amount of RAM, for very large pedigrees using many processes in parallel may
not be feasible due to RAM restrictions (i.e., if each process needs "n" amount of RAM to run, then
ncores should be set to = total RAM/n). Otherwise the machine can become overworked.
Note, for very large pedigrees returnA should be set to FALSE to avoid drastically increasing the
memory requirements while making D. When this occurs, NULL is returned for the element of
A in the output of makeD.
Value
A
the A matrix in sparse matrix form
the D matrix in sparse matrix form
logDet
the log determinant of the D matrix
Dinv
the inverse of the D matrix in sparse matrix form
listDinv
the three column form of the non-zero elements for the inverse of the D matrix
Author(s)
<matthewwolak@[Link]>
References
Quaas, R.L. 1995. Fx algorithms. An unpublished note.
Lynch M., & Walsh, B. 1998. Genetics and Analysis of Quantitative Traits. Sinauer, Sunderland,
Massachusetts.
See Also
makeDsim
Examples
DinvMat <- makeD(Mrode9, parallel = FALSE)$Dinv
14
makeDomEpi
makeDomEpi
Creates the additive by dominance and dominance by dominance
epistatic genetic relationship matrices
Description
Given a pedigree, the matrix of additive by dominance (AD) genetic relatedness, dominance by
dominance (DD) genetic relatedness, or both are returned.
Usage
makeDomEpi(pedigree, output = c("AD", "DD", "both"), parallel = FALSE, Dinverse=FALSE)
Arguments
pedigree
A pedigree where the columns are ordered ID, Dam, Sire
output
Character(s) denoting which matrix and its inverse is to be constructed.
parallel
A logical indicating whether or not to use parallel processing. Note, this may
only be available on Mac and Linux operating systems.
Dinverse
A logical indicating whether or not to invert the D matrix
Details
Missing parents (e.g., base population) should be denoted by either NA, 0, or *.
Because of the computational demands of constructing the D matrix (see makeD), this function
allows for the inverses that are derived from the D matrix (i.e., D-inverse, AD-inverse, and DDinverse)to be constructed at the same time. This way, the D matrix will only have to be constructed
once for use in the three seperate genetic relatedness inverse matrices that depend upon it. However,
using the output and Dinverse options in different combinations will ensure that only the desired
matrix inverses are constructed.
If parallel = TRUE then the pacakge multicore must be loaded.
Both the AD and DD matrix are computed from the Hadamard product of the respective matrices
(see also, makeAA).
Value
All of the following will be returned. However, the values of the output and Dinverse options
passed to the function will determine which of the following are not NULL objects within the list:
D
the D matrix in sparse matrix form
logDetD
the log determinant of the D matrix
AD
the AD matrix in sparse matrix form
logDetAD
the log determinant of the AD matrix
DD
the DD matrix in sparse matrix form
makeDsim
15
logDetDD
the log determinant of the DD matrix
Dinv
the inverse of the D matrix in sparse matrix form
ADinv
the inverse of the AD matrix in sparse matrix form
DDinv
the inverse of the DD matrix in sparse matrix form
listDinv
the three column form of the non-zero elements for the inverse of the D matrix
listADinv
the three column form of the non-zero elements for the inverse of the AD matrix
listDDinv
the three column form of the non-zero elements for the inverse of the DD matrix
Author(s)
<matthewwolak@[Link]>
See Also
makeA, makeD, makeAA
Examples
Boutput <- makeDomEpi(Mrode9, output = "b", parallel = FALSE, Dinverse = FALSE)
str(Boutput)
DADoutput <- makeDomEpi(Mrode9, output = "AD", parallel = FALSE, Dinverse = TRUE)
str(DADoutput)
makeDsim
Creates the dominance genetic relationship matrix through iteration
Description
Alleles are explicitly traced through a pedigree to obtain coefficients of fraternity between pairs
of individuals (the probability of sharing both alleles identical by descent). This is accomplished
in an iterative process to account for the various routes by which an allele will progress through
a pedigree due to Mendelian sampling. This is an implementation of the simulation approach of
Ovaskainen et al. (2008).
Usage
makeDsim(pedigree, N, parallel = FALSE, ncores = getOption("cores"),
invertD = FALSE, calcSE = FALSE, returnA = FALSE)
16
makeDsim
Arguments
pedigree
A pedigree with columns organized: ID, Dam, Sire
The number of times to iteratively trace alleles through the pedigree
parallel
A logical indicating whether or not to use parallel processing. Note, this may
only be available for Mac and Linux operating systems.
ncores
The number of cpus to use when constructing the dominance relatedness matrix.
Default is all available.
invertD
A logical indicating whether or not to invert the D matrix
calcSE
A logical indicating whether or not the standard errors for each coefficient of
fraternity should be calculated
returnA
Logical, indicating if the numerator relationship matrix (A) should be stored and
returned.
Details
Missing parents (e.g., base population) should be denoted by either NA, 0, or *.
If parallel = TRUE then the pacakge multicore must be loaded.
Ovaskainen et al. (2008) indicated that the method of calculating the D matrix (see makeD) is only
an approximation. They proposed a simulation method that is implemented here. This should be
more appropriate, especially when inbreeding occurs in the pedigree.
The value, listDsim will list both the approximate values (returned from makeD) as well as the
simulated values. If calcSE is TRUE, these values will be listed in listDsim.
Value
A
the A matrix in sparse matrix form
the approximate D matrix in sparse matrix form
logDetD
the log determinant of the approximate D matrix
Dinv
the inverse of the approximate D matrix in sparse matrix form
listDinv
the three column form of the non-zero elements for the inverse of the approximate D matrix
Dsim
the simulated D matrix in sparse matrix form
logDetDsim
the log determinant of the simulated D matrix
Dsiminv
the inverse of the simulated D matrix in sparse matrix form
listDsim
the three column form of the non-zero and non-self elements for the simulated
D matrix
listDsiminv
the three column form of the non-zero elements for the inverse of the simulated
D matrix
Note
This simulation can take a long time for large values of N. If unsure, it is advisable to start with a
lower N and gradually increase to gain a sense of the time required to execute a desired N.
Mrode2
17
Author(s)
<matthewwolak@[Link]>
References
Ovaskainen, O., Cano, J.M., & Merila, J. 2008. A Bayesian framework for comparative quantitative
genetics. Proceedings of the Royal Society B 275, 669-678.
See Also
makeD
Examples
simDinvMat <- makeDsim(Mrode9, N = 1000, parallel = FALSE, invertD = FALSE, calcSE = TRUE)$listDsim
Mrode2
Pedigree from Table 2.1 of Mrode (2005)
Description
An example pedigree
Usage
data(Mrode2)
Format
A data frame with 6 observations on the following 3 variables.
id a numeric vector
dam a numeric vector
sire a numeric vector
Source
Mrode, R.A. 2005. Linear Models for the Prediction of Animal Breeding Values, 2nd ed. Cambridge, MA: CABI Publishing.
18
numPed
Pedigree, adapted from example 9.1 of Mrode (2005)
Mrode9
Description
An example pedigree
Usage
data(Mrode9)
Format
A data frame with 12 observations on the following 3 variables.
pig a numeric vector
dam a numeric vector
sire a numeric vector
Source
Mrode, R.A. 2005. Linear Models for the Prediction of Animal Breeding Values, 2nd ed. Cambridge, MA: CABI Publishing.
Creates a numeric form of a pedigree
numPed
Description
This function takes a pedigree and converts it into a standard integer form used by many functions
in the nadiv package.
Usage
numPed(pedigree)
Arguments
pedigree
A three column pedigree object, where the columns correspond to: ID, Dam, &
Sire
Details
Missing parents (e.g., base population) should be denoted by either NA, 0, or *.
Individuals must appear in the ID column in rows preceeding where they appear in either the Dam
or Sire column.
Based on code from the MCMCglmm package
parConstrainFun
19
Value
The pedigree, where individuals are now numbered from 1 to n and unknown parents are assigned
a value of -998.
See Also
MCMCglmm
parConstrainFun
Function used in the proLik function to produce a profile likelihood
for a variance component
Description
Given a model object from asreml and a range of estimates of the parameter, the function will supply the likelihood ratio test statistic for the comparison of the full model to one where the parameter
of interest is constrained.
Usage
parConstrainFun(x, parameters, full, fm2, comp, G)
Arguments
x
section of all parameter values to analyze
parameters
a value for which the log Likelihood of a model is to be calculated
full
the full model asreml object
fm2
starting values for the full model
comp
which variance component to constrain
logical indicating if the component is part of the G structure
Details
Used internally in the proLik function to call constrainFun
Author(s)
<matthewwolak@[Link]>
See Also
See Also proLik, constrainFun
20
proLik
[Link]
Plot profile Likelihood
Description
This function graphically depicts the output from a proLik object.
Usage
## S3 method for class proLik
plot(x, CL = TRUE, alpha = 0.05, type = "l", ...)
Arguments
x
the output from proLik
CL
a logical indicating whether a line representing the Confidence Limit is to be
drawn
alpha
if CL is TRUE, the confidence level at which CL is to be drawn
type
the type of plot to be generated, see arguments to plot
...
other arguments to plot
Author(s)
<matthewwolak@[Link]>
See Also
proLik
Examples
##See examples in \code{proLik}
proLik
Estimates the profile likelihood of a random effect
Description
When a mixed model is run in ASReml-R, this function can estimate the profile likelihood of variance components from the output.
Usage
proLik([Link], component, G = TRUE, negative = FALSE,
[Link] = 4, nse = 2, alpha = 0.05, threshold = 0.001,
parallel = FALSE, ncores = getOption("cores"))
proLik
21
Arguments
[Link]
An asreml model object
component
A character vector indicating for which variance component the profile likelihood will be constructed. Must be an object in [Link]$gammas.
Logical indicating whether component is part of the G structure. If the component is part of the R structure, G = FALSE.
negative
Logical indicating whether or not the component can take on a negative value
(i.e., a covariance)
[Link]
Number of sample units to be used in constructing the profile likelihood
nse
Number of standard errors on either side of the estimate, over which the profile
likelihood should be constructed
alpha
The critical value for determining the Confidence Interval
threshold
Acceptable distance, between actual sample values and interpolated values, for
determining the upper and lower limits of the Confidence Interval. Expressed as
a percentage of the parameter estimate. Actual sample points will be no more
than this distance from the true value of the estimate
parallel
A logical indicating whether or not parallel processing will be used. Note, may
only be available for Mac and Linux operating systems.
ncores
Argument indicating number of cpu units to use. Default is all available.
Details
For the negative argument, this should be used if the profile likelihood of a covariance component
is to be constructed.
If parallel = TRUE then the pacakge multicore must be loaded.
The function uses a grid search to obtain the approximate confidence limits. Therefore, [Link]
should be carefully thought about beforehand when running the function. Increasing this value will
ensure a smoother surface, but at cost to time. The function weights this quantity to ensure more
samples for regions of the profile likelihood greater than the estimate. The lower bound of the sampling interval to the estimate is made up of 2 times [Link], whereas the sampling interval
from the estimate to the upper bound is 3 times [Link].
Similarly for nse, the function will include twice as many standard errors from the estimate to the
upper bound than it does from the estimate to the lower bound. If negative is FALSE, and the
lower bound of the sampling interval extends beyond zero, this will instead be set to 0.
Value
lambdas
negative log Likelihood ratio test statistic. Estimated from the log Likelihood
of the [Link] and the log Likelihood of the model with the component
constrained to a value in the sampling interval
[Link]
value along the sampling interval for which the component was constrained
UCL
approximate Upper Confidence Limit
LCL
approximate Lower Confidence Limit
component
the component for which the profile likelihood surface has been constructed
22
SEfun
Warning
May be unfeasible to estimate profile likelihoods for complex models with many variance components
Author(s)
<matthewwolak@[Link]>
See Also
aiFun
Examples
## Not run:
library(asreml)
ginvA <- [Link](warcolak[, c(1,3,2)])$ginv
ginvD <- makeD(warcolak[,1:3])$listDinv
warcolak$IDD <- warcolak$ID
[Link] <- asreml(trait1 ~ 1, random = ~ped(ID) + giv(IDD),
ginverse = list(ID = ginvA, IDD = ginvD), data = warcolak)
summary([Link])$varcomp
profileA <- proLik([Link] = [Link], component = "ped(ID)!ped",
G = TRUE, negative = FALSE, [Link] = 3, nse = 3)
profileA
profileD <- proLik([Link] = [Link], component = "giv(IDD).giv",
G = TRUE, negative = FALSE, [Link] = 3, nse = 3)
x11(w = 6, h = 8)
par(mfrow = c(2,1))
[Link](profileA)
[Link](profileD)
## End(Not run)
SEfun
Estimate of the standard error for a simulated coefficient of fraternity
Description
The standard error for coefficients of fraternity that are derived from simulation (makeDsim) as
described in the appendix to Ovaskainen et al. (2008).
Usage
SEfun([Link], N)
sm2list
23
Arguments
[Link]
the simulated coefficient of fraternity
the number of times the simulation was conducted
Author(s)
<matthewwolak@[Link]>
References
Ovaskainen, O., Cano, J.M., & Merila, J. 2008. A Bayesian framework for comparative quantitative
genetics. Proceedings of the Royal Society B 275, 669-678.
sm2list
Converts a sparse matrix into a three column format.
Description
From a sparse matrix object, the three column, row ordered lower triangle of non-zero elements is
created. Mostly used within other functions (i.e., makeD)
Usage
sm2list(A = NULL, rownames = NULL, colnames = c("row", "column", "A"))
Arguments
A
a sparse matrix
rownames
a list of rownames from the A matrix.
colnames
the columns will be labelled however they are entered in this character vector
Details
The sparse matrix and three column format must fit CERTAIN assumptions about row/column sorting and lower/upper triangle matrix.
Adapted from a function in the MCMCglmm package
Value
returns the list form of the sparse matrix as a [Link]
See Also
MCMCglmm
24
varTrans
Transforms ASReml-R gamma variances to component scale
varTrans
Description
The inverse of the Average Information matrix in an ASReml-R object produces the sampling variances of the random effects on the gamma scale. This function scales these variances to the original
component scale. This allows for Confidence Intervals to be constructed about the variance component estimates.
Usage
varTrans([Link])
Arguments
[Link]
Object from a call to asreml
Value
Returns a numeric vector of variances for each variance component in an ASReml-R model.
Author(s)
<matthewwolak@[Link]>
Examples
## Not run:
library(asreml)
ginvA <- [Link](warcolak)$ginv
ginvD <- makeD(warcolak[,1:3])$listDinv
warcolak$IDD <- warcolak$ID
[Link] <- asreml(trait1 ~ 1, random = ~ped(ID) + giv(IDD),
ginverse = list(ID = ginvA, IDD = ginvD), data = warcolak)
summary([Link])$varcomp
varTrans([Link])
## End(Not run)
vchoose
25
Helper function for another internal function in makeDsim
vchoose
Description
Selects items, given indices and a list of choices
Author(s)
<matthewwolak@[Link]>
warcolak
Pedigree and phenotypic values for a mythical population of Warcolaks
Description
A two trait example pedigree from the three generation breeding design of Fairbairn & Roff (2006)
with two un-correlated traits.
Usage
data(warcolak)
Format
A data frame with 5400 observations on the following 5 variables.
ID
Dam
Sire
a factor specifying 5400 unique individual IDs
a factor specifying the unique ID for each dam
a factor specifying the unique ID for each sire
sex a vector specifying 0 if the individual is a male and 1 if it is a female
trait1 a numeric vector of phenotypic values
trait2 a numeric vector of phenotypic values
Details
Unique sets of relatives are specified (Fairbairn & Roff, 2006) for a three generation breeding
design. Each set contains 72 individuals. This pedigree reflects an experiment which produces
75 of these basic sets from Fairbairn & Roffs design.
The dataset was simulated to have a two un-correlated traits with different genetic architectures. The
additive genetic, dominance genetic, and environmental (or residual) variances for both trait1 and
trait2 are specified to be 0.4, 0.3, & 0.3, respectively. However, the additive genetic variance
for trait2 can be further decomposed to autosomal additive genetic variance (0.3) and X-linked
26
wrap_dij
additive genetic variance (0.1). These variances were drawn from multivariate random normal
distributions [e.g., additive effects: N ~ (0, A * Va)] with means of zero and variances equal to the
product of the desired and the relatedness (or incidence) matrix. Because of this, the actual variance
in random effects will vary slightly from the amount specified in the simulation.
References
Fairbairn, D.J. & Roff, D.A. 2006. The quantitative genetics of sexual dimorphism: assessing the
importance of sex-linkage. Heredity 97, 319-328.
wrap_DFC
Double First Cousin wrapper function
Description
Used in the findDFC function
Usage
wrap_DFC(x, grandparents)
Arguments
x
sequence
grandparents
list of all individuals and their grandparents
Details
Used to wrap the DFC function inside of findDFC
Author(s)
<matthewwolak@[Link]>
wrap_dij
Wrapper function for makeD
Description
used inside makeD
Usage
wrap_dij(x, parents, relatedness, N)
wrap_dij
27
Arguments
x
sequence
parents
parents of both individuals, i and j
relatedness
list form of relatedness matrix
number of individuals in the pedigree
Author(s)
<matthewwolak@[Link]>
Index
Topic datasets
Mrode2, 17
Mrode9, 18
warcolak, 25
sm2list, 23
varTrans, 3, 24
vchoose, 25
warcolak, 25
wrap_DFC, 26
wrap_dij, 26
aiCI, 3
aiFun, 3, 4, 22
chooser, 6
constrainFun, 6
DFC, 7
findBetween, 7
findDFC, 7, 8
genAssign, 9
IBD, 9
IBD2, 10
makeA, 10, 11, 12, 15
makeAA, 11, 14, 15
makeD, 11, 12, 1417
makeDomEpi, 14
makeDsim, 13, 15, 22
MCMCglmm, 19, 23
Mrode2, 17
Mrode9, 18
nadiv (nadiv-package), 2
nadiv-package, 2
numPed, 18
parConstrainFun, 19
plot ([Link]), 20
[Link], 20
proLik, 20
relfactor, 11
SEfun, 22
28