GVCBLUP: a computer package for genomic prediction and variance component estimation of additive and dominance effects

Background Dominance effect may play an important role in genetic variation of complex traits. Full featured and easy-to-use computing tools for genomic prediction and variance component estimation of additive and dominance effects using genome-wide single nucleotide polymorphism (SNP) markers are necessary to understand dominance contribution to a complex trait and to utilize dominance for selecting individuals with favorable genetic potential. Results The GVCBLUP package is a shared memory parallel computing tool for genomic prediction and variance component estimation of additive and dominance effects using genome-wide SNP markers. This package currently has three main programs (GREML_CE, GREML_QM, and GCORRMX) and a graphical user interface (GUI) that integrates the three main programs with an existing program for the graphical viewing of SNP additive and dominance effects (GVCeasy). The GREML_CE and GREML_QM programs offer complementary computing advantages with identical results for genomic prediction of breeding values, dominance deviations and genotypic values, and for genomic estimation of additive and dominance variances and heritabilities using a combination of expectation-maximization (EM) algorithm and average information restricted maximum likelihood (AI-REML) algorithm. GREML_CE is designed for large numbers of SNP markers and GREML_QM for large numbers of individuals. Test results showed that GREML_CE could analyze 50,000 individuals with 400 K SNP markers and GREML_QM could analyze 100,000 individuals with 50K SNP markers. GCORRMX calculates genomic additive and dominance relationship matrices using SNP markers. GVCeasy is the GUI for GVCBLUP integrated with an existing software tool for the graphical viewing of SNP effects and a function for editing the parameter files for the three main programs. Conclusion The GVCBLUP package is a powerful and versatile computing tool for assessing the type and magnitude of genetic effects affecting a phenotype by estimating whole-genome additive and dominance heritabilities, for genomic prediction of breeding values, dominance deviations and genotypic values, for calculating genomic relationships, and for research and education in genomic prediction and estimation. Electronic supplementary material The online version of this article (doi:10.1186/1471-2105-15-270) contains supplementary material, which is available to authorized users.


Background
Genomic prediction using genome-wide single nucleotide polymorphism (SNP) has become a powerful approach to capture genetic effects dispersed over the genome for predicting an individual's genetic potential of a phenotype [1][2][3]. Genomic estimation of variance components using genome-wide SNP markers is a powerful tool for estimating the genetic contribution of the whole-genome to a phenotype and for addressing the missing heritability problem where a large number of causal variants explained only a small fraction of the phenotypic variation. Dominance effects of quantitative traits are measured as the deviation of the mean value of the heterozygote genotype of individuals from the averages of the two alternative homozygous genotypes [4,5]. The inclusion of dominance in the prediction model may improve the accuracy of genomic prediction when dominance effects are present [6][7][8][9]. However, currently available software packages for genomic prediction and variance component estimation either are designed for additive effects only (GCTA [10]), or require users to prepare a dominance-specific file to estimate dominance effects (BLR or BGLR [11], GenSel [12], DMU [13], BLUPF90 [14]). User-friendliness of the computing tool affects the efficiency of data analysis for genomic prediction and estimation. In order to fill these gaps, we implement two computationally complementary computing strategies with identical results and various definitions of genomic relationships in the GVCBLUP package that has a wide-range of flexibility and functionality for broad applicability of genomic prediction and estimation of additive and dominance effects.
Implementation GVCBLUP currently has three main programs and a graphical user interface (GUI) named GVCeasy that integrates the three main programs with an existing program for graphical viewing of SNP effects. The three main programs are GREML_CE, GREML_QM, and GCORRMX, which are developed using shared memory parallel computing technology. GVCeasy supplies users a user-friendly platform to run GVCBLUP.

