WOMBAT – A program for Mixed Model Analyses by Restricted Maximum Likelihood

## Missing covariables

• Q I want to fit a covariable, but there are some records where this is not recorded. What should I do? WOMBAT doesn't seem to allow for a 'missing value' code there, so I have set them all to a value of zero. Is that o.k.
• A: No, it is not! Strictly speaking, you should delete all records for which you don't have the covariable recorded. WOMBAT will not do that for you! Setting 'missing values' to zero will create havouc (unless the mean covariable in the data is zero), as WOMBAT will treat those as observed values and therefore may estimate regression coefficient which don't fit the data at all. In some instances, you may not be willing to delete these records - if you really must retain them, you should set the value for the missing covariable to the mean of the covariable in the data. This would yield an analysis where you adjust some records for the covariable, but not others; hence you should not do this for covariables which have a substantial effect on the variance of your observations.

## Missing dam codes

• Q: I am dealing with a trait subject to maternal effects. However, the identity of the dam is not recorded for a lot of animals, and WOMBAT won't let me run an analysis fitting maternal effects if the data contain dam codes of zero. What can I do to analyse this trait properly?
• A: Sadly, WOMBAT cannot generate information out of nothing, i.e. in order to estimate an effect you need to record it. You could:
1. Fit a sire instead of an animal model. This should at least give you an estimate of the additive genetic variance unbiased by maternal effects.
2. Fit an animal model for the subset of the data which do have known dams, i.e. delete all records on animals with unidentified dams.
3. If only a small proportion of dams are unknown (less than 5% or so), you could replace the missing dam codes by some dummy code, assigning a different fictitious dam to each animal with unknown dam.

N.B. Even if all animals in the data have known dams, you may have animals in the pedigree with unknown dams. If you wish to fit a maternal genetic effect, you will then similarly need to assign dummy dam codes for all unknown dams, i.e. the third column in the pedigree file cannot contain any zeros. Again, your analysis will work best if this proportion of dams is relatively small.

## Accuracy of breeding values

• Q: I am using WOMBAT to obtain breeding values for animals. How can I get the corresponding accuracies?
• A: Long answer on separate page – here

## Plant pedigrees

• Q: I am trying to use WOMBAT to analyse data on plants where I can have selfing or individuals which can be both sires and dams. However, WOMBAT stops with an error message claiming that my pedigree records are invalid. What can I do?
• A: WOMBAT has been written with the analysis of data from livestock in mind where such pedigrees are indeed not plausible and such checks thus help to track pedigree errors. You can switch these checks off using a run time option of −−self (not in the manual), provided that you are confident the standard rules to set up the inverse of the numerator relationship matrix are applicable. An alternative is to set up the inverse relationship matrix yourself and supply it as a generalized inverse covariance matrix (.gin file).

## RR breeding values

• Q: I am fitting a random regression model with age as the control' variable and want to calculate breeding value estimates for specific age points. How do I do that?
• A: WOMBAT will give you estimates of the random regression (RR) coefficients.
Say you have fitted a random effect called animal to represent direct, additive genetic effects – the estimates of the RR coefficients are the in the file ''RnSoln_animal.dat''. Further, say you have fitted 3 basis functions $\Phi_{i}$, such as the first three Legendre polynomials, and that you are interested in breeding values at age $a$. You then need to evaluate the regression equation $$b_{1i}\Phi_{1}(a) + b_{2i} \Phi_{2}(a)+ b_{3i} \Phi_{3}(a)$$ for each animal, with
• $b_{ji}$ the estimated RR coefficient for individual and
• $\Phi_{j}(a)$ the j-th basis function evaluated for $a$

WOMBAT does not perform these simple calculations for you, but to make this task easier, it writes out a file with the basis functions evaluated for all values of the control variable occurring in the data – see the manual for details!

## "Programmed pause"

• Q: I want to run WOMBAT in batch mode' - however it stops with a “Programmed pause” (and a warning message) and expects me to hit Enter' to continue. How do I get around that?
• A: Easy, use run option −−batch but, please, read the warning messages!

