Table of Contents

Frequently asked questions: General

Error messages

Negative standard errors

Standard errors in WOMBAT are derived a) assuming large samples, and b) a series of approximations - see the Technical Details section of the manual. In some cases, this approximation simply fails. Reasons for this may be, for instance, that your sample is very small, or that you are dealing with a model which is overparameterised, which includes multivariate analyses where some covariance matrices have eigenvalues which are effectively zero. In the latter scenario, it may help to fit a reduced rank model. Otherwise, you simply have to accept that the approximation of standard errors does not always work.

Crash "Segmentation fault"

Message "Small/Invalid Pivot"

Message "lnkloc" : dimension exceeded !!

Confusion

Zero residual covariances

Interaction for fixed effects

  • Q: I am fitting age as a quadratic covariable in the model, using the default polynomial regression. WOMBAT gives me estimates of regression coefficients in FixSolutions.out, but: a) I can't find the intercept, and b) these estimates don't make sense, i.e. when I plug them into the regression equation, I don't get a curve which fits the data. What is wrong?
  • A: Long answer on separate page – here ~~UP~~
  • Q: What options does WOMBAT provide for the analysis of categorical traits – I cannot find anything about it in the manual.
  • A: None – the manual clearly states that WOMBAT is geared towards the analysis of continuous traits (only!), assuming a multivariate normal distribution. ~~UP~~

What is ?

Pruning and pedigree reduction

How-To

  • 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. ~~UP~~
  • 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.

  • Q: I have run a standard variance component analysis and found the solutions for effects fitted in the model. However, corresponding standard errors are missing - how do I get them?
  • A: In a mixed model analysis, approximate lower bound standard errors are obtained from the diagonal elements of the inverse of the coefficient matrix. The default method for variance component estimation is the “average informatiom” algorithm. The implementation in WOMBAT does not involve inversion of the coefficient matrix - hence standard errors are not simply a by-product. You can enforce calculation of standard errors by simply adding the option FORCE-SE in a SPECIAL block at the end of the parameter file.
SPECIAL
   FORCE-SE
END
  • 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 ~~UP~~
  • 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).~~UP~~
  • 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 <latex>\Phi_{i}</latex>, 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 <latex>b_{1i}\Phi_{1}(a) + b_{2i} \Phi_{2}(a)+ b_{3i} \Phi_{3}(a)</latex> for each animal, with <latex>b_{ji}</latex> the estimated RR for individual i and <latex>\Phi_{j}(a)</latex> 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! ~~UP~~
  • 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.~~UP~~
  • 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

~~UP~~

  • 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. ~~UP~~
  • 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. ~~UP~~
  • 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.

~~UP~~

  • 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 .~~UP~~
  • 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.

~~UP~~

  • Q: I want to run WOMBAT from within R - is that possible and how do I do it?
  • A: Yes. Provided you have set up the relevant paths (so that R can find the WOMBAT executables) you can run WOMBAT like any other system command, e.g. system2(“wombat”,args=c(“-v”,“wombat.par”)). Of course all the usual input files must exist and you need to make sure that R is looking for them in the correct place.

Strange Behaviour

Almost linear convergence

Miscellaneous

Mac version

UPDATE: A kind visitor compiled WOMBAT on his MAC - this is available for download now. NB: This is a “one-off” and will not be updated, nor are bug fixes possible.

Who uses it?