title: Large-scale genetic evaluation author: Yutaka Masuda date: September 2019 subject: "Introduction to BLUPF90 suite programs" tags: [introduction,tutorial] ...
Preconditioned conjugate gradient (PCG) is an iterative method to solve the linear equations. This method is easily harmonized with the "iteration on data" technique. The intermediate status is kept in 4 vectors, and the one iteration will be done by updating the vectors. BLUP90IOD2 is a program implementing this algorithm. Here we will introduce a basic idea needed to understand what the program performs. See Stranden and Lidauer (2000) and Tsuruta et al. (2001) for the detailed algorithm.
The mixed model equations can be written as
$$
\mathbf{Cx} = \mathbf{b}
$$
where
The residual is expressed as
$$
\mathbf{r} = \mathbf{b} - \mathbf{Cx}
$$
and the algorithm tries to reduce with statistics containing the residual. The convergence criterion with the current solution
Note that some other software, e.g., MiX99, uses
BLUP90IOD2 is the current program to perform the iteration on data with PCG. CBLUP90IOD can handle a threshold model or threshold-linear models with 1 threshold trait. BLUP90MBE is specialized in multibreed models with external information (see Legarra et al., 2007). In this example, we use the BLUP90IOD2 program.
A parallel version of BLUPF90IOD2 is now available. BLUP90IOD2OMP1 is a program supporting parallel processing in reading data and pedigree files using OpenMP. This program is useful especially for very large data set with a complicated model (like the multiple-trait model). There is no advantage to use this program for small or moderate data set. The usage of this program is the same as BLUP90IOD2.
Here we will use the same sample files as used in REML estimation.
simdata.txt
: data filesimped.txt
: pedigree file
We will apply a 4-trait animal model to this data set with the following parameter file.
DATAFILE
simdata.txt
NUMBER_OF_TRAITS
4
NUMBER_OF_EFFECTS
4
OBSERVATION(S)
9 10 11 12
WEIGHT(S)
EFFECTS:
6 6 6 6 155 cross
7 7 7 7 2 cross
8 8 8 8 11 cross
1 1 1 1 4641 cross
RANDOM_RESIDUAL VALUES
63.568 35.276 26.535 13.533
35.276 84.627 37.831 23.306
26.535 37.831 75.156 28.079
13.533 23.306 28.079 46.839
RANDOM_GROUP
4
RANDOM_TYPE
add_animal
FILE
simped.txt
(CO)VARIANCES
37.150 19.471 23.885 24.246
19.471 16.128 19.571 22.239
23.885 19.571 31.315 33.782
24.246 22.239 33.782 51.706
Run BLUP90IOD2 with the parameter file. It takes 185 rounds to meet the convergence.
round = 183 eps = 0.1707E-11 time = 0.01
round = 184 eps = 0.1139E-11 time = 0.01
round = 185 eps = 0.9976E-12 time = 0.01
7.1286485E-03 seconds per round
* END iteration: 11-14-2016 17h 52m 05s 737
solutions stored in file: "solutions"
OPTION conv_crit tol
This option defines the convergence criterion (tol
should
be a small value. The default is 1.0E-12
. The criterion should be carefully decided because
the default value could be too loose but the strict criterion requires too many rounds to converge.
The best practice is to compare solutions from different convergence criterions and determine
enough convergence criterion.
OPTION blksize n
This option creates a block diagonal matrix for pre-conditioner (n
is 1). The block size
should be the same as the number of traits. This option will reduce the number of iterations
if the specified value is valid.