Two complementary computing strategies
Two sets of formulations with complementary computing advantages and identical results based on two equivalent mixed models are implemented: the CE set for large numbers of SNP markers and the QM set for large numbers of individuals [5,15]. Using notations in [5], the mixed model and its variance-covariance matrix for the CE set of formulations are: where X = N × c model matrix for fixed non-genetic effects, b = c × 1 column vector of fixed effects, Z = N × q model matrix allocating phenotypic observations to SNP marker genotypes of individuals, T α = q × m normalized model matrix for gene substitution effects of SNP markers, α = m × 1 column vector of gene substitution effects of SNP markers, T δ = q × m normalized model matrix for dominance effects of SNP markers, δ = m × 1 column vector of dominance effects of SNP markers, a = T α α = q × 1 genomic breeding values, d = T δ δ = q × 1 genomic dominance deviations, A g = q × q genomic additive relationship matrix = T α T α ', D g = q × q genomic dominance relationship matrix = T δ T δ ', and σ 2 α , σ 2 δ and σ 2 e are additive, dominance and residual variances, respectively. The mixed model and its variance-covariance matrix for the QM set of formulations are: Var where Z 1 = ZT α and Z 2 = ZT δ . Computing difficulty is the V −1 and P = V −1 − V −1 X(X'V −1 X) − X'V −1 for the CE set of Equations 1-2 and is the inverse of the coefficient matrix of the mixed model equations after absorbing fixed non-genetic effects (to be denoted by C −1 ) for the QM set of Equations 3-4. The CE set has the best potential for using large numbers of SNP markers because the size of the V −1 and P matrices is determined by the number of individuals (assuming one observation per individual) and does not change for different numbers of SNPs. Similarly, the QM set has the best potential for using large numbers of individuals because the size of the C −1 matrix is determined by the number of SNP markers and does not change for different numbers of individuals.

EM-REML and AI-REML
Two algorithms for restricted maximum likelihood (REML) estimation of variance components are implemented in both GREML_CE and GREML_QM: EM type algorithm (EM-REML) and AI-REML algorithm [5]. AI-REML generally is much faster than EM-REML but is not as robust as EM-REML and may be sensitive to initial values of variance components in the iterations. We require at least two iterations of EM-REML and the user may specify a larger number of EM-REML iterations to produce better initial values of variance components than the user provided initial values before switching to AI-REML. When AI-REML yields a negative estimate for any of the variance component estimates, the program automatically returns to EM-REML, which yields nonnegative estimates of variance components. This strategy is designed to guarantee GREML_CE and GREML_QM estimates of variance components to be positive.

Shared memory parallel computing
GVCBLUP is programmed in C++ language using Eigen [16] and Intel Math Kernel libraries (MKL) [17]. Eigen is a C++ template library for linear algebra, supports large dense and sparse matrices and supplies easy-to-use coding expression for linear algebra. Intel MKL provides BLAS and LAPACK linear algebra routines and is optimized for Intel processors with multiple cores by using shared memory parallel computing technology, which is used for dense matrix inversion including V −1 and C −1 as well as dense matrix multiplications involving those two matrices in GVCBLUP.

Calculation and graphical viewing of SNP effects and heritabilities
Both GREML_CE or GREML_QM can output additive and dominance marker effects as well as additive and dominance marker heritabilities for every SNP. SNP additive and dominance effects for GREML_CE are calculated at the last GREML iteration using the following formulations: in [5]). According to the EM-REML formulation of additive or dominance variance component [5], we calculate the variance of each SNP marker as the marker contribution to the whole-genome SNP variance defined by its EM-REML formula. Let σ 2 αi = additive variance of the i th SNP, and σ 2 δi = dominance variance of the i th SNP. Then, for GREML_CE, additive and dominance variances of the i th SNP are calculated as: and for GREML_QM, whereα i = additive GBLUP of the i th SNP,δ i = dominance GBLUP of the i th SNP, r = rank of the coefficient matrix of the mixed model equations, λ α ¼ σ 2 e =σ 2 α , λ δ ¼ σ 2 e =σ 2 δ , e ¼ y−Xb−Z 1α −Z 2δ , and C αα and C δδ are defined by Equation 22 in [5]. For the i th SNP marker, additive heritability or heritability in the narrow sense (h 2 αi ), dominance heritability (h 2 δi ) and the total heritability or heritability in the broad sense (H 2 i ) are: where σ 2 y ¼ σ 2 α þ σ 2 δ þ σ 2 e = phenotypic variance, h 2 α = total additive heritability of all SNP markers, and h 2 δ = total dominance heritability of all SNP markers. The output file for the SNP effects and heritabilities of Equations 5-9 is designed such that the SNP effects and heritability estimates can be directly used as the input file for graphing and graphical viewing by SNPEVG2 [18].

