ParaHaplo 2.0: a program package for haplotype-estimation and haplotype-based whole-genome association study using parallel computing

Background The use of haplotype-based association tests can improve the power of genome-wide association studies. Since the observed genotypes are unordered pairs of alleles, haplotype phase must be inferred. However, estimating haplotype phase is time consuming. When millions of single-nucleotide polymorphisms (SNPs) are analyzed in genome-wide association study, faster methods for haplotype estimation are required. Methods We developed a program package for parallel computation of haplotype estimation. Our program package, ParaHaplo 2.0, is intended for use in workstation clusters using the Intel Message Passing Interface (MPI). We compared the performance of our algorithm to that of the regular permutation test on both Japanese in Tokyo, Japan and Han Chinese in Beijing, China of the HapMap dataset. Results Parallel version of ParaHaplo 2.0 can estimate haplotypes 100 times faster than a non-parallel version of the ParaHaplo. Conclusion ParaHaplo 2.0 is an invaluable tool for conducting haplotype-based genome-wide association studies (GWAS). The need for fast haplotype estimation using parallel computing will become increasingly important as the data sizes of such projects continue to increase. The executable binaries and program sources of ParaHaplo are available at the following address: http://en.sourceforge.jp/projects/parallelgwas/releases/


Background
Recent advances in various high-throughput genotyping technologies have allowed us to test allele frequency differences between case and control populations on a genome-wide scale [1]. Genome-wide association studies (GWAS) are used to compare the frequency of alleles or genotypes of a particular variant between cases and controls for a particular disease across a given genome [2][3][4]. More than a million single-nucleotide polymorphisms (SNPs) are analyzed in SNP-based GWAS. One difficulty faced when conducting SNP-based GWAS is performing corrections for multiple comparisons. Under the assump-tion that all SNPs are independent, a Bonferroni correction for a P value is usually used to account for multiple tests. When SNP loci are in linkage disequilibrium, Bonferroni corrections are known to be too conservative [5]. As a result, SNP-based GWAS may exclude the truly significant SNPs from analysis [6].
To cope with problems related to multiple comparisons in GWAS, haplotype-based algorithms were developed to correct for multiple comparisons at multiple SNP loci in linkage disequilibrium [5]. A permutation test can also help control inherent problems with multiple testing [6]. The use of haplotype-based association tests can improve the power of GWAS [7,8]. To conduct haplotype-GWAS within a short time period, Misawa and Kamatani [9] developed ParaHaplo 1.0, a set of computer programs for the parallel computation of accurate P values in haplo- Full list of author information is available at the end of the article type-based GWAS by using the MCMC [5] and RAT [6].algorithms.
Despite this, haplotype estimation is still time consuming [10], and therefore, faster methods for haplotype estimation are required. We developed a software package for the parallel computation of haplotype estimation called ParaHaplo 2.0. ParaHaplo 2.0 contains all of the functions of ParaHaplo 1.0 [9]. Additionally, ParaHaplo 2.0 can conduct haplotype estimation by using the PHASE 2.1 [11] and SNPHAP 1.3.1 [12] algorithms. Para-Haplo 2.0, is based on the principle of data parallelism--a programming technique used to split large datasets into smaller ones that can be run in a parallel, concurrent fashion [13]. ParaHaplo 2.0 is intended for use in workstation clusters using the Intel Message Passing Interface (MPI).
Using ParaHaplo 2.0, we estimated haplotypes from the genotype data of the Japanese from Tokyo (JPT), and Han Chinese from Beijing (CHB); these data sets were obtained from the HapMap dataset [14]. Using Para-Haplo 2.0, we compared the speed of haplotype estimation using parallel computation to the number of processors.

Parallel computing using MPI methods
ParaHaplo 2.0 is implemented in an MPI-C multithreaded package. The MPI package allows us to construct parallel computing programs on multiprocessors. The genome-wide polymorphism data is broken down into user-defined haplotype blocks, and the MPI Bcast function is used to distribute a single block of haplotype data into each processor. Each processor executes PHASE 2.1 [11] and SNPHAP 1.3.1 [12] algorithms and estimates haplotypes of a single linkage disequilibrium (LD) block. Once the haplotypes of each LD block are completely estimated, the results are compiled into a single genomewide dataset by using the MPI-Gatherv function. Para-Haplo 2.0 is compatible with OpenMPI 1.2.5 as well as with MPICH 1.2.7p1. Users can compile the source code using a GCC compiler or an Intel C compiler.