• Q: WOMBAT writes out a number of binary (.bin) files. Is there any way I can access the information in these - I'd be interested in things like the inbreeding coefficients for individual animals.
• A: Well, these files are not really meant to be read by the outside world - that's one reason why they are binary. However, I have a small number of simple, stand-alone programs to read these. You need a FORTRAN compiler and a modicum of programming knowledge to modify them to generate output according to your requirements. See: Auxiliary Programs
NB: The current version of WOMBAT writes out the inbreeding coefficients (in %) for individual levels of genetic effects as the last column in the corresponding "RnSoln_*.dat" files.

## Positive definite input matrix

• Q: I am trying to run a multivariate analysis, but WOMBAT stops immediately with a message that that the Matrix of starting values is “invalid” – what does this mean and what can I do about it? And why can't WOMBAT fix this automatically?
• A: Long answer on separate page – here

## Weighted analysis

• Q: How do I run a weighted analysis in WOMBAT?
• A: That depends on what exactly you mean by weighted'.
1. Fixed weights: If your weights do not depend on the variance components to be estimated or any of the effects in the model of analysis, then really all you need to do is weigh your observations appropriately (e.g. multiply or divide by weight) prior to the analysis.
2. Variable weights: In other cases, the weights to apply depend on the variance components and change with each round of iteration.
The best strategy to deal with this is to carry out your analysis one iterate at a time, scaling observations as required before each iterate – it may be a bit tedious, but it will do what you want and give you full flexibility in applying different kinds of weights.
3. WOMBAT does have an experimental SPECIAL option for a WEIGHTED analysis, but this is rather limited in what it does and has not been thoroughly tested; See WOMBAT manual.

## Heterogeneous variances

• Q: I want to fit a model with heterogeneous residual variances. Can WOMBAT do that? I can't seem to find anything in the manual.
• A: There is no direct option for heterogeneous variances for standard uni- and multivariate analyses. However, this does not mean you cannot fit such models. The trick is to think of your problem as a special kind of random regression analysis – if you can formulate it as such, it is highly likely that you'll be able to fit it in WOMBAT.

## Factor-analytic model

• Q: I want to estimate a genetic covariance matrix with a factor-analytic structure, but I can't find the option to do so. I thought WOMBAT could do this kind of analysis.
• A: Yes, WOMBAT can do this. However, there is no explicit option for it. You cannot fit a standard, multivariate model and tell WOMBAT to impose a FA structure. Instead, you need to fit what is referred to as extended' factor-analytic model – fitting a vector of common factors and a vector of specific effects as two separate random effects. See this page for further details.

## Reduced rank analyses - starting values

• Q: I am trying to run analyses where I estimate the genetic covariance matrix at reduced rank. I thought a good strategy might be to start with a full rank analysis and to reduce the rank one by one. Doing so, I thought I could use the estimates from the previous run as starting values. However, specifying a run time option of -c to tell WOMBAT to pick up the starting values from the file BestPoint doesn't work – the program ignores it completely and uses the values from the .par file. Why?
• A: This is indeed a very good strategy for such analyses. There is just one small step missing:
• If you look at the file BestPoint you'll see two numbers on the first line, the log likelihood value and the number of parameters.
• When a continuation run is specified, WOMBAT will read the latter number and compare it to the number determined from the model & type of analysis specified in the .par file. If the two don't match, the input from BestPoint is unceremoniously ignored. This is a small safety catch' which helps avoiding input from an inappropriate file.
• What that means is that you need to edit BestPoint and replace the old number of parameters with the number for the next reduced rank run. This is easy to work out: Say you have a genetic covariance matrix for q traits. The full rank estimate has p=q(q+1)/2 parameters, reducing the rank r by one reduces p by one, reducing r to q-2 reduces p by 3, reducing r to q-3 reduces p by 6, and so forth. The general formula for the number of parameters to be estimated in a matrix of size q and rank r is p = r(2q-r+1)/2 .

## Degrees of freedom to test fixed effects

• Q: I would like to calculate p-values for estimates of fixed effects - but cannot find the appropriate degrees of freedom in the WOMBAT output. Where are they?
• A: Unfortunately, WOMBAT does not attempt to determine residual degrees of freedom for such tests.