Simulated test data
Two simulated datasets are supplied in GVCBLUP package for testing purpose. One data set (dataset_1) has 1000 genotyped individuals with 3000 SNP markers and the other (dataset_2) has 3000 genotyped individuals with 1000 SNP markers. The parameter files to run GVCBLUP programs for the simulated datasets are also included in the package. These simulated data are designed for GVCBLUP exercises and for showing the complementary advantages of the CE and QM sets of formulations. Users interested in GVCBLUP exercises using large datasets could use a publically available swine dataset with over 45,000 SNP markers on 3534 individuals [19] that was used for comparing GREML estimates by GVCBLUP with the corresponding REML estimates using pedigree relations [5].

Results and discussion
The structure of the GVCBLUP package with three main programs of GREML_CE, GREML_QM and GCORRMX is shown in Figure 1, and details of each program are described below.

GREML_CE and GREML_QM programs
The GREML_CE and GREML_QM programs calculate GREML estimates of additive, dominance and residual variances, additive and dominance heritabilities, as well as heritability in the broad sense as the summation of the additive and dominance heritabilities. GBLUP and reliability of breeding value, dominance deviation and genotypic value (summation of breeding value and dominance deviation) of each individual in the training or validation population are calculated at the end of variance component estimation. GREML_CE and GREML_QM offer complementary computing advantages with identical GREML and GBLUP results: GREML_CE for large numbers of SNP markers and GREML_QM for large numbers of individuals. Assuming one observation per individuals, GREML_CE is more efficient than GREML_QM if 2 m > q and is less efficient than GREML_QM if q > 2 m, where q = number of individuals and m = number of SNP markers. The example in Table 1 shows the complementary computing advantages of GREML_CE and GREML_QM. Both programs produced identical results (Additional file 1: Supplementary output file) and required the same numbers of iterations (Table 1). For 1000 individuals and 3000 SNP markers, GREML_CE required 5 seconds and GREML_QM required 69 seconds, whereas for 3000 individuals and 1000 SNP markers, GREML_CE required 32 seconds and GREML_QM required 6 seconds (Table 1). Given q = 2 m, the required memory storage of GREML_QM is approximately 1.5 times larger than GREML_CE, but GREML_QM is faster than GREML_CE due to the fact that GREML_CE requires twice as many matrix multiplication between large dense matrices. The shared memory parallel computing of GREML_CE and GREML_QM achieved excellent scalability on ItascaSB cluster with two eight-core Sandy bridge E5-2670 processor chips (2.6 GHz) per node, 256 Gb memory, and Linux operating system (Figure 2). Scalability refers to the stability of average performance of a parallel program as the number of processors increases. Ideal scalability is achieved when the efficiency of k processor-cores (E k ) is E k = S k /k = 1, where S k = the ratio of the execution time with one processor-core to the execution time of the parallel algorithm with k processor-cores [20].
GREML_CE and GREML_QM each has three output files for results of GREML, GBLUP, and SNP effects and heritabilities, in addition to screen displays (Additional file 1: Supplementary output files). The GREML output files contain estimates and standard errors of variance components at each iteration, and the final estimates of variance components, heritabilities and their standard errors. The GBLUP output file contains GBLUP  The two programs were run on a personal computer (PC) with Intel Core i7-2600 (4 cores) of 3.40 GHz and memory of 8 Gb.  of breeding values, dominance deviations, genotypic values, and the corresponding reliabilities for both training and validation populations. These GBLUP results are calculated using the GREML estimates at the last iteration. Both GREML_CE and GREML_QM have a user option to output SNP additive and dominance marker effects and heritbilities for every SNP.
The SNP effects and heritabilities can be readily graphed and displayed by SNPEVEG2 [18] including Manhattan plots and graphs by chromosome using the original SNP GBLUP values (Figure 3: A and B), or the absolute SNP GBLUP values (Figure 3: C and D), or SNP additive and dominance heritabilities in the scale of percentages (Figure 3: E and F), or SNP Figure 4 Procedure of using SNPEVG2 to generate graphs and interactive graphical views. This procedure can be summarized as: 1) Open SNPEVG2, 2) Load the 'mark_effect.snpe' file using 'Browse' tab on the GUI of SNPEVG2, 3) click 'Setting' and check 'original value' for Y1 axis, 4) change 'original value' to user defined title for Y1 axis, 5) Click the button pointed by the green arrow to define pixel size and to select color template for the graphs, 6) Click 'run', 7) View the graph by scrolling up and down in the top right window, 8) Save 'All graphs' or 'Current graph'. SNPEVG2 is included in the SNPEVG package that is freely available at: http://animalgene.umn.edu/. additive and dominance heritabilities in the log 10 scale (Figure 3: G and H). The procedure to generate the Manhattan plots and chromosome figures is shown in Figure 4. Numerical evaluations showed that the AI-REML algorithm for both GREML_CE and GREML_QM had fast convergence rate, requiring between 12-20 iterations to converge with a strict tolerance level of 10 −8 , compared to 295-458 iterations using EM-REML ( Table 2). The SNP input and the calculation of genomic relationships matrices (A g and D g ) required more computing time than per-iteration of the estimation step. GREML_CE was able to use 50,000 individuals with 400 K SNP markers with total computing time about 23 hours for 13 iterations. For 20,000 individuals and one million SNP markers, GREML_CE only required 4.8 hours. GREML_QM was highly efficient for using low-density SNP markers, requiring only 2 hours for 200,000 individuals with 10 K SNP  markers. For 100,000 individuals with 50 K SNP markers, GREML_QM required about 46 hours for 20 iterations (Table 2). Although AI-REML was fast, extreme heritability levels (0 or 1) generally would cause failure of AI-REML. For eight of ten replications with null heritability, AI-REML failed, but the variance components still could be estimated with EM-REML (Table 3). AI-REML was successful for all ten replications with heritability of 0.3. In addition to the tests in Table 1 using the simulation datasets we provide with the GVCBLUP package, GREML_CE and GREML_QM programs were extensively evaluated using simulation data under various assumptions, and the GREML estimates were compared to the REML estimates of additive heritabilities of five traits using pedigree relationships in a publically available swine dataset of 3534 pigs with the 60 K SNP data [5]. GREML and GBLUP generally were able to capture small additive and dominance effects that each accounted for 0.00005-0.0003 of the phenotypic variance and GREML was able to differentiate true additive and dominance heritability levels [5]. The inclusion of dominance in the prediction model resulted in improved accuracy of genomic prediction [8], and the genomic models with additive and dominance effects were more accurate for the estimation of variance components than their pedigree-based counterparts [7]. In a study of trout propensity to migrate, genomic-predicted additive effects completely separated migratory and nonmigratory fish in the wild population with 95.5% additive heritability and 4.5% dominance heritability, whereas genomic-predicted dominance effects achieved such complete separation in the damblocked population with 0% additive heritability and 39.3% dominance heritability [22], showing the importance to account for the exact effect type in the prediction model.

GCORRMX program
The GCORRMX program is designed to calculate measures of genomic similarities among individuals. This program currently calculates the A g and D g matrices for six definitions [23]. An example of the GCORRMX output files is given in Additional file 1: Supplementary output files.

GVCeasy: Graphical user interface (GUI) for GVCBLUP
The three main programs of GVCBLUP are command line programs. GVCeasy is a Java program developed as a user-friendly GUI with a capability to run GVCBLUP by mouse clicks, providing considerable convenience for users not familiar with command line operations. GVCeasy can lunch any of the three main programs of GVCBLUP and provides a capability of editing the parameter file for each main program ( Figure 5). In addition, SNPEVG2 can be launched from the GREML_CE or GREML_QM window of GVCeasy for graphical viewing of SNP additive and dominance effects. To run GVCeasy, the programs of GVCeasy, GREML_CE, GREML_QM, GCORRMX and the SNPEVG package that includes SNPEVG2 need to be placed in the same directory. GVCeasy is applicable to Windows, Linux and Mac OS X versions of GVCBLUP.

Conclusions
The GVCBLUP package is a powerful and user friendly computing tool for assessing the type and magnitude of genetic effects affecting a phenotype by estimating wholegenome additive and dominance heritabilities of a phenotype using genome-wide SNP markers, is a full featured computing tool for genomic prediction of breeding values, dominance deviations and genotypic values for both training and validation data sets, and provides an important computing utility for research and education in the area of genomic prediction and estimation.