Hardware
When computational time was measured, a CentOS PC cluster at RIKEN was used. The program was compiled using an Intel C compiler. Numbers of processing units used were 1, 2, 4, 8, 16, 32, 64, 128, and 256.

Example data
An example of GWAS is presented here: We used Para-Haplo 2.0 to compare genome-wide genotype data of JPT and CHB from HapMap [14]; the number of individuals therein was 44 and 45, respectively. Haplotype blocks were obtained as LD blocks, using the method outlined by Gabriel et al. [16] and by using the Haploview program [17]. The entire genomes of JPT and CHB were divided into 106,149 haplotype blocks by Haploview [17]. PHASE 2.1 does not work with a large number of SNPs [11,18]; therefore, when the number of SNPs in an LD block was greater than 40, we split the block into 40 SNPs. Figure 1 shows the result of haplotype phasing. The SNP number, the position of the SNP in the chromosome, and haplotype data are displayed in each line; the rest are phased haplotypes. Each column displays a haplotype. Individuals are separated by a tab; haplotypes are separated by a space. The data format is identical to the results from ParaHaplo 1.0 [9].

Calculation Time
The speedup ratio is the ratio of the computation time of a single processor to that of multiple processors. Table 1 Figure 1 The result of haplotype phasing. The first column shows the SNP number. The second column shows the position of SNP in the chromosome. The additional columns display phased haplotypes; each column shows a haplotype. Individuals are separated by a tab; haplotypes are separated by a space. rs9624639 21213323  T  T  T  T  T  T  T  T shows the elapsed times and the speedups associated with the use of ParaHaplo 2.0 using the genotype data of chromosome 22 for haplotype estimation. In table 2, the calculation time decreased as the number of processors increased. When 256 processors were used, ParaHaplo was 100 times faster than the non-parallel program.

Discussion
We developed ParaHaplo 2.0, a set of computer programs, for the parallel computation of haplotype estimation as well as for accurate P values in haplotype-based GWAS. ParaHaplo is intended for use in workstation clusters using the Intel MPI. By using ParaHaplo, we conducted haplotype estimation of the genotype data of JPT and CHB from the HapMap dataset [14].

Parallel Computation of Haplotype-based GWAS
The results showed that the parallel computing ability of ParaHaplo 2.0 for haplotype estimation was 100 times faster than non-parallel version of ParaHaplo 2.0. In this study, we used a total of 89 JPT and CHB individuals whose genotypes had been determined during the Hap-Map project [14]. When a single processor was used, haplotype estimation for chromosome 22 took more than 9 h; if 9,000 individuals were to be analyzed under the same conditions, it would take approximately 1 month. However, if ParaHaplo 2.0 was used on a workstation with 256 processors, the same analysis would take approximately 9 h. Algorisms for faster haplotype estimation, such as Fast-PHASE [19] and GERBIL [20], have been developed. However, we chose PHASE 2.1 [11] because it outperforms these methods in accuracy of estimating haplotypes of these methods [19].
Even when 256 processors were used, the speedup ratio was only 116 because of the variations in the LD block size. Since ParaHaplo is based on data parallelism, the computation times of each haplotype estimation was approximately proportional to the number of SNPs within the LD block [5,6]; therefore, we believe that a large LD block may becomes a computational bottleneck. PHASE 2.1 [11] in ParaHaplo 2.0 does not work for a large number of SNPs, when the number of SNPs in a haplotype block is greater than 40. Most of SNPs in a large LD block are in strong LD so that we must choose smaller number of tag SNPs in phase estimation to estimate haplotypes by using PHASE 2.1 [11]. Or, we can use SNPHAP 1.3.1 [12] in ParaHaplo 2.0.

Conclusion
The results indicated that when the number of processors is sufficient, the parallel computing abilities of ParaHaplo were 100 times faster than those of non-parallel programs. There are more than a million SNPs for which accurate and complete genotypes have been obtained [15], more than ten thousands of people are now being genotyped [21]. The need for fast haplotype estimation using parallel computing will become increasingly important as the data sizes of such projects continue to